如果单词中有下划线,如何解决Rasa Nlu Confidence给0的问题?

时间:2019-09-04 07:11:54

标签: rasa-nlu rasa-core rasa

我正在尝试使用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,我将获得正确的意图和信心,如果尝试使用_firstnamefirst_name,我将得到以下结果:

first_name
{
  "intent": {
    "name": null,
    "confidence": 0.0
  },
  "entities": [],
  "intent_ranking": [],
  "text": "first_name"
}

1 个答案:

答案 0 :(得分:1)

您之所以得到0的信任正是因为您在单词中使用了下划线。训练数据中未使用单词first_name,因此该单词对您的模型而言是陌生的。这就是为什么它无法预测该词的任何原因。 (默认情况下,它使用whitespace tokenizer,因此单词只能由空格标记。)

因此,要解决您的问题,只需不要在单词中使用下划线,否则您可以编辑空格标记生成器以按空格和下划线标记。

希望有帮助。