核心要点

  • 区分词干提取(启发式截断)与词形还原(词典+词性)

  • 举例 running→run vs running→run/stem run

  • 说明对检索、分类、主题模型的影响

  • 知道中文分词与归一化的对应做法

简要回答

Stemming(词干提取)

  • 启发式规则去后缀:running, runs, ran → run(Porter/Snowball)
  • 快、无需词典;可能产生非词(「studies」→「studi」)
  • 适合信息检索扩大召回

Lemmatization(词形还原)

  • 用词性 + 词典映射:am/is/are → be

标准回答

Stemming(词干提取)

  • 启发式规则去后缀:running, runs, ran → run(Porter/Snowball)
  • 快、无需词典;可能产生非词(「studies」→「studi」)
  • 适合信息检索扩大召回

Lemmatization(词形还原)

  • 用词性 + 词典映射:am/is/are → be;mice → mouse
  • 结果仍是合法词,语义更准确
  • 适合情感分析、问答、需要人类可读输出的场景

对比

维度 Stemming Lemmatization
速度 较慢(需 POS+词典)
准确性 粗糙
资源 无词典 需 WordNet 等

中文:无形态变化,侧重 分词、繁简转换、同义词归一,而非经典 stemming。

选型:搜索索引/大规模日志 → stemming;NLP 下游分类/抽取 → lemmatization。详见 NLP 预处理

常见误区

⚠️ 常见踩坑

认为二者完全等价;举例错误(stemming 不会把 better→good);忽略 lemmatization 需要 POS。

追问

追问 1Porter Stemmer 原理?

它是一套分阶段的英文后缀剥离规则,按词的音节结构(measure)决定是否去后缀,如 -sses→-ss、-ied→-i、-ing 等逐步处理。纯启发式、不查词典,所以快,但结果可能不是合法词(studies→studi)。适合英文检索扩召回,不适合需要可读输出的场景。

追问 2归一化会影响情感极性吗?

会。过度归一化可能抹掉情感线索:比如把否定词「not」当停用词去掉,或激进词干化导致词义模糊。词形还原本身一般安全(good 仍是 good),但要保留否定、程度副词和情感强度信号。深度模型通常少做归一化,让模型自学。

追问 3BERT 还需要 stemming 吗?

题库专题:BERT 和 GPT 的架构与适用场景有何不同?

基本不需要。BERT 用 subword(WordPiece)分词,会把 running 切成 run+##ning,由模型上下文自行处理形态,再做 stemming 反而破坏 subword 词表对齐。stemming/lemmatization 主要服务于 TF-IDFBM25 等词袋类传统管道。

题库延伸:与本追问相关的专题题 → BERT 和 GPT 的架构与适用场景有何不同?

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。