亚洲国产第一站精品蜜芽_亚洲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>
  • 亚洲国产欧美一区二区三区同亚洲| 91久久在线| 久久经典综合| 亚洲精品在线电影| 国产综合色精品一区二区三区| 欧美日韩第一区| 久久久另类综合| 亚洲欧美影音先锋| 一区二区三区www| 亚洲东热激情| 黄色国产精品| 国产真实精品久久二三区| 国产精品久久久久影院亚瑟| 女人香蕉久久**毛片精品| 久久狠狠久久综合桃花| 亚洲欧美日韩国产成人| 一区二区三区成人| 99综合精品| 妖精成人www高清在线观看| 亚洲电影自拍| 亚洲国产精品热久久| 1000部国产精品成人观看| 欧美在线高清视频| 亚洲欧美另类在线观看| 亚洲一区综合| 香蕉久久夜色精品| 久久av一区二区三区漫画| 欧美一区二区精品| 久久狠狠久久综合桃花| 久久夜色精品国产| 免费看成人av| 欧美日韩精品伦理作品在线免费观看 | 激情综合色丁香一区二区| 国产一区二区三区四区老人| 国产亚洲欧美日韩日本| 影音先锋亚洲视频| 亚洲欧洲精品一区二区三区不卡 | 鲁鲁狠狠狠7777一区二区| 麻豆freexxxx性91精品| 欧美国产免费| 欧美日韩在线大尺度| 国产精品视频一二三| 国产在线精品一区二区夜色| 黄色一区三区| 99国产精品久久久久老师| 亚洲一区影音先锋| 久久久久国产精品午夜一区| 欧美成人一区二区三区在线观看| 欧美激情国产日韩精品一区18| 欧美日韩在线视频一区| 国产亚洲精品aa| 亚洲激情在线| 欧美一级片久久久久久久| 久久夜色精品国产欧美乱| 欧美日韩免费看| 国产一级一区二区| 日韩一二在线观看| 欧美影院成年免费版| 欧美大片一区二区三区| 国产精品一区免费视频| 亚洲国产欧美久久| 性做久久久久久久久| 欧美成人午夜剧场免费观看| 国产乱码精品一区二区三区不卡| 亚洲高清在线观看| 欧美一区二区观看视频| 欧美久久综合| 影音先锋久久资源网| 亚洲一区二区三区精品视频| 麻豆九一精品爱看视频在线观看免费| 欧美性感一类影片在线播放| 在线观看福利一区| 欧美专区中文字幕| 国产精品成人久久久久| 亚洲人成人99网站| 久久三级视频| 国产一区二区毛片| 亚洲欧美亚洲| 国产精品久久久久秋霞鲁丝 | 亚洲国产高清视频| 欧美在线视频一区二区三区| 欧美日韩一区二区三区免费看| 在线看国产日韩| 久久久久久综合网天天| 欧美综合国产精品久久丁香| 国产精品高清网站| av成人免费在线| 欧美日本亚洲韩国国产| 亚洲精品影视在线观看| 欧美福利视频| 亚洲人体1000| 欧美激情按摩| 亚洲国产欧美久久| 免费久久99精品国产| 亚洲东热激情| 欧美黄免费看| 91久久久国产精品| 欧美日韩第一页| 91久久午夜| 欧美金8天国| 亚洲天堂网在线观看| 国产精品卡一卡二| 午夜精品在线视频| 国产亚洲精品7777| 美女网站在线免费欧美精品| 在线精品视频一区二区| 欧美高清在线观看| 一本色道**综合亚洲精品蜜桃冫 | 亚洲第一级黄色片| 欧美激情综合| 中文高清一区| 国产亚洲精品福利| 久热精品在线视频| 日韩午夜精品| 国产欧美日韩视频| 老司机午夜精品| 99热这里只有精品8| 国产精品久久久久一区| 久久精品国产第一区二区三区最新章节 | 久久国产精品第一页| 一区二区亚洲精品| 欧美成人自拍视频| 亚洲欧美另类中文字幕| 黄色成人在线观看| 欧美日产一区二区三区在线观看| 亚洲午夜激情在线| 激情六月婷婷久久| 欧美日韩免费观看一区二区三区| 亚洲欧美国产精品专区久久| 伊人婷婷欧美激情| 国产精品国产三级国产专播品爱网 | 伊人男人综合视频网| 欧美性开放视频| 久久免费高清视频| 亚洲一区3d动漫同人无遮挡| 韩国三级在线一区| 欧美视频在线观看 亚洲欧| 久久久久久久久久久一区| 一区二区国产精品| 亚洲国产成人高清精品| 国产乱理伦片在线观看夜一区| 欧美成人xxx| 久久精品国产亚洲一区二区| 一区二区欧美在线| 亚洲国产精品免费| 国内精品视频久久| 国产精品久久久久aaaa| 亚洲精品美女| 一区二区三区在线观看国产| 国产精品推荐精品| 欧美视频官网| 欧美日韩国产黄| 欧美大片在线观看一区二区| 久久久一本精品99久久精品66| 亚洲永久免费观看| 中文亚洲免费| 夜夜嗨av一区二区三区中文字幕| 在线精品国产成人综合| 国产一区二三区| 国产偷国产偷亚洲高清97cao| 国产精品国产三级欧美二区| 欧美日韩高清不卡| 欧美精品系列| 欧美精品导航| 欧美日韩美女一区二区| 欧美激情一区在线观看| 欧美啪啪一区| 欧美日韩免费在线观看| 欧美片网站免费| 欧美三级免费| 国产精品国产精品| 国产精品丝袜白浆摸在线| 国产精品美女| 国产午夜精品久久久久久久| 国产欧美日韩亚洲| 黄色成人在线免费| 亚洲国产精品va| 亚洲免费观看高清完整版在线观看熊| 亚洲人成欧美中文字幕| 99亚洲一区二区| 亚洲一区二区av电影| 欧美一区国产一区| 老司机精品久久| 欧美三级第一页| 国产精品永久免费| 一区二区三区在线观看视频| 亚洲国产欧美精品| 亚洲自拍三区| 久久精品日韩欧美| 欧美激情在线观看| 国产精品黄视频| 精品av久久久久电影| 亚洲欧洲精品一区二区三区 | 亚洲人妖在线| 亚洲一区日韩在线| 久久久一本精品99久久精品66| 欧美精品粉嫩高潮一区二区| 国产精品播放| 在线精品观看| 亚洲女性裸体视频|