'''
文本相似度计算方法
'''
#1,编辑距离计算
'''
是指两个字符串之间,由一个转成另一个所需的最少操作次数,如果它们就
距离越大,说明它们越不同,预科的编辑操作包括将一个字符替换成另一个字符,插入一个字符
删除一个字符
'''
import distance
print(distance.levenshtein('setting','string')) #2
#第一步在s和t之间插入一个v字符e
#第二步把r替换成t 所以结果是2
'''
这样的话就可以设置阈值来实现文本相似的选择
'''
def edit_distance(s1,s2):
return distance.levenshtein(s1,s2)
strings = [
'你在干什么',
'你在干啥子',
'你在做什么',
'你好啊',
'我喜欢吃香蕉'
]
target = '你在干啥'
results = list(filter(lambda x:edit_distance(x, target)<=2, strings))
print(results)
#['你在干什么', '你在干啥子']
#下面几种方法,方法的结果有差异
#2,杰卡德系数计算
'''
用于比较有效样本集之间的相似性与差异性,系数越大相似度越高
计算方式很简单,就是两个样本的交集除以并集得到的数值,当两个样本
当两个样本完全相同时结果为1,完全不同时结果为0
'''
#(1)
s1 = '你在干嘛呢'
s2 = '你在干什么呢'
def jac
python自然语言处理-学习笔记(三)之文本相似度计算
最新推荐文章于 2024-05-10 05:15:00 发布