Сущность RASA не обнаруживает синонимы после обучения

Я пытаюсь добавить синонимы к сущности RASA. Я определил синонимы в самих обучающих данных. Я также определил ner_synonyms в файле конфигурации. Если после обучения я задаю такие вопросы, как «До скольких отпусков по болезни можно накопить», это означает понимание сущности, но когда я использую sl вместо отпуска по болезни («До скольких отпусков по болезни можно накопить»), это не идентифицирует сущность.

training.json

{
 “rasa_nlu_data”: {
 “entity_synonyms”: [{
 “value”: “loss of pay”,
 “synonyms”: [
{
 “value”: “loss of pay”,
 “synonyms”: [
 “lop”, “leave withour pay”, “lwp”
 ]
 },
 {“value”: “casual leave”, “synonyms”: [“cl”]},
 {“value”: “privilege leave”, “synonyms”: [“pl”]},
 {“value”: “sick leave”, “synonyms”: [“sl”]}

…
 ],

“common_examples”: [ 
 { 
 “text”:”Upto how many sick leave can be accumulated”,
 “intent”:”leave_accumulate”,
 “entities”:[ 
 { 
 “start”:14,
 “end”:24,
 “value”:”sick leave”,
 “entity”:”leave_type”
 }
 ]
 },

…

}}

configuration.yml
language: “en”

конвейер:

- name: “nlp_spacy”
 model: “en”
- name: “tokenizer_spacy”
- name: “intent_featurizer_spacy”
- name: “intent_classifier_sklearn”
- name: “ner_crf”
- name: “ner_synonyms”

person Shreeti    schedule 26.10.2018    source источник


Ответы (1)


Добавление синонимов не обучает модель распознавать эти значения синонимов. См. Примечание в документах Rasa NLU:

Обратите внимание, что добавление синонимов с использованием указанного выше формата не улучшает классификацию этих объектов в модели. Сущности должны быть правильно классифицированы, прежде чем их можно будет заменить значением синонима.

Чтобы улучшить извлечение сущностей, добавьте больше common_examples с разными значениями синонимов. Особенно, если синонимы имеют разное расположение слов (2 слова против 1 слова и т. Д.)

person Caleb Keller    schedule 26.10.2018