如何分析词与词之间的相关性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何分析词与词之间的相关性?相关的知识,希望对你有一定的参考价值。

不同词语之间的意义相关性,包括同义词,反义词的分析等等。这个可以用词向量的办法,设定一些基准意义向量,把要分析的词语用这些向量表达出来,然后利用向量夹角分析词语意义的相关性(相似性)。两个词之间的依存语义关系。这个我并不了解,只是知道有这样一种办法。常用词语的特定搭配(collocation)。这种相关性可以用语料库分析一个词的临近词,包括间隔一个词的临近词。可以自建语料库,也可以使用在线的语料库。 参考技术A 语义相关性,比如搜索,查询词和文档如果关键字不一样,但两者是多词一义,则模型不理解语义,做语义上的匹配解决不了问题。在推荐中,商品可以由一个向量来刻画,用户也可以由一系列交互过的商品来表达,两者之间做一些语义上的匹配,能推荐出一些有新意的商品,增加推荐多样性。而传统的方法比如CF,CB等,无法学习得到这种用户和商品的相对间接的联系。 参考技术B 不同词语之间的意义相关性,包括同义词,反义词的分析等等。这个可以用词向量的办法,设定一些基准意义向量,把要分析的词语用这些向量表达出来,然后利用向量夹角分析词语意义的相关性(相似性)。两个词之间的依存语义关系,这个我并不了解,只是知道有这样一种办法。 参考技术C 相关词是与宝贝类目,属性,搜索关键词有相关性的词,关键词相关性是指关键词的关键属性与类目属性,宝贝标题有相关性。区别就在于相关词是一个词语,关键词相关性是一种形容的属性,它不是词,是用来形容的,理解的话就是如果相关词与宝贝类目,属性,搜索关键词的相关性高,且搜索量也很大,相关词也可以作为关键词来使用。 参考技术D 不同词语之间的意义相关性,包括同义词,反义词的分析等等。这个可以用词向量的办法,设定一些基准意义向量,把要分析的词语用这些向量表达出来,然后利用向量夹角分析词语意义的相关性(相似性)。

ansj_seg+word2vec的使用

word2vec是谷歌开源的一个语义预测框架。主要是将词映射到一个维度空间上,每个词都有n个不同维度的信息,用vector表示,词与词之间的关系,就用vec之间的cosine值来表示,consine值越大,说明这两个词之间的关系越近。

传统的计算词与词之间相似的算法有: tf-idf,相似余弦等,而word2vec是通过语义分析来计算相似度,跟前两个差别较大,比如: 贸易站 与 特朗普,如果用前两种算法相似度肯定很差,或者完全不同。而用word2vec,他们两者是有很大关系的,非常接近的。

ansj_seg 是java版本的分词工具,效果还行,之所以介绍它是因为,使用word2vec的前提是需要一个分词工具,下面我们来手动操作一下:

从网上找了一个小的java工程,https://github.com/YuyuZha0/word2vec

技术分享图片

再从网上下载一个中文语料库:https://pan.baidu.com/s/1gdJJ1FP#list/path=%2FML%2F%E4%B8%AD%E6%96%87%E8%AF%AD%E6%96%99%E5%BA%93&parentPath=%2FML

再建立这么一个文件夹,把语料库拷进该文件夹
技术分享图片

先执行FitExample 来进行训练
再执行RestoreExample 来做实验,你将得到如下结果
技术分享图片

感觉很神奇,其实它还有其他的API,欢迎去探索。

以上是关于如何分析词与词之间的相关性?的主要内容,如果未能解决你的问题,请参考以下文章

如何度量两个词之间的语义相似度

cbow与skip-gram

详解中文是如何进行分词 - NLP学习(中文篇)

人物关系挖掘方案设计

中文分词学习路线图

ansj_seg+word2vec的使用