Python 银行法律性文档审核的非人工识别异同

简介: Python 银行法律性文档审核的非人工识别异同

在银行日常工作中经常会碰到非标准格式的贷款合同、非标保函等等法律性文档,这些文档需要提交法务部门审核后才能使用。对比两个文档异同的这种小工作,如果人工来做是比较耗时耗力的,但使用点小代码就能省不少力,还不会出错。反正不管什么单位,要对比文档就交给python来做:

 

difflib 模块

>>> import difflib
>>> [_ for _ in dir(difflib) if _[0]<'Z' or _[0]>'a']
['Differ', 'HtmlDiff', 'IS_CHARACTER_JUNK', 'IS_LINE_JUNK', 
'Match', 'SequenceMatcher', 'context_diff', 'diff_bytes', 
'get_close_matches', 'ndiff', 'restore', 'unified_diff']
>>> 



docx 模块

>>> import docx
>>> [_ for _ in dir(docx) if _[0]<'Z' or _[0]>'a']
['Document', 'ImagePart', 'RT', 'blkcntnr', 'compat', 'dml',
 'document', 'enum', 'exceptions', 'image', 'opc', 'oxml',
 'package', 'parts', 'section', 'settings', 'shape',
 'shared', 'styles', 'text']
>>> 

部分函数的使用简介如下:

 



文本对比 difflib.Differ

>>> text1 = '''Python 斐波那契数列递归的改进,算第1000万项只要4秒钟!
https://blog.csdn.net/boysoft2002/article/details/120257133
Python 不自己试试,还真猜不出递归函数的时间复杂度!
https://blog.csdn.net/boysoft2002/article/details/120242318
'''
>>> text2 = '''PYTHON 斐波那契数列递归的改进,算第1000万项只要4秒钟!
https://blog.CSDN.net/boysoft2002/article/details/120257133
Python 真猜不出递归函数的时间复杂度!
https://blog.csdn.net/boysoft2002/article/details/120242318///
'''
>>> a = text1.splitlines(keepends=True)
>>> b = text2.splitlines(keepends=True)
>>> c = difflib.Differ()
>>> print(''.join(list(c.compare(a,b))))
- Python 斐波那契数列递归的改进,算第1000万项只要4秒钟!
?  ^^^^^
+ PYTHON 斐波那契数列递归的改进,算第1000万项只要4秒钟!
?  ^^^^^
- https://blog.csdn.net/boysoft2002/article/details/120257133
?              ^^^^
+ https://blog.CSDN.net/boysoft2002/article/details/120257133
?              ^^^^
- Python 不自己试试,还真猜不出递归函数的时间复杂度!
?        -------
+ Python 真猜不出递归函数的时间复杂度!
- https://blog.csdn.net/boysoft2002/article/details/120242318
+ https://blog.csdn.net/boysoft2002/article/details/120242318///
?                                                            +++
>>> 


符号含义说明

“-” 包含在第一个序列行中,但不包含在第二个序列行中

“+” 包含在第二个序列行中,但不包含在第一个序列行中

" " 两个序列行一致

“?” 标志两个序列行存在增量差异

“^” 标志出两个序列行存在的差异字符




超文本对比报告 difflib.HtmlDiff

>>> text1 = '''Python 斐波那契数列递归的改进,算第1000万项只要4秒钟!
https://blog.csdn.net/boysoft2002/article/details/120257133
Python 不自己试试,还真猜不出递归函数的时间复杂度!
https://blog.csdn.net/boysoft2002/article/details/120242318
'''
>>> text2 = '''PYTHON 斐波那契数列递归的改进,算第1000万项只要4秒钟!
https://blog.CSDN.net/boysoft2002/article/details/120257133
Python 真猜不出递归函数的时间复杂度!
https://blog.csdn.net/boysoft2002/article/details/120242318///
'''
>>> a = text1.splitlines(keepends=True)
>>> b = text2.splitlines(keepends=True)
>>> d = difflib.HtmlDiff()
>>> html = d.make_file(a,b)
>>> with open('difReport.html','w',encoding='utf-8') as f: f.write(html)
3223
>>> import os; os.startfile('difReport.html')
>>> 

打开的html文件效果:

20210915160539601.png



文档对比相似度 difflib.SequenceMatcher

>>> a = '''Python 斐波那契数列递归的改进,算第1000万项只要4秒钟!
https://blog.csdn.net/boysoft2002/article/details/120257133
Python 不自己试试,还真猜不出递归函数的时间复杂度!
https://blog.csdn.net/boysoft2002/article/details/120242318
'''
>>> b = '''PYTHON 斐波那契数列递归的改进,算第1000万项只要4秒钟!
https://blog.CSDN.net/boysoft2002/article/details/120257133
Python 真猜不出递归函数的时间复杂度!
https://blog.csdn.net/boysoft2002/article/details/120242318///
'''
>>> import difflib
>>> difflib.SequenceMatcher(None,a,b).ratio()*100
92.3076923076923
>>> 




Word文档转文本 docx.Document

def doc2txt(docxFile):
    x,doc='',docx.Document(docxFile)
    try:
        for i in doc.paragraphs:x+=i.text
        return x.replace('\t','').replace(' ','')
    except:
        return ''

综合以上知识,就能做做小应用可以给日常的工作提高不少效率。运行效果,代码略:

20210915163935635.png

-- All done!

目录
相关文章
|
5月前
|
XML 数据格式 Python
从手动编辑到代码生成:Python 助你高效创建 Word 文档
本文介绍如何用Python实现Word文档自动化生成,结合python-docx、openpyxl和matplotlib库,高效完成报告撰写、数据插入与图表生成,大幅提升办公效率,降低格式错误,实现数据驱动的文档管理。
851 2
|
7月前
|
安全 JavaScript 开发者
Python 自动化办公神器|一键转换所有文档为 PDF
本文介绍一个自动化批量将 Word、Excel、PPT、TXT、HTML 及图片转换为 PDF 的 Python 脚本。支持多格式识别、错误处理与日志记录,适用于文档归档、报告整理等场景,大幅提升办公效率。仅限 Windows 平台,需安装 Office 及相关依赖。
384 0
|
6月前
|
机器学习/深度学习 算法 PyTorch
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
【Pytorch框架搭建神经网络】基于DQN算法、优先级采样的DQN算法、DQN + 人工势场的避障控制研究(Python代码实现)
183 1
|
6月前
|
机器学习/深度学习 算法 PyTorch
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
【DQN实现避障控制】使用Pytorch框架搭建神经网络,基于DQN算法、优先级采样的DQN算法、DQN + 人工势场实现避障控制研究(Matlab、Python实现)
286 0
|
8月前
|
Python
Python 办公实战:用 python-docx 自动生成 Word 文档
本文详解如何使用 python-docx 库实现 Word 文档自动化生成,涵盖环境搭建、文档创建、格式设置、表格与图片处理、模板填充、批量生成及性能优化等实战技巧,助你高效完成办公场景中的文档自动化任务。
2026 1
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
386 1
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
251 1
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
740 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
296 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
JSON 测试技术 API
Python开发解析Swagger文档小工具
文章介绍了如何使用Python开发一个解析Swagger文档的小工具,该工具可以生成符合httprunner测试框架的json/yaml测试用例,同时还能输出Excel文件,以方便测试人员根据不同需求使用。文章提供了详细的开发步骤、环境配置和使用示例,并鼓励读者为该开源项目贡献代码和建议。
708 1
Python开发解析Swagger文档小工具

推荐镜像

更多