亚洲国产第一站精品蜜芽_亚洲AV无码精品色午夜果冻不卡_国产香蕉九九久久精品免费_国产精品亚洲专区无码不卡

更多精彩內容,歡迎關注:

視頻號
視頻號

抖音
抖音

快手
快手

微博
微博

java simhash

文檔

java simhash

java simhash是java程序中的一種算法。Simhash和一般的hash算法不同,它具有兩個關鍵的特點:1、一個文檔的指紋是所有屬性的某種hash;2、相似文檔的hash應該是相似的。
推薦度:
導讀java simhash是java程序中的一種算法。Simhash和一般的hash算法不同,它具有兩個關鍵的特點:1、一個文檔的指紋是所有屬性的某種hash;2、相似文檔的hash應該是相似的。

java simhash是什么?讓我們一起來了解一下吧!

java simhash是java程序中的一種算法。Simhash算法產生與2002年,設計非常美妙,它輸入是一個向量,得出的結果是一個F位的簽名值。

Simhash和一般的hash算法不同,它具有兩個關鍵的特點:

1.一個文檔的指紋是所有屬性的某種hash;

2.相似文檔的hash應該是相似的;

?simhash 算法如下:1,將一個 f 維的向量 V 初始化為 0 ; f 位的二進制數 S 初始化為 0 ;2,對每一個特征:用傳統的 hash 算法對該特征產生一個 f 位的簽名 b 。對 i=1 到 f :如果b 的第 i 位為 1 ,則 V 的第 i 個元素加上該特征的權重;否則,V 的第 i 個元素減去該特征的權重。?3,如果 V 的第 i 個元素大于 0 ,則 S 的第 i 位為 1 ,否則為 0 ;4,輸出 S 作為簽名。

simhash 算法代碼:

package?com.xxxx.checkandbigdataquery.utils;
?
import?it.unimi.dsi.fastutil.longs.LongOpenHashSet;
import?it.unimi.dsi.fastutil.longs.LongSet;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.IOException;
import?java.nio.CharBuffer;
import?java.util.Set;
?
?
/**
?*?a?basic?SimHash?implementation
?*
?*
?*/
public?class?SimHash?{
??public?static?final?int??HASH_SIZE??????????=?64;
??public?static?final?long?HASH_RANGE?????????=?2?^?HASH_SIZE;
??public?static?MurmurHash?hasher?????????????=?new?MurmurHash();
?
??/**
???*?use?short?cuts?to?obtains?a?speed?optimized?simhash?calculation
???*
???*?@param?s
???*??????????input?string
???*?@return?64?bit?simhash?of?input?string
???*/
?
??private?static?final?int?FIXED_CGRAM_LENGTH?=?4;
?
??public?static?long?computeOptimizedSimHashForString(String?s)?{
????return?computeOptimizedSimHashForString(CharBuffer.wrap(s));
??}
?
??public?static?long?computeOptimizedSimHashForString(CharBuffer?s)?{
?
????LongSet?shingles?=?new?LongOpenHashSet(Math.min(s.length(),?100000));
?
????int?length?=?s.length();
?
????long?timeStart?=?System.currentTimeMillis();
????for?(int?i?=?0;?i??56);
??????longAsBytes[1]?=?(byte)?(shingle?>>?48);
??????longAsBytes[2]?=?(byte)?(shingle?>>?40);
??????longAsBytes[3]?=?(byte)?(shingle?>>?32);
??????longAsBytes[4]?=?(byte)?(shingle?>>?24);
??????longAsBytes[5]?=?(byte)?(shingle?>>?16);
??????longAsBytes[6]?=?(byte)?(shingle?>>?8);
??????longAsBytes[7]?=?(byte)?(shingle);
?
??????long?longHash?=?FPGenerator.std64.fp(longAsBytes,?0,?8);
??????for?(int?i?=?0;?i?>?i)?&?1L)?==?1L;
????????v[i]?+=?(bitSet)???1?:?-1;
??????}
????}
?
????long?simhash?=?0;
????for?(int?i?=?0;?i??0)?{
????????simhash?|=?(1L?<>?i)?&?1L)?==?1L;
????????v[i]?+=?(bitSet)???1?:?-1;
??????}
????}
????long?simhash?=?0;
????for?(int?i?=?0;?i??0)?{
????????simhash?|=?(1L?<>>?-1);
??}
?
??public?static?void?main(String[]?args)?{
????try?{
??????//?File?file1?=?new?File("/Users/rana/academia.edu_01.html");
??????//?File?file2?=?new?File("/Users/rana/academia.edu_02.html");
?
??????File?file1?=?new?File(args[0]);
??????File?file2?=?new?File(args[1]);
?
??????byte?data1[]?=?new?byte[(int)?file1.length()];
??????byte?data2[]?=?new?byte[(int)?file2.length()];
??????FileInputStream?stream1?=?new?FileInputStream(file1);
??????FileInputStream?stream2?=?new?FileInputStream(file2);
??????stream1.read(data1);
??????stream2.read(data2);
??????String?string1?=?new?String(data1);
??????String?string2?=?new?String(data2);
?
??????long?timeStart?=?System.currentTimeMillis();
??????long?simhash1?=?computeSimHashFromString(Shingle.shingles(string1));
??????long?timeEnd?=?System.currentTimeMillis();
??????System.out.println("Old?Calc?for?Document?A?Took:"
??????????+?(timeEnd?-?timeStart));
??????timeStart?=?System.currentTimeMillis();
??????long?simhash2?=?computeSimHashFromString(Shingle.shingles(string2));
??????timeEnd?=?System.currentTimeMillis();
??????System.out.println("Old?Calc?for?Document?B?Took:"
??????????+?(timeEnd?-?timeStart));
??????timeStart?=?System.currentTimeMillis();
??????long?simhash3?=?computeOptimizedSimHashForString(string1);
??????timeEnd?=?System.currentTimeMillis();
??????System.out.println("New?Calc?for?Document?A?Took:"
??????????+?(timeEnd?-?timeStart));
??????timeStart?=?System.currentTimeMillis();
??????long?simhash4?=?computeOptimizedSimHashForString(string2);
??????timeEnd?=?System.currentTimeMillis();
??????System.out.println("New?Calc?for?Document?B?Took:"
??????????+?(timeEnd?-?timeStart));
?
??????int?hammingDistance?=?hammingDistance(simhash1,?simhash2);
??????int?hammingDistance2?=?hammingDistance(simhash3,?simhash4);
?
??????System.out.println("hammingdistance?Doc?(A)?to?Doc(B)?OldWay:"
??????????+?hammingDistance);
??????System.out.println("hammingdistance?Doc?(A)?to?Doc(B)?NewWay:"
??????????+?hammingDistance2);
????}?catch?(IOException?e)?{
??????e.printStackTrace();
????}
??}
}

以上就是小編今天的分享了,希望可以幫助到大家。

文檔

java simhash

java simhash是java程序中的一種算法。Simhash和一般的hash算法不同,它具有兩個關鍵的特點:1、一個文檔的指紋是所有屬性的某種hash;2、相似文檔的hash應該是相似的。
推薦度:
為你推薦
資訊專欄
熱門視頻
相關推薦
java simpledateformat java sizeof java sm3加密 文章千古事得失寸心知是誰的名句 誠信的名言名句 關于讀書的名言名句 生日的經典名句 感恩老師的名言名句 關于時間的名言名句 活著的經典名句 java snappy 杜甫的名句 java snapshot 孟浩然的名句 關于誠信的名言名句 杜甫的名言名句 杜甫的名句有哪些 杜甫的千古名句 范仲淹的名句 范仲淹的十大經典名句 java shuffle java sha256加密 java portal java pojo java plugin java sftp java plug-in java settimeout java platform java setlayout java serialversionuid java serializable接口 java serializable java sequence java separator java semaphore java selenium java selector java script java sandbox
Top 亚洲国产第一站精品蜜芽_亚洲AV无码精品色午夜果冻不卡_国产香蕉九九久久精品免费_国产精品亚洲专区无码不卡
<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 亚洲国产精品ⅴa在线观看 | 久久婷婷国产综合国色天香| 亚洲国产99精品国自产| 国产精品国产三级国产普通话蜜臀| 久久激情视频| 亚洲欧美日韩一区二区在线 | 欧美午夜无遮挡| 欧美精品二区| 老巨人导航500精品| 久久精品国产综合| 午夜宅男久久久| 亚洲欧美福利一区二区| 在线亚洲电影| 一区二区三区视频在线播放| 亚洲片国产一区一级在线观看| 影院欧美亚洲| 1000部国产精品成人观看| 国内精品视频在线播放| 国产亚洲欧洲一区高清在线观看| 国产精品草草| 国产精品亚洲视频| 国产精品日韩高清| 国产日本精品| 国产中文一区二区三区| 伊人狠狠色j香婷婷综合| 狠狠色综合网| 91久久精品国产| 中文av字幕一区| 亚洲男女自偷自拍| 久久大综合网| 男女av一区三区二区色多| 欧美成人午夜| 欧美片在线观看| 国产精品美女久久久久aⅴ国产馆| 国产精品毛片一区二区三区 | 亚洲午夜影视影院在线观看| 久久se精品一区二区| 久久一本综合频道| 欧美激情综合网| 国产精品久久久久久久久搜平片| 国产精品日韩欧美一区二区| 国产有码在线一区二区视频| 影视先锋久久| 99这里有精品| 久久国产精品毛片| 欧美二区视频| 国产欧美日韩激情| 亚洲国产欧洲综合997久久| 日韩天堂在线观看| 欧美一区二区啪啪| 欧美国产日韩在线| 国产精品一级久久久| 加勒比av一区二区| 亚洲一区二区三区三| 久久精品一区蜜桃臀影院| 欧美区一区二区三区| 国产精品一卡二| 亚洲免费av电影| 欧美一级在线播放| 欧美日韩1区2区3区| 国产一区视频在线看| 一区二区三区高清不卡| 欧美专区在线播放| 欧美日韩一区二区三区在线| 一区二区三区在线视频免费观看| av成人免费观看| 狂野欧美一区| 国内外成人免费激情在线视频网站 | 欧美人与性动交a欧美精品| 国产偷自视频区视频一区二区| 亚洲日本欧美| 久久亚洲二区| 国产手机视频精品| 亚洲午夜电影| 欧美日产一区二区三区在线观看| 国产在线精品成人一区二区三区 | 中文精品视频| 欧美片第1页综合| 伊人色综合久久天天| 午夜日韩视频| 国产精品免费一区豆花| 中文网丁香综合网| 欧美日韩国产成人在线| 91久久精品国产91久久性色tv| 久久久福利视频| 国产一区二区按摩在线观看| 亚洲女人小视频在线观看| 欧美日韩亚洲视频| 日韩视频在线观看| 欧美精品成人| 亚洲最快最全在线视频| 欧美日韩视频在线观看一区二区三区 | 国产精品久久波多野结衣| 夜夜嗨av一区二区三区四季av| 欧美大片在线影院| 亚洲精品久久久久| 欧美乱大交xxxxx| 99亚洲伊人久久精品影院红桃| 欧美福利电影网| 亚洲伦理在线免费看| 欧美日本韩国一区| 宅男精品视频| 国产精品一级| 久久婷婷国产麻豆91天堂| 亚洲国产一成人久久精品| 欧美大片在线看| 一本一本久久a久久精品牛牛影视| 欧美人妖另类| 亚洲欧美一区二区原创| 国产日韩欧美高清| 久久亚洲私人国产精品va| 亚洲国产专区| 欧美特黄一区| 久久超碰97人人做人人爱| 伊人久久综合| 欧美日韩xxxxx| 午夜欧美大尺度福利影院在线看| 国产视频在线一区二区| 欧美高清不卡| 性一交一乱一区二区洋洋av| 在线观看成人一级片| 欧美日韩美女| 久久久久久一区| 国产精品99久久久久久有的能看| 国产农村妇女精品一区二区| 免费成年人欧美视频| 亚洲一级二级在线| 亚洲高清不卡一区| 国产精品久久久久久久久久妞妞| 久久人人97超碰精品888| 夜夜夜精品看看| 影音先锋日韩精品| 国产精品影视天天线| 欧美精品1区2区| 久久久免费av| 亚洲欧美日韩在线不卡| 91久久极品少妇xxxxⅹ软件| 国产精品一区二区a| 欧美激情成人在线| 久久视频一区| 欧美在线二区| 性高湖久久久久久久久| 日韩亚洲欧美成人| 亚洲电影在线播放| 国内精品嫩模av私拍在线观看| 国产精品美女久久久久久2018 | 亚洲影院在线| 日韩一区二区免费看| 禁久久精品乱码| 国产一区二区三区在线观看免费| 欧美日韩一区二区三区在线观看免| 久久中文字幕导航| 久久精品国产一区二区电影 | 欧美自拍偷拍午夜视频| 亚洲影院色在线观看免费| 亚洲最新在线| 妖精视频成人观看www| 亚洲国产综合91精品麻豆| 亚洲第一在线综合网站| 精品99视频| 亚洲高清在线观看| 在线成人中文字幕| 亚洲激情在线视频| 91久久线看在观草草青青| 亚洲高清免费| 亚洲精品乱码视频| 日韩亚洲欧美一区| 一本高清dvd不卡在线观看| 亚洲蜜桃精久久久久久久| 日韩午夜激情av| 一本大道久久精品懂色aⅴ| 一区二区三区导航| 亚洲一区尤物| 欧美影院成人| 老司机精品视频网站| 欧美成人乱码一区二区三区| 欧美亚洲免费高清在线观看| 午夜精品视频一区| 久久久欧美精品| 欧美国产亚洲精品久久久8v| 欧美人与性动交cc0o| 国产精品久久综合| 国产综合网站| 日韩午夜黄色| 亚洲欧美在线磁力| 久久九九电影| 欧美精品在线一区二区| 欧美理论电影网| 国产日韩成人精品| 亚洲国产精品毛片| 亚洲欧美国产精品专区久久| 久久成人18免费观看| 欧美成人免费在线观看| 国产精品大片免费观看| 国产午夜精品在线观看| 亚洲人成网站色ww在线| 午夜精品短视频| 欧美激情乱人伦| 国产亚洲午夜| 99在线|亚洲一区二区|