核心要点
区分词干提取(启发式截断)与词形还原(词典+词性)
举例 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。
追问
追问 1:Porter Stemmer 原理?
它是一套分阶段的英文后缀剥离规则,按词的音节结构(measure)决定是否去后缀,如 -sses→-ss、-ied→-i、-ing 等逐步处理。纯启发式、不查词典,所以快,但结果可能不是合法词(studies→studi)。适合英文检索扩召回,不适合需要可读输出的场景。
追问 2:归一化会影响情感极性吗?
会。过度归一化可能抹掉情感线索:比如把否定词「not」当停用词去掉,或激进词干化导致词义模糊。词形还原本身一般安全(good 仍是 good),但要保留否定、程度副词和情感强度信号。深度模型通常少做归一化,让模型自学。
追问 3:BERT 还需要 stemming 吗?
题库专题:BERT 和 GPT 的架构与适用场景有何不同?基本不需要。BERT 用 subword(WordPiece)分词,会把 running 切成 run+##ning,由模型上下文自行处理形态,再做 stemming 反而破坏 subword 词表对齐。stemming/lemmatization 主要服务于 TF-IDF、BM25 等词袋类传统管道。
题库延伸:与本追问相关的专题题 → BERT 和 GPT 的架构与适用场景有何不同?
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📰 AI 资讯
🛠️ AI 工具
- spaCy
工业级 Python NLP 库,33K+ stars。提供高效的文本分词、命名实体识别、依存句法分析等能力,内置预训练模型支持 70+ 语言,是生产环境 NLP 任务的标准选择