核心要点
理解条件独立假设与贝叶斯公式
区分 Multinomial NB(词频)与 Bernoulli NB(是否出现)
能说明拉普拉斯平滑的作用
举出垃圾邮件、文本分类等经典应用
简要回答
朴素贝叶斯用贝叶斯定理 + 特征条件独立假设做文本分类:用训练集估计 $P(c|w_1...w_n) \propto P(c)\prod P(w_i|c)$。Multinomial NB 配合词频/TF-IDF 广泛用于垃圾邮件过滤与短文本分类,小数据上极快且稳健。
标准回答
核心思想:给定文档词序列,选使后验概率最大的类别 $c^* = \arg\max_c P(c)\prod_i P(w_i|c)$。
朴素假设:给定类别,各词出现相互独立——显然不成立,但实践中常有效(「依赖地狱」反而帮助泛化)。
常见变体
- Multinomial NB:适合词频/TF 计数(新闻分类)
- Bernoulli NB:二值特征(词是否出现,短文本)
- Gaussian NB:连续特征(较少用于纯文本)
训练:统计各类别词频,拉普拉斯平滑处理未见词,避免零概率。
NLP 应用
- 垃圾邮件检测(经典 baseline)
- 情感/主题粗分类
- 语言识别、作者归属
优缺点
- ✅ 训练推断极快、小样本友好、可解释(看 log 似然贡献最大的词)
- ❌ 独立性假设限制语义建模;对长文档词序不敏感
常见误区
⚠️ 常见踩坑
写错公式或忘记平滑;把 Multinomial 与 Bernoulli 混用场景;不说独立性假设的局限。
追问
追问 1:为什么「朴素」假设反而有效?
分类只需比较后验相对大小,不必精确估计概率;错误的相关性在各类间可能部分抵消。高维稀疏下全协方差矩阵难估计,独立性简化了参数学习。
追问 2:TF-IDF 和词频哪个配 NB 更好?
Multinomial NB 理论上配合原始词频(多项分布);实践中 TF-IDF + 离散化或直接用词频都常见。Bernoulli 用二值化词出现特征。
追问 3:如何处理否定词(如 not good)?
词袋下「not」和「good」被拆成独立特征,丢了「不」的作用。常用补救:加 bigram 让「not_good」成一个特征;做否定范围标记,把否定词到下个标点间的词加 NEG_ 前缀(NEG_good);或保留否定词不当停用词去掉。这是 NB 条件独立假设的固有短板,深度模型才能较好建模。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📰 AI 资讯
🛠️ AI 工具
- spaCy
工业级 Python NLP 库,33K+ stars。提供高效的文本分词、命名实体识别、依存句法分析等能力,内置预训练模型支持 70+ 语言,是生产环境 NLP 任务的标准选择