Slot Filling ATIS

Hello, I am new to Rasa and I’m having some difficulties using it for Slot Filling.

My objective is to use Rasa to perform slot filling on the ATIS dataset. I am using the following which is in JSON format : ATIS JSON format.

I’ve used the following command to train: python -m rasa_nlu.train -c config_spacy.json -d ./data/examples/rasa/train.json

The config_spacy.json has the following information:

{
  "pipeline": "spacy_sklearn",
  "path" : "./models",
  "data" : "./data/examples/rasa/train.json"
}

An example of the dataset:

{
                "text": "i want to fly from boston at 838 am and arrive in denver at 1110 in the morning",
                "intent": "flight",
                "entities": [
                    {
                        "start": 19,
                        "end": 25,
                        "value": "boston",
                        "entity": "fromloc.city_name"
                    },
                    {
                        "start": 29,
                        "end": 35,
                        "value": "838 am",
                        "entity": "depart_time.time"
                    },
                    {
                        "start": 50,
                        "end": 56,
                        "value": "denver",
                        "entity": "toloc.city_name"
                    },
                    {
                        "start": 60,
                        "end": 64,
                        "value": "1110",
                        "entity": "arrive_time.time"
                    },
                    {
                        "start": 72,
                        "end": 79,
                        "value": "morning",
                        "entity": "arrive_time.period_of_day"
                    }

With this, the model that is returned only provides information regarding intents and I am not being able to capture the performance regarding Slot Filling.

Can someone point me in the correct way for this problem?

Thanks in advance and sorry for the long post and if something is missing.

Which version are you using? I suggest to use the latest version. Please take a look at the following documentation pages:

I am using Rasa NLU 0.15.1

The installation was using pip install rasa_nlu==0.15.1

With this, I was able to train a model with ATIS using the following command:

python -m rasa_nlu.train \
  -c ./rasa_nlu_config.yml \
  --data ./atis_json/train.json \
  -o models \
  --project current \
  --verbose

Note that the config.yml file is simply:

language: "en"
pipeline: "spacy_sklearn"

For evaluation I’ve used the following command:

echo "backend: Agg" > ./matplotlibrc
python -m rasa_nlu.evaluate \
  --mode evaluation \
  --data atis_json/test.json \
  --model models/current/${MODEL_NAME} \
  --report report/ \
  --successes report/succcess.json \
  --errors report/errors.json \
  --histogram report/hist.png \
  --confmat report/confmat.png

This works well for this pipeline but if I change it to use the DIETClassifier coupled with ConveRTTokenizer and ConveRTFeaturizer then this does not work anymore and I can’t understand why.

I’ve tried to pip install rasa_nlu[transformers] but got the following error: ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory.

The dataset is still in JSON format.

rasa_nlu package is deprecated, please take a look here on how to install rasa package: Installation | Rasa Open Source Documentation