网优在线: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函数计算文底细似度即可在线比分网。

欢送各人百度搜刮“网优在线”在线比分网,进入我们的官网,或者间接与我们留言互动!

发布于 2023-06-07 10:34:09
分享
海报
26
上一篇:在线比分网:网优在线:SEO数据阐发与运用指南 下一篇:在线比分网:网优在线:独立站若何停止社交媒体营销
目录

    忘记密码?

    图形验证码