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

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

1 回答 1

1

正是因为您在单词中使用了下划线,所以您的置信度为 0。该词first_name尚未在您的训练数据中使用,因此该词对您的模型来说是陌生的。这就是为什么它不能预测该词的任何内容。(默认情况下,它使用 a whitespace tokenizerso 单词仅由空格标记。)

因此,要解决您的问题,请不要在单词中使用下划线,或者您可以编辑空格标记器以按空格和下划线进行标记。

希望有帮助。

于 2019-09-04T12:24:51.110 回答