网优在线:Shingle,Simhash算法类似度计算及实现:在线比分网
Shingle和Simhash算法是用于计算文底细似度的两种常用算法,下面临它们的原理和实现停止介绍在线比分网。
一、Shingle算法
Shingle算法是一种基于词组的类似度计算算法在线比分网。它将文天职成若干个词组(n-gram),也就是将文本转成持续的词组序列。那些词组凡是是由相邻的单词构成,此中n代表词组的长度。例如,当n为3时,文本“Hello World”将被转换成三个词组:“Hel”,“ell”,“llo”,“lo ”,”o W”,“ Wo”,“Wor”,“orl”,“rld”。
接下来,将每个词组用哈希函数停止映射,得到一个独一的标识符,然后将那些标识符构成一个向量在线比分网。通过计算两个向量的余弦类似度,即可得到文本的类似度。
二、Simhash算法
Simhash算法是一种基于哈希函数的类似度计算算法在线比分网。它将文本转成一个固定长度的二进造码,能够是32位或64位。类似的文本将有类似的二进造暗示,不类似的文本二进造码则有较大的差别。
Simhash算法的实现办法如下:
1. 将文本转为特征向量:好比,将文本转为词袋模子,划分红固定大小的shingle,并用hash值来暗示每个shingle在线比分网。
2. 对特征向量做加权处置:关于每个特征,统计它在整个数据集中的呈现频次,并通过必然的公式停止归一化,得到权重在线比分网。
3. 根据特征权重将特征向量映射到64位的签名向量:关于每个特征,根据它的权重对其hash值停止加权,然后累加起来,最初对成果做正负向判断,得到二进造码的每一位在线比分网。
4. 按位统计签名向量的哈希值:统计签名向量每一位哈希值为1的个数,然后按照能否大于一半,对签名向量停止正负向判断在线比分网。
5. 通过哈希函数得到最末的Simhash值:因为Simhash算法产生的二进造码可能会存在哈希抵触,为领会决那个问题,能够利用Murmurhash或MD5等哈希函数对签名向量停止二次哈希,得到最末的Simhash值在线比分网。
三、实现
下面是Shingle和Simhash算法的Python实现:
Shingle算法实现:
import hashlib
def shingle(text, n=3):
shingles = []
words = text.split()
for i in range(len(words) - n + 1):
shingle = ' '.join(words[i:i+n])
shingles.append(hashlib.sha256(shingle.encode('utf-8')).hexdigest())
return shingles
def similarity(a, b):
a = set(a)
b = set(b)
return len(a & b) / len(a | b)
Simhash算法实现:
import hashlib
def simhash(text, n=3):
shingles = []
for i in range(len(text) - n + 1):
shingle = text[i:i+n]
shingles.append(hash(shingle))
vector = [0] * 64
for s in shingles:
for i in range(64):
mask = 1 << i
if s & mask:
vector[i] += 1
else:
vector[i] -= 1
simhash = 0
for i in range(64):
if vector[i] >= 0:
simhash |= 1 << i
return simhash
def hamming_distance(a, b):
diff = a ^ b
count = 0
while diff:
count += 1
diff &= diff - 1
return count
def similarity(a, b):
distance = hamming_distance(a, b)
return 1 - distance / 64
在利用时,起首需要将需要比力类似度的文本转换成shingles或Simhash值,然后别离利用响应的similarity函数计算文底细似度即可在线比分网。
欢送各人百度搜刮“网优在线”在线比分网,进入我们的官网,或者间接与我们留言互动!
推荐阅读
-
在线比分网:数读中国互联网|在线游览预订用户规模5.09亿
北京商报讯(记者魏蔚)3月22日,CNNIC(中国互联收集信息中心)发布的第53次《中国互联收集开展情况统计陈述》(以下简称《陈...
-
全球资本网:揭秘1995年创始的国际商业在线霸主!:在线比分网
-
在线比分网:北京胸科病院互联网病院再度晋级!在线复诊功用已上线
-
在线比分网:总有机碳在线阐发仪检定例程【全网保举】
-
阅湾在线-粤港澳大湾区网-广谈大湾网-肇庆美食群-广东特色菜-广东白切鸡:在线比分网
-
商企在线|许艺晴:拯救,企业不做全网营销,你会懊悔的!:在线比分网
-
在线比分网:助力物联网设备“永久在线”——全球首款“弹性”rSIM若何实现?
-
互联网时代的客户收集办事新形态-在线客服:在线比分网
-
阅湾在线-粤港澳大湾区网-广谈大湾网-美食群-惠州美食群-胡须佬鸡煲:在线比分网
-
在线比分网:北京点趣乐考网荣获央广网-“2023年度影响力在线教育品牌”奖