【问题标题】:Named Entity Recognition using context of the sentence使用句子上下文的命名实体识别
【发布时间】:2019-08-22 05:49:32
【问题描述】:

我有一个问题,我想知道如何根据在句子中使用实体的上下文来提取或命名实体。

例如:如果我们必须提取仅在出生日期上下文中使用的日期字段,那么我们该怎么做。

我知道我们可以使用正则表达式、spacy、NLTK 从文档中提取日期字段。但我无法根据使用日期的上下文确定提取日期的方法。

示例 1:我的生日是 12 月 9 日。如果我们使用 spacy 或正则表达式,这里 12 月 9 日将被标记为日期字段,但我希望它被标记为自定义实体“出生日期”。 示例 2:我要在 4 月 1 日去看电影。此处应将 4 月 1 日标记为正常日期字段。

【问题讨论】:

  • @Praveen Kumar 我正在处理一个类似的问题,只是想知道您是否能够使用任何启发式方法以某种方式解决这个问题?
  • @someone 我使用了 spacy 的自定义模型Spacy,但效率不高。所以我浏览了一些文章和博客,发现了Bidirectional LSTM- CNN network,它的实现在Github。我仍在为自定义实体准备数据集,所以我没有尝试过这种方法,但据我所知,这应该可行。
  • 嗨@PraveenKumar 我有类似的问题。你试过双向 LSTM-CNN 吗?谢谢!
  • @eng2019 我试过双向 LSTM-CNN 网络。但我使用 BERT 得到了更好的结果。
  • 谢谢@PraveenKumar F1-score 是多少,你使用了多少训练数据?我也尝试过 BERT,我的情况没有太大改善。

标签: machine-learning nlp nltk data-science spacy


【解决方案1】:

命名实体识别仅定义为标记连续的句子片段并为它们分配预定义集合中的标签。机器学习识别器(例如 spacy 使用的识别器)确实使用了整个句子的上下文,但是,一旦模型训练好,就不能添加新的标签,例如“出生日期”。如果您有一个对此类实体进行注释的大型语料库,您可以重新训练 spacy 模型,以便它能够使用您的标签。

也许太重的机器会使用一些knowledge extraction 方法,这些方法基本上连接已识别的实体并为其分配一些语义标签。在您的情况下,它将类似于:[PERSON] (was born on) [DATE]

无论如何,如果您要解决的任务就像在特定上下文中重新标记实体一样简单,我会针对特定情况编写一组规则。例如:如果实体是日期并且句子中有“出生”或“出生”,那么它就是您的出生日期实体。或者,您也可以根据从 spacy 获得的依赖解析制定一些更奇特的规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 2014-01-14
    • 2015-06-11
    • 2023-03-24
    • 2011-07-31
    相关资源
    最近更新 更多