difflib: Python 比较数据集
difflib
是一个专注于比较数据集(尤其是字符串)的 Python 模块。为了具体了解您可以使用此模块完成的几件事,让我们检查一下它的一些最常见的函数。
SequenceMatcher
SequenceMatcher
是一个比较两个字符串并根据它们的相似性返回数据的函数。通过使用 ratio()
,我们将能够根据比率/百分比来量化这种相似性。
语法:
SequenceMatcher(None, string1, string2)
下面这个简单的例子展示了该函数的作用:
from difflib import SequenceMatcher
phrase1 = "Tandrew loves Trees."
phrase2 = "Tandrew loves to mount Trees."
similarity = SequenceMatcher(None, phrase1, phrase2)
print(similarity.ratio())
# Output: 0.8163265306122449
get_close_matches
接下来是 get_close_matches
,该函数返回与作为参数传入的字符串最接近的匹配项。
语法:
get_close_matches(word, possibilities, result_limit, min_similarity)
下面解释一下这些可能有些混乱的参数:
word
是函数将要查看的目标单词。possibilities
是一个数组,其中包含函数将要查找的匹配项并找到最接近的匹配项。result_limit
是返回结果数量的限制(可选)。min_similarity
是两个单词需要具有的最小相似度才能被函数视为返回值(可选)。
下面是它的一个使用示例:
from difflib import get_close_matches
word = 'Tandrew'
possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew']
print(get_close_matches(word, possibilities))
# Output: ['Andrew']
除此之外还有几个是您可以查看的属于 Difflib
的其他一些方法和类:unified_diff
、Differ
和 diff_bytes