Word2Vec用于命名实体识别


25

我正在寻找使用Google的word2vec实现来构建命名实体识别系统。我听说具有通过结构的反向传播的递归神经网络非常适合命名实体识别任务,但是我无法为该类型的模型找到像样的实现或像样的教程。因为我使用的是非典型语料库,所以NLTK和类似工具中的标准NER工具的效果非常差,看起来我必须训练自己的系统。

简而言之,有哪些资源可用于解决此类问题?是否有可用的标准递归神经网络实现?


您是否尝试过在语料库上训练Stanford NER?有一个教程在这里
Emre 2014年

我还没有-应该去看看它的票价如何。
麦迪逊2014年5

不过,我想使用word2vec功能或类似功能,因为我可以访问相对较小的标记数据集,并且需要充分利用我手头的未标记数据。
麦迪逊

Answers:



7

最近有两篇论文使用称为CharWNN的深度学习架构来解决此问题。CharWNN最初用于在英语语料库上的词性(POS)标记中获得最先进的结果(无手工功能)。

同一作者的第二篇论文使用相同(或相似)的体系结构来预测一个单词是否属于10个命名实体类,并且具有明显的最新技术成果。


有趣。感谢您分享。我想知道为什么他们没有在英语语料库上测试这种方法。
MaticDiba


1

以下是有关如何将词向量用于NER的一些想法,该词向量采用了以无监督word2vec为中心的方法。

  1. 给定一组词向量(您经过训练的东西,或诸如GoogleNews-vectors-negative300.bin之类的现成东西),即可在向量空间中发现簇。这些集群基本上是您对各种未命名概念的定义。
  2. 在最少的监督下,您可以映射/转换未命名的聚类以匹配人类知识,从而创建基于已知单词向量和未命名概念的命名概念。例如,一种方法findCluster(['joy', 'surprise', 'disgust', 'trust', 'fear', 'sadness', 'anger', 'anticipation'])可能会返回一个包含数百个单词的列表,这些单词大多与情感相关。如果将此列表命名为“情感”,则将基于矢量空间定义一个命名概念“情感”。
  3. 您也可以进行向量数学运算,以找到两个给定概念之间的中间概念。例如,向量数学可能会告诉您,当给定两个单词“惊喜”和“厌恶”时,在这两个单词之间会发现:沮丧,惊讶,失望,惊讶,迷惑,生气,怀疑,震惊,震惊等。这允许您可以建立概念之间的关系。
  4. 您可以重复上述步骤以建立各种类型的命名概念,例如:工作日,所有情绪,快乐情绪,交通工具等。
  5. 一旦建立了命名概念的层,就可以在已使用命名概念进行了扩充的文本语料库上训练RNN,因此“棕狐跳”也是“ {color} {animal} {action}”等。这样,RNN应该能够以无监督的方式学习一些基本的语法。
  6. 如果您已经从上面建立了足够强大的语法,那么您应该可以将其应用于一些NER任务。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.