一、Difflib简介
Difflib 是 Python 标准库中的一个模块,用于比较文本的差异。它可以生成文本之间的差异报告。这个库可以用来比较字符串、序列等,还提供了一些实用的工具来显示差异。
在涉及到两个字符串进行差异字比较、信息合并成完整句、相同字提取等任务时,使用Difflib是一个不错的选择。
本文结尾处存放所有代码,方便取用。
二、Difflib使用教程
1.从一个例子出发
从一个例子出发去看这个封装好的函数是一个很好的起点,通过看其对样例的操作结果就可以知道基本的使用逻辑了。
其中text_total理解为完整信息的句子(对应理想中我们想获取的结果),text_a 和 text_b 是完整句中的部分信息(对应现实中残缺的信息)。我们想通过Difflib函数提取 text_a 和 text_b 中公共部分(视为可信度很高的信息),以某一个残缺为基础,补足为完整信息。
# 文本样例
text_total = list('从零基础开始学习机器学习和深度学习')
text_a = list('从零开始学机器学习度学习')
text_b = list('零基础习机器学习和深度学习')
print(text_a, text_b, text_total)
下图展示了这三句话对应字的对齐关系,可以更好的看到示例数据结构。其中红框代表公共可信部分,蓝框和黄框分别代表各自独有部分。
2.判断相似度
首先需要一个判断,这可以看 text_a 和 text_b 中是否有需要的有用的信息,也可以做一个基本判断——text_a 和 text_b是否存在公共部分,当两个序列完全不同时得到结果 0 ,完全相同1。