python文档相似性比较代码_Python 比较文本相似性的方法(difflib,Levenshtein)

Python 比较文本相似性的方法(difflib,Levenshtein)

最近工作需要用到序列匹配,检测相似性,不过有点复杂的是输入长度是不固定的,举例为:

input_and_output = [1, 2, '你好', 世界', 12.34, 45.6, -21, '中国', '美丽']

其中,需要从input_and_output 中选取不固定长度的一段作为输入,且顺序不定,然后去与总体进行比较,找出最符合的,开始是对汉字进行数值化编码,不过后来由于出现汉字越来越多,遂放弃该方法,转向别的方式,查找资料发现了两个python包广被推荐,从下面来看各有优缺点,记录之~

1、difflib

import difflib #python 自带库,不需额外安装

In [49]: test1

Out[49]: ['你好', '我是谁']

In [50]: test2

Out[50]: ['你好啊', '我谁']

In [51]: test3

Out[51]: [12, 'nihao']

In [52]: test4

Out[52]: ['你好', 'woshi']

In [53]: difflib.SequenceMatcher(a=test1, b=test2).quick_ratio()

Out[53]: 0.0

In [54]: difflib.SequenceMatcher(a=test1, b=test4).ratio()

Out[54]: 0.5

2、Levenshtein

#pip install python-Levenshtein

import Levenshtein

In [56]: Levenshtein.distance(','.join(test1), ','.join(test2))

Out[56]: 2

In [57]: Levenshtein.distance(','.join(test1), ','.join(test4))

Out[57]: 5

简单来说,diff

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值