simhash算法庫:simhash

jopen 9年前發布 | 21K 次閱讀 算法 simHash

專門針對中文文檔的simhash算法庫

簡介

此項目用來對中文文檔計算出對應的 simhash 值。 simhash 是谷歌用來進行文本去重的算法,現在廣泛應用在文本處理中。

詳見SimhashBlog

特性

  • 使用 CppJieba 作為分詞器和關鍵詞抽取器

  • 使用 jenkins 作為 hash 函數

  • hpp 風格,所有源碼都是 .hpp 文件里面,方便使用。 沒有鏈接,就沒有傷害。

依賴

  • g++ (version >= 4.1 recommended), or clang++ .

用法

mkdir build cd build
cmake ..
make

演示

./bin/simhash.demo

結果如下:

文本:"我是藍翔技工拖拉機學院手扶拖拉機專業的。不用多久,我就會升職加薪,當上總經理,出任CEO,走上人生巔峰。"
關鍵詞序列是: ["藍翔:11.7392", "CEO:11.7392", "升職:10.8562", "加薪:10.6426", "手扶拖拉機:10.0089"]
simhash值是: 17831459094038722629
100010110110和110001110011 simhash值的相等判斷如下:
海明距離閾值默認設置為3,則isEqual結果為:0
海明距離閾值默認設置為5,則isEqual結果為:1

詳情請看 src/main.cpp

客服

i@yanyiwu.com


項目主頁:http://www.baiduhome.net/lib/view/home/1418465128136

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!