python 文本相似度

import difflib
def stri_similar(s1,s2):
return difflib.SequenceMatcher(None,s1,s2).quick_ratio()
data1 = '你好啊'
data2 = '你好'
# for i in range(len(data1)):
# s1 = data1[i]
# s2 = data2[i]
# print(stri_similar(s1,s2) )
# print(stri_similar(data1,data2) )

#相似比对比
#顺序对比法:两个列表按顺序对比 缺点:计算量小 ; 优点:相似度对比准确度低
#遍历对比法:一个列表遍历另一个列表的全部,一段对比每一段。 缺点:计算量大 ; 优点:相似度对比更有准确度
d = ['长短搭配,', '尽量减少接头,', '以节约钢材。']
text = ['搭配,', '尽少接头,', '以节约钢材。']

def contrast(text,d):
try:
count = 0
for i in range(len(text)): #遍历段落
count1 = 0
if len(text[i]) > len(d[i]):
c = text[i]
t = d[i]
else :
c = d[i]
t = text[i]

for p in c: #遍历段落字符
if p in t:
count1 += 1
count += count1/len(c)
# print('{:.2f} {:.2%}'.format(count,count/len(text)))
return count/len(text)
except:
print('报错:列表长度不一样')
# contrast(text,d)

def contrast2(list1,list2):
count = 0
for i in list1:
count1 = 0
for t in list2:
count1 += contrast([t],[i])
count += count1
print('总量:{:.2f} 相似度:{:.2%}'.format(count,count/len(list1)))
list1 = ['长短搭配,', '尽量减少接头,', '以节约钢材。']
list2 = ['长短搭配,','尽量减少接头,']
contrast2(list1,list2)
# contrast(list1,list2)
posted @   记录——去繁就简  阅读(993)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示