rasa-nlu - 如果单词中有下划线,如何修复 Rasa Nlu Confidence 给 0?
问题描述
我正在尝试使用 构建简单的聊天机器人应用程序Rasa
,但如果单词中有下划线,我的机器人会给出信心 0。
下面是我的 config.yml 配置:
language: en
pipeline: supervised_embeddings
policies:
- name: KerasPolicy
#- name: MappingPolicy
#- name: MemoizationPolicy
#- name: FallbackPolicy
nlu.md 配置:
## intent:name
- name
- nmae
- nme
- what is my name?
## intent: firstname
- firstName
- FName
- first name
## intent: gender
- gender
- sex
- gnder
- gendr
- sx
## intent: lastname
- lastName
- lname
- surname
- lstnme
- lstname
## intent: username
- userName
- uname
- usrnme
- usernme
- userid
如果我通过firstname
了,我将获得正确的意图和信心,如果我尝试_firstname
或first_name
我得到以下结果:
first_name
{
"intent": {
"name": null,
"confidence": 0.0
},
"entities": [],
"intent_ranking": [],
"text": "first_name"
}
解决方案
正是因为您在单词中使用了下划线,所以您的置信度为 0。该词first_name
尚未在您的训练数据中使用,因此该词对您的模型来说是陌生的。这就是为什么它不能预测该词的任何内容。(默认情况下,它使用 a whitespace tokenizer
so 单词仅由空格标记。)
因此,要解决您的问题,请不要在单词中使用下划线,或者您可以编辑空格标记器以按空格和下划线进行标记。
希望有帮助。