去除标点符号与其他符号
清理会干扰模型的字符
去除标点符号与其他符号 是 CoddyKit 上的免费 NLP Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 NLP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 NLP Academy 课程共包含 4 节课。
标点符号也是噪声
处理完停用词后,下一类杂乱内容就是符号。逗号、美元符号和表情符号都可能干扰模型,因此我们通常会去除标点符号。
为什么这很重要
如果不进行清理,模型会把 cat, 和 cat 视为两个不同的词元。末尾的逗号会把一个词拆成两个特征。
Python 认识这些符号
字符串模块通过一个名为 标点符号 的常量,一次性提供所有常见符号,因此您不必手动逐个输入。
import string
print(string.punctuation)translate 技巧
删除字符最快的方法,是使用带有映射表的 str.translate,将每个符号映射为空。
table = str.maketrans("", "", string.punctuation)
clean = "hello, world!".translate(table)
print(clean)逐个词元清理
您也可以逐个词元去除符号。在推导式中应用 translate,然后删除所有变为空的词元。
clean = [t.translate(table) for t in tokens]
clean = [t for t in clean if t]使用正则表达式处理符号
需要比固定列表更精细的控制吗?使用正则表达式可以删除所有既不是字母、数字,也不是空格的字符。
import re
clean = re.sub(r"[^a-zA-Z0-9 ]", "", text)小心有用的符号
有些符号承载着含义。删除所有句点会把 u.s.a 变成 usa,而这对您的任务来说可能并不是您想要的结果。
是否保留数字由您决定
数字并不属于标点符号,但它们经常是噪声。请根据数据有意识地决定是否保留或删除数字。
no_digits = re.sub(r"\d+", "", text)注意 Unicode 符号
ASCII 标点符号集合无法涵盖弯引号和表情符号。支持 Unicode 的正则表达式可以捕获固定列表遗漏的符号。
clean = re.sub(r"[^\w\s]", "", text)合并多余空格
删除符号后可能会留下空隙和连续空格。快速压缩空白字符,就能将结果整理成干净的词语。
clean = re.sub(r"\s+", " ", clean).strip()操作顺序
顺序很重要。请在拆分或比较之前去除标点符号,这样末尾的符号就不会混入最终的词元。
快速检查
请选择从字符串中删除标点符号最干净的方法。
回顾
现在,您可以使用 translate 或正则表达式去除标点符号,有意识地处理 Unicode 和数字,并压缩剩余空格以获得干净的词元。
用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「去除标点符号与其他符号」课时是免费的吗?
是的 — 「去除标点符号与其他符号」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 NLP Academy 课程的其余内容,请升级到 CoddyKit PRO。 NLP Academy 课程共包含 4 节课。
「去除标点符号与其他符号」这节课中我会学到什么?
清理会干扰模型的字符 你通过在浏览器中直接运行的动手代码来练习 NLP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 NLP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 NLP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「去除标点符号与其他符号」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 NLP Academy 课中编写并运行代码吗?
能。每节 NLP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 什么是停用词
- 使用 NLTK 过滤停用词
- 去除标点符号与其他符号
- 构建可复用的清理文本函数