精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

海量數據相似度計算之simhash和海明距離

大數據
過 采集系統 我們采集了大量文本數據,但是文本中有很多重復數據影響我們對于結果的分析。分析前我們需要對這些數據去除重復,如何選擇和設計文本的去重算法?常見的有余弦夾角算法、歐式距離、Jaccard相似度、最長公共子串、編輯距離等。

通過 采集系統 我們采集了大量文本數據,但是文本中有很多重復數據影響我們對于結果的分析。分析前我們需要對這些數據去除重復,如何選擇和設計文本的去重算法?常見的有余弦夾角算法、歐式距離、Jaccard相似度、最長公共子串、編輯距離等。這些算法對于待比較的文本數據不多時還比較好用,如果我們的爬蟲每天采集的數據以千萬計算,我們如何對于這些海量千萬級的數據進行高效的合并去重。最簡單的做法是拿著待比較的文本和數據庫中所有的文本比較一遍如果是重復的數據就標示為重復。看起來很簡單,我們來做個測試,就拿最簡單的兩個數據使用Apache提供的 Levenshtein for 循環100w次計算這兩個數據的相似度。代碼結果如下:

  1. String s1 = "你媽媽喊你回家吃飯哦,回家羅回家羅" ;  
  2. String s2 = "你媽媽叫你回家吃飯啦,回家羅回家羅" ;  
  3.  
  4. long t1 = System.currentTimeMillis();  
  5.  
  6. for (int i = 0; i < 1000000; i++) {  
  7.        int dis = StringUtils .getLevenshteinDistance(s1, s2);  
  8. }  
  9.  
  10. long t2 = System.currentTimeMillis();  
  11.  
  12. System. out .println(" 耗費時間: " + (t2 - t1) + "  ms "); 

耗費時間: 4266 ms

大跌眼鏡,居然計算耗費4秒。假設我們一天需要比較100w次,光是比較100w次的數據是否重復就需要4s,就算4s一個文檔,單線程一分鐘才處理15個文檔,一個小時才900個,一天也才21600個文檔,這個數字和一天100w相差甚遠,需要多少機器和資源才能解決。

為此我們需要一種應對于海量數據場景的去重方案,經過研究發現有種叫 local sensitive hash 局部敏感哈希 的東西,據說這玩意可以把文檔降維到hash數字,數字兩兩計算運算量要小很多。查找很多文檔后看到google對于網頁去重使用的是simhash,他們每天需要處理的文檔在億級別,大大超過了我們現在文檔的水平。既然老大哥也有類似的應用,我們也趕緊嘗試下。simhash是由 Charikar 在2002年提出來的,參考 《Similarity estimation techniques from rounding algorithms》 。 介紹下這個算法主要原理,為了便于理解盡量不使用數學公式,分為這幾步:

  • 1、分詞,把需要判斷文本分詞形成這個文章的特征單詞。最后形成去掉噪音詞的單詞序列并為每個詞加上權重,我們假設權重分為5個級別(1~5)。比如:“ 美國“51區”雇員稱內部有9架飛碟,曾看見灰色外星人 ” ==> 分詞后為 “ 美國(4) 51區(5) 雇員(3) 稱(1) 內部(2) 有(1) 9架(3) 飛碟(5) 曾(1) 看見(3) 灰色(4) 外星人(5)”,括號里是代表單詞在整個句子里重要程度,數字越大越重要。

  • 2、hash,通過hash算法把每個詞變成hash值,比如“美國”通過hash算法計算為 100101,“51區”通過hash算法計算為 101011。這樣我們的字符串就變成了一串串數字,還記得文章開頭說過的嗎,要把文章變為數字計算才能提高相似度計算性能,現在是降維過程進行時。

  • 3、加權,通過 2步驟的hash生成結果,需要按照單詞的權重形成加權數字串,比如“美國”的hash值為“100101”,通過加權計算為“4 -4 -4 4 -4 4”;“51區”的hash值為“101011”,通過加權計算為 “ 5 -5 5 -5 5 5”。

  • 4、合并,把上面各個單詞算出來的序列值累加,變成只有一個序列串。比如 “美國”的 “4 -4 -4 4 -4 4”,“51區”的 “ 5 -5 5 -5 5 5”, 把每一位進行累加, “4+5 -4+-5 -4+5 4+-5 -4+5 4+5” ==》 “9 -9 1 -1 1 9”。這里作為示例只算了兩個單詞的,真實計算需要把所有單詞的序列串累加。

  • 5、降維,把4步算出來的 “9 -9 1 -1 1 9” 變成 0 1 串,形成我們最終的simhash簽名。 如果每一位大于0 記為 1,小于0 記為 0。最后算出結果為:“1 0 1 0 1 1”。

整個過程圖為:

simhash計算過程圖

大家可能會有疑問,經過這么多步驟搞這么麻煩,不就是為了得到個 0 1 字符串嗎?我直接把這個文本作為字符串輸入,用hash函數生成 0 1 值更簡單。其實不是這樣的,傳統hash函數解決的是生成唯一值,比如 md5、hashmap等。md5是用于生成唯一簽名串,只要稍微多加一個字符md5的兩個數字看起來相差甚遠;hashmap也是用于鍵值對查找,便于快速插入和查找的數據結構。不過我們主要解決的是文本相似度計算,要比較的是兩個文章是否相識,當然我們降維生成了hashcode也是用于這個目的。看到這里估計大家就明白了,我們使用的simhash就算把文章中的字符串變成 01 串也還是可以用于計算相似度的,而傳統的hashcode卻不行。我們可以來做個測試,兩個相差只有一個字符的文本串,“你媽媽喊你回家吃飯哦,回家羅回家羅” 和 “你媽媽叫你回家吃飯啦,回家羅回家羅”。

通過simhash計算結果為:

1000010010101101111111100000101011010001001111100001001011001011

1000010010101101011111100000101011010001001111100001101010001011

通過 hashcode計算為:

1111111111111111111111111111111110001000001100110100111011011110

1010010001111111110010110011101

大家可以看得出來,相似的文本只有部分 01 串變化了,而普通的hashcode卻不能做到,這個就是局部敏感哈希的魅力。目前Broder提出的shingling算法和Charikar的 simhash算法應該算是業界公認比較好的算法。在simhash的發明人Charikar的論文中并沒有給出具體的simhash算法和證明,“量子圖靈”得出的證明simhash是由隨機超平面hash算法演變而來的

現在通過這樣的轉換,我們把庫里的文本都轉換為simhash 代碼,并轉換為long類型存儲,空間大大減少。現在我們雖然解決了空間,但是如何計算兩個simhash的相似度呢?難道是比較兩個simhash的 01有多少個不同嗎?對的,其實也就是這樣,我們通過海明距離(Hamming distance)就可以計算出兩個simhash到底相似不相似。兩個simhash對應二進制(01串)取值不同的數量稱為這兩個simhash的海明距離。舉例如下: 1010100110 從第一位開始依次有第一位、第四、第五位不同,則海明距離為3。對于二進制字符串的a和b,海明距離為等于在a XOR b運算結果中1的個數(普遍算法)。

為了高效比較,我們預先加載了庫里存在文本并轉換為simhash code 存儲在內存空間。來一條文本先轉換為 simhash code,然后和內存里的simhash code 進行比較,測試100w次計算在100ms。速度大大提升。

未完待續:

1、目前速度提升了但是數據是不斷增量的,如果未來數據發展到一個小時100w,按現在一次100ms,一個線程處理一秒鐘 10次,一分鐘 60 * 10 次,一個小時 60*10 *60 次 = 36000次,一天 60*10*60*24 = 864000次。 我們目標是一天100w次,通過增加兩個線程就可以完成。但是如果要一個小時100w次呢?則需要增加30個線程和相應的硬件資源保證速度能夠達到,這樣成本也上去了。能否有更好的辦法,提高我們比較的效率?

2、通過大量測試,simhash用于比較大文本,比如500字以上效果都還蠻好,距離小于3的基本都是相似,誤判率也比較低。但是如果我們處理的是微博信息,最多也就140個字,使用simhash的效果并不那么理想。看如下圖,在距離為3時是一個比較折中的點,在距離為10時效果已經很差了,不過我們測試短文本很多看起來相似的距離確實為10。如果使用距離為3,短文本大量重復信息不會被過濾,如果使用距離為10,長文本的錯誤率也非常高,如何解決?

simhash_hammingdistance

參考:

Detecting near-duplicates for web crawling.

Similarity estimation techniques from rounding algorithms.

http://en.wikipedia.org/wiki/Locality_sensitive_hashing

http://en.wikipedia.org/wiki/Hamming_distance

simHash 簡介以及 java 實現

simhash原理推導

原文鏈接:http://www.lanceyan.com/tech/arch/simhash_hamming_distance_similarity.html

責任編輯:林師授 來源: 觀瀾而索源
相關推薦

2013-08-28 13:44:42

數據算法

2015-10-15 10:27:12

文本相似度判定

2011-12-22 16:34:09

2011年度IT博客大IT博客大賽博客

2016-08-26 11:12:03

2024-02-29 09:57:08

Simhash內容應用

2024-01-25 08:59:52

大數據vivo架構

2016-06-12 11:33:18

數據中心

2011-04-28 09:36:22

海量數據存儲

2012-06-26 10:03:06

海量數據處理

2025-01-14 13:51:44

2011-01-21 10:14:14

十大IT博客IT博客大賽IT博客

2011-03-08 09:58:21

海量數據

2011-08-18 09:43:45

Bloom Filte海量數據

2011-08-19 13:28:25

海量數據索引優化

2012-08-28 09:15:33

Hadoop海量數據挖掘算法

2011-12-20 15:04:19

2011年度IT博客大IT博客大賽博客

2011-12-07 09:21:41

云計算海量數據

2011-06-01 10:41:09

海量數據庫IO難題

2014-11-17 15:16:34

2019-12-11 10:50:06

JS圖片前端
點贊
收藏

51CTO技術棧公眾號

亚洲熟妇av一区二区三区漫画| 91久久久久久国产精品| av在线播放网址| 91九色国产在线播放| 不卡一区在线观看| 日韩美女福利视频| 国产一区二区三区精品在线| 国产一区二区主播在线| 国产精品国产自产拍高清av| 91久久精品一区二区别| 久久午夜鲁丝片午夜精品| 免费成人三级| 欧美在线影院一区二区| 精品日韩在线播放| 五十路在线观看| 丝袜诱惑制服诱惑色一区在线观看| 伊是香蕉大人久久| 中国特级黄色片| 免费福利视频一区二区三区| 国产精品电影一区二区三区| 国产精品免费一区二区三区观看| 99精品人妻国产毛片| 久久综合av| 亚洲国产精久久久久久久| 国产三级三级三级看三级| 岛国中文字幕在线| 91亚洲精华国产精华精华液| 国产乱人伦真实精品视频| 免费一级a毛片夜夜看| 欧美男gay| 精品国产髙清在线看国产毛片| 99视频精品免费| 日本高清在线观看| 国产欧美日韩麻豆91| 国产91免费视频| 中文字幕一二区| 在线视频日韩| 欧美人成在线视频| 国产一级淫片久久久片a级| 黑人久久a级毛片免费观看| 欧美午夜电影在线播放| 成 年 人 黄 色 大 片大 全| 中文字幕在线免费| 久久综合视频网| 99在线首页视频| 在线观看中文字幕网站| 久久在线精品| 午夜精品一区二区三区在线 | 不卡在线视频中文字幕| 国产在线一区二区三区| 中文字幕一区二区人妻视频| 一区精品久久| 久久国产精品亚洲| 2014亚洲天堂| 成人毛片在线| 国产亚洲激情视频在线| www.色多多| 国产丝袜一区| 日韩午夜在线观看| 日韩视频在线观看一区二区三区| 成人亚洲综合| 欧美伊人久久久久久久久影院| 免费观看精品视频| 亚洲一级少妇| 欧美午夜影院在线视频| www.99热这里只有精品| 电影k8一区二区三区久久| 一区二区日韩av| 亚洲 欧美 综合 另类 中字| 日本三级在线观看网站| 一区二区成人在线| 免费视频爱爱太爽了| 美洲精品一卡2卡三卡4卡四卡| 一区二区三区不卡在线观看| 精品久久久久久无码中文野结衣| 午夜在线激情影院| 亚洲一区二区五区| 国产视频九色蝌蚪| 少妇一区视频| 欧美性生活大片视频| 九色porny自拍| 国产精品欧美一区二区三区不卡| 日韩欧美国产一区二区在线播放 | 狠狠色2019综合网| 亚洲a中文字幕| 99草在线视频| 国产成人免费视频一区| 高清日韩一区| 日本1级在线| 欧美国产一区二区在线观看| 亚洲自拍三区| 看女生喷水的网站在线观看| 亚洲久本草在线中文字幕| 日本阿v视频在线观看| 麻豆视频在线观看免费网站黄| 欧美午夜视频在线观看| 最新天堂中文在线| 我要色综合中文字幕| 日韩h在线观看| av手机在线播放| 888久久久| 97视频在线观看网址| 日韩精品一区不卡| 国产伦精品一区二区三区在线观看| 国产精品白丝jk白祙| 高清日韩av电影| 亚洲九九爱视频| 每日在线更新av| 久久亚洲资源中文字| 日韩一级视频免费观看在线| 女~淫辱の触手3d动漫| 天天久久综合| 91av在线播放视频| 国产女无套免费视频| 91视频免费观看| a级网站在线观看| 在线毛片观看| 日韩欧美一区二区三区在线| 在线国产视频一区| 亚洲黑丝一区二区| 成人免费视频网| 蜜桃成人在线视频| 亚洲一区二区美女| 蜜臀一区二区三区精品免费视频| 国产亚洲精品美女久久| 日韩一区二区福利| 亚洲va在线观看| 国产成人精品综合在线观看| 日韩视频专区| 永久免费毛片在线播放| 日韩一区二区精品| 91香蕉国产视频| 一区二区三区四区五区在线| 亚洲自拍高清视频网站| 爱久久·www| 欧美日韩午夜视频在线观看| 中文字幕在线视频一区二区| 禁断一区二区三区在线| 91av网站在线播放| 四虎免费在线观看| 亚洲一区二区在线观看视频| 99视频在线观看视频| 欧美熟乱15p| 欧美最顶级的aⅴ艳星| 黄色av免费观看| 亚洲激情六月丁香| 天天综合成人网| 欧美xxav| 国产一区私人高清影院| 成人在线免费视频| 在线精品视频免费观看| 午夜理伦三级做爰电影| 国产亚洲一区在线| 久久久福利视频| 日本在线高清| 日韩精品亚洲元码| 日本三级小视频| 99久久亚洲一区二区三区青草| 日本精品福利视频| 日韩免费精品| 久久99亚洲精品| 黄色av网址在线| 亚洲午夜精品久久久久久久久| gogo亚洲国模私拍人体| 欧美一区二区三区另类| 5g影院天天爽成人免费下载| а√天堂资源地址在线下载| 91精品欧美综合在线观看最新| 最新日韩免费视频| 精品一区二区在线视频| 黑人巨大国产9丨视频| 网站一区二区| 久久久久久久亚洲精品| 天天摸天天干天天操| 精品久久久在线观看| 国产精品无码一区二区三区免费 | 欧美大片在线观看一区| 久久黄色免费网站| 成人h版在线观看| 国产青青在线视频| 九九热线有精品视频99| 国产色视频一区| 成人片在线看| 精品国产区一区| 国产精品999在线观看| 国产亚洲欧美在线| 91网址在线观看精品| 狠狠爱综合网| 裸模一区二区三区免费| 国产资源一区| 欧美俄罗斯性视频| 青青草观看免费视频在线| 欧美三级日韩三级| 久久久久久久久久一区二区三区| 99久久精品国产导航| 国产一级特黄a大片免费| 亚洲精品国产首次亮相| 国产一区二区不卡视频在线观看| 不卡一二三区| 日韩中文在线中文网在线观看| www.黄色av| 红桃av永久久久| 精品一区二区三区蜜桃在线| 国产精品一区免费视频| 欧美日韩一道本| 欧美限制电影| 成人在线视频电影| 韩国成人在线| 欧美激情手机在线视频 | 又大又硬又爽免费视频| 国产欧美一区二区精品久久久| 亚洲qvod图片区电影| 手机在线观看av网站| 日韩视频精品在线| 无码国产精品一区二区色情男同 | 欧美一级大片| 久久影院免费观看| 欧美美女搞黄| 欧美成人精品1314www| 波多野结衣爱爱| 亚洲高清三级视频| 婷婷社区五月天| 久久久久久电影| 国产国语老龄妇女a片| 蜜臀久久99精品久久久久宅男| 18禁网站免费无遮挡无码中文 | 亚洲国产天堂网精品网站| 一级α片免费看刺激高潮视频| 欧美午夜影院在线视频| 国产在线视频99| 亚洲日本va在线观看| 欧美波霸videosex极品| 91亚洲精品一区二区乱码| gogo亚洲国模私拍人体| 精品一区二区在线视频| 波多野结衣天堂| 一区二区三区成人精品| 欧美狂野激情性xxxx在线观| 久久久久久久久久久久久久| 亚洲国产午夜伦理片大全在线观看网站| 你懂的在线观看一区二区| 91视频网页| 国产美女精品视频免费播放软件| 国产精品直播网红| 成人在线中文| 国产99视频精品免视看7| 久热在线观看视频| 久久久久免费视频| 精品日韩av| 久久99精品久久久久久噜噜| 哥也色在线视频| 久久久国产精品x99av | 综合欧美精品| 国产在线观看精品| 91精品网站在线观看| 国产精品一区二区三区免费视频| 亚洲精品在线影院| 国产成人综合久久| 91tv亚洲精品香蕉国产一区| 日本一区二区在线免费播放| 成人片免费看| 国产91色在线|免| 毛片无码国产| 国产精品电影观看| 国产精品无码久久久久| 国产精品亚洲一区二区三区| 国产激情欧美| 成人免费视频网址| 一区二区三区四区高清视频| 成人影片在线播放| 欧美精品国产白浆久久久久| 久久大香伊蕉在人线观看热2| 天堂av一区二区三区在线播放| 麻豆精品传媒视频| 欧美精品一区二区三区精品| 亚洲精品成人自拍| 91成人免费| 成人免费观看在线| 先锋亚洲精品| 欧美成人黄色网址| 国产一区二区三区蝌蚪| 欧美人与性动交α欧美精品 | 亚洲天堂成人av| 久久婷婷国产综合国色天香 | 伊人久久久久久久久久久久| 欧美视频一区在线| www.午夜激情| 亚洲精品久久久久久久久久久久 | 日韩影片中文字幕| 国产美女高潮久久白浆| 日韩精品一区二区三区免费视频| 国产精品国产一区二区| 蜜桃国内精品久久久久软件9| 亚洲激情一区二区三区| 女主播福利一区| 亚洲天堂第一区| 国产精品视频久久一区| 午夜免费看毛片| 成人一二三区视频| 无码国产69精品久久久久同性| 亚洲欧洲av一区二区三区久久| 五月天婷婷丁香| 在线免费观看成人短视频| 国产精品一区二区三区在线免费观看| 欧美zozo另类异族| 国产九色在线| 欧美精品久久久久a| 激情亚洲影院在线观看| 国产精品.com| 色男人天堂综合再现| www.日本在线播放| 麻豆精品新av中文字幕| 亚洲自拍偷拍精品| 国产精品第五页| 中文字幕亚洲精品在线| 欧美一区二区三区四区五区| 九色视频在线观看免费播放| 欧美大奶子在线| 日本综合久久| 国产一区二区中文字幕免费看| 欧美日韩伦理| 久久免费视频3| 国产一区二区三区在线观看免费 | 丰满女人性猛交| 免费日韩av| 欧美午夜精品一区二区| 中文一区二区完整视频在线观看| 四虎永久在线精品| 欧美顶级少妇做爰| 国产精品免费播放| 性色av一区二区三区| 国产一区二区三区| 亚洲不卡1区| 亚洲精品字幕| 91亚洲一线产区二线产区| 亚洲图片激情小说| 免费在线观看黄网站| 欧美xfplay| 欧美三级电影一区二区三区| 日韩免费观看av| 欧美日韩麻豆| www.射射射| 东方aⅴ免费观看久久av| 成年人二级毛片| 欧美美女直播网站| 素人av在线| 国产日韩欧美日韩大片| 奇米狠狠一区二区三区| 日韩精品视频久久| 94色蜜桃网一区二区三区| 国产在线拍揄自揄拍| 精品三级在线观看| 欧美女同一区| 成人欧美视频在线| 亚洲午夜黄色| 在线观看免费视频黄| 性做久久久久久免费观看欧美| 亚洲精品97久久中文字幕| 精品自拍视频在线观看| 亚洲精品18| 亚洲国产精品成人天堂| www.av亚洲| 日韩在线视频免费播放| 日韩精品在线观看一区| 亚洲永久av| 日韩av一级大片| 三级影片在线观看欧美日韩一区二区 | 99蜜桃臀久久久欧美精品网站| 成人性生交大片免费看视频在线 | 二区三区在线视频| 欧美极品少妇xxxxⅹ喷水 | 蜜桃视频在线观看成人| 免费视频久久| 精品人妻一区二区三区蜜桃视频| 91福利区一区二区三区| 自拍视频在线| 92福利视频午夜1000合集在线观看| 亚洲情侣在线| 成人做爰69片免费| 精品电影在线观看| 国产一级在线| 成人两性免费视频| 1000部精品久久久久久久久| 一级性生活大片| 欧美视频在线一区| jizz性欧美10| 久久av一区二区| 日韩av电影免费观看高清完整版| 欧美激情精品久久久久久免费| 日韩精品一区二区三区视频在线观看| 爱情岛论坛亚洲品质自拍视频网站| 欧美精品免费观看二区| 久久精品国产一区二区| 黄色一级视频在线观看| 亚洲欧美日韩精品久久亚洲区 | 免费黄色片视频| xxxx性欧美| 欧美绝顶高潮抽搐喷水合集| 啊啊啊国产视频| 亚洲精品久久久蜜桃|