基于FastText的新闻文本多分类研究
来源:用户上传
作者:
摘 要:在迅速增加的海量数据中,文本形式的数据占很大比重。文本分类作为最常见的文本挖掘技术,可在大量杂乱的文本数据中发现有价值的信息,具有重要意义。文本分类面临的首要问题是如何在确保分类准确率的同时缩短分类时间。提出使用分类模型FastText学习单词特征以解决该问题,同时在数据集上使用停用词处理方法降低噪声数据对分类模型的影响。实验结果表明,使用FastText文本分类模型在数据集上准确率达到96.11%,比传统模型提高近4%,且模型处理每条文本的平均时间为1.5ms,缩短了约1/3。
关键词:文本分类;词向量;FastText;停用词;噪声数据
DOI:10. 11907/rjdk. 192499
中图分类号:TP301 文献标识码:A 文章编号:1672-7800(2020)003-0044-04
Research on News Text Classification Based on FastText
ZHANG Chao-chao, LU Xin-ming
(College of Computer Science and Engineering, Shandong University of Science and Technology,Qingdao 266590,China)
Abstract: With the rapid increase of the amount of data, textual data accounts for a large proportion. Text classification, as the most common text mining technology, is of great significance for finding valuable information in a large amount of messy text data. In the field of text classification, the primary goal is to reduce the classification time while ensuring the classification accuracy. Therefore, this paper uses the classification model FastText to learn the word features to solve the current problem. In addition, a stop word processing method is used to reduce the influence of noise data on the classification model. The experimental results show that the accuracy rate of FastText text classification model is 96.11%, which is nearly 4% higher than the traditional model. Furthermore the time spent by the model in processing each text was 1.5m/s on average, which was reduced by about 1/3.
Key Words: text classification; term vectors; FastText; stop words; noise data
0 引言
文本分類最初使用基于特定规则[1]的方法。先收集关于待分类文本领域内专家知识和经验,将其组织成一系列分类规则[2],然后根据这些分类规则进行文本分类。文献[3]使用基于降噪自动编码器的中文文本分类方法;文献[4]提出一种基于维基百科的文本分类规则。虽然这些分类方法处理特定领域的文本有很好的效果,但概括分类领域所有知识并制定相关分类规则需消耗大量人力成本,所以该类方法适用性较差。此外,当文本无法依照现有规则进行分类时,需重新获取文本并归纳规则再进行分类,因此该类方法泛化性也较差。相比而言,本文FastText模型无需较多人工训练模型,仅对训练数据集作简单的预处理后即可放入模型进行训练,且在新分类任务出现时,模型只需更新迭代训练之后即可完成新任务,大幅降低了人力、物力成本。
随着人工智能的飞速发展,机器学习算法在文本分类中的应用成为自然语言处理研究热点。文献[5]提出将Word2vec应用于文本分类研究;文献[6]采用LDA与SVM算法结合的文本分类。这些方法将文本数据改为以向量的形式输入,所有数据被分为一定比例的训练集和测试集,利用分类模型进行训练和测试,并将模型分类结果与原有类别对比作为分类算法效果的证明。目前已有多种机器学习算法应用于文本分类。赵刚等[7]在基于机器学习的商品评论情感分析模型研究中,通过集群技术删除数据集中的正面例子以得到更多负面例子,使用改进的词频率逆文档频率(tf-idf)进行特征提取,与支持向量机相结合改进Rocchio分类器构建,以提高分类准确性。但是这类方法大都忽略了词与词之间的句法形态,导致最终分类效果只能在90%左右。本文FastText模型通过学习单词特征,关联上下文单词词义并将其作为分类结果,使词频不同但相互之间有所联系的单词在分类任务中发挥一定作用。 随着计算性能的提高,神经网络也不再局限于浅层网络。深度学习[8]算法被广泛应用于文本分类。Kim等 [9]在2014年提出TextCNN模型。该模型是一种利用深度学习的文本分类方法,在文本分类时,使用卷积神经网络通过多个不同大小的核提取句中关键信息,从而更好地获取局部文本相关性;徐戈等[10]提出了TextRNN方法,并将其应用在文本分类上。递归神经网络可更好地表达上下文信息,构建有效的长期记忆机制,由此可直观看出每个单词对结果的影响。为提高文本可解释性,注意力机制的引入成为文本分类研究热点。目前许多深度学习模型在文本分类中取得了较好的成果,但因训练和测试较慢限制了应用。Facebook在2016年开源了快速文本分类算法FastText,该算法使用N-gram[11]考虑文本词序,同时按照层次Softmax结构提高训练速度,使FastText分类模型分类准确率和训练速度得以提高。
1 FastText模型
如何帮助用户从大量杂乱的网络信息中获取有效信息十分重要。文本分类不仅可有效地管理和筛选信息[12],而且在网络搜索、信息检索和排序、自动摘要、垃圾邮件过滤、文档分类等方面发挥着重要作用。同时,与自然语言处理相关的人机通信和人工智能与文本分类技术密不可分。文本分类有两个基本步骤:①用数据训练并优化模型;②输入待分类的数据,输出对应的分类结果。分类结果准确性反映分类器分类精度。在此之前,文本需被表达并转换成可被现有分类算法处理的形式。
目前大多数文本分类方法因数据量过大、使用资源限制等原因导致训练速度较慢,很难满足高速处理信息的要求。因此,迫切需要设计一种既能满足文本分类精度又能缩短分类时间的新方法[13]。标准线性分类器由于其模型简单、文本信息表示能力差,不适用于复杂的文本分类。如果选择适当的特征表示文本,分类器不仅可确保分类效果[14],还可明显缩短训练时间。实验数据显示,FastText在标准多核CPU下,1分钟可训练至少1亿个单词,对50万个句子进行分类。使用N-gram模型可缩小线性模型与深度模型[15]之间的精度差距,达到与其它模型相当的准确度,并且比深度学习分类器更快地进行训练和评估。
目前,FastText已被有效地应用于英语标签预测和情感分析[16],其效果和性能均较理想。然而,FastText是否可应用于中文文本多分类还有待验证。本文将FastText应用在中文文本多分类上,并与其它文本分类方法进行对比,从分类精度与分类时间两个方面分析FastText应用效果。
2 FastText模型原理与结构
2.1 模型原理
FastText模型是通过学习单词特征进行文本分类的工具。FastText结构可简化为一个隐含层,如图1所示。它将平均单词表示作为文本表示,提供给一个线性分类器。该结构类似于Word2vec中的CBOW[17]架构,相同点是两者输入是上下文单词,不同在于CBOW输出的是中间词,而FastText输出的是文本类别。FastText是以单词序列作为输入,经过隐藏层处理后使用Softmax函数计算每个类别的概率分布,并将其作为输出,最后使用随机梯度下降方法更新损失函数,使用反向传播更新权重参数,以达到模型迭代优化。
每个句子经过预处理后得到对应的词向量,所有词向量通过隐藏层[18]得到平均值,根据平均值计算每个类别概率分布,选择最大值对应类别作为结果,然后通过随机梯度下降更新损失函数后,反向传播更新模型参数[W0],最后得到对应的输出类别output。
2.2 模型结构
FastText模型使用n-gram的方法获取局部词向量特征,该方法能够充分考虑所有词的全局顺序。同时,开源的 FastText 工具使用哈希技巧额外增加了很多包含n-gram 特征的词进行快速映射存储。FastText输出层包括3种结构:负采样[19]、层次Softmax和Softmax。
采用负采样的目的是为了解决不同词频概率不平衡问题,每次训练时均增加少量随机负样本对应选择的正样本,负样本与正样本一起更新部分权重,减少梯度下降过程中的计算量。
为提高多分类训练速度,基于霍夫曼编码树的思想[20],通过类别统计建立层次Softmax函数。在测试时,层次 Softmax对于寻找最有可能的类也具有优势。树中每个节点对应从根节点到该节点的概率。每个节点对应概率如式(1)所示。
对树进行深度优先搜索与叶节点间最大概率搜索,丢弃概率较小的枝干。在实际测试中,复杂度明显降低。
Softmax 回归又被称作多项逻辑回归,逻辑回归用于解决二分类问题,而逻辑回归的表达式是在Softmax回归中类别为2时的表达式。所以,在处理多分类问题时可使用Softmax回归,假如训练集{[xi]|[yi]},其中[yi]∈(1,2,…,k)。X表示模型输入值,即每一条文本预处理后的向量值;Y表示模型输出值,是一个K维向量,里面每一维的值代表了输入X对应每个类别的概率。Softmax回归函数如式(2)所示。
代价函数如式(3)所示。
其中[l{y(i)=k}]是指示函数,[l{ture}=1],[l{false}=0]。
在普通的Softmax回归中,需对所有K个概率作归一化处理之后才可计算P(y = j),即当y=j 时的概率,这样在多分类时,若|y|很大,则模型复杂度会很高。但是如果从根节点到某一节点一条路径上节点概率与其它路径上节点概率相互独立,在计算P(y = j)时,若只需得到从根节点到该节点这一条路径上节点概率,复杂度将大幅降低,所以利用層级结构取代之前扁平化结构计算的分层 Softmax方法被提出。分层Softmax 结构如图2所示。
可以看出分层Softmax是根据所有类别的频率构造的层级结构。所有叶子节点代表了K个不同类别,[L(yj)]表示从根节点到叶子节点的路径长度。[P(yi)]如式(4)所示。 其中σ(?)表示 Sigmoid 函数[4],LC(n)表示 n 节点的左孩子,[x]是一个特殊函数,其定义如式(5)所示。
[θn(yj,l)]为节点[n(yj,l)]的参数。X是输入。从根节点到[y2]的路径长度为[L(y2)=4]。这样在经过分层Softmax处理之后,模型计算复杂度从[O(k)]降低至[O(log(k))],资源耗费大幅降低。
3 实验与分析
3.1 实验数据
本文数据集包括来自搜狗新闻的50 000条训练集与10 000条测试集,分别有体育、财经、房产、家居、教育、科技、时尚、时政、游戏和娱乐10个类别。
因为新闻数据集为中文文本,分词工具为Python中jieba分词工具,jieba分詞有3种模式,本文根据实际文本序列长度,采用其中的精确模式,jieba分词前后文本样例如图3所示。
为降低文本分类器计算复杂度、提高分类器分类效率,需在将文本语料转化为特征向量前对文本作降维处理,方法为去掉文本中对分类没有意义的停用词和低频词,同时去掉文本中的表情、网址、特殊符号,以减小特征词典大小,减少噪音数据对分类模型的影响。
3.2 实验结果
由图4、图5可知,分类器在测试集上的测试结果比较理想,精确率为96.11%,阈值为60%时,精确率为 0.985 2%,召回率为0.966 1%,F1分数为0.975 6%。本文数据集文本质量相对较好,所以训练后的分类器在测试集上的表现比较好,测试集每条文本对应的测试label打分均相对较高。
4 结语
本文首先简要介绍了常用文本分类方法,然后阐述了文本分类理论与技术。根据新闻文本特点,在新闻文本预处理过程中,将地点名词加入到常用停用词表中,去除了更多对文本表达无意义的词,分类效果得以改进。通过实验数据综合对比,可以观察到本文提出的FastText算法模型与传统机器学习算法相比,在训练速度、预测速度和准确率上均有明显提升,证明本文模型具有较高的使用价值。
参考文献:
[1]段旭磊,张仰森,孙祎卓. 微博文本的句向量表示及相似度计算方法研究[J]. 计算机工程,2017, 43(5): 143-148.
[2]范云杰,刘怀亮. 基于维基百科的中文短文本分类研究[J]. 现代图书情报技术,2012(3):47-52.
[3]刘红光,马双刚,刘桂锋. 基于降噪自动编码器的中文新闻文本分类方法研究[J]. 现代图书情报技术, 2016(6): 12-19.
[4]赵辉,刘怀亮. 一种基于维基百科的中文短文本分类算法[J]. 图书情报工作,2013,57(11): 120-124.
[5]张谦,高章敏,刘嘉勇. 基于Word2vec的微博短文本分类研究[J]. 信息网络安全, 2017(1): 57-62.
[6]宋钰婷,徐德华. 基于LDA和SVM 的中文文本分类研究[J]. 现代计算机(专业版),2016(5): 18-23.
[7]赵刚,徐赞. 基于机器学习的商品评论情感分析模型研究[J]. 信息安全研究, 2017, 3(2): 166-170.
[8]金志刚,韩玥,朱琦. 一种结合深度学习和集成学习的情感分析模型[J]. 哈尔滨工业大学学报,2018, 50(11): 32-39.
[9]梁喜涛,顾磊. 中文分词与词性标注研究[J]. 计算机技术与发展,2015,25(2):175-180.
[10]徐戈,王厚峰. 自然语言处理中主题模型的发展[J]. 计算机学报,2011,34(8):1423-1436.
[11]刘德喜,聂建云,张晶,等. 中文微博情感词提取:N-Gram为特征的分类方法[J]. 中文信息学报, 2016, 30(4): 193-205, 212.
[12]万红新,彭云,郑睿颖. 时序化LDA的舆情文本动态主题提取[J]. 计算机与现代化, 2016(7): 91-94.
[13]李鹏,于岩,李英乐,等. 基于权重微博链的改进LDA微博主题模型[J]. 计算机应用研究,2016, 33(7):2018-2021.
[14]KORDE V,MAHENDER C N. Text classification and classifiers: a survey[J]. International Journal of Artificial Intelligence & Applications (IJAIA), 2012,3(2):86-99.
[15]CARPENTER B. Integrating out multinomial parameters in latent Dirichlet allocation and naive Bayes for collapsed Gibbs sampling[R]. ALIAS:2010.
[16]GOUDJIL M, KOUDIL M, BEDDA M, et al. A novel active learning method using SVM for text classification[J]. International Journal of Automation & Computing, 2015(1): 1-9.
[17]TONG S,KOLLER D. Support vector machine active learning with applications to text classification[J]. Journal of Machine Learning Research,2001,2(11):45-66.
[18]BAHASSINE S, MADANI A, KISSI M. An improved Chi-sqaure feature selection for Arabic text classification using decision tree[C]. International Conference on Intelligent Systems: Theories and Applications,2016: 2378-2536.
[19]SCHAPIRE R E,SINGER Y. Machine learning[M]. Cambridge:MIT Press,2000.
[20]MARUF S, JAVED K, BABRI H A. Improving text classification performance with random forests-based feature selection[J]. Arabian Journal for Science & Engineering, 2016, 41(3): 951-964.
(责任编辑:江 艳)
收稿日期:2019-11-14
基金项目:国家重点研发计划项目(2017YFC0804406);山东省重点研发计划项目(2016ZDJS02A05)
作者简介:张超超(1994-),男,山东科技大学计算机科学与工程学院硕士研究生,研究方向为自然语言处理;卢新明(1961-),男,博士,山东科技大学计算机科学与工程学院教授、博士生导师,研究方向为数字矿山软件、CAD、计算机图形学。
转载注明来源:https://www.xzbu.com/8/view-15217392.htm