Fountain

Overview.

In order to build better AI assistants, we need more data, better models aren’t enough.

Most of NLU system requires entering thousands of possible queries that future users would -- most possibly -- use, and annotate every sentence segment that can identiy user's intentions. It is generally a hectic and tedious manual process. Fountain aims to help developers smooth away this process and generate a volume of training examples to make it easier to train and build a robust chatbot systems.

The tool intends to make it easy to build the same dataset for different intent engines (Amazon's Alexa, Google's API.ai, Facebook's Wit, Microsoft's Luis). At the moment, the tool generates training datasets compatible with the RasaNLU format.

Getting Started

Installation

You can install the package via:

$ pip install git+git://github.com/tzano/fountain.git

Install the dependencies:

$ pip install -r requirements.txt

Syntax

Fountain uses a structured YAML template, developers can determine the scope of intentions through the template with the grammar definitions. Every intent should include at least one sample utterances that triggers an action. The query includes attributes that identify user's intention. These key information called slots. We include different samples to be able to generate datasets.

We use three operations:

Argument ({slot_name:slot_type}): used to declare slot pattern.

Argument (( first_word | second_word )): used to provide a set of keywords, these words could be synonymes (e.g: happy, joyful) or the same name with different spellings (e.g: colors|colours)

Test

pytest

Tutorials & Guides

You can find examples on how to use the library in labs folder. You can enrich the builtin datasets by adding more files under data/<language>/*files*.csv. Make sure to index the files that you insert in resources/builtin.py.

For more information about Chatbots and Natural Language Understanding, visit one of the following links: