我正在尝试为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”
答案 0 :(得分:1)
添加同义词不会训练模型识别那些同义词值。请参阅Rasa NLU docs中的注释:
请注意,使用上述格式添加同义词并不能改善模型对这些实体的分类。必须先对实体进行正确分类,然后才能用同义词值替换。
要获得更好的实体提取效果,请添加更多具有不同同义词值的common_examples。尤其是当同义词具有不同的单词排列方式(2个单词对1个单词等)