当前位置: 首页 > news >正文

3 大语言模型预训练数据-3.2 数据处理-3.2.3 隐私消除——使用正则表示方法过滤个人隐私信息数据(包括邮件、电话、地址等)

大模型数据处理中使用正则表示方法过滤个人隐私信息数据(包括邮件、电话、地址等)

      • **一、正则表达式过滤个人信息的原理**
      • **二、常见个人信息的正则表达式模式**
        • 1. **邮箱地址**
        • 2. **电话号码**
        • 3. **地址信息**
        • 4. **身份证号(18位)**
        • 5. **银行卡号(简化)**
      • **三、代码实现示例(Python)**
      • **四、实际应用中的优化点**
      • **五、注意事项**

在大模型数据处理中,使用正则表达式过滤个人信息数据是一种高效且灵活的方法。正则表达式通过定义特定模式来匹配敏感信息,以下从 原理、常见正则模式、实现流程及示例三方面详细说明:

一、正则表达式过滤个人信息的原理

  1. 核心逻辑
    正则表达式通过模式匹配识别文本中符合敏感信息特征的字符串,例如:

    • 邮箱地址的结构特征:用户名@域名
    • 电话号码的数字组合特征:中国手机号以1[3-9]\d{9}开头
    • 地址的地理标识特征:包含省/市/区+街道+门牌号等关键词
  2. 处理流程

    输入文本 → 正则表达式匹配敏感模式 → 替换/删除匹配内容 → 输出脱敏文本
    

二、常见个人信息的正则表达式模式

1. 邮箱地址
  • 通用模式\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b
    • 解释:匹配字母/数字/符号+@+域名+后缀的结构,例如user.name@example.com
  • 示例
    输入文本:联系我:john.doe@company.com
    正则匹配后替换为:联系我:[邮箱已脱敏]
2. 电话号码
  • 中国手机号1[3-9]\d{9}
    (匹配11位数字,以13/14/15/16/17/18/19开头)
  • 固定电话(含区号)0\d{2,3}-\d{7,8}
    (匹配区号-号码,如010-12345678
  • 示例
    输入文本:电话:13812345678 或 021-87654321
    替换后:电话:[手机号已脱敏] 或 [固话已脱敏]
3. 地址信息
  • 简化模式[\u4e00-\u9fa5]{2,}省?[\u4e00-\u9fa5]{2,}市?[\u4e00-\u9fa5]{2,}区?[0-9a-zA-Z\u4e00-\u9fa5]+街?道?路?[0-9]号?
    • 解释:通过中文地名关键词+数字编号匹配地址,例如北京市海淀区中关村大街1号
  • 示例
    输入文本:地址:广东省深圳市南山区科技园南路56号
    替换后:地址:[地址已脱敏]
4. 身份证号(18位)
  • 模式\d{6}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)
    • 解释:匹配6位地址码+8位出生日期+3位顺序码+1位校验码,例如110101199001011234
5. 银行卡号(简化)
  • 模式\d{16,19}
    • 解释:匹配16-19位数字(实际应用中需结合银行前缀优化)。

三、代码实现示例(Python)

以下是使用Python的re模块进行个人信息脱敏的示例:

import redef mask_personal_info(text):# 定义正则表达式模式字典patterns = {# 邮箱'email': r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b',# 中国手机号'phone': r'1[3-9]\d{9}',# 固定电话'landline': r'0\d{2,3}-\d{7,8}',# 简化地址(匹配省市区+街道+号码)'address': r'[\u4e00-\u9fa5]{2,}省?[\u4e00-\u9fa5]{2,}市?[\u4e00-\u9fa5]{2,}区?[0-9a-zA-Z\u4e00-\u9fa5]+街?道?路?[0-9]号?',# 身份证号(简化)'id_card': r'\d{17}(\d|X)'}# 替换敏感信息for pattern_name, pattern in patterns.items():text = re.sub(pattern, f'[{pattern_name}已脱敏]', text)return text# 测试示例
sample_text = """
用户信息:
姓名:张三
邮箱:zhangsan@example.com
电话:13912345678,固定电话:010-12345678
地址:北京市海淀区中关村南大街5号
身份证:110101199001011234
银行卡:6222021100012345678
"""desensitized_text = mask_personal_info(sample_text)
print(desensitized_text)

输出结果

用户信息:
姓名:张三
邮箱:[email已脱敏]
电话:[phone已脱敏],固定电话:[landline已脱敏]
地址:[address已脱敏]
身份证:[id_card已脱敏]
银行卡:6222021100012345678

四、实际应用中的优化点

  1. 模式组合与优先级

    • 复杂场景下可使用|连接多个模式(如(邮箱模式)|(电话模式)),并按敏感程度排序(先匹配身份证,再匹配邮箱)。
  2. 上下文感知

    • 结合关键词过滤,例如仅在地址:电话:等前缀后匹配对应模式,减少误判。
  3. 性能优化

    • 对长文本分块处理,或使用re.compile()预编译正则表达式提升效率。
  4. 多语言支持

    • 处理英文地址时,调整模式为\b[A-Za-z0-9\s,.]+St|Ave|Rd+\b等(匹配StreetAvenue等后缀)。

五、注意事项

  • 误判与漏判:正则表达式无法100%准确识别所有敏感信息(如缩写地址中关村5号),需结合机器学习模型(如命名实体识别)提升精度。
  • 合规性:脱敏规则需符合《个人信息保护法》等法规,例如身份证号需保留前6位和后4位中间脱敏(110101******1234)。
  • 灵活配置:允许用户自定义正则模式,以适配特定场景下的敏感信息格式(如企业内部的工号、订单号)。

通过正则表达式与其他技术结合,可在大模型数据处理中高效实现个人信息的自动化过滤,平衡数据可用性与隐私保护需求。

http://www.lqws.cn/news/520237.html

相关文章:

  • 快速排序算法
  • 使用 Netty 实现 TCP 私有协议(解决粘包/拆包)
  • Python-文件管理
  • 领域驱动设计中的编程风格选择:面向对象与过程式的平衡艺术
  • 数学:向量的点积是什么?怎么计算?
  • 【EI会议征稿】东北大学主办第三届机器视觉、图像处理与影像技术国际会议(MVIPIT 2025)
  • 服务器开放端口如何设置,本地内网开通应用端口让外网访问连接步骤
  • OpenHarmony构建脚本build.sh解析
  • 【MongoDB】MongoDB从零开始详细教程 核心概念与原理 环境搭建 基础操作
  • 使用EasyExcel处理动态表头数据导入
  • AWS WebRTC:通过shell实现多进程启动viewer
  • Object.assign()
  • 获取YARN application 应用列表的几种方法
  • 2025年Java后端最新面试场景题 + 八股文高频面试题
  • Dagster数据管道构建指南:I/O管理与数据库连接实践
  • React Native【实战范例】账号管理(含转换分组列表数据的封装,分组折叠的实现,账号的增删改查,表单校验等)
  • rules写成动态
  • syncthing忘记密码怎么办(Mac版)?
  • 成都芯谷金融中心·文化科技园打造文化科技高地
  • 微服务思想与C++服务化框架
  • 跟着AI学习C#之项目实践Day7
  • sentinel 自定义 dashboard 用户名密码
  • 第⼀个与⼤模型交互的应⽤
  • Swagger 在 Spring Boot 中的详细使用指南
  • thinkphp8之文件上传
  • 用户体验驱动的3D设计:从功能实现到情感共鸣的设计升级
  • 融合聚类与分类的退役锂电智能分选技术:助力新能源汽车产业可持续发展
  • JVM调优实战 Day 6:JVM性能监控工具实战
  • 数据结构 顺序表与链表
  • python的易家宜超市云购物系统