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

21

我正在尝试使用 spaCy 训练一个命名实体识别(NER)模型,以识别位置、人名和机构。我想了解 spaCy 如何识别文本中的实体,但一直没有找到答案。从 Github 上的 这个问题这个示例 来看,似乎 spaCy 使用文本中存在的许多特征,如词性标注、前缀、后缀和其他字符和基于单词的特征来训练平均感知器。

然而,在代码中似乎没有出现 spaCy 使用 GLoVe 嵌入的情况(尽管句子/文档中的每个单词都有它们,如果在 GLoVe 语料库中存在的话)。

我的问题是 -

  1. 现在是否在 NER 系统中使用了这些?
  2. 如果我将单词向量切换到不同的集合,是否应该期望性能有意义地改变?
  3. 在代码的哪个位置可以找到关于 spaCy 如何使用单词向量的信息(如果有)?

我尝试查看 Cython 代码,但是没有能够理解标记系统是否使用了单词嵌入。


1
你有发现什么吗?我也想知道同样的信息。 - macarthy
很遗憾,我没有成功并最终放弃了搜索。我改用MITIE - https://github.com/mit-nlp/MITIE/。 - Navaneethan Santhanam
在这里查看有关spaCy NER内部的答案:https://dev59.com/u7noa4cB1Zd3GeqPQnFs#60394246。 - Omri374
1个回答

21
spaCy使用词嵌入来进行其NER模型的多层CNN。Matthew Honnibal是spaCy的创始人,他制作了一段相当不错的视频,介绍了spaCy的NER工作原理这里。所有三个英文模型都使用在Common Crawl上训练的GloVe向量,但较小的模型通过将相似的单词映射到同一个向量来“修剪”向量数量链接
添加自定义向量非常可行。在spaCy 文档中有一个过程概述,以及Github上的一些示例代码。

四年会员,从未完成巡回赛;-) - ZF007
更多信息(源自YouTube视频)可以在此处找到:https://dev59.com/u7noa4cB1Zd3GeqPQnFs#60394246 - Omri374

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接