天天看点

python中文相似度_基于gensim模块的中文句子相似度计算工具

[转自:http://rzcoding.blog.163.com/blog/static/2222810172013101895642665/在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此

概述

中文句子相似度的计算有很多模型,我们使用 TFIDF , LSI 与 LDA 模型

这3中模型更加适用于文章相似度的计算

对于句子来说,长度太短,正确率相对不高

算法及代码

具体这几种模型的原理介绍可以参考别人的博客

gensim包提供了这几个模型,因此我们直接拿来用就好

我将这个模型进行了简单的封装,包括增加了中文分词分句,并提供清晰简洁的API

实验

实验数据源

从《枪炮、病菌与钢铁》一书中选出了10组,每组25个句子,共250个句子

先将这些句子用有道翻译翻译成英文,再分别用百度翻译与谷歌翻译再翻译成中文

其中将谷歌翻译版本作为训练集,原文与百度翻译版做测试集,分别对三种模型进行测试

衡量指标

分别从正确组数、正确率(其实两者一样,求别吐槽!!)、正确组平均得分、正确组最低得分

错误组数、错误率、错误组平均得分、错误组最高得分几个方面来衡量

[通过,IKAnalyzer中文分词,并计算两个句子的相似度,项目演练]

实验结果

python中文相似度_基于gensim模块的中文句子相似度计算工具
python中文相似度_基于gensim模块的中文句子相似度计算工具
python中文相似度_基于gensim模块的中文句子相似度计算工具
python中文相似度_基于gensim模块的中文句子相似度计算工具
python中文相似度_基于gensim模块的中文句子相似度计算工具
python中文相似度_基于gensim模块的中文句子相似度计算工具

实验结果分析

可以看到LSI模型最好,LDA模型效果最差,分析原因可能是LDA模型原本就是分析文章的,对于句子级别的数据太小,所以效果不好

[在我们日常的开发中,有时候不可避免的需要判断两个中文句子的相似度,如多语翻译项目的句子库录入需要判断当前输入的句子是否在库中已有相似的 ...]