Skip to content

文本分类核心方法:fastText与TextCNN详解

内容整理自学习笔记,仅供面试备考参考;不构成录用、培训或考试承诺。

1. 文本分类任务有哪些应用场景?

文本分类是机器学习中常见的监督学习任务,常见的应用场景包括:

应用场景说明
情感分类判断文本的情感倾向(正面/负面)
新闻分类将新闻按主题归类
主题分类识别文本所属主题
问答匹配判断问题与答案的匹配程度
意图识别识别用户输入的意图(如客服系统)
推断文本蕴含关系判断

根据标签情况,文本分类还可分为二分类多分类多标签分类

2. 文本分类的具体流程

文本分类的一般流程如下:

文本预处理 → 特征提取 → 文本表示 → 分类输出
步骤说明
文本预处理分词、去除停用词等操作
特征提取提取文本特征
文本表示将文本转化为向量表示
分类输出通过分类器输出类别

常用分词工具:HanLP、jieba、哈工大 LTP、北大 pkuseg 等。

3. fastText 的分类过程与优点

3.1 分类过程

fastText 首先把输入转化为词向量,取平均,再经过线性分类器得到类别。输入的词向量可以是预先训练好的,也可以随机初始化,跟着分类任务一起训练。

3.2 优点

优点说明
训练速度快在保持高精度的情况下加快了训练和测试速度
无需预训练词向量fastText 会自己训练词向量
层级 Softmax提升效率的优化手段
char-level n-gram作为附加特征增强表示能力

4. TextCNN 进行文本分类的过程

卷积神经网络的核心思想是捕捉局部特征,对于文本来说,局部特征就是由若干单词组成的滑动窗口,类似于 N-gram。

4.1 网络结构

输入层(双通道)→ 卷积层(filter_size=2,3,4)→ 1-max pooling → 全连接 softmax
层级说明
输入层句子矩阵 n×k,每行是词向量(维度=k)。采用双通道:一个静态(预训练且不变),一个动态(随训练更新)
卷积层filter_size=(2,3,4) 的一维卷积;每种窗口大小通常有多个 filter(如 100 个),勿与「双通道词向量」混淆
池化层1-max pooling,将不同长度句子变为定长表示
输出层全连接 softmax 层,输出每个类别的概率

关键:TextCNN 能自动对 N-gram 特征进行组合和筛选,获得不同抽象层次的语义信息。

5. TextCNN 可调参数

参数调优建议
输入词向量Word2Vec 或 GloVe,可选用预训练或随机初始化
卷积核大小合理范围 1~10,句子较长可使用更大卷积核;找到最佳单 filter 后在其附近组合尝试
特征图个数100~600 之间调参;增加时训练时间加长,性能降低时可加强正则化(dropout > 0.5)
激活函数ReLU 或 tanh
池化策略1-max pooling 表现最佳,复杂任务可选 k-max
正则化项dropout(<0.5)或 L2,但作用较小;L2 限制可大一些

6. 文本分类任务评估指标

指标说明
准确率预测正确的样本占总样本的比例
召回率正例中被正确预测的比例
ROC接收者操作特征曲线
AUCROC 曲线下面积
F1精确率和召回率的调和平均
混淆矩阵展示各类别的预测情况