difflib: Python 比较数据集

2023-09-13 08:25:49 浏览数 (1)

difflib 是一个专注于比较数据集(尤其是字符串)的 Python 模块。为了具体了解您可以使用此模块完成的几件事,让我们检查一下它的一些最常见的函数。

SequenceMatcher

SequenceMatcher 是一个比较两个字符串并根据它们的相似性返回数据的函数。通过使用 ratio(),我们将能够根据比率/百分比量化这种相似性

语法:

代码语言:javascript复制
SequenceMatcher(None, string1, string2)

下面这个简单的例子展示了该函数的作用:

代码语言:javascript复制
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,该函数返回与作为参数传入的字符串最接近的匹配项。 语法:

代码语言:javascript复制
get_close_matches(word, possibilities, result_limit, min_similarity)

下面解释一下这些可能有些混乱的参数:

  • word 是函数将要查看的目标单词。
  • possibilities 是一个数组,其中包含函数将要查找的匹配项并找到最接近的匹配项。
  • result_limit 是返回结果数量的限制(可选)。
  • min_similarity 是两个单词需要具有的最小相似度才能被函数视为返回值(可选)。

下面是它的一个使用示例:

代码语言:javascript复制
from difflib import get_close_matches

word = 'Tandrew'
possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew']

print(get_close_matches(word, possibilities))
# Output: ['Andrew']

除此之外还有几个是您可以查看的属于 Difflib 的其他一些方法和类:unified_diffDiffer和 diff_bytes

0 人点赞