使用句子上下文的命名实体识别

时间:2019-04-01 05:45:14

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

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

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

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

示例1:我的生日是12月9日。如果我们使用spacy或regex,则12月9日将被标记为日期字段,但我希望将其标记为自定义实体“生日”。 例2:我要在4月1日上映电影。这里应将4月1日标记为正常日期字段。

1 个答案:

答案 0 :(得分:0)

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

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

无论如何,如果您要解决的任务与在特定上下文中重新标记实体一样容易,那么我将针对特定情况编写一组规则。诸如此类:如果实体是日期,并且句子中有“出生”或“出生”,则它是您的出生日期实体。或者,您也可以基于从spacy获得的依赖关系解析来制定一些更高级的规则。