4. 文本分类与情感分析面试要点
回答框架图:文本分类面试应答路径
追问路径图:面试官常见追问方向
知识结构:文本分类模型选型对比
| 模型 | 原理 | 特点 | 适用场景 |
|---|---|---|---|
| 逻辑回归 | 线性 + 最大熵 | 可解释强,训练快 | 小规模、二分类、快速基线 |
| SVM | 最大间隔 + 核函数 | 高维稀疏表现好 | 文本分类传统基准 |
| FastText | 子词嵌入 + 浅层神经网络 | 速度快,支持n‑gram | 中等规模、实时推理 |
| BERT/RoBERTa | Transformer预训练+微调 | 精度高,计算成本大 | 复杂语义、多标签、小样本 |
| DistilBERT | BERT蒸馏版 | 体积小,推理快 | 线上部署、延迟敏感 |
面试问答卡片
面试问题:请设计一个中文情感分类系统,从数据到部署你会怎么做?
面试官考察点:全链路工程思维、数据预处理、模型选型、评估与上线方案。
回答框架:任务定义 → 数据采集与清洗 → 模型选型 → 训练调优 → 评估 → 部署与监控。
简短示例回答:(约80字)我会先定义二分类(正向/负向),爬取电商评论并清洗。使用jieba分词后,用BERT微调。训练时采用AdamW+学习率warmup,评估用F1。部署使用ONNX Runtime加速,并监控线上分布偏移。
可能追问:如何处理长文本? → 截断+分段投票/使用Longformer。类别不平衡? → Focal Loss或过采样。
避坑提醒:不要只讲模型不讲数据处理;线上部署必须考虑推理速度和稳定性;监控指标除准确率外要关注召回率变化。
面试问题:文本分类中如何处理类别不平衡问题?
面试官考察点:数据层面、算法层面、评估层面的处理策略与适用场景。
回答框架:问题定义 → 数据重采样 → 损失函数加权 → 阈值调整 → 评估指标选择。
简短示例回答:(约70字)我常用三种方法:1) 对少数类过采样(SMOTE);2) 损失函数中按类别比例加权;3) 调整预测阈值,使recall=precision。评估使用macro F1而非accuracy。
可能追问:过采样引入噪声怎么办? → 结合Tomek Links清理。使用Focal Loss时如何设置超参数? → gamma通常2.0,alpha根据比例。
避坑提醒:不要只提重采样而忽略算法调整;线上模型阈值需要根据业务损失动态调整;避免在测试集上使用重采样。
面试问题:预训练模型与传统ML模型在文本分类中各自的优缺点是什么?
面试官考察点:对模型特性的深入理解、能根据数据量/资源/实时性做技术选型。
回答框架:对比维度:精度、速度、数据需求、可解释性、部署成本;给出选择建议。
简短示例回答:(约90字)传统ML(如逻辑回归)训练快、可解释、适合小数据;BERT等预训练模型精度高、上下文理解强,但依赖GPU且推理慢。业务初期用FastText快速验证,后期数据积累后切换到BERT并蒸馏压缩。
可能追问:蒸馏模型精度损失多少? → 通常3‑5%以内,可结合动态蒸馏弥补。如何在不使用GPU的情况下部署BERT? → 量化至INT8 + CPU/ONNX。
避坑提醒:不要说预训练模型一定好——小数据场景传统ML更稳定;注意区分微调和特征提取两种使用方式。