标题 | 基于卷积神经网络的高精度文本分类方法 |
范文 | 朱弘扬 马海斌 葛天祎 摘要:本文给出了一种基于卷积神经网络的高精度文本分类方法,其思路是:读取数据集进行分词和停用词处理,将处理后的语料库送入统计共现矩阵,训练出词向量,进而保存向量矩阵,最后把矩阵向量集导入卷积神经网络进行分类处理得到预测结果。该方法包括五个步骤:步骤一,将源数据集预处理成为统一格式,再进行分词处理。步骤二,将数据集送入训练glove模型,保存模型;步骤三,将语句以词向量的矩阵形式保存为数据集;步骤四,将数据导入文本分类CNN模型训练;步骤五,用训练好的模型对数据进行分类并与标准进行比对。仿真结果表明,本文所给出的方法输出准确度高达99%。 关键词:文本分类;卷积神经网络;Glove 模型 中图分类号:TP391? 文献标识码:A 文章编号:1009-3044(2019)21-0204-03 开放科学(资源服务)标识码(OSID): Abstract: This paper presents a high-precision text classification method and system based on Convolutional Neural Networks. The method comprises: reading a data set for word segmentation and stop words processing, feeding the processed corpus into a statistical co-occurrence matrix, training a word vector, and then saving the vector matrix, and finally importing the matrix vector set into the convolutional neural network for classification processing Get the predicted results. It consists of five steps: Step 1, preprocessing the source data set into a unified format, and then performing word segmentation processing. Step 2, the data set is sent to the training glove model, and the model is saved; in step 3, the statement is saved as a data set in the form of a matrix of word vectors; in step 4, the data is imported into the text classification CNN model training; step 5, the trained model is used to classify the data and compare it with the standard. The simulation results show that the output accuracy of the method presented in this paper is as high as 99%. Key words: text classification; convolutional neural network; Glove model 1 引言 文本分类技术起源于20世纪50年代末,由美国 IBM 公司的 Luhn[1] 提出,他把词频统计的思想运用到了自动分类中,而后 Maron[2]于1960年发表了文本分类史上的第一篇论文,同时预示了文本分类技术研究的开始。到了20世纪90年代,因为网络信息技术的极大发展,基于知识工程的技术渐渐赶上了网络在线文本的增长速度。这一现象无形中促进了文本分类技术的提升和转变,使得机器学习方法逐渐成为主流。后来 Joachims[3]首次把支持向量机应用到了文本分类的过程中,时期分类性能有了非常大的提高。近些年来随着深度学习的迅猛发展,BP前馈神经网络被应用到文本分类领域。文献[4]提出了将CNN应用于情感分析和问题分类问题,取得了很好的效果。Zhou 等人提出 C-LSTM模型[5],该模型先利用卷积神经网络提取文本特征,再送入长短期记忆网络(LSTM),考虑了文本结构之间存在的关系,该模型在文本分类上取得了较好的效果。刘月等人提出一个用于文本表示和分类的基于注意力机制的CNLSTM模型[6]。该模型利用CNN提取短语序列的特征表示,然后利用NLSTM学习文本的特征表示,通过引入注意力机制,突出关键短语以优化特征提取的过程。 本文给出了一种基于卷积神经网络的高精度文本分类方法和系统,该方法的思想是:读取数据集进行分词和停用词处理,将处理后的语料库送入统计共现矩阵,训练出词向量,进而保存向量矩阵,最后把矩阵向量集导入卷积神经网络进行分类处理得到预测结果。仿真结果表明了本文给出方法的优越性。 2 文本分类算法流程 基于卷积神经网络的高精度文本分类方法,其包括以下步骤:步骤1:对文本数据预处理:即將本文数据集格式转为统一格式并对其进行分词和停用词处理,得到预处理后的语料库;步骤2:基于语料库构建词的共现矩阵,然后基于共现矩阵和GloVe模型学习词向量矩阵;步骤3:构建文本分类卷积神经网络模型基于词向量矩阵训练文本分类卷积神经网络模型;步骤4:基于测试集数据验证卷积神经网络模型并优化,最终确定文本分类卷积神经网络模型。 2.1 文本预处理 图1所述对文本数据预处理的具体方法为:读取数据集,采用字符串匹配的分词算法、正向最大匹配法、逆向最大匹配法和最少切分方法;通过正则匹配去除文本中的无用字符;统一数据集文本编码方式为 utf-8。 读取数据集,进行切词处理。本文中采用了基于字符串匹配的分词算法,混合使用了正向最大匹配法(从左到右的方法)、逆向最大匹配法(从右到左的方向)和最少切分(使每一句中切出的词最少)的算法。 正向最大匹配法,例如语句为“南京是一座文化名城”,使用正向最大匹配法分词的结果就是,“南京/是一/座/文化/名城”; 逆向最大匹配法,则为“南京/是/一座/文化/名城”; 最少切分法,则是“南京/是/一座/文化名城”。 其次,通过正则匹配去除文本中的无用字符。再统一数据集文本编码方式为 utf-8。 2.2 词向量化 根据2.1所述,其特征在于,设基于语料库构建词的共现矩阵为X,其元素为,表示在整个语料库中,单词i和单词j共同出现在一个特定大小的窗口的次数。基于共现矩阵和Glove模型学习词向量矩阵的方法包括以下步骤: S01:根据两个单词在上下文窗口的距离 d,构建衰减函数f,所述衰减函数f的表达式如下: decay=1/d , 其中decay为词的权重,d为两个单词在上下文窗口的距离 d。 S02:构建Glove模型的损失函数; S03:基于共现矩阵输出训练好的词向量矩阵。 本文中用到的词向量化的方法是,Glove 算法模型。Glove 模型中输入的是预处理好的语料库,输出的是训练好的词向量矩阵,它的原理就是首先基于语料库构建词的共现矩阵,然后基于共现矩阵和 Glove 模型学习词向量(原理如图2)。 其中 3 建立卷积神经网络 基于卷积神经网络的高精度文本分类系统,其特征在于,包括:数据预处理模块,用于将本文数据集格式转为统一格式并对其进行分词和停用词处理,得到预处理后的语料库;词向量矩阵生成模块:基于语料库构建词的共现矩阵,然后基于共现矩阵和GloVe模型学习词向量矩阵;文本分类卷积神经网络模型构建模块,用于构建文本分类卷积神经网络模型并基于词向量矩阵训练文本分类卷积神经网络模型;文本分类卷积神经网络模型验证优化模块:基于测试集数据验证卷积神经网络模型并优化,最终确定文本分类卷积神经网络模型。 本实施例中的模型是一个多层架构,由卷积层和非线性层交替多次排列后构成,这些层最终通过全连通层对接到softmax分类器上。 1)模型输入:分别用于读取CIFAR数据集的图像并进行预处理,作为后续评估和训练的输入。 2)模型预测:用于进行统计计算,比如在提供的图像进行分类; 3)模型训练:用于计算损失、计算梯度、进行变量更新以及呈现最终结果。训练文本分类卷积神经网络模型,包括以下步骤: 1) 搭建文本分类CNN模型: 2) 写一个TextCNN类,实例化这个类,定义以下参数:(1)sequence_len,句子的长度。设置所有句子的长度均为300,不足300者用空字符补全;(2)num_classes,输出层中的分类数目;(3)embedding_size,嵌入的向量维度;(4)filter_sizes,卷积滤波器覆盖的字数。例如,[3, 4, 5]意味着我们将有过滤器分别滑过3,4和5个单词,总共3* num_filters过滤器; 3)num_filters,每个不同尺寸的过滤器的数目; 4)l2_reg_lambda,2正则权值。 5) Input Placeholders,即输入层。创建Placeholders变量,作为训练的输入和测试的输入。 6) Embedding Layer,嵌入层。将单词向量向更低维度向量表示。 7) Convolution and Max-Pooling Layers,即卷积层和池化层。首先开始构建卷积层,再进行最大值池化。由于每个卷积产生不同形状的张量,因此为他们中的每一个创建一个层,然后合并结果为一个大的特征向量。 8) Dropout层,即输出层。Dropout层随机“禁用”神经元的一部分,这可以防止神经元共同适应并迫使他们独立学习有用的特征。神经元中启用的比例是由初始化参数中的dropout_keep_prob决定的,训练时我们将它定义为0.1,而在测试时定义为1(禁用Dropout)。 9) 评估和预测。使用从max-pooling中得到的特征向量(带Dropout),我們可以通过矩阵乘法生成预测并选择得分最高的分类,我们使用softmax将原分数转换为归一化概率,但它并不会改变预测结果。 其中,tf.nn.xw_plus是一个实现Wx+b矩阵乘法的一个封装方法。 10) loss和准确率计算。我们可以使用步骤3-6得到的score来定义loss function。分类问题的标准损失方程为交叉熵损失方程。 其中,tf.nn.softmax_cross_entropy_with_logits是一个对每个分类计算交叉熵损失的封装方法,通过score和正确分类作为参数,我们可以得到每一类的loss,对其求平均值,可以得到平均损失,同时也定义了准确率函数。 11) 模型训练。 4 实验结果与分析 4.1 实验数据集 本文使用了四个数据集进行文本分类,来测试基于神经网络的高精度文本分类方法的效果。包括20-news新闻数据集、IMDB数据集、Cornell数据集、ling-spam数据集。 20-news 是用于文本分类、文本挖掘和信息检索研究的国际标准数据集之一。数据集收集了大约20,000左右的新闻组文档,均匀分为20个不同主题的新闻组集合。本文中使用其中的 10 个类别,每个类别包含 2000 个训练样本和1000 个测试样本。 IMDB数据集是来自网络的50000条电影数据库的评论。本文中选取50000 条做训练数据,50000 条做测试数据。 Cornell数据集,由电影评论组成,其中持肯定和否定态度的各1000 篇;另外还有标注了褒贬极性的句子各5331 句,标注了主客观标签的句子各5000句。 ling-spam垃圾邮件数据集,来自Androutsopoulos等人,由提供者收到的垃圾邮件和来自语言学家列表的非垃圾邮件组成。 4.2 实验环境和参数设置 本文的实验环境如表1 所示。 CNN模型中的参数通参数,主要有sequence_len,句子的长度、num_classes,输出层中的分类数目、embedding_size,嵌入的向量维度、filter_sizes,卷积滤波器覆盖的字数、num_filters,每个不同尺寸的过滤器的数目、l2_reg_lambda,2正则权值等。将这些参数设置为表 2 所示。 4.3 实验结果分析 为了测试模型的有效性,本文选择了多个目前在中文文本分类任务上应用广泛且效果较好的传统分类方法作为Baseline模型进行比较。比较模型包括有:随机森林 (RF)、朴素贝叶斯 (NB)、逻辑回归 (LR)以及支持向量机 (SVM) 。表3展示了各模型在不同数据集上的精确度(Acc %)。 由实验结果可知,本文方法在四个数据集中均取得了相较于传统分类方法精确度的最好结果。实验结果中4种传统机器学习分类方法中线性SVM准确率最高达到83%, 而本文准确率达到了99.6%,基于深度学习卷积神经网络算法文本分类效果明显优于传统机器学习算法。 5 结论 本文涉及计算机机器学习领域,尤其是卷积神经网络在高精度文本分类方向的应用,采用了基于卷积神经网络的高精度文本分类方法对文本进行分类处理。利用 CNN 模型,卷积层充分学习短语级别的特征表示,这些高层的短语特征表示序列接着被输入到 CNN 网络中进一步学习短语间的长短依赖关系,最终得出整个输入文本的特征表示。我们在20-news等 4 个数据集测试了本文网络模型的性能。从实验分析可以看出,本文所提出的方法和系统模型在对文本分类的任务上取得了较好的效果,相较于传统的文本分类方法取得较大准确度提高。 此外,在词向量化模型的方面有一些比较好的工作可以与本模型结合,例如王勇等人提出了一种结合N-Gram特征与Word2vec的词向量模型WordNG-Vec[11],该方法有效提高文本分类的效果。因此,在此后的工作中,笔者将继续探究模型的优化方法,以期能够在提高模型分類准确度的情况下同时提升模型的运行速度。 参考文献: [1] Luhn H P. The automatic creation of literature abstracts[J]. IBM Journal of research and development, 1958, 2(2): 159-165. [2] Maron M E, Kuhns J L. On relevance, probabilistic indexing and information retrieval[J]. Journal of the ACM (JACM), 1960, 7(3): 216-244. [3] Joachims T. Text categorization with support vector machines: Learning with many relevant features[C]//European conference on machine learning. Springer, Berlin, Heidelberg, 1998: 137-142. [4] Kim Y. Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014. [5] Zhou C, Sun C, Liu Z, et al. A C-LSTM neural network for text classification [J]. arXiv preprint arXiv: 1511. 08630, 2015. [6] 刘月,翟东海,任庆宁.基于注意力CNLSTM网络模型的新闻文本分类[J/OL].计算机工程:1-7[2019-04-16]. [7] 张其龙. 基于随机森林的文本分类研究与应用[D].华南理工大学,2018. [8] 孟天乐.朴素贝叶斯在文本分类上的应用[J].通讯世界,2019,26(01):244-245. [9] 戴维.逻辑回归解决文本分类问题[J].通讯世界,2018(08):266-267. [10] 张燕,姚志远,陈文社.支持向量机在文本分类中的研究与应用[J].电脑编程技巧与维护,2018(08):68-69+85. [11] 王勇,何养明,邹辉,等.WordNG-Vec:一种应用于CNN文本分类的词向量模型[J].小型微型计算机系统,2019,40(03):499-502. 【通联编辑:梁书】 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。