江泽裔 吴志刚
摘 要:文本分类一直是自然语言处理中一个备受关注的问题,在邮件分类、文件检索、用户情感识别等领域有着广阔的应用。同时人工智能飞速发展,卷积神经网络在图像识别领域取得了巨大的成功,本文则在传统方法基础上,将卷积神经网络应用在中文短文本分类任务中。与英文文本不同,中文文本文字连贯、搭配丰富,从而存在着文本的特征维度高,特征稀疏等问题。本文将卷积神经网络和Word2vec的Skip-gram方法结合,应用在短文本分类中。首先利用Skip-gram得到文本的词向量表示,然后用卷积神经网络从向量化的文本中提取特征,在用这些提取出来的特征进行文本分类。实验结果与传统机器学习方法相比较,获得了更高的准确性,验证了卷积神经网络在短文本分类中的有效性。
关键词:卷积神经网 络文本分类 机器学习
中图分类号:TP391.4 文献标识码:A 文章编号:1672-3791(2018)05(a)-0013-03
随着信息技术的普及以及存储介质的发展,人们所接触的文本信息正在呈指数级增长,在整理、筛选和处理文本信息耗费的时间和精力也越来越多。智能的文本分类算法在快速整理海量文件库,提高筛选效率等工作中有着重要意义。
针对文本分类的课题,国内外学者都有广泛的研究。传统的文本分类方法有向量空间法、K-最近邻、决策树、支持向量机等方法[1]。这些方法在文本分类中取得了不错的效果,但是在表示短文本时会出现特征向量维度过高和数据稀疏的问题,同时这些特征值不能够保存词语的语法信息和相关的语义信息。针对这个问题,H.Saif,et al提出了SentiCircles的方法动态的更新字典中词汇的权值,从而表达文本的含义[2]。Agarwal,et al提出了通过自然语言的语法形式等手段来进行特征提取[3]。这些方法虽然能够提取更多的特征信息,但是这些条件同时也限制了特征提取的泛化能力[4]。
同时,深度学习的蓬勃发展,在图像识别,语音识别等领域的成功应用,使得其很多的理论基础和先进技术自然的被引用在自然语言处理的领域。
Yoon Kim使用了含有一个卷积层的卷积神经网络对英文断句进行分类,对比了随机初始化、预训练词向量、静态输入矩阵和动态输入矩阵等不同的方法,并得出静态输入矩阵的模型分类效果较好[5]。Kalchbrenner提出来一种名为动态卷积网络(DCNN)的模型,该模型采用了動态池化的方法,不需要先验知识的输入,也不需要人工提取特征[5]。Baotian Hu,et al则利用卷积神经网络则关注对英文短句的建模,通过设置一个最大句子长度,对相对较短的句子采用0填充的方式解决解决不同长度句子输入的问题[6]。
然而,传统方法通常关注文本的统计信息,忽略了词汇、句子之间的结构关系,同时,中文文本内容表达多样,蕴含意蕴深厚,语句结构信息是不可或缺的一部分。本文将采用一种基于卷积神经网络的方法,不仅仅包含文本词汇信息,还加入了词汇结构上的特征,应用于文本分类问题中,并取得了良好的实验结果。
1 文本分类的过程
文本分类是指将给定文本按其内容特点归到一个或多个预先定义的文本类别的过程,主要包括文本预处理,文本表示、特征选择、特征提取、分类器分类。
1.1 文本预处理
与英文不同,中文文本在预处理时,通常要完成两个步骤:首先对文本进行分词,将一整段文本分割成独立的词汇,另外中文短文本中含有较多维持文本结构的停用词,往往是“的”“地”“我们”等。这些词汇不仅不能反映文本的主旨,还会对提取关键词等操作产生较大的影响,因此需将其过滤。为了使得结果有意义,训练文本和测试文本需使用相同的预处理方法,即相同的分词方法,相同的删去停用词规则,以及相同的特征选择和文本表示方式[1,7]。
1.2 文本表示
对处理过的文本信息进行合理的建模,使得计算机能够高效的处理。通常建模方法有向量空间模型,布尔模型和概率模型等。向量空间模型是目前使用最广泛的一种文本表示方式。该模型通过构造一个多维度的向量空间,每一个维度表示特征集中的一个特征词,使得文本之间的相似度可以通过向量之间的相似度来计算。
1.3 特征选择和特征提取
短文本经过预处理之后,特征词的数量很多,直接利用这些特征词进行分类容易引起维度灾难等问题。同时,还有一部分的特征词在分类算法中的贡献较小,甚至会对分类结果产生更差的影响。通常会对预处理之后的特征集进行特选择或特征提取。
特征选择是在当前的特征集中,选择有利于算法分类的子集,而特征提取则将当前的特征集转化成另一种表现形式,是将原来的特征集变为更高层次更加抽象的集合。
常用的特征选择方法有信息增益(Information Gain)和互信息(Mutual Information)等。特征提取的方法则有隐性语义索引(LSI)以及潜在狄利克雷分配模型(LDA)等主题模型的方式。近年来卷积神经网络、Doc2vec模型等方法也有很大的发展,并获得很不错的结果。
经过特征选择或特征提取的后,最终得到短文本的词向量表示方式,再选择不同的分类算法对其进行分类处理[1]。
2 实验过程
为验证CNN在短文本数据集上的分类效果,本文对比了CNN、SVM和KNN这3种方法,并结合各个算法的特点分析了实验结果[8,9]。
2.1 数据预处理
本次实验选用的数据库是搜狐实验室中新闻类的文本数据,包括汽车、财经、IT等10个类别,共约10万篇文档。并使用jieba中文分词组件对文本进行分词,jieba中文分词组件还拥有词性标注功能,能够对语句分词后的每个词汇标注词性,这样就能根据词性删去大部分的停用词。以文本中财经类的一段文本为例:
原始文本:这家公司2005年年底注册用户达到400万,计划今年注册用户突破1000万,号称是国内最大的第三方网络支付平台。
分词结果:这家/公司/2005/年/年底/注册/用户/达到/400/万/,/计划/今年/注册/用户/突破/1000/万/,/号称/是/国内/最大/的/第三方/网络/支付/平台/。
去除停用词:这家公司注册用户达到计划注册用户突破号称国内最大网络支付平台分词完成之后,用Word2vec方法将字词转为计算机可以理解的稠密向量。Word2vec分为CBOW和Skip-Gram两种模式,由于本次实验的训练文本数量充足,Skip-gram模型的表现更佳,则将每个特征词通过Skip-gram模型得到一个维度为100的特征向量,使得文本信息能够被计算机所识别和计算
2.2 实验过程
本次研究中选择的卷积神经网络结构如图1所示,文本预处理完成生成的词向量,经由输入层输入到卷积层中,卷积层之后是一个池化层,最后通过全连接层输出结果。
Ye Zhang,et al基于Yoon Kim的研究结果,测试了不同结构,不同参数设置的神经网络在文本分类实验中的性能。通过对比实验,卷积核深度为100~200,同时词向量的维度在100~200,卷积核的大小为3×3,4×4,5×5时效果较好。本次试验中。模型在数据集上训练过程如图2所示。
从图2中可以看出,经过迭代训练,模型收敛情况良好,当迭代次数超过1000次时,模型分类精度在90%以上,超过5000次迭代后,模型精度达到95%。
实验设计了卷积神经网络方法与另外两种常用的分类方法对比,随机选取了汽车、财经和旅游3个领域的短文本进行测试。
從表1可以看出,不同方法在测试数据集上的表现差异较大,KNN方法在整体上逊色于SVM和CNN方法,同时SVM方法与CNN方法的效果大致相当,但CNN方法的总体表现略好于SVM方法。
3 结果分析
KNN通过测试短文本与训练库中的短文本相似度来进行分类的,与其附近K个短文本中相同类别最多的那些文本同类,这种方法存在着较大的弊端,首先不同领域的文本可能存在着较多的相似内容,比如,有关“自驾游”的文本可能存在着较多汽车的内容,但并非属于汽车类。
SVM的分类效果也很好,但由于CNN中还存在着文章词汇结构的信息,这些信息在分类过程中也有比较重要的作用,例如,开头结尾处的词汇往往是与文章主旨相关,因此卷积神经网络的性能会略胜一筹。
4 结语
本文实现了卷积神经网络在中文文本分类中的应用,并在中文短文本分类上取得了较好的效果。较之传统方法,该方法提高了分类精度,且自动的提取特征,不需要人为的设计,实现过程更加方便快捷。
但是该模型仍有需要改进的地方。神经网络模型通常存在着训练周期长,参数调整较难的情况,在保证模型分类精度的同时,引入其他算法以提高神经网络的训练效率将是之后研究的重中之重。
参考文献
[1] 朱磊.基于Word2vec词向量的文本分类研究[D].西南大学,2017.
[2] Saif H, He Y, Alani H. Semantic sentiment analysis of twitter[A]. International semantic web conference[C]. 2012:508-524.
[3] Agarwal A, Xie B, Vovsha I, et al. Sentiment analysis of twitter data[A]. Proceedings of the workshop on languages in social media[C].2011:30-38.
[4] Kouloumpis E,Wilson T,Moore JD.Twitter sentiment analysis: The good the bad and the omg[A]. International Conference on Weblogs & Social Media[C].2011:164.
[5] Kim Y. Convolutional neural networks for sentence classification[D].Cornell University,2014.
[6] Hu B,Lu Z,Li H,et al.Convolutional neural network architectures for matching natural language sentences[A].Advances in neural information processing systems[C].2014:2042-2050.
[7] 石志伟,刘涛,吴功宜.一种快速高效的文本分类方法[J].计算机工程与应用,2005(29):180-183.
[8] 平源.基于支持向量机的聚类及文本分类研究[D].北京邮电大学,2012.
[9] 殷亚博,杨文忠,杨慧婷,等.基于卷积神经网络和KNN的短文本分类算法研究[J].计算机工程,2017(5):1-6.