NLP Academy · 课时

去除标点符号与其他符号

清理会干扰模型的字符

第 3 / 4 课13 个步骤

去除标点符号与其他符号 是 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 什么是停用词
  2. 使用 NLTK 过滤停用词
  3. 去除标点符号与其他符号
  4. 构建可复用的清理文本函数
← 返回 NLP Academy