我是一名努力学习的NLP新手,希望更好地了解命名实体识别(NER)在实践中是如何实现的,例如在spaCy等流行的python库中。
我理解它背后的基本概念,但我怀疑我错过了一些细节。 从文档中,我不清楚例如对文本和注释数据进行了多少预处理;以及使用什么统计模型。
您知道是否:
道歉,如果这一切都是微不足道的,我在找到有关NER实施的易读文档方面遇到了一些麻烦。
答案 0 :(得分:1)
在https://spacy.io/models/en#en_core_web_md中,他们说English multi-task CNN trained on OntoNotes
。所以我想这就是他们获取网元的方式。您可以看到管道是
tagger,解析器,ner
,并在此处了解更多信息:https://spacy.io/usage/processing-pipelines。我会尝试删除不同的组件,然后看看会发生什么。这样,您可以看到什么取决于什么。我很确定NER取决于标记器,但不确定是否需要解析器。当然,所有这些都需要标记器
我不明白你的第二点。如果一个实体在句子的开头或中间处很好,那么NER系统应该能够抓住它。我看不到您在文本上下文中如何使用normalize
一词。
关于模型,他们提到了多任务CNN,所以我想CNN是NER的模型。有时人们在顶部使用CRF,但他们没有提到它,所以可能就是这样。根据他们的表现数据,这已经足够了