gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 37 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python 比较文本相似性的方法(difflib,Levenshtein)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

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

1、difflib 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 。

?
1
2
3
4
5
6
7
8
9
10
#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

简单来说,difflib使用时不一定为字符串,但匹配时只有单个元素完全匹配才计入, 。

而Levenshtein则需要输入为字符串,匹配时是整体匹配(也可能跟把所有元素集中成一个字符串有关,具体待继续使用再摸索) 。

以上这篇Python 比较文本相似性的方法(difflib,Levenshtein)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

原文链接:https://blog.csdn.net/xiaodongxiexie/article/details/78221271 。

最后此篇关于Python 比较文本相似性的方法(difflib,Levenshtein)的文章就讲到这里了,如果你想了解更多关于Python 比较文本相似性的方法(difflib,Levenshtein)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com