Python合同敏感信息识别与脱敏可基于正则+关键词匹配实现:精准定位身份证号、手机号、银行卡号等,按规则掩码处理(如身份证前6后4保留),结合jieba分词匹配姓名公司名,支持txt/docx/pdf多格式读取与结构化输出。

用Python自动识别合同文本中的敏感信息并生成脱敏文件,核心在于:精准定位敏感词(如身份证号、手机号、银行账号、公司名称、签约方姓名等),按规则替换或掩码处理,并保留原文结构输出新文件。不依赖复杂模型,正则+关键词匹配+基础NLP即可落地。
先梳理合同中常见的敏感字段,每类定义清晰的识别方式和脱敏格式:
r'\b\d{15}|\d{17}[\dXx]\b' 匹配,脱敏为前6位+“****”+后4位r'1[3-9]\d{9}' 匹配,脱敏为前3位+“****”+后4位r'\b\d{16,19}\b',脱敏为前6位+“****”+后4位支持txt、docx(需python-docx)、pdf(需PyPDF2或pdfplumber)三种常见格式。推荐从txt起步,稳定易调试:
open(..., encoding='utf-8') 读取Document('xxx.docx').paragraphs 提取段落,拼接为字符串pdfplumber(对表格/换行更友好),避免PyPDF2乱码;提取后做简单清洗:去多余空格、合并软回车关键原则:从长到短匹配、避开URL/代码块、保留原始标点。推荐用 re.sub() 配合回调函数,按优先级顺序处理:
立即学习“Python免费学习笔记(深入)”;
for name in sensitive_names: 循环替换,加边界符 r'(? 防止“北京”匹配到“北京市”里重复脱敏
输出保持原格式可读性,不是简单覆盖,而是生成新文件(如contract_v1_anonymized.txt):
基本上就这些。脚本不复杂但容易忽略上下文保护和格式还原——比如合同里的“附件一:XXX营业执照复印件(加盖公章)”,其中“XXX”要脱敏,“加盖公章”不能动。把规则列清楚、测试用例多跑几份真实合同,就能稳稳上线。
以上就是Python自动识别合同文本中的敏感信息并生成脱敏文件的脚本流程【教程】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号