Simhash亿万级别查重算法在实际使用中的问题及改进

1. Simhash不同于正常的hash值生成,它不仅能区别样本,也能通过海明距离得到两个样本的相似度,通常的simhash通过以下几个步骤生成。

  • 文本分词
  • 词向量加权
  • 所有词向量加权之后求和
  • 降维生成hash值

我们可以使用官方的simhash包来生成

from simhash import Simhash

content_list = [content_word_list]#分词列表
hex_str = Simhash(content_list)

这里的hex_str是十六进制,以字符串形式输出。

 

2. 缺陷及改进方法

在实际使用中,因为Simhash是局部敏感去重算法,没办法针对一个网页是另外一个网页的简短说明去重。例如针对某个特殊场景,招投标数据的去重,很多招投标html网站内容实际上是一个公告,但是由于前一个网页比较详细,后一个网页缺少详细说明,实际的业务要求依旧希望我们能将其认为重复,那么我们可以巧妙利用Simhash的词向量加权,在相对固定的业务场景对我们的关键信息进行加权,这样就可以很明显的提高Simhash的实际应用效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章