命名实体识别实践

Named Entity Recognition in practice

我是一名正在努力学习的 NLP 新手,想更好地了解命名实体识别 (NER) 在实践中是如何实现的,例如在流行的 python 库中,例如 spaCy

我理解它背后的基本概念,但我怀疑我遗漏了一些细节。 从文档中,我不清楚例如对文本和注释数据进行了多少预处理;以及使用什么统计模型。

你知道吗:

抱歉,如果这一切都是微不足道的,我在寻找有关 NER 实现的易于阅读的文档时遇到了一些麻烦。

https://spacy.io/models/en#en_core_web_md 他们说 English multi-task CNN trained on OntoNotes。所以我想这就是他们获得 NE 的方式。可以看到管道是

标注器、解析器、神经元

并在此处阅读更多内容:https://spacy.io/usage/processing-pipelines。我会尝试移除不同的组件,看看会发生什么。这样你就可以看到什么取决于什么。我很确定 NER 依赖于标记器,但不确定是否需要解析器。他们当然都需要分词器

我不明白你的第二点。如果一个实体位于句子的开头或中间就可以了,NER 系统应该能够捕捉到它。我不明白你是如何在文本上下文中使用 normalize 这个词的。

关于模型,他们提到了多任务CNN,所以我猜CNN是NER的模型。有时人们会在顶部使用 CRF,但他们不会提及它,所以可能就是这样。从他们的表现来看,已经足够了