NER的无监督功能学习


11

我已经利用CRF算法实现了NER系统,其手工制作的功能给出了很好的结果。问题是我使用了许多不同的功能,包括POS标签和引理。

现在,我想针对不同的语言制作相同的NER。这里的问题是我不能使用POS标签和引理。我开始阅读有关深度学习和无监督特征学习的文章。

我的问题是:

是否可以使用CRF算法进行无监督特征学习的方法?有没有人尝试过并获得良好的结果?是否有任何有关此问题的文章或教程?

我仍然不完全了解这种功能创建方式,因此,我不想花很多时间来解决不起作用的问题。因此,任何信息都将真正有帮助。现在,基于深度学习创建整个NER系统还有些困难。

Answers:


5

是的,完全有可能将无监督学习与CRF模型结合起来。特别是,我建议您探索使用word2vec功能作为CRF输入的可能性。

Word2vec训练a来区分适合给定上下文的单词和随机选择的单词。然后,可以将模型的选定权重解释为给定单词的密集矢量表示。

这些密集的向量具有吸引人的特性,即语义或句法上相似的词具有相似的向量表示形式。基本向量算法甚至揭示了单词之间一些有趣的学习关系。
例如,vector(“巴黎”)-vector(“法国”)+ vector(“意大利”)产生的矢量与vector(“罗马”)非常相似。

从较高的层次上讲,您可以认为word2vec表示形式与LDA或LSA表示形式相似,可以将稀疏输入向量转换为包含单词相似性信息的密集输出向量。

因此,LDA和LSA也是无监督特征学习的有效选项-两者都试图将单词表示为“主题”的组合并输出密集的单词表示。

Google会为英文文本分发在庞大的1000亿个单词的Google新闻数据集中预先训练的word2vec模型,但对于其他语言,则必须训练自己的模型。


嘿,拳头,谢谢你的回答。我还有一个问题。从word2vec算法返回的单词向量具有浮点值,因此大和更大的单词将具有在向量空间中接近的向量,但是向量的值可能完全不同。例如,大= [0.1,0.2,0,3],大= [0.11,0.21,0.31]。CRF算法不是一个问题,因为该算法会将它们视为不相似吗?在CRF中使用此字向量之前,是否需要进行其他任何处理?我希望我的问题足够清楚。
MaticDiba 2014年

4

在2014年的这篇论文GitHub)中,作者比较了在基于CRF的NER系统中结合词嵌入的多种策略,包括密集嵌入,二值化嵌入,聚类嵌入和新颖的原型方法。如vlad所建议,直接使用密集向量是最直接的方法,但在多次评估中效果却最差。

我在特定于域的NER项目中实现了原型构想,并且对我来说效果很好。


3

我只迟到了5个月,但是使用CRFSuite,您实际上可以将这些浮动功能用作数字而不是字符串。为此,您只需要为每个维度创建一个唯一的标签,然后在其后添加一个“:”即可。

例如,单词“ jungle”以5个维度表示:0.1 0.4 0.8 0.2 0.9

然后,CRFSuite会将这个单词+功能作为:

标签f1:0.1 f2:0.4 f3:0.8 f4:0.2 f5:0.9

当然您可以在其中用实际字符串替换``LABEL'',并用制表符分隔所有空格(这是CRFSuite的格式)。

虽然不确定其他软件包。

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.