【问题标题】:How to handle two entity extraction methods in NLP如何处理 NLP 中的两种实体提取方法
【发布时间】:2019-03-05 11:36:07
【问题描述】:

在 RASA 框架中构建我的 NLP 模型以构建聊天机器人时,我使用了两种不同的实体提取方法 (https://rasa.com/docs/nlu/entities/)。 机器人应该处理具有自定义实体以及一些一般问题(如位置或组织)的不同问题。 所以我使用 ner_spacy 和 ner_crf 两个组件来创建模型。之后,我在 python 中构建了一个小帮助脚本来评估模型性能。在那里我注意到模型很难选择正确的实体。

例如,对于单词“X”,它从 SpaCy 中选择了预定义的实体“ORG”,但它应该被识别为我在训练数据中定义的自定义实体。

如果我只使用 ner_crf 提取器,我在识别像首都这样的位置实体时会遇到很大的问题。我最大的问题之一也是单一答案实体。

问:“你最喜欢的动物是什么?”

A:狗

我的模型无法为这个单一答案提取这个单一实体“动物”。如果我用“The Dog”之类的两个词回答这个问题,那么模型可以毫无问题地提取值为“Dog”的动物实体。

所以我的问题是,使用两个不同的组件来提取实体是否聪明?一个用于自定义实体,另一个用于预定义实体。 如果我使用两种方法,使用哪个提取器的模型中的机制是什么?

顺便说一句,目前我只是在测试,所以我的训练样本并没有应有的那么大(少于 100 个样本)。如果我有更多的训练示例,问题是否可以解决?

【问题讨论】:

    标签: nlp entity rasa-nlu


    【解决方案1】:

    您在这里面临两个问题。我提出了一些我认为有用的方法。

    1.自定义实体识别: 为了解决这个问题,您需要添加更多具有所有可能长度的实体的训练句子。当实体周围有可识别的标记(例如介词)时,ner_crf 会更好地预测

    2。从单个单词答案中提取实体: 作为一种解决方法,我建议您在客户端进行以下操作。

    当您发送What´s your favorite animal? 之类的问题时,请在问题上附加一个标记,以向客户表明需要一个单一的答案。例如 您可以将##SINGLE## What´s your favorite animal? 发送给客户。

    客户可以从问题中删除##SINGLE## 并将其显示给用户。但是当客户端向服务器发送用户的响应时,它不会发送Dog,而是发送类似User responded with single answer as Dog的东西

    您可以训练您的模型从此类答案中提取实体。

    【讨论】:

      猜你喜欢
      • 2017-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 2021-12-25
      相关资源
      最近更新 更多