Python 文本分类首选 scikit-learn+TfidfVectorizer,步骤为向量化→选分类器(如 LogisticRegression)→训练预测;图像分类推荐迁移学习,用 torchvision 加载预训练模型(如 ResNet18),冻结前层、替换 FC 层并统一预处理。

用 Python 快速搭建文本分类模型
文本分类是 AI 最常用的任务之一,比如识别邮件是否为垃圾邮件、判断用户评论是正面还是负面。Python 生态里,scikit-learn + TfidfVectorizer是最轻量又实用的组合,适合入门和中小规模数据。
关键步骤很清晰:
- 用
TfidfVectorizer把句子转成数字向量(自动处理停用词、词频加权) - 选一个分类器,如
LogisticRegression或RandomForestClassifier,训练即可 - 预测时,对新文本做同样向量化,再调用
predict()或predict_proba()
注意:如果文本含大量专业术语或短文本(如 微博 ),可尝试CountVectorizer 配合 n -gram,或换用 transformers 库微调小型 BERT 模型(如distilbert-base-uncased-finetuned-sst-2),但需 GPU 支持。
图片分类不用从头训练 CNN
对大多数实际任务,直接用预训练模型 + 迁移学习更高效。Python 中,torchvision.models提供 ResNet、EfficientNet 等即用模型,几行代码就能完成图像分类。
立即学习“Python 免费学习笔记(深入)”;
典型做法:
- 加载预训练模型(如
models.resnet18(pretrained=True)),冻结前面层参数 - 替换最后的全连接层,适配你的类别数(如
model.fc = nn.Linear(512, 3)) - 用
torchvision.transforms统一缩放、归一化图片,避免输入尺寸 / 通道异常
小技巧:若样本少(每类
文本 + 图片多模态分类可以很简单
当任务同时依赖文字和图片(比如电商商品分类:靠标题 + 主图),不必强行拼接特征。一种轻量方案是分别提取特征后融合:
- 用
TF-IDF或Sentence-BERT获取文本嵌入(768 维) - 用 ResNet 最后一层输出作为图像嵌入(512 或 2048 维)
- 拼接两个向量,送入一个简单 MLP 分类器(如两层 Linear + ReLU)
不需要复杂对齐或跨模态注意力——多数业务场景下,这种“特征级融合”已足够稳定。调试时先单独验证文本和图片分支效果,再合并,容易定位瓶颈。
部署前别跳过这三步验证
模型在训练集上准,不等于上线能用。实际落地前务必检查:
- 输入鲁棒性:试试错别字、空格乱码、超长文本或模糊截图,看是否崩溃或胡猜
- 类别偏移:确认测试集分布和线上真实数据接近(比如训练用新闻标题,别拿社交媒体短句直接测)
- 推理速度:单次文本分类应 torch.quantization)或换更小模型
用 joblib 保存 sklearn 模型,torch.save存 PyTorch 模型,再封装成 Flask/FastAPI 接口,就是最小可行服务。