NLP-Task1:基于机器学习的文本分类
实现基于logistic/softmax regression的文本分类
数据集:Classify the sentiment of sentences from the Rotten Tomatoes dataset
网盘下载链接见文末
- 需要了解的知识点:
- 文本特征表示:Bag-of-Word,N-gram
- 分类器:logistic/softmax regression,损失函数、(随机)梯度下降、特征选择
- 数据集:训练集/验证集/测试集的划分
- 实验:
- 分析不同的特征、损失函数、学习率对最终分类性能的影响
- shuffle 、batch、mini-batch
本文参考:NLP-Beginner 任务一:基于机器学习的文本分类(超详细!!
一、工作简介
1.1 主要内容
利用softmax regression对文本情感进行分类
1.2 数据集
训练集共156060条英文评论,情感分共0-4类

二、特征提取(Feature extraction)
2.1 词袋特征(Bag-of-word)
词袋模型即所有单词相互独立
在一句话中,存在于句子的单词 (不区分大小写),则对应的向量位置上的数字为1,反之为0,通过这种方式,可以把一个句子变成一个由数字表示的0-1向量。虽然转换方式非常简单,但是它没有考虑词序
- 词袋:i, you, him, her, love, hate, but
- 句子:I love you
- 向量:[1,1,0,0,1,0,0]
2.2 N元特征(N-gram)
N元特征考虑词序,如当N=2时,I love you不再看作是I, love, you这三个单词,而是 I love, love you 这两个词组
通常来说,使用N元特征时,会一并使用1, 2, …, N-1元特征,数据量大的输入时,较大的N会导致结果模型训练极度缓慢
- 特征(N=1&2):i, you, him, her, love, hate, but, i-love, i-hate, love-you, hate-you, you-but, but-love, but-hate, love-him, hate-him
- 句子:I love you
- 向量:[1,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0]
三、Softmax Regression
3.1 softmax介绍
给定一个输入x,输出一个y向量,y的长度即为类别的个数,总和为1,y中的数字是各类别的概率
- 0-4共五类,则 y = [ 0 , 0 , 0.7 , . 25 , 0.05 ] T y=[0,0,0.7,.25,0.05]^T y=[0,0,0.7,.25,0.05]T表示类别2的概率为0.7,类别3的概率为0.25,类别4的概率为0.05
公式:
p ( y = c ∣ x ) = s o f t m a x ( w c T x ) = e x p ( w c T x ) ∑ c ′ = 1 C e x p ( w c T x ) p(y=c|x)=softmax(w^T_cx)=\frac{exp(w^T_cx)}{\sum_{c'=1}^Cexp(w^T_cx)} p(y=c∣x)=softmax(wcTx)=∑c′=1Cexp(wcTx)exp(wcTx)
其中 w c w_c wc是第 c c c类的权重向量,记 W = [ w 1 , w 2 , . . . , w C ] W=[w_1,w_2,...,w_C] W=[w1,w2,...,wC]为权重矩阵,则上述公式可以表示为列向量:
y ^ = f ( x ) = s o f t m a x ( W T x ) = e x p ( W T x ) 1 ⃗ c T e x p ( W T x ) \hat{y}=f(x)=softmax(W^Tx)=\frac{exp(W^Tx)}{\vec{1}^T_cexp(W^Tx)} y^=f(x)=softmax(WTx)=1cTexp(WTx)exp(WTx)
y ^ \hat{y} y^ 中的每一个元素,代表对应类别的概率,接下来求解参数矩 W W W
3.2 损失函数
用损失函数对模型的好坏做出评价
在此选择交叉熵损失函数,对每一个样本n,其损失值为:
L ( f W ( x ( n ) ) , y ( n ) ) = − ∑ c = 1 C y c ( n ) l o g y ^ c ( n ) = − ( y ( n ) ) T l o g y ^ ( n ) L(fW(x^{(n)}),y^{(n)})=-\sum_{c=1}^Cy_c^{(n)}log\hat{y}_c^{(n)}=-(y^{(n)})^Tlog\hat{y}^{(n)} L(fW(x(n)),y(n))=−∑c=1Cyc(n)logy^c(n)=−(y(n))Tlogy^

该文详细介绍了如何使用Logistic/Softmax Regression进行文本情感分类,涉及数据预处理(Bag-of-Words, N-gram)、损失函数、梯度下降等关键步骤,并通过实验分析不同特征、损失函数和学习率对模型性能的影响。实验结果显示,模型在训练集上可能过度拟合,而在测试集上的表现一般。
最低0.47元/天 解锁文章
9594





