文本分类
问题
文本分类有哪些方法?传统方法和深度学习方法有什么区别?
答案
一、文本分类方法演进
二、方法对比
| 方法 | 准确率 | 训练数据需求 | 训练成本 | 推理速度 |
|---|---|---|---|---|
| TF-IDF + SVM | 中 | 中(千级) | 低 | 快 |
| TextCNN | 中高 | 中(万级) | 中 | 快 |
| BERT 微调 | 高 | 中(千级) | 中 | 中 |
| LLM Prompt | 中高 | 无需训练数据 | 无训练 | 慢 |
三、LLM 时代的文本分类
范式转变
传统做法:收集标注数据 → 训练分类模型 LLM 做法:直接用 Prompt 描述分类规则 → 零样本分类
System: 你是一个文本分类器。请将用户消息分类为以下类别之一:
- 咨询:询问产品信息
- 投诉:表达不满
- 建议:提出改进意见
只返回类别名称。
User: 你们的物流太慢了,三天了还没发货!
Assistant: 投诉
四、应用场景
| 场景 | 推荐方法 |
|---|---|
| 大规模实时分类 | BERT 微调(精度+速度) |
| 快速验证/小规模 | LLM Prompt(无需训练) |
| 简单分类 | TF-IDF + 逻辑回归 |
| 多标签分类 | BERT 微调 + Sigmoid |
常见面试问题
Q1: 少量标注数据如何做文本分类?
答案:
- 零样本:直接用 LLM Prompt 分类
- 少样本:在 Prompt 中给几个示例(Few-shot)
- 微调:用 SetFit 等框架(8~16 条数据即可微调 BERT)
- 数据增强:用 LLM 生成更多标注数据
Q2: TextCNN 的原理?
答案:
- 使用不同大小的卷积核(如 3、4、5)捕获不同长度的 n-gram 特征
- 每种卷积核提取一组特征 → 最大池化 → 拼接 → 全连接分类
- 优点:简单快速,适合短文本分类