【问题标题】:Entity recognition based on context基于上下文的实体识别
【发布时间】:2020-04-25 14:00:27
【问题描述】:

有没有一种方法可以根据句子的上下文来获取单词属于实体的概率。 例如(实体:server_name)

"我要查看 mogo 服务器" 结果将是例如:

Mogo:服务器名称,0.5688999

"检查服务器 mogo 的状态" 结果将是例如:

Mogo : server_name , 0.6272772

例如,一种解决方案是将所有服务器名称映射到一个 txt 文件或实体 reco 中以执行此操作...但在这种情况下,服务器的名称可能是一个很大的数字,因此每次我们想要一个概率word确实是服务器名称,因此检查数据库/json中的服务器名称(如果存在,我们继续)如果不是,我们根据该概率询问用户(mogo)是否确实是服务器名称 就像我们将它添加到数据库中 那么有什么方法可以使用 nltk、spacy 或 rasa 根据句子(而不是单词 .txt 或标签)将单词提取为实体,并获得最有可能属于命名实体的单词的概率?

【问题讨论】:

    标签: python nltk spacy rasa-nlu named-entity-recognition


    【解决方案1】:

    尝试使用CRF 分类器。对于句子中的每个单词,你可以得到概率分数。

    CRF 期望训练数据位于IOB format

    这是一个很好的blog,关于使用 CRF 进行 NER 检测。

    例子

    crf_.predict_marginals_single(sent2features_for_prediction("Bengaluru"))
    
    
    [{'O': 0.0008245389052411774,
      'B-entity__location': 0.9764201257123432,
      'I-entity__location': 0.003916777298076389,
      'B-entity__other_ent': 0.003445348786883558,
      'I-entity__other_ent': 0.00012730443363195458,
      'B-entity__other_ent_2': 0.005445385992475527,
      'B-entity__other_ent_3': 3.704781572842554e-05,
      'I-entity__other_ent_3': 2.1092149059526482e-05,
      'I-entity__other_ent_2': 0.00011894529348380328,
      'B-entity__other_ent_4': 2.0753893397695066e-05,
      'I-entity__other_ent_4': 6.333056114953314e-05,
      'B-entity__other_ent_5': 0.009492141753363492,
      'I-entity__other_ent_5': 6.720740516588521e-05}]
    

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      假设您想在 rasa 聊天机器人项目中执行此操作,我会回答。 DIETClassifier 可以根据您的训练数据提取自定义实体。通过另外使用lookup tables 作为服务器名称,您可以提高对许多不同服务器名称的识别率,而不会增加训练示例的数量。

      DIET 中实体的基础分类器是 CRF;实际上,句子上下文和单词本身都会影响单词是否被识别为特定实体。例如,如果您的训练数据包含类似

      的示例
       - I want to check [mogo](server) server
       - Check status of server [mogo](server)
       - check [mongo](server) server status
      

      很有可能mongo 在看不见的句子“我想检查 mongo 状态”中也会被正确拾取(基于句子上下文)。

      【讨论】:

        【解决方案3】:

        您可以通过使用 Spacy 训练您自己的数据来做到这一点。 Spacy 有很好的文档说明如何创建和训练您自己的自定义模型,您可以查看here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-04-02
          • 2019-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-19
          相关资源
          最近更新 更多