使用正则表达式清理人工智能文本
移除 HTML 标签、标点、URL 和电子邮件,构建文本预处理函数
使用正则表达式清理人工智能文本 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。
为什么要为 AI 清理文本?
来自网络的原始文本充满噪声:HTML 标签、URL、电子邮件地址、多余的空白字符和特殊字符。将这些内容直接输入模型会浪费容量并降低质量。
正则表达式是文本预处理的主力工具。我们将逐步构建一个清理流程。
一个杂乱的示例
下面是您可能抓取到的字符串类型。每个清理步骤都针对一种噪声。
raw = "<p>Contact us at info@shop.com or visit https://shop.com NOW!!! Thanks</p>"去除 HTML 标签
HTML 标签看起来像 <tag>。模式 <[^>]+> 会匹配 <、任意非 > 字符,然后匹配 >。
将它们替换为空字符串。(对于复杂的 HTML,建议使用 BeautifulSoup 之类的解析器,但正则表达式适合快速清理。)
import re
text = re.sub("<[^>]+>", "", raw)
print(text) # "Contact us at info@shop.com or visit https://shop.com NOW!!! Thanks"去除 URL
URL 以 http:// 或 https:// 开头,后面跟着非空格字符。匹配并去除它们。
import re
text = re.sub("https?://\S+", "", text)
print(text) # URL removed去除电子邮件地址
一种简单的电子邮件模式包括:单词字符、一个 @、域名、一个点和顶级域名。
import re
text = re.sub("\S+@\S+\.\S+", "", text)
print(text) # email removed使用掩码而不是删除
对于隐私数据集,您通常会屏蔽敏感数据,而不是将其删除,从而保留句子结构。
import re
masked = re.sub("\S+@\S+\.\S+", "[EMAIL]", "reach me at a@b.com please")
print(masked) # "reach me at [EMAIL] please"去除特殊字符
保留字母、数字和空格;使用否定字符集删除标点和符号。是否保留某些标点,要根据具体任务决定。
import re
text = re.sub("[^A-Za-z0-9 ]", "", "Hello!! @world #2026")
print(text) # "Hello world 2026"规范化空白字符
清理后可能会留下连续空格和多余的换行符。使用 \s+ 将任意连续的空白字符合并为一个空格,然后对两端使用 strip()。
import re
text = re.sub("\s+", " ", "Hello world\n\n again").strip()
print(text) # "Hello world again"转换为小写以及顺序的重要性
转换为小写有助于保持一致性,但请谨慎应用。此外,顺序很重要:先去除 HTML,再去除特殊字符,最后规范化空白字符,这样前面的删除操作就不会留下空隙。
text = text.lower()
# Pipeline order: tags -> urls -> emails -> specials -> whitespace -> lowercase构建清理流程
将这些步骤封装到一个函数中,使每个文档都接受相同的处理。处理大量文档时,请预先编译模式以提高速度。
import re
def clean_text(s):
s = re.sub("<[^>]+>", " ", s) # html tags
s = re.sub("https?://\S+", " ", s) # urls
s = re.sub("\S+@\S+\.\S+", " ", s) # emails
s = re.sub("[^A-Za-z0-9 ]", " ", s) # special chars
s = re.sub("\s+", " ", s).strip() # whitespace
return s.lower()
print(clean_text(raw))将清理流程应用于 DataFrame
使用 apply 对整个文本列运行清理器,生成可供模型使用的列。
import pandas as pd
df["clean"] = df["text"].apply(clean_text)
print(df[["text", "clean"]].head())快速检查:空白字符规范化
清理后,您的文本中有多处连续的空格和换行符,需要将它们合并为单个空格。
回顾:使用正则表达式清理文本
您构建了一个真正的预处理流程:
- 使用
<[^>]+>去除 HTML - 去除 URL(
https?://\S+)和电子邮件地址 - 使用类似
[EMAIL]的占位符屏蔽敏感数据 - 使用否定字符集删除特殊字符
- 使用
\s++strip()规范化空白字符 - 将其封装到函数中,并对列使用
apply
至此,您已经完成了用于文本 AI 的正则表达式学习。下一步:学习 AI 项目中的数据库。
常见问题解答
「使用正则表达式清理人工智能文本」课时是免费的吗?
是的 — 「使用正则表达式清理人工智能文本」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。
「使用正则表达式清理人工智能文本」这节课中我会学到什么?
移除 HTML 标签、标点、URL 和电子邮件,构建文本预处理函数 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn AI with Python 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「使用正则表达式清理人工智能文本」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn AI with Python 课中编写并运行代码吗?
能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 正则表达式模式与字符类
- re 模块:search、match、findall、sub
- 捕获组与命名组
- 使用正则表达式清理人工智能文本