网友回复
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%