RASA实体在训练后未检测到同义词

时间:2018-10-26 20:04:23

标签: rasa-nlu rasa-core

我正在尝试为RASA实体添加同义词。我已经在训练数据本身中定义了同义词。我还在配置文件中定义了ner_synonyms。训练后,如果我提出诸如“最多可以累积多少病假”之类的问题,这是在理解实体,但是当我使用sl而不是病假(“可以累积多少sl的病假”)时,它并不能识别该实体< / p>

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”

1 个答案:

答案 0 :(得分:1)

添加同义词不会训练模型识别那些同义词值。请参阅Rasa NLU docs中的注释:

  

请注意,使用上述格式添加同义词并不能改善模型对这些实体的分类。必须先对实体进行正确分类,然后才能用同义词值替换。

要获得更好的实体提取效果,请添加更多具有不同同义词值的common_examples。尤其是当同义词具有不同的单词排列方式(2个单词对1个单词等)