如何在RASA中识别多个实体

时间:2018-11-21 01:53:48

标签: rasa-nlu rasa-core

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

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

1 个答案:

答案 0 :(得分:2)

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

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

具有上面的句子,Rasa NLU将提取3个keyword类型的实体。然后,您可以在custom action中访问这些实体并查询数据库。

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

  • 您正在使用的NLU pipeline。与tensorflow_embedding相比,spacy_sklearn通常需要更多的训练示例,因为它不使用预先训练的语言模型。
  • 您的实体可以具有的不同值的数量。如果只有httpdhigh CPU usageDNS error,那么您就不需要很多示例。但是,如果您的实体具有一千个不同的值,那么您需要更多的训练示例

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

对于模糊的答案很抱歉,但是在机器学习中,大多数事情高度依赖用例和数据集。