字符串匹配第3方库罗列 - peter-xbs/CommonCodes GitHub Wiki

ChatGPT支持

Q: fuzzywuzzy 介绍下这个Python库

A: Fuzzywuzzy是一个基于Python的字符串匹配库,可以帮助你快速实现模糊字符串匹配。它是基于Levenshtein Distance算法和其他相关算法的实现。

Fuzzywuzzy库提供了一些函数和类,可以计算两个字符串之间的相似度,例如:

fuzz.ratio(string1, string2):返回两个字符串之间的相似度,以0到100的整数表示。

fuzz.partial_ratio(string1, string2):返回两个字符串之间的部分相似度,即其中一个字符串是另一个字符串的子集的相似度。

fuzz.token_sort_ratio(string1, string2):返回两个字符串之间的相似度,忽略它们的顺序。

fuzz.token_set_ratio(string1, string2):返回两个字符串之间的相似度,忽略它们的顺序和重复的单词。

此外,Fuzzywuzzy还提供了其他一些函数和类,例如:

fuzz.WRatio(string1, string2):对两个字符串进行加权匹配,可以处理大小写、空格和标点符号等问题。

fuzz.extract(str, choices, limit):从一个字符串列表中提取与给定字符串相似的字符串。

Fuzzywuzzy库可以用于许多应用程序,例如自动纠错、自动完成功能、自动分类等。

Q: 再推荐几个相似功能的Python库

A: 当然,除了Fuzzywuzzy,还有一些其他的Python库也可以实现字符串匹配和相似度计算。以下是其中几个比较常用的库:

difflib:

这是Python的标准库之一,提供了一些基本的字符串比较和匹配功能。它可以计算两个字符串之间的差异,也可以用于字符串的相似度匹配。

Levenshtein:

这是一个专门用于计算Levenshtein距离的Python库。它提供了几个函数,可以计算两个字符串之间的距离和相似度,以及找到与给定字符串最相似的字符串。

RapidFuzz:

这是一个快速的字符串匹配库,也基于Levenshtein Distance算法实现。与Fuzzywuzzy相比,它的计算速度更快,并且提供了一些额外的功能,例如多线程计算和支持多种距离度量方法。

Jellyfish:

这是另一个字符串匹配和相似度计算库,支持多种距离度量方法,包括Levenshtein Distance、Damerau-Levenshtein Distance和Jaro-Winkler Distance等。它还提供了一些其他的字符串处理功能,例如拼写纠错和姓名比较等。

这些库都有其独特的特点和适用场景,具体使用时需要根据实际情况选择。

我之前使用的一个库

https://github.com/life4/textdistance