Code Monkey home page Code Monkey logo

rasa_nlu's Introduction

Rasa NLU

Join the chat at https://gitter.im/RasaHQ/rasa_nlu Build Status Coverage Status PyPI version Documentation Status

Rasa NLU (Natural Language Understanding) is a tool for intent classification and entity extraction. You can think of Rasa NLU as a set of high level APIs for building your own language parser using existing NLP and ML libraries. Find out more on the homepage of the project, where you can also sign up for the mailing list.

Extended documentation:

  • latestย  (if you install from github) or
  • stable (if you install from pypi)

If you are new to Rasa NLU and want to create a bot, you should start with the tutorial.

Contents:

Setup

A. Install Locally

From pypi:

pip install rasa_nlu

From github:

git clone [email protected]:RasaHQ/rasa_nlu.git
cd rasa_nlu
pip install -r requirements.txt
pip install -e .

To test the installation use (this will run a very stupid default model. you need to train your own model to do something useful!):

python -m rasa_nlu.server &
curl 'http://localhost:5000/parse?q=hello'

B. Install with Docker

Before you start, ensure you have the latest version of docker engine on your machine. You can check if you have docker installed by typing docker -v in your terminal.

1. Build the image:

docker build -t rasa_nlu .

2. Start the web server:

docker run -p 5000:5000 rasa_nlu start

Caveat for Docker for Windows users: please share your C: in docker settings, and add -v C:\path\to\rasa_nlu:/app to your docker run commands for download and training to work correctly.

3. Test it!

curl 'http://localhost:5000/parse?q=hello'

C. (Experimental) Deploying to Docker Cloud

Deploy to Docker Cloud

FAQ

Who is it for?

The intended audience is mainly people developing bots, starting from scratch or looking to find a a drop-in replacement for wit, LUIS, or api.ai. The setup process is designed to be as simple as possible. Rasa NLU is written in Python, but you can use it from any language through a HTTP API. If your project is written in Python you can simply import the relevant classes. If you're currently using wit/LUIS/api.ai, you just:

  1. Download your app data from wit, LUIS, or api.ai and feed it into Rasa NLU
  2. Run Rasa NLU on your machine and switch the URL of your wit/LUIS api calls to localhost:5000/parse.

Why should I use Rasa NLU?

  • You don't have to hand over your data to FB/MSFT/GOOG
  • You don't have to make a https call to parse every message.
  • You can tune models to work well on your particular use case.

These points are laid out in more detail in a blog post. Rasa is a set of tools for building more advanced bots, developed by the company Rasa. Rasa NLU is the natural language understanding module, and the first component to be open sourced.

What languages does it support?

Short answer: English, German, and Spanish currently. Longer answer: If you want to add a new language, the key things you need are a tokenizer and a set of word vectors. More information can be found in the language documentation.

How to contribute

We are very happy to receive and merge your contributions. There is some more information about the style of the code and docs in the documentation.

In general the process is rather simple:

  1. create an issue describing the feature you want to work on (or have a look at issues with the label help wanted)
  2. write your code, tests and documentation
  3. create a pull request describing your changes

You pull request will be reviewed by a maintainer, who might get back to you about any necessary changes or questions.

Development Internals

Steps to release a new version

Releasing a new version is quite simple, as the packages are build and distributed by travis. The following things need to be done to release a new version

  1. update rasa_nlu/version.py to reflect the correct version number
  2. edit the CHANGELOG.rst, create a new section for the release (eg by moving the items from the collected master section) and create a new master logging section
  3. edit the migration guide to provide assistance for users updating to the new version
  4. commit all the above changes and tag a new release, e.g. using
    git tag -f 0.7.0 -m "Some helpful line describing the release"
    git push origin master --tags
    
    travis will build this tag and push a package to pypi
  5. only if it is a major release, a new branch should be created pointing to the same commit as the tag to allow for future minor patches, e.g.
    git checkout -b 0.7.x
    git push origin 0.7.x
    

License

Licensed under the Apache License, Version 2.0. Copyright 2016 LastMile Technologies Ltd. Copy of the license.

As a reference, the following contains a listing of the licenses of the different dependencies as of this writing. Licenses of minimal dependencies:

required package License
gevent MIT
flask BSD 3-clause
boto3 Apache License 2.0
typing PSF
future MIT
six MIT
jsonschema MIT

Licenses of optional dependencies (only required for certain components of Rasa NLU. Hence, they are optional):

optional package License
MITIE Boost Software License 1.0
spacy MIT
scikit-learn BSD 3-clause
scipy BSD 3-clause
numpy BSD 3-clause
duckling Apache License 2.0
sklearn-crfsuite MIT
cloudpickle BSD 3-clause
google-cloud-storage Apache License 2.0

rasa_nlu's People

Contributors

tmbo avatar amn41 avatar vinvinod avatar joeyfaulkner avatar plauto avatar paschmann avatar twerkmeister avatar choufractal avatar yulkes avatar phildionne avatar jgranstrom avatar oziee avatar bigman73 avatar thulazungu avatar phlf avatar wrathagom avatar angadn avatar ankitbko avatar dhpollack avatar julien-c avatar normanrz avatar raniazy avatar rasa avatar rmharrison avatar sheldon avatar someshc8i avatar niksubramanian avatar

Watchers

Shafi Ahmed avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.