NLP Academy · 课时

用于增强稳健性的字符 N-Gram

处理拼写错误与罕见词

第 2 / 4 课13 个步骤

用于增强稳健性的字符 N-Gram 是 CoddyKit 上的免费 NLP Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 NLP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 NLP Academy 课程共包含 4 节课。

词语特征很脆弱

基于词语的特征容易受到拼写错误和罕见拼写的影响。模型会把 runnning 当成一个全新的词,因此一次小小的失误就可能丢失全部信号。

深入到字符层面

我们不再使用完整的词语,而是把文本切分成较短的字母片段。这些相互重叠的片段称为字符 n-gram。

3-gram 是什么样的

对于单词 cat,字符 3-gram 就是简单的三个字母组合。它们每次向前移动一个位置,在文本中滑动,形成相互重叠的片段。

word = "happy"
grams = [word[i:i+3] for i in range(len(word)-2)]

为什么能抵抗拼写错误

单词 run 和 runn 共享大部分字符 gram。因此,一个拼写错误只会改变少量特征,而不会抹去整个单词。

识别词语族

play、playing 和 player 都包含 gram pla。字符 gram 无需执行任何词干提取步骤,就能悄然关联相关词形。

非常适合混乱的文本

社交媒体、用户名和产品代码中充满了不规范的拼写。当基于词语的特征失效时,字符 gram 依然稳健。

启用字符模式

斯科特学习库只需设置一个参数即可完成这项操作。将 analyzer 设置为 char,并选择一个ngram_range,即可提取字符 gram,而不是词语。

from sklearn.feature_extraction.text import TfidfVectorizer
vec = TfidfVectorizer(analyzer="char", ngram_range=(3, 5))

char_wb 尊重词语边界

char_wb analyzer 只在词语边界内部生成 gram,并为每个词添加填充。它保留了稳健性,同时避免生成跨越两个词的 gram。

vec = TfidfVectorizer(analyzer="char_wb", ngram_range=(2, 4))

也适用于其他语言

对于会将词语粘连在一起或词尾变化丰富的语言,基于词语的分词器很难处理。字符 gram 可以绕开这些问题,并且对不同语言都很友好。

代价:特征更多

字符 gram 产生的特征远多于词语。额外的维度需要更多内存,因此应将范围设得紧凑一些。

最适合作为搭档

字符 gram 与词语特征结合使用时最有效,而不是用来取代词语特征。二者结合后,既能覆盖含义,也能提升稳健性。💪

快速检查

为什么字符 n-gram 能很好地处理拼写错误?

回顾

字符n-gram会把文本切分成字母片段,能够抵抗拼写错误,并关联词语族。在斯科特学习库中,将 analyzer 设置为 char,并与词语特征结合使用。✅

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「用于增强稳健性的字符 N-Gram」课时是免费的吗?

是的 — 「用于增强稳健性的字符 N-Gram」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 NLP Academy 课程的其余内容,请升级到 CoddyKit PRO。 NLP Academy 课程共包含 4 节课。

「用于增强稳健性的字符 N-Gram」这节课中我会学到什么?

处理拼写错误与罕见词 你通过在浏览器中直接运行的动手代码来练习 NLP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 NLP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 NLP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「用于增强稳健性的字符 N-Gram」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 NLP Academy 课中编写并运行代码吗?

能。每节 NLP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 超越词袋模型
  2. 用于增强稳健性的字符 N-Gram
  3. 组合多种特征类型
  4. 缩放与选择特征
← 返回 NLP Academy