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的實際應用效果。

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