python自然语言处理-学习笔记(三)之文本相似度计算

'''
文本相似度计算方法
'''
#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
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值