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

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Python 银行法律性文档审核的非人工识别异同脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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 不自己试试,还真猜不出递归函数的@R_115_1304@!
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文件效果:

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

文档对比相似度 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 ''

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

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

-- All done!

脚本宝典总结

以上是脚本宝典为你收集整理的Python 银行法律性文档审核的非人工识别异同全部内容,希望文章能够帮你解决Python 银行法律性文档审核的非人工识别异同所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。