如何识别RASA中的多个实体

SUB*_*EET 4 rasa-nlu rasa-core

我想从用户输入中提取多个实体。示例-“由于 CPU 使用率高和 DNS 错误,服务 httpd 没有响应”所以在这里我想在下面确定:Httpd 高 CPU 使用率 DNS 错误

我将使用此关键字从数据库中获取响应。

Tob*_*ias 6

只需相应地注释它们,例如

## intent: query_error
- Service [httpd](keyword) is not responding because of [high CPU usage](keyword) and [DNS Error](keyword)
Run Code Online (Sandbox Code Playgroud)

有了上面的句子,Rasa NLU 将提取 3 个类型为 的实体keyword。然后,您可以在自定义操作中访问这些实体并查询您的数据库。

关于所需示例的数量:这取决于

  • 您正在使用的NLU 管道。通常tensorflow_embedding需要更多的训练示例,spacy_sklearn因为它不使用预训练的语言模型。
  • 您的实体可以拥有的不同值的数量。如果只是httpd, high CPU usage,DNS error那么你就不需要很多例子了。但是,如果您的实体有一千个不同的值,那么您需要更多的训练示例

如果您总是想触发相同的自定义操作,一个意图就足够了。但是,如果您想对不同类型的问题进行分类,例如服务器问题和客户端问题,并根据问题类型触发不同的数据库,您可以考虑具有多个意图。

抱歉,答案含糊不清,但在机器学习中,大多数事情都高度依赖于用例和数据集。