python余弦定理求角_python实现的文本相似度算法(余弦定理)

只对汉字进行相似度分析,以单个字为向量,然后每个字在章节中出现的次数,便是以此字向量的值。现在我们假设:

章节1中出现的字为:Z1c1,Z1c2,Z1c3,Z1c4……Z1cn;它们在章节中的个数为:Z1n1,Z1n2,Z1n3……Z1nm;

章节2中出现的字为:Z2c1,Z2c2,Z2c3,Z2c4……Z2cn;它们在章节中的个数为:Z2n1,Z2n2,Z2n3……Z2nm;

其中,Z1c1和Z2c1表示两个文本中同一个字,Z1n1和Z2n1是它们分别对应的个数,

最后我们的相似度可以这么计算:

代码如下:

#_*_encoding:utf-8_*_

import math

import time

#---------------------------------------------------------------

# 文本相似度计算

# 值0-1, 越靠近1越相似

#---------------------------------------------------------------

def Similarity(s1, s2):

'''

相似度计算,输入必须为unicode编码,且不为空

仅计算汉字

'''

#汉字U编码 4E00-9FA5

tmp = {}

for i in s1:

a = ord(i)

if 0x4DFF

try:

tmp[a][0] = tmp[a][0] + 1

except:

tmp[a] = [1, 0]

for i in s2:

a = ord(i)

if 0x4DFF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值