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