2

我面临一个真正的问题,我不知道我正在寻找的不是 rasa 提供的,或者只是我找不到它。

现在,我使用的是 IBM Watson 和 Dialogflow。实体分为:

  • 实体
  • 子实体
  • 每个子实体的同义词

当您参考意图训练数据时,您只需键入实体名称或子实体名称,并且只输入一次

示例: 实体:iPhone 子实体

1) iphone7

synanoms: iphone seven, iPhone 7, i Phone 7, iPhone svn

2) iphone8

synanoms: iphone eight, iPhone 8, i Phone 8, iPhone eight

3) iPhone12

synanoms: iphone twelce, iPhone 12, i Phone 12, iPhone 12

意图训练样本: 我想买@iphone

**-----------------------------------------------------------------**

but in rasa the only possible way is to add it like that: (just for clarification)

I want to buy [iphone seven]{"entity": "iPhone", "value": "iphone7"}

I want to buy [iphone seven] (iPhone)

I want to buy [iPhone 7] {"entity": "iPhone", "value": "iphone7"}

I want to buy [i Phone 7] {"entity": "iPhone", "value": "iphone7"}

I want to buy [iphone eight] {"entity": "iPhone", "value": "iphone8"}
....
... etc

以这种方式在意图中列出实体绝对是一件麻烦事,尤其是我已经拥有庞大的数据集,它会使我的意图增加 100 倍,我相信它会导致过度拟合。

当我在 Watson 或 Dialogflow 中列出实体时,有什么方法可以列出它们?

4

2 回答 2

1

您可以在训练数据中定义同义词,如下所示:

nlu:
- synonym: credit
  examples: |
    - credit card account
    - credit account

在这里阅读更多。我不确定您要通过子实体实现什么。如果您能告诉我更多信息,我可以尝试帮助您找出使用 Rasa 工具解决此问题的最佳方法。

于 2021-03-09T07:11:40.040 回答
0

是的,有一种形式是:你必须使用查找。有方法:

- intent: dice_su_nombre
  examples: |
    - my name is [fran](name)
    - my name is [felipe](name)

- lookup: name
  examples: |
    - fran
    - gianluca
    - felipe
    - felix
于 2021-11-17T18:25:24.977 回答