+
95
-

python如何检测两篇文章的相似度?

python如何检测两篇文章的相似度?

网友回复

+
15
-

1、nshash,他的原理就是对一篇文章的最长n句话分别计算hash值,作为该文章的n个指纹,两篇文章只要有一个指纹相同就认为这两篇文章相同,从而达到文章去重的目的。

github地址:https://github.com/chenghao00/nshash

示例代码:

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import sys
sys.path.append("/data/wwwroot/default/lib/python")
import nshash
nsh = nshash.NSHash(name='test', hashfunc='farmhash', hashdb='memory')
similar_id = nsh.get_similar("BFW是互联网技术培训学习开发交流一站式平台,秉承追求极致的用户开发体验,从技术入门培训及求职,到项目在线开发,再到项目管理11、代码托管、模板交易、代码部署33,bug测试33,体验从学习开发再到部署一站式服务。")
similar_id2 = nsh.get_similar("BFW是互联网技术培训学习开发交流一站式平台,秉承追求极致的用户开发体验,从技术入门培训及求职,到项目在线开发,再到项目管理、代码托管22、模板交易33、代码部署,bug测试,体验从学习开发再到部署一站式服务。")
if similar_id2==similar_id:
    print("两者相似重复")
elif similar_id2!=similar_id:
    print("两者不相似重复")		

2、Simhash

simhash核心思想就是,对文本进行分词,并统计词频(相当于权重),然后,进行对每个词进行hash操作,并将结果按二进制位乘以权重;然后将所有结果,按位相加,统计出文本的“指纹”。 此处以一个例子进行介绍更为形象: 假设,需要进行simhash的文本为:“我很想要打游戏,但是女朋友会生气!”;

首先,就是对文本进行分词操作,使用结巴分词的全分词模式,结果为:['我', '很', '想要', '打游戏', '游戏', '但是', '女朋友', '朋友', '会生...

点击查看剩余70%

我知道答案,我要回答