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

时间:2017-06-12 06:08:38

标签: python nlp named-entity-recognition spacy

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

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

我的问题是 -

  1. 现在这些是否在NER系统中使用?
  2. 如果我要将单词向量切换到另一组,我是否应该期望性能以有意义的方式改变?
  3. 我可以在代码中找到spaCy如何使用单词向量?
  4. 我已经尝试了查看Cython代码,但我无法理解标签系统是否使用了字嵌入。

1 个答案:

答案 0 :(得分:4)

spaCy确实为其NER模型使用了字嵌入,NER模型是一个多层CNN。有一个非常好的视频,Matthew Honnibal,spaCy的创造者,关于它的NER是如何工作的here。所有三种英语模型都使用在共同爬网上训练的GloVe向量,但较小的模型通过将相似的单词映射到同一向量link来“修剪”向量的数量。

添加自定义向量非常可行。概述了spaCy docs中的流程,以及Github上的一些示例代码。