一种基于TextCNN的报刊出版物分类方法及系统与流程

文档序号:20600173发布日期:2020-05-01 21:34阅读:187来源:国知局
一种基于TextCNN的报刊出版物分类方法及系统与流程

本发明涉及文本分类技术领域,具体涉及一种基于textcnn的报刊出版物分类方法及系统。



背景技术:

对海量报刊出版物进行快速、精确、高效的分类,对媒体管理报刊信息、读者兴趣推荐等有着一定的实际意义。中文报刊文本与普通文本相比,涉及的学科面比较广,语言结构较特别。对于报刊出版物较多的报社,需要花费大量的人力物力来对报刊出版物进行分类。如果能够实现自动对报刊出版物进行分类,在节省人力物力的同时,也可以提高报社的工作效率,增加报社经济效益。此外,传统的搜索引擎只是根据关键词匹配或者联想记忆来展示用户需要的文章,如果能够快速自动的将海量报刊文本进行分类,让搜索引擎根据类别来展示搜索结果,那么就会使用户能够检索到更多与搜索词相关的报刊文本,甚至可以向每位用户个性化地推荐其常看的感兴趣的报刊文本。

报刊出版物的分类属于自然语言处理(naturallanguageprocessing,简称nlp)领域,但是,报刊文本与传统自然语言的区别就在于其篇幅相对较长,专业性术语较多,加大了分类的难度。对于报刊出版物分类,传统的方法普遍存在正确率不够高,特征提取较麻烦等问题,而使用深度学习进行自然语言处理,是一个新的思路。

深度学习在自然语言处理领域的起源,始于bengio等人提出使用三层神经网络来构建n-gram模型。他们提出使用词的向量化表示替代传统的独热表示,即现在所说的wordembedding,优势在于降低独热的维度灾难。mikolov等人在加速词向量计算上面提出对高频词中取子集的方式,使用该方法使得能够获得更规则的表达方式。xuh等人在wordembedding中融合语义信息,增强了其表达能力。

深度学习中卷积神经网络(convolutionalneuralnetworks,cnn)是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。collobert利用卷积神经网络完成了一些经典的nlp任务,包括命名识别、分词标注等。2013年google工程师开发了word2vec工具,用于将词转化为词向量。在2014年由纽约大学yoonkim将cnn用于文本分类中,在他的课题中他将cnn用于句子分类,取得了不错的效果。而在2016年,facebook发布一款用于快速学习词向量和分类的工具fasttext,其方法和word2vec的skip-gram模型很像,其关键在于速度快。textcnn是利用卷积神经网络对文本进行分类的算法,由yoonkim在“convolutionalneuralnetworksforsentenceclassification”一文中提出,yoonkim在提出textcnn时主要用于对句子进行分类,可以有效的捕捉文本的局部特征信息,不仅提高了文本分类的准确率,而且与传统的分类方法相比具有较强的适应性。



技术实现要素:

本发明的目的在于提供一种基于textcnn的报刊出版物分类方法及系统,该方法及系统有利于提高报刊出版物分类的准确率。

为实现上述目的,本发明采用的技术方案是:一种基于textcnn的报刊出版物分类方法,包括以下步骤:

步骤1)对所有用于训练和测试的报刊文本数据进行预处理,得到分词并编码后的文本数据集,分为训练集和测试集;

步骤2)读入一批训练集中的文本数据,在textcnn模型的词嵌入层对文本数据中已编码的词语进行向量化;

步骤3)在卷积层对词嵌入层进行卷积操作,以提取特征;

步骤4)在池化层对卷积得到的结果进行最大池化;

步骤5)在全连接层对步骤4得到的特征向量进行全连接操作,得到最后分类;

步骤6)重复训练设定次数后,采用测试集中文本数据进行一次测试,根据测试结果调整textcnn模型;

步骤7)判断是否达到最大训练次数,是则结束训练,得到最终的分类模型,否则返回步骤2,再读入一批训练集中的文本数据,继续进行训练;

步骤8)利用得到的最终的分类模型,对报刊出版物的文本数据进行分类。

进一步地,所述步骤1的具体方法为:使用jieba分词对报刊文本数据进行分词,分词时,去掉与文本判断无关的字符,并剔除停用词,以在简化文本规模的同时减少垃圾数据冗余。

进一步地,所述步骤2具体为:将文本数据中已编码的词语转换成词向量,然后使用word2vec的cbow模型对编码后的词语进行预训练,即对于cbow模型,输入目标词周围上下文的词向量,输出目标词的词向量,得到密集的便于训练的词嵌入层。

进一步地,所述步骤3的具体方法为:输入的语句或文本数据经过词嵌入层处理后,得到一个二维矩阵,假设文本数据的长度为|t|,词向量的大小为|d|,则所述二维矩阵的大小为|t|×|d|,选择卷积核的大小为n*|d|,其中n是卷积核的长度,|d|是卷积核的宽度,通过卷积操作,得到一个|t-n+1|×1的向量;在textcnn模型中,同时使用多个卷积核对词嵌入层进行卷积操作,得到多个一维向量。

进一步地,所述步骤4的具体方法为:对卷积后得到的多个一维向量取最大值,然后拼接在一块,作为池化层的输出值,以对卷积层得到的特征进行提取和降维。

进一步地,所述步骤5中,将步骤4得到的特征向量作为全连接层的输入,在连接前先进行一次随机失活操作,以一定概率使部分权重在反向传播时不更新,以降低过拟合出现的概率;新建一个对应分类数量的矩阵[卷积核总数量,分类数量],两个矩阵相乘得到在每一个分类的概率,其中最大的值即是训练时得到的分类。

进一步地,所述步骤6中,根据测试结果,使用反向传播来调整权重和偏置,以此来调整textcnn模型:

采用测试集对模型进行测试,测试结果与实际结果存在一个误差,用如下的代价函数来衡量这个误差:

其中,w为权重,b为偏置,n为输入数据的个数,a表示输入为x时的实际输出,awb的函数,y为预计输出,是关于x的函数,||||表示向量的模;

要使误差变小,就是最小化代价函数,也就是使代价函数的变化量为负,即说明输出的预测值在接近实际值,直到无限接近;

代价函数的变化量为权重对代价函数求偏导乘以权重的变化量再加上偏置对代价函数求偏导乘以偏置的变化量,设定权重和偏置的变化量为一个负数乘以其对代价函数的偏导,也就说明其二阶导数为负,即一阶导数在不断减小,即原函数在不断减小,从而达到实际输出接近预计输出的目的;这个负数的绝对值定义为学习率η,每训练设定次数,采用测试集对当前训练的模型进行测试,根据测试结果与实际结果,对代价函数求偏导,并调整权重和偏置为:

进而调整textcnn模型。

本发明还提供了一种基于textcnn的报刊出版物分类系统,包括:

预处理模块,用于对用于训练的报刊文本数据进行预处理,并将分词及编码后的文本数据传输给模型训练模块;

建模模块,用于基于textcnn模型,在词嵌入层对文本数据中已编码的词语进行向量化,在卷积层对词嵌入层进行卷积操作,在池化层对卷积得到的结果进行最大池化,在全连接层对卷积得到的特征向量进行全连接操作,通过多次训练和测试,得到最终的分类模型;以及

分类模块,用于接收待分类的报刊出版物的文本数据,调用建模模块的分类模型进行分类,然后输出分类结果。

相较于现有技术,本发明具有以下有益效果:提供了一种基于textcnn的报刊出版物分类方法及系统,将该方法及系统用于报刊出版物分类,相比于其他深度学习的神经网络,模型结构简单,易于搭建,计算量少,训练时间短,而相较于传统算法,虽然所花费时间可能有所增加,但是却可以较好的提取报刊文本的特征向量,能够有效提高分类的准确率,是一个综合效果较好的中文报刊出版物分类方法及系统,具有很强的实用性和广阔的应用前景。

附图说明

图1是本发明实施例的方法实现流程图。

图2是本发明实施例中词嵌入过程示意图。

图3是本发明实施例中word2vec的cbow模型示意图。

图4是本发明实施例中一个简单的textcnn模型训练过程示意图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细说明。

本发明提供了一种基于textcnn的报刊出版物分类方法,如图1所示,包括以下步骤:

步骤1)对所有用于训练的报刊文本数据进行预处理,得到分词并编码后的文本数据。

步骤1)对所有用于训练和测试的报刊文本数据进行预处理,得到分词并编码后的文本数据集。然后将文本数据集中80%的数据划为训练集,20%的数据划为测试集。预处理的具体方法为:

打乱数据集顺序,使用jieba分词对报刊文本数据进行分词,分词时,去掉与文本判断无关的字符,例如“{}”、“()”、“【】”等,并剔除停用词,如“的”、“不仅”、“还”等,以在简化文本规模的同时减少垃圾数据冗余。

步骤2)读入一批训练集中的文本数据,在textcnn模型的词嵌入层对文本数据中已编码的词语进行向量化。具体方法为:

如图2所示,将文本数据中已编码的词语转换成词向量,然后使用word2vec的cbow模型(图3)对编码后的词语进行预训练,即对于cbow模型,输入目标词周围上下文的词向量,输出目标词的词向量,得到密集的便于训练的词嵌入层。

步骤3)在卷积层对词嵌入层进行卷积操作,以提取特征。具体方法为:

输入的语句或文本数据经过词嵌入层处理后,得到一个二维矩阵,假设文本数据的长度为|t|,词向量的大小为|d|,则所述二维矩阵的大小为|t|×|d|,选择卷积核的大小为n*|d|,其中n是卷积核的长度,|d|是卷积核的宽度,通过卷积操作,得到一个|t-n+1|×1的向量;在textcnn模型中,同时使用多个卷积核对词嵌入层进行卷积操作,得到多个一维向量。

图4中的第二层和第三层就是textcnn模型对词嵌入层进行卷积操作的一个简单例子,可在此基础上调整卷积核的大小以及卷积核的个数,以更好的符合文本的实际需求。

步骤4)在池化层对卷积得到的结果进行最大池化。具体方法为:

对卷积后得到的多个一维向量取最大值,然后拼接在一块,作为池化层的输出值,以对卷积层得到的特征进行提取和降维。

如果卷积核的大小为2,3,4,5,每种大小的卷积核都有128个,那么经过卷积层后会得到4×128个一维的向量再经过最大池化之后,会得到4x128个值,拼接在一块,得到最终的结构—512×1的向量。最大池化层的意义在于对卷积层提取的特征,提取激活程度最大的特征。

图4中第三步到第四步进行的操作,进一步对卷积层得到的特征进行提取和降维。最后将各个卷积层进行最大池化的结果融合为一个向量,作为输出的特征向量。

步骤5)在全连接层对步骤4得到的特征向量进行全连接操作,得到最后分类。

具体地,将步骤4得到的每一篇文章的特征向量作为全连接层的输入,在连接前先进行一次随机失活(dropout)操作,以一定概率使部分权重在反向传播时不更新,以降低过拟合出现的概率。新建一个对应分类数量的矩阵[卷积核总数量,分类数量],两个矩阵相乘得到每一篇文章在每一个分类的概率,其中最大的值即是该文章训练时得到的分类。根据预期的结果进行反向传播,从而对整个网络的调整。

步骤6)重复训练设定次数后,采用测试集中文本数据进行一次测试,根据测试结果调整textcnn模型。

其中,根据测试结果,使用反向传播来调整权重和偏置,以此来调整textcnn模型:

采用测试集对模型进行测试,测试结果与实际结果存在一个误差,用如下的代价函数来衡量这个误差:

其中,w为权重,b为偏置,n为输入数据的个数,a表示输入为x时的实际输出,awb的函数,y为预计输出,是关于x的函数,||||表示向量的模;

要使误差变小,就是最小化代价函数,也就是使代价函数的变化量为负,即说明输出的预测值在接近实际值,直到无限接近;

代价函数的变化量为权重对代价函数求偏导乘以权重的变化量再加上偏置对代价函数求偏导乘以偏置的变化量,设定权重和偏置的变化量为一个负数乘以其对代价函数的偏导,也就说明其二阶导数为负,即一阶导数在不断减小,即原函数在不断减小,从而达到实际输出接近预计输出的目的;这个负数的绝对值定义为学习率η,在本实施例中,将学习率η设置为1×10-3,每训练设定次数(本实施例设定为100次),采用测试集对当前训练的模型进行测试,根据测试结果与实际结果,对代价函数求偏导,并调整权重和偏置为:

进而调整textcnn模型。

步骤7)判断是否达到最大训练次数,是则结束训练,得到最终的分类模型,否则返回步骤2,再读入一批训练集中的文本数据,继续进行训练。

本发明基于textcnn模型的模型训练主要分为四层:(1)嵌入层:这一层的主要作用是将输入的自然语言编码成密集向量,可以使用预训练好的词向量,也可以直接在训练textcnn的过程中训练出一套词向量,不过前者比后者快100倍不止。如果使用预训练好的词向量,又分为static方法和no-static方法,前者是指在训练textcnn过程中不再调节词向量的参数,后者在训练过程中调节词向量的参数,所以,后者的结果比前者要好。更为一般的做法是:不要在每一个批次都调节嵌入层,而是每个100个批次调节一次,这样不仅可以减少训练的时间,还可以微调词向量。(2)卷积层:这一层主要是通过卷积,提取特征。输入的语句或者文本,通过嵌入层后,会转变成一个二维矩阵,假设文本的长度为|t|,词向量的大小为|d|,则该二维矩阵的大小为|t|x|d|,接下的卷积工作就是对这一个|t|x|d|的二维矩阵进行的。卷积核的大小一般设定为n*|d|,n是卷积核的长度,|d|是卷积核的宽度,这个宽度和词向量的维度是相同的,也就是卷积只是沿着文本序列进行的,n可以有多种选择,比如2、3、4、5等。对于一个|t|x|d|的文本,如果选择卷积核的大小为n*|d|,则卷积后得到的结果是|t-n+1|x1的一个向量。在textcnn模型中,需要同时使用多个不同类型的卷积核,同时每种大小的卷积核又可以有多个。(3)最大池化层:对卷积后得到的若干个一维向量取最大值,然后拼接在一块,作为本层的输出值。如果卷积核的大小为2,3,4,5,每种大小的卷积核都有128个,那么经过卷积层后会得到4x128个一维的向量再经过最大池化之后,会得到4x128个值,拼接在一块,得到最终的结构—512x1的向量。最大池化层的意义在于对卷积层提取的特征,提取激活程度最大的特征。(4)全连接层:在池化层后再拼接一层,作为输出结果。实际中为了提高网络的学习能力,可以拼接多个全连接层。

步骤8)利用得到的最终的分类模型,对报刊出版物的文本数据进行分类。

使用朴素贝叶斯算法以及支持向量机算法对报刊文本进行分类,对比三者的准确率、召回率、f1值(f1值是准确率和召回率的综合指标)以及分类时间,其结构如表1所示。

表1

本发明还提供了采用上述方法的报刊出版物分类系统,包括预处理模块、建模模块和分类模块。

所述预处理模块用于对用于训练的报刊文本数据进行预处理,并将分词及编码后的文本数据传输给模型训练模块。

所述建模模块用于基于textcnn模型,在词嵌入层对文本数据中已编码的词语进行向量化,在卷积层对词嵌入层进行卷积操作,在池化层对卷积得到的结果进行最大池化,在全连接层对卷积得到的特征向量进行全连接操作,通过多次训练和测试,得到最终的分类模型。

所述分类模块用于接收待分类的报刊出版物的文本数据,调用建模模块的分类模型进行分类,然后输出分类结果。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1