【问题标题】:How to identify multiple entities in RASA如何在 RASA 中识别多个实体
【发布时间】:2018-11-21 01:53:48
【问题描述】:

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

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

【问题讨论】:

    标签: rasa-nlu rasa-core


    【解决方案1】:

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

    ## 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 更多的训练示例,因为它不使用预训练的语言模型。
    • 您的实体可以拥有的不同值的数量。如果只有httpd、high CPU usage和DNS error,那么你不需要很多例子。但是,如果您的实体有一千个不同的值,那么您需要更多的训练示例

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

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

    【讨论】:

    • 我需要训练多少个这样的例子才能正确提取实体。也有必要所有的训练样本都应该由三个相似的实体组成。
    • 将其添加到我的答案中
    • 如何用关键字列表填充 stories.md 中的空位,以便在自定义操作中使用?
    • @asmaier:默认从 Intent 自动填充(除非 slot 有参数 autofilled: false,或者 slot 有 type=unfeaturized)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    相关资源
    最近更新 更多