正则表达式在 NLP 文本清洗中有哪些常见用途?

📅 2026/7/23 3:27:16
正则表达式在 NLP 文本清洗中有哪些常见用途?
正则表达式在 NLP 文本清洗中的常见用途1. 去除 HTML 标签网页抓取的文本常包含标签需要提取纯文本importre textp classcontentHello bworld/b/pcleanre.sub(r[^],,text)# Hello world2. 去除 URLtextVisit https://www.example.com/path?q1 for detailscleanre.sub(rhttps?://[^\s],,text)# Visit for details3. 去除邮箱地址textContact us at supportexample.com todaycleanre.sub(r[\w.-][\w-]\.[\w.-],,text)# Contact us at today4. 去除特殊字符与标点# 仅保留中英文、数字和基本空格textHello! 你好~ #123 #$%cleanre.sub(r[^\u4e00-\u9fa5a-zA-Z0-9\s],,text)# Hello 你好 123 5. 去除或替换数字# 替换为占位符text订单号20240101金额3500元cleanre.sub(r\d,NUM,text)# 订单号NUM金额NUM元# 直接删除cleanre.sub(r\d,,text)# 订单号金额元6. 去除多余空白text hello world \n\n foo cleanre.sub(r\s, ,text).strip()# hello world foo7. 去除表情符号text太棒了 谢谢cleanre.sub(r[\U0001F600-\U0001F64F\U0001F300-\U0001F5FF\U0001F680-\U0001F6FF\U0001F1E0-\U0001F1FF],,text)# 太棒了 谢谢8. 提取特定模式# 提取日期text会议定于2024-01-15或2024/02/20举行datesre.findall(r\d{4}[-/]\d{2}[-/]\d{2},text)# [2024-01-15, 2024/02/20]# 提取手机号text联系电话13812345678备用13987654321phonesre.findall(r1[3-9]\d{9},text)# [13812345678, 13987654321]# 提取中文字符textHello世界abc你好123chinesere.findall(r[\u4e00-\u9fa5],text)# [世界, 你好]9. 缩写展开textI dont know. Its fine. Well see.cleanre.sub(rdont,do not,text)cleanre.sub(rits,it is,clean)cleanre.sub(rwell,we will,clean)# I do not know. it is fine. we will see.10. 社交媒体文本清洗textRT user: Check this out! #NLP #AI http://t.co/abc123 # 去除转发标记cleanre.sub(r^RT\s,,text)# 去除 提及cleanre.sub(r\w,,clean)# 去除话题标签符号保留词cleanre.sub(r#,,clean)# 去除短链接cleanre.sub(rhttp://t\.co/\w,,clean)# Check this out! NLP AI 11. 全半角统一# 全角空格 → 半角texttext.replace(\u3000, )# 全角数字字母 → 半角deffull_to_half(text):returnre.sub(r[\uFF01-\uFF5E],lambdam:chr(ord(m.group())-0xFEE0),text)12. 句子分割text这是第一句。这是第二句还有第三句最后一句。sentencesre.split(r[。.!?],text)# [这是第一句, 这是第二句, 还有第三句, 最后一句, ]常用正则速查表用途正则模式说明中文字符[\u4e00-\u9fa5]基本汉字范围英文字母[a-zA-Z]大小写字母数字\d或[0-9]0-9空白字符\s空格、制表、换行非空白\S任意非空白字符单词字符\w字母、数字、下划线URLhttps?://[^\s]http/https 链接邮箱[\w.-][\w-]\.[\w.-]标准邮箱格式HTML标签[^]任意 HTML 标签日期\d{4}[-/]\d{1,2}[-/]\d{1,2}YYYY-MM-DD 等格式实践建议先清洗再分词正则清洗应在分词之前完成避免噪声进入分词环节组合使用多个清洗规则按顺序执行注意先后顺序如先去 URL 再去标点保留语义信息数字、标点在某些任务中有意义替换为占位符比直接删除更安全测试验证正则容易误匹配务必在真实数据上验证效果后再使用