APP下载

采用CNN进行中文文本分类

2023-10-30火善栋

现代计算机 2023年16期
关键词:特征词特征向量词典

火善栋

(重庆三峡学院计算机科学与工程学院,万州 404100)

0 引言

文本分类是自然语言处理领域最活跃的研究方向之一,从新闻分类、商品评论信息情感分类到微博信息打标签等辅助推荐系统都有着非常广泛的应用。随着深度学习的不断推广和发展,图像分类与识别也变得越来越成熟和简单,有很多人开始尝试采用深度学习进行文本分类,但是,文本有别于图像,文本分类的一个首要问题就是如何把文档转换成神经网络可以识别和计算的数字表达形式。对于文档的数值表示,现在比较流行的有独热(One-Hot)编码模型、基于词频统计的词袋模型以及Word2 Vec[1]模型等。基于词频统计的词袋模型是文档分类中用的比较多的文档向量转换模型,词袋模型通过统计每个特征词的TF_IDF[2]值来将文本文档转换成对应的文档向量,再通过比较这些文档向量的相似度,实现文本分类问题,但这种模型存在维度高、特征稀疏等特点,导致在进行文本分类时存在计算量大、效率低的问题。为了有效解决这些问题,本文基于词袋模型,通过采用提取一定数量的特征词构建特征词典,来大大缩小文档向量的维度,然后通过CNN 采用两种不同的方案进行训练和测试,实验结果表明,仅采用CNN 中的全连接网络就可以比较好地实现中文文本分类。

本文采用两种方案对九类(环境、交通、教育、经济、军事、体育、医药、艺术、政治)共1995 篇中文文档采用 PyTorch 构建 CNN[3]进行训练和测试(其中训练文档为1815 篇,测试文档为180篇)。

1 方案1:只采用CNN全连接层进行实验

其实验和测试具体步骤如下:

1.1 构建训练集文档的特征词典

(1)读取每一类文档中的所有文档,过滤掉其中的非中文符号,并进行中文分词;

(2)过滤掉分词中的单字词,统计每类文档中每个词出现的次数,按单词出现的次数从大到小进行排序;

(3)为了减少特征词的数量,只从每类文档中选取一定数量的词(本实验分别对每类排在前1000、1500、2000个词进行了提取);

(4)对每类文档中抽取的特征词进行合并,去掉重复的词,构成训练文档特征词典并以npy文档的形式进行保存。

1.2 统计逆文档频率(IIDDFF)

(1)以特征词典为基础,遍历所有的训练文档,统计特征词典中每一个特征词包含训练文档的数目并计算其IDF,其计算公式为

其中:docNumber为训练文档的文件总数,number为包含特征词的文件数目。

(2)将所有特征词的IDF 值以npy 文档的形式进行保存。

1.3 构建每一个训练文档的特征向量(TFF__IIDDFF)

(1)以特征词典为基础,统计每一个特征词在每一篇训练文档中的词频(TF),词频等于特征词在对应文档中出现的次数除以该文档的总词条数。

(2)将每一个特征词的TF 与IDF 相乘得到特征词典中每一个特征词的TF_IDF 值,从而构建所有训练文档的文档向量,为了便于训练,将每一个训练文档的文档向量以npy文档的形式进行保存。

1.4 采用CCNNNN全连接网络层进行网络训练

为每一个训练文档向量添加对应的类别标签(1~9)并打乱次序,以16 个训练文档为一个批次进行训练,其网络模型如图1所示。

图1 CNN全连接网络的结构

本文对每类文档按词频进行降序排列,分别选取每类排在前1000、1500 和2000 的词条构建特征词典进行训练(其文档特征向量构建方式和激活函数如表1 所示)。图2 为选取每类排在前1500 个词条构建特征词典所得到的训练迭代次数与损失误差结果图,从训练结果图可以看出,当迭代次数达到2300 次左右时,其损失误差的最小值基本处于稳定状态,为了防止过拟合,训练时采用了dropout 策略,发现训练损失达到一个稳定值后仍然出现一些细微的波动。

表1 卷积网络全连接层实验结果

图2 全连接(tanh)训练结果

1.5 训练模型测试

导入训练过程中保存的特征词典文档和IDF文档得到训练集特征词典和每个特征词的IDF值,并以特征词典和IDF 值为基准对180 篇(每类分别为20)测试文档进行类别判断,

其测试结果如表1 所示,从测试结果来看,分类的准确性都在96%以上。

2 方案2:采用CNN进行实验

方案2 的实验步骤与方案1的实验步骤基本相同,不同的是方案1 的文档特征向量是一维的,而方案2 的文档特征向量是二维的(模仿单通道图片),在进行特征输入时,将一维文档特征向量转换成M×M或者(M-1) ×M的二维文档特征向量,进行转换时后面位数不够的地方以0进行填充。其向量转换效果如图3所示。

图3 一维向量转二维向量示意图

方案2网络结构如图4所示。

图4 方案2网络结构实验

从图4 可以看出,方案2 其实就在方案1全连接网络的基础上添加了两个卷积层和两个最大池化层,以每类文档取前1500 特征词条为例,其网络训练迭代次数与损失误差结果如图5所示,从训练结果来看,当迭代次数达到2500时,其最小损失误差基本处于稳定状态,但是损失误差的波动范围比较大,其训练效果没有单一的全连接网络好。

图5 卷积神经网络训练结果

与方案1 类似,采用180 篇文档对卷积网络的训练结果进行了测试,其实验结果见表2,从实验结果来看,采用卷积对文档特征向量进行降维和特征提取,虽然能够取得一定的准确率,但是其分类效果不如全连接网络。

表2 卷积网络实验结果

3 结语

通过以上实验结果可以看出,对于中文文本分类问题,当采用TF_IDF 方法来构建文档特征向量时,为了避免文档特征向量的维度过大,可以先根据每个词条在每类文档中出现的次数,从中提取一定数量的特征词来构建特征词典。从表1 的实验结果来看,当提取的特征词达到一定数量时,随着特征词数量的增多,对文档分类结果的影响非常小,因此,对于中文文本分类问题,可以通过这种方法来降低特征词典的长度,从而达到提高训练和分类速度的目的;另外,从表1的实验结果可以看出tanh激活函数略优于regu(),TF_IDF 统计方法总体上略优于TF 统计方法;相比于卷积神经网络,全连接网络更适合做文本分类,而且准确率比较高,运算量比较小。

猜你喜欢

特征词特征向量词典
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
克罗内克积的特征向量
米沃什词典
基于改进TFIDF算法的邮件分类技术
一类特殊矩阵特征向量的求法
评《现代汉语词典》(第6版)
产品评论文本中特征词提取及其关联模型构建与应用
词典例证翻译标准探索
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
面向文本分类的特征词选取方法研究与改进