spacy如何使用单词嵌入进行命名实体识别(NER)?

Nav*_*nam 11 python nlp named-entity-recognition spacy

我正在尝试使用NER模型spaCy来识别位置,(人)名称和组织.我试图理解如何spaCy识别文本中的实体,但我无法找到答案.从Github和本例中的这个问题来看,似乎spaCy使用文本中存在的许多功能,例如POS标签,前缀,后缀以及文本中的其他字符和基于单词的功能来训练平均感知器.

但是,在代码中没有任何地方出现spaCy使用GLoVe嵌入(尽管句子/文档中的每个单词似乎都有它们,如果存在于GLoVe语料库中).

我的问题是 -

  1. 现在这些是在NER系统中使用的吗?
  2. 如果我将单词向量切换到另一组,我是否应该期望性能以有意义的方式改变?
  3. 在代码中我可以找到如何(如果全部)spaCy使用单词向量?

我试过查看Cython代码,但我无法理解标签系统是否使用了字嵌入.

小智 8

spaCy确实在其NER模型(多层CNN)中使用了词嵌入。spaCy的创建者Matthew Honnibal制作了一个非常不错的视频,介绍了其NER如何在这里工作。所有这三个英语模型都使用在Common Crawl上训练的GloVe向量,但是较小的模型通过将相似的单词映射到相同的向量链接来“修剪”向量的数量。

添加自定义向量是完全可行的。spaCy 文档中对此过程进行了概述,并在Github上提供了一些示例代码。