带有通配符实体的 Rasa

问题描述

我正在使用 Rasa 2.6,并试图为用户寻找一种方法搜索食谱,而不会出现荒谬的实体列表。所以,而不是:

- intent: cooking_baking
  examples: |
  - show me a recipie for [cake](cookingAndBaking)
  - show me a recipie for [pizza](cookingAndBaking)
  - show me a recipie for [pie](cookingAndBaking)

用户应该能够指定他们正在寻找的配方:

- intent: cooking_baking
  examples: |
  - show me a recipie for [*](cookingAndBaking)

并且仍然返回他们的食谱。

解决方法

实体提取使用机器学习,通过查看例句“训练”模型进行提取。

您不需要提供很长的例句列表。只要您提供足够的示例(通常在 5-20 个之间),模型就会学会提取实体值,即使它没有在训练示例中提供。

在创建例句时,建议使用多种用户与您的机器人对话的方式,例如您的示例:

- intent: cooking_baking
  examples: |
  - show me a recipie for [cake](cookingAndBaking)
  - do you have a recipie for [pizza](cookingAndBaking)
  - Can you help me bake a [pie](cookingAndBaking)?
  - etc.

建议应用Conversation-Driven Development。这意味着你不应该试图自己想出太多的句子。刚好够用,然后让其他人与您的机器人交谈。然后,您有选择地将他们的句子添加到您的训练数据中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...