陈慧 田大钢 冯成刚
摘 要:为弥补目前国内学者只做单一算法研究且语料单一的缺陷,使用Word2vec词向量模型结合支持向量机(SVM)、卷积神经网络(CNN)和长短期记忆网络(LSTM)3种不同分类算法,研究了不同中文文本分类问题,包括微博语料的多维细粒度情感分类、酒店评价的倾向性分析和新闻文本的主题分类。将3种分类模型在不同文本中的分类效果进行对比,结果显示这3种算法对于不同的中文分类效果各有不同:不同维度的词向量对准确率等评价指标影响很大;支持向量机模型更适合于细粒度的微博情感分类;卷积神经网络、长短期记忆网络算法更适合于噪声小、文本长且规范的新闻主题分类任务。分类粒度会对算法准确性产生影响,粒度越细、任务越复杂,算法准确性越低。
关键词:文本分类;Word2vec;支持向量机;卷积神经网络;长短期记忆网络
DOI:10. 11907/rjdk. 182489
中图分类号:TP3-0 文献标识码:A 文章编号:1672-7800(2019)005-0073-06
Abstract:In order to make up for the shortcomings of a single algorithm and a single corpus, this paper uses Word2vec combined with support vector machine (SVM), convolutional neural network (CNN) and long short-term memory (LSTM) to study the classification of different Chinese text, including multi-dimensional fine-grained emotional classification of micro-blog corpus, tendentiousness analysis of hotel evaluation and thematic classification of news text. Finally, the classification effects of the three classification models in different texts are compared. The results show that word vectors of different dimensions have significant effects on accuracy and other evaluation indicators; support vector machine model is more suitable for fine grained micro-blog sentiment classification; convolutional neural network and long short-term memory are more suitable for news topic classification tasks with low noise, long text and standard; classification granularity will also affect the accuracy of the algorithm, including the finer granularity, the more complex task, the lower the accuracy of the algorithm.
Key Words:text classification;Word2vec;SVM;CNN;LSTM
0 引言
隨着互联网技术的发展,网络逐渐成为人们获取信息的重要途径。但正因为网上信息的爆炸式增长,用户想要从海量信息中高效且准确地获取需要的信息反而变得更加困难。如何从这些浩瀚的文本中抽取出有价值的信息成为研究热点。文本分类利用自然语言处理、数据挖掘和机器学习等技术,有效地对不同类型的文本进行自动分类,发现其中的规律[1]。文本分类是文本挖掘的重要组成部分,其主要任务是将给定的文本集合划分到已知的一个或多个类别集合中[2],例如将新闻文本根据主题分配到其所属的频道,将产品评论文本根据情感倾向分为积极和消极两部分。
目前,文本分类任务已应用到许多领域,如情感分析(Sentiment Analysis)、主题分类(Topic Classification)、垃圾邮件检测(Spam Detection)等[3]。文本分类的核心问题是文本表示和分类模型。在自然语言处理和文本分析问题中,词袋(Bag of Words)和词向量(Word Embedding)是两种最常用的模型。传统的文本表示利用词袋模型将词无序地表示到一个高维的向量空间模型中,这种做法抛弃了原文本中的语法和词序等结构信息。Google[4]发布的一款Word2vec工具,将词表示为K维实数向量,使用向量空间上的相似度表示文本语义上的相似度。
目前,文本分类研究主要是基于机器学习的方法[5],且主要研究同一算法在相同语料下的分类效果。唐晓波等[6]提出的一种基于旋进原则的回归SVM情感分类模型,魏勇[7]提出一种结合关联语义和卷积神经网络(CNN)的文本分类方法等,均只研究了单一算法对文本分类的效果;赵明等[8]比较了SVM、CNN和LSTM模型对饮食健康文本的分类效果,只针对饮食健康文本分类,语料单一,结论不具有普适性。本文使用支持向量机(SVM)、卷积神经网络(CNN)和长短期记忆网络(LSTM)3种算法研究不同的中文文本分类问题,包括微博语料多维细粒度的情感分类,酒店评价的倾向性分析和新闻文本的主题分类,弥补了只做单一算法研究且语料单一的缺陷。笔者首先通过 Word2vec 模型将不同中文文本训练成词向量,然后将训练成的词向量分别输入到支持向量机模型(SVM)和长短期记忆网络(LSTM)、卷积神经网络(CNN)中,3种模型通过学习得到词向量中隐藏的分类信息并给出文本分类结果,对3种模型在不同中文文本中的分类效果进行对比。
1 文本分类技术
1.1 文本分类过程
文本分类(Text Categorization)指将未标明类别的文本分类到各自对应的类别中。基本步骤如下:①确定分类类别,即文本共分为哪几类;②对文本作清洗、分词等准备工作,并将人工分类过的文本作为训练集;③确定文本表示方法;④应用具体分类模型训练文本分类器;⑤评价分类器性能并进行文本分类。本文文本分析流程如图1所示。
1.2 文本表示技术
文本分类的核心问题之一是文本表示。Zhang等[9]利用One-hot把文本表示为向量,即将单词看作一个原子符号,这种表示方式容易造成维度灾难且不能展示词语之间的语义关系。Paccanaro等[10]提出了Distributed representation概念,统称为词向量(Word embedding)。该方法将词语表示成一个定长连续的稠密向量,使用词语之间的“距离”概念表示词语的语义关系。
本文采用Word2vec工具中的CBOW模型,将中心词窗口大小k内的词作为上下文,求中心词出现的概率。使用长度[m=2k]定义上下文长度,系统输入为m个上下文单词,用[w1,w2,?wm]表示。用[w]表示目标(输出)单词,将[w]可以看作d维向量,其中d是字典长度,模型的目的就是计算概率[P(w|w1,w2,?wm)]并使这些结果在训练集上达到最大。由图2可知模型包含输入层、隐藏层和输出层。输入层有[m×d]个节点,输入m个上下文单词的d维one-hot向量,one-hot向量的分量只有一个为1,其余全为0,1所对应的位置就是该词在字典中的索引。因此,可用对应于上下文位置和单词索引表示一个输入[xij]。具体就是输入[xij∈{0,1}]包含两个索引i和j,其中[i∈{1,2,?,m}]表示上下文位置,[j∈{1,2,?d}]是单词标识符。隐藏层有p个节点,则Word2vec词向量的维度即为p。用[h1,h2,?hp]表示隐藏节点的输出。经多次试验发现,在p为300时效果达到最优。输入层和隐藏层通过[d×p]的共享权重矩阵u连接,其中[ujq]表示字典中第j个單词到第q个隐层节点的连接。
3.2 实验设计
如图4所示,首先从网络上下载和爬取NLPCC2017微博数据集、谭松波教授收集整理的酒店评价情感语料和搜狐新闻数据,然后对原始数据进行降噪清洗,并对剩余数据进行分词处理。分词后的数据输入到Word2vec工具中进行训练,输出的词向量构成训练集和测试集数据。本文选取支持向量机模型(SVM)、长短期记忆网络模型(LSTM)和卷积神经网络模型(CNN)对数据进行训练与测试。最后根据精度(Precision)、召回率(Recall)和F1值分别判定这3种算法的分类效果。本研究所有实验均使用Python语言实现。
3.3 数据来源与清洗
本文数据来源:①微博数据来源于第六届自然语言处理与中文计算会议(NLPCC2017)中的微博语料数据集,该语料主要用于识别整条微博所表达的情绪,不同于简单的褒贬分类,它将情感分为喜、怒、哀、乐、恶5个细粒度情绪类别,属于细粒度的情感分类问题。经过删除重复语料、小于12字符的语句和空语句等数据清洗、降噪工作,最后选择30 294条语料,并按4∶1比例分为训练集和测试集;②酒店评价语料来源于谭松波教授搜集整理的酒店评价情感语料。该语料主要用于识别评价中所表达的情绪是积极还是消极的,属于二分类问题。经过语料清洗降噪,最后选择10 000条语料,按4∶1分为训练集和测试集;③新闻语料来源于搜狐新闻数据(SogouCS)。搜狗新闻数据没有直接提供分类,需要通过新闻来源网址的URL查询其对应分类。由于新闻分布不均,所以需要去除新闻数量较少的类别,最后选取汽车、财经、IT、健康、体育、旅游、教育、军事、文化、娱乐、时尚11个类,每个类分别抽取2 000条新闻。考虑到新闻标题意义重大,将新闻标题和新闻内容连接到一起,然后截取每条新闻前 100个字作为一条语料,将所有语料按4∶1分成训练集与测试集。
3.4 预训练词向量
中文文本和英文文本在语法和分词处理时具有较大差异,中文文本需要经历一个分词过程,即把连续的文字分成单独的词汇,而英文文本只需通过空格和标点便可将独立的词从原文中分离出来。因此,首先将各中文语料用jieba分词工具进行分词处理,然后使用Word2vec工具训练词向量库,训练参数设置如表1所示,Word2vec工具包括CBOW和Skip-Gram模型。试验表明:3种语料中CBOW模型训练效果较好。因此,本文采用CBOW模型进行词向量训练,即根据已知中心词的上下文预测该词出现的概率,同时本实验设置丢弃词频少于3的单词不训练。上下文窗口设置为5,即当前词与预测词在一个句子中的最大距离是5。高频词汇的随机降采样配置阈值为1e-3。
试验结果表明,不同维度的词向量对准确率影响效果很大。在词向量维度增加过程中,词向量包含的语义和语法特征信息越来越多,各算法在语料中的分类准确率、召回率和F1值3个指标都出现递增趋势。以SVM算法微博语料分类为例,从图5可以看出,当词向量从50维变化到300维时,准确率、召回率、F1三个指标均增加10%以上。但随着词向量维度增加到400维、500维时,训练难度和时间越来越大,准确率等评价指标却增加缓慢,因此本实验采用300维训练语料的词向量。
3.5 实验结果及分析
将微博语料、酒店评价语料和新闻文本语料训练成的词向量分别输入到支持向量机(SVM)、卷积神经网络(CNN)和长短期记忆网络(LSTM)中,分别通过3种模型学习得到词向量中隐藏的情感信息并给出情感分类结果,如表2所示。
根据实验结果统计模型的准确率、召回率等模型性能评估指标,得出如下结论:
(1)支持向量机模型(SVM)更适合于细粒度的微博情感分类。图6、图7给出了词向量为300维时各分类模型对微博语料和酒店评价的分类结果。由图可知:①在微博情感细分类任务和酒店评价二分类任务中,卷积神经网络(CNN)和长短期记忆网络(LSTM)的分类效果不如支持向量机(SVM)。在微博语料情感多分类任务中,由于微博语料噪声大、文本短、口语化严重等原因,卷积神经网络的卷积效果较差,长短期记忆网络储存远距离信息的优势发挥不明显,导致分类效果不理想,准确率等评价指标远低于SVM模型;②在酒店评价倾向性二分类任务中,虽然酒店评价和微博语料一样具有噪声大、口语化严重的特点,但由于是简单的二分类问题,复杂程度不高,CNN和LSTM的分类效果只是略低于SVM模型。由此可见,支持向量机模型(SVM)更适合于细粒度的微博情感分类。
(2)分类粒度会对算法的准确性产生影响。对比图4、图5可以看出:粒度越细、任务越复杂,算法的准确性会越低。因此,酒店评价二分类任务的准确性远高于多维细粒度的微博情感分析。原因有两点:①在二分类问题中,积极和消极情感区分度较大,而在细粒度情感分析中,有些情感粒度之间区别度并不是很高。例如,本微博细粒度情感细分为喜、怒、哀、乐、恶5维粒度,其中喜与乐、怒与恶这类情感彼此之间会有情感交叉,区分度不是很高;②一条语料往往不只包含一种情感,大多数文本会包含几种情感,给微博文本情感分析造成了难度。
(3)卷积神经网络(CNN)、长短期记忆网络(LSTM)更适合于噪声小、文本較长且规范的新闻主题分类任务。图8给出了词向量为300维时各分类模型对新闻主题分类的评价结果。实验结果表明:新闻主题多分类任务中,3种分类模型都达到了良好的分类效果,分类准确率都在82%以上。其中,CNN和LSTM的分类效果最优,均达到了85%以上,具体原因如下:不同于微博语料和酒店评价语料的噪声大、文本短、口语化严重,新闻语料具有噪声小、文本长、用词规范的特点。与SVM模型相比,LSTM 能够存储远距离信息,CNN 能够提取不同维度的特征,这些功能能够更好地挖掘出新闻语料词向量中隐藏的分类信息。而SVM模型在挖掘词向量中隐藏的分类信息时,损失了词与词之间的语义信息,这是在新闻主题分类任务中SVM模型性能不如CNN和LSTM模型的主要原因。
4 结语
本文使用Word2vec词向量工具和多种算法结合,研究了不同中文文本分类问题,包括微博语料的多维细粒度情感分类、酒店评价的倾向性分析和新闻文本的主题分类。将支持向量机模型(SVM)、卷积神经网络(CNN)和长短期记忆网络(LSTM)3种算法在各领域文本中的分类效果进行了对比。研究表明:①不同维度的词向量对正确率影响效果显著,当词向量从50维变化到300维时,准确率、召回率、F1三个指标均增加10%以上;②支持向量机模型(SVM)除燥能力更强,更适合于细粒度的微博情感分类;③卷积神经网络(CNN)和长短期记忆网络(LSTM)更适合于噪声小、文本规范的新闻主题分类任务;④分类粒度会对算法的准确性产生影响。粒度越细,任务越复杂,算法的准确性会越低。今后的工作是改进Word2vec词向量模型,使其在分类效果上得到进一步提升,以及改进机器学习算法,使其对不同领域的文本分类具有普适性。
参考文献:
[1] RIVERO L. Encyclopedia of database technologies and applications[M]. IGI Publishing, 2005.
[2] 张彪. 文本分类中特征选择算法的分析与研究[D]. 合肥:中国科学技术大学, 2010.
[3] 刘婷婷,朱文东,刘广一. 基于深度学习的文本分类研究进展[J]. 电力信息与通信技术, 2018(3):59-63.
[4] 唐晓丽,白宇,张桂平,等. 一种面向聚类的文本建模方法[J]. 山西大学学报:自然科学版, 2014, 37(4):595-600.
[5] PIAO S,WHITTLE J. A feasibility study on extracting twitter users' interests using NLP tools for serendipitous connections[C].IEEE Third International Conference on Privacy, Security, Risk and Trust. IEEE, 2012:910-915.
[6] 唐晓波,严承希. 基于旋进原则和支持向量机的文本情感分析研究[J]. 情报理论与实践,2013,36(1):98-103.
[7] 魏勇. 关联语义结合卷积神经网络的文本分类方法[J]. 控制工程,2018(2):167-172.
[8] 赵明,杜会芳,董翠翠,等. 基于Word2vec和LSTM的饮食健康文本分类研究[J]. 农业机械学报, 2017, 48(10):202-208.
[9] ZHANG W,TANG X,YOSHIDA T. Text classification with support vector machine and back propagation neural network[M].Computational Science-ICCS 2007. Springer Berlin Heidelberg,2007:150-157.
[10] PACCANARO A,HINTON G E. Learning distributed representations of concepts using linear relational embedding[J]. IEEE Transactions on Knowledge & Data Engineering, 2002, 13(2):232-244.
[11] 何跃,邓唯茹,张丹. 中文微博的情绪识别与分类研究[J]. 情报杂志,2014(2):136-139.
[12] 刘勇,全廷伟. 基于DAG-SVMS的SVM多分类方法[J]. 统计与决策,2007(20):146-148.
[13] SANTOS C N D,GATTIT M. Deep convolutional neural networks for sentiment analysis of short texts[C].International Conference on Computational Linguistics,2014.
[14] KIM Y. Convolutional neural networks for sentence classification[J]. Eprint Arxiv, 2014(5):215-219.
[15] ELMAN J L. Finding structure in time[J]. Cognitive science,1990,14(2):179-211.
[16] HOCHREITER S,SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8):1735-1780.
(责任编辑:杜能钢)