标准回答
结论:可以,而且 SVM 一直是文本分类的经典首选之一。
为什么契合
文本通常先用词袋 / TF-IDF 表示成向量,维度等于词表大小(几万到几十万),每篇文档只激活其中很少的词,因此特征向量是高维、稀疏的。在这样的空间里,不同类别的文档往往近似线性可分,刚好落在线性 SVM 的强项上。
SVM 的优势
- 最大间隔:SVM 寻找间隔最大的分隔超平面,决策由少量支持向量决定,对高维数据鲁棒、泛化能力强。
- 抗过拟合:正则项(控制 w 的范数)让模型在维度远大于样本数时仍不易过拟合,这正是文本场景的典型情形。
- 对稀疏高维友好:不依赖降维即可直接在原始 TF-IDF 空间工作。
工程实现
大规模文本优先用 LinearSVM / liblinear(或 SGD 铰链损失),它对线性核做了专门优化,训练快、内存省。理论上可用 RBF 等核处理非线性,但文本在高维下线性核通常已经足够,换核往往得不偿失。
与其他方法对比
常见误区
⚠️ 常见踩坑
误以为文本必须上 RBF 等非线性核才有效。文本经 TF-IDF 后维度极高,本身已近似线性可分,盲目用核会大幅增加训练成本却几乎不提升效果;同时别忽视特征处理(停用词、TF-IDF 加权、归一化)往往比换模型更关键。
追问
追问 1:为什么文本分类常用线性核而不是 RBF 核?
因为 TF-IDF 文本向量维度极高(远大于样本数),在高维空间里类别已经近似线性可分,线性核就能取得很好效果。RBF 核会把数据映射到更高维,训练和预测成本大增、还要调 gamma,容易过拟合,性价比反而低于线性核。
追问 2:SVM 和逻辑回归在文本分类上怎么选?
两者都基于线性决策边界、效果常接近。区别在于损失函数:SVM 用铰链损失、关注间隔与支持向量;逻辑回归用对数损失、能直接输出校准较好的概率。如果下游需要概率或要按分数排序、调阈值,选逻辑回归;如果只要硬分类、追求间隔最大化,选线性 SVM。
追问 3:SVM 原生只支持二分类,多类别文本分类怎么处理?
常用两种策略:一对其余(One-vs-Rest)为每个类别训练一个二分类器,取得分最高者;一对一(One-vs-One)为每对类别各训一个分类器,靠投票决定。文本类别多时一般用 One-vs-Rest,分类器数量与类别数成线性、更省。
🔗 相似问题
同一考点的不同问法,面试官可能换着问,一起刷更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习