赞
踩
自然语言处理中,词语的语义关系包括有相似关系和相关关系,语义相似关系例如汽油和柴油之间的关系,语义相关关系例如鼠标和键盘之间的关系。国内博客基本找不到关于这一类关系挖掘的研究,今天抽空写点记录一下。
word embedding是指将词语映射到一个向量空间。在自然语言处理领域这方面的研究由来已久,有人工设计特征的方法(ESA,TSA),也有基于语料库的无监督方法(A Neural Probabilistic Language Model, Yoshua Bengio et al)。人工设计特征的方法过于麻烦,而无监督方法计算复杂程度又过高不够实用,一直到2013年Mikolov等人提出了一个实用型工具word2vec,基于语料库的无监督方法开始流行起来。
但是,现如今的基于语料库的无监督word embedding方法,基本都是基于一个假设,即拥有相似上下文的词语拥有相似的语义,这并不是一个严谨的假设。例如,在word2vec的训练结果中,词语"好"和词语"坏"拥有很比较接近的词向量,但是这两个词语的语义其实并不接近,问题在于好和坏的上下文语境总体上来说比较相似从而导致模型训练出现偏差。事实上,两个词语拥有相似的上下文并不等价于它们拥有相似的语义,至多等价于拥有相似的语法结构。
我们会发现,从语料库的角度来说,语义相关关系意味着两个词一起出现的概率,而这正是符合基于语料库的embedding方法的假设,即拥有相似的上下文。故而基于语料库的embedding方法训练出来的词向量是带有语义相关关系的。
相似关系指两个词的语义接近,这种关系在语料库中没有体现出来,故而可以考虑在训练的时候引入一些语义相似关系,有助于模型去生成带有这一类关系的词向量。
这里,我们考虑设计一个能训练出词语相关关系或相似关系的word embedding模型。根据上面的分析,我们需要一个带有词语相关关系的词典和一个带有语义相似关系的词典,方便我们在训练词向量的时候对模型的更新方向进行引导。
词语相关关系词典可以从FreeAssociation项目中提取。词语语义相似关系词典可以从电子词典MyThes中提取。使用skip gram模型设计项目,分别用相关关系词典和相似关系词典对模型进行引导,最终分别得到带有语义相关关系和相似关系的两套词向量。项目代码放在这里,欢迎大家一起交流学习。
[1] Specializing Word Embeddings for Similarity or Relatedness
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。