文本分类指的是在制定文本的类别体系下, 让计算机学会通过某种分类算法将待分类的内容完成分类的过程. 与文本分类有关的算法已经被应用到了网页分类、数字图书馆、新闻推荐等领域. 本文针对短文本分类任务的特点, 提出了基于多神经网络混合的短文本分类模型(Hybrid Short Text Classical Model Base on Multi-neural Networks). 通过对短文本内容的关键词提取进行重构文本特征, 并作为多神经网络模型的输入进行类别向量的融合, 从而兼顾了FastText模型和TextCNN模型的特点. 实验结果表明, 相对于目前流行的文本分类算法而言, 多神经网络混合的短本文分类模型在精确率、召回率和
Text classification refers to the process of letting a computer learn to complete the classification of content by some classification algorithm under the classification system of text. Algorithms related to text classification have been applied to web classification, digital libraries, news recommendation, and other fields. Based on the characteristics of short text classification tasks, this study proposes a hybrid short text classical model based on multi-neural networks. By reconstructing the text features of the keywords extracted from the short text content, and using the vector fusion as the input of the multi-neural network model, the characteristics of the FastText model and the TextCNN model are taken into account. The experimental results show that compared with the current popular text classification algorithms, the multi-neural network hybrid short text classification model shows more superior algorithm performance on multiple indicators such as accuracy, recall, and
在NLP领域中, 与文本分类算法相关的研究受到了越来越多的关注. 文本分类的目的是通过对文本信息的挖掘与处理, 来解决信息紊乱的问题, 从而能帮助用户更加精准地定位所需信息, 并可根据已定的类别集合将其判定为已知的某一类. 目前, 在新闻推荐、情感评价、邮件分类等领域受到广泛应用. 文本分类的特点在于能在文本数据量不明确和复杂的情况下, 根据预先确定的类别信息, 输出成有价值的信息.
随着machine learning和deep learning等研究方法的不断完善, 文本分类问题的解决路径也从先前的向量空间模型(VSM)逐步转移至机器学习和深度学习结合的方法上来[
但是目前的主要研究均集中在长文本和富文本上, 对于短文本的研究较少. 短文本相比较于长文本和富文本而言, 其所含的信息量较少, 无法采用统计学观点进行词向量分析, 传统的神经网络对短文本的分类效果较差, 尤其是对于标签值较少的短文本而言, 比如新闻标题分类、知识库分类等, 其词汇量往往不到50个, 而标签值默认只有一个(相互独立的分类标签)[
关于文本分类的模型主要分3大类: 基于概率统计、基于几何和基于统计, 如神经网络、贝叶斯方法、KNN、决策树(Decision Tree)、支持向量机(Support Vector Machines, SVM)等.
基于概率的文本模型的核心思想是, 假设待分类的文本是
朴素贝叶斯分类器(NaiveBayes)是一种较简单的分类算法, 它的思想基础是对于指定的待分类项, 求解出该项出现条件下, 类别出现的概率
其中,
首先计算文本
先验概率
其中,
概率
其中,
基于几何的模型方法是以向量空间模型为基本出发点, 把文本表示为多维的空间向量, 其为多维空间里的一个点. 构建一个拥有分类性质的超平面, 它能把划分出各个类别. 其中最经典的分类器是支持向量机, 而最简单的SVM本质上就是一个二分类器, 可以用来区分常见的正反例数据. SVM可以构建一个区分类别的
SVM中采用了结构风险最小原则, 这项原则的提出是以support vector为基础, 在多维空间里确定一个能把样本分成两个类别, 且具有最大边缘值, 达到最大化的分类精确度, 这样的超平面为最优超平面[
在NLP研究领域中, 基于统计学习的方法称为了主流, 其中最典型的就是
KNN算法的过程描述:
1) 计算测试用例和各个训练用例间的距离;
2) 对上述计算得出的距离进行排序;
3) 选择距离绝对值最小的
4) 计算这
5) 选择频率最高的类别作为该测试用例的类别.
从短文本中对关键词进行提取, 首先需要考虑到短文本与长文本的不同之处在于, 在短文本里每个关键词的频数较小, 传统的关键词提取模型如SKE、RAKE、LDA和TF-IDF等则需对大量文本采用统计学分析, 从而得到相应的词频向量. 所以在短文本中关键词的提取方法可以用TextRank进行处理.
TextRank模型时主要用于文本的排序算法, 它是基于图特征构建的, 并有Google的PageRank模型演化而来. 其主要思想就是构建一个特征图, 把文本里出现的词看作节点, 边与边连接, 并且节点和权重一一对应, 权重高的节点可以作为关键字[
TextRank的计算公式如下:
其中,
TextRank在短文本中关键词提取的算法如下:
1)将短文本
2)进行分词和处理词性标注, 将停用词等过滤掉, 只留下词性的部分词:
3)构建词图, 候选关键词构成节点集合
4)由TextRank公式, 进行迭代传播各个节点的权重值.
5)将权重倒序排列, Top
6)在上个步骤中获取
我们对关键词进行向量化处理, 并采用了相关性分析, 以此能够对以上产生的关键词特征向量重构. 首先在相关性分析方法的选择上, 采用斯皮尔曼相关系数(Spearman’s rank correlation coefficient), 又叫秩相关系数, 对变量间的秩次作分析, 对变量的分布不做规定, 是非参数统计方法. 与之类似的还有皮尔逊相关系数(Pearson correlation coefficient), 但相比之下, 斯皮尔曼相关系数拥有更广泛的适用范围, 并且更契合本文的目的, 因此我们用Spearman秩系数来分析统计特征间的相关性[
Spearman’s系数
Spearman相关系数的计算公式如下:
其中,
考虑到我们需对词向量中各个特征之间的相关性关系进行分析, 所以我们采用了Spearman’s的秩相关系数, 并且, 更进一步设置了各特征之间的系数阈值, 规定短文本数据新特征由系数小于阈值的统计特征决定.
本文实验中根据短文本的数据特征值进行关键词提取, 并创建相关的词向量, 采用Spearman相关系数进一步分析各个统计特征间的关联性, 最后, 我们基于相关性分析的结果组成新的词向量特征. 这种基于关键词提取算法创建短文本的特征空间, 可以生成低密度的文本向量, 对短文本的分类效果起到显著的影响.
在本次实验中, 我们提出了一种基于多神经网络混合的短文本分类模型[
FastText模型分为3方面: 模型架构、层次Softmax和
原始的FastText模型有输入层、隐藏层以及输出层, 我们的目的是想让其应用在短文本内容的分类任务上, 我们对该模型的输入层进行了改进, 添加了计算模型, 即先使用TextRank算法对短文本内容进行关键词提取处理, 然后计算关键词向量化间的相关系数, 这一步采用Spearman进行实现. 最后, 根据Spearman’s秩相关系数分析词向量内部各个特征之间的相关性, 并选取若干个特征向量作为输入. 这部分输入后续会经过
改进后的FastText模型架构图
在实际实验中, 由于
在这个过程中, 叶子节点表征着类别, 在构建非叶子节点时要选择左右分支, 若用逻辑回归表示概率, 如下式所示:
其中,
其中,
在TextCNN模型的中, 我们对其进行了改进[
首先, 我们将对输入进行卷积运算. 卷积是过滤器和输入之间的特殊运算, 可将其视为逐元素相乘的运算过程. 在模型中, 我们有
其次, 实验对模型的卷积运算输出max-pooling操作. 对于
第三, 我们将连接标量以形成最终特征. 它是一个固定大小的向量. 它与我们使用的过滤器的大小无关.
最后, 我们将使用线性层将这些特征投影到每个定义的标签上.
多模型神经网络框架的提出主要是根据分治原则用来解决复杂的问题. 前人主要利用它解决分类问题, 包括脸部的图像分类和非平衡问题. 它将原始集分为多个集合, 最后进行策略合并来输出分类的结果. 本文提出引入的多神经网络的目的与之类似, 主要采用不同类型的神经网络特点弥补单一类型神经网络的缺点.
改进后的TextCNN模型结构图如
改进后的TextCNN模型结构图
给定一个输入
在区域
式中,
在区域
我们假设了两种文本分类算法可以应用于不同的处理场景. 如上文所述, TextCNN和FastText都可以用来进行文本分类, 但解决的问题存在区别, TextCNN在短文本分类中较重视词向量, 作文本分析或者主题分析较合适, 但由于TextCNN需对词向量进行多次卷积运算, 导致运行时间较长. 所以从模型结构角度来说, FastText采用了更加简单而又高效的文本分类以及表征学习方法, 所以在文本分类中的多标签值问题中更为合适, 且运行耗时很短, 但是在短文本中由于缺少更多信息的补充, 导致算法的准确度大幅降低.
因此, 我们利用TextCNN来处理单标签分类与短文本工作, 用FastText来处理多关键词的主题分类工作. 优化后的神经网络框架如
在多神经网络混合的短文本分类模型框架中, 在输入层部分, 数据来源有两个类型: “标签值+多关键词”作为多分类, “标签值+短文本”作为文本分析. 简言之, 这个模型的输入主要有多关键词和短文本构成. FastText模型负责处理多关键词特征, 而TextCNN负责处理短文本内容.
我们采用Softmax函数处理文本的类别输出:
其中,
式中,
多神经网络混合的短文本分类模型框架
两种神经网络模型的输出在合并层进行融合, 形成短文本类别的向量输出, 合并层的具体融合方式如式所示执行,
在文本分类模型框架中加入Dropout的目的是将其应用于词向量的分类中, 能够使得模型降低对于噪音的敏感度, 防止因噪音导致过拟合[
传统的短文本处理方法有RNN、LSTM、GRU、RCNN等模型, 一般通过Doc2Vec或者lDA模型将文本转换成一个固定纬度的特征向量, 然后再基于抽取的特征训练一个分类器.
FastText模型相比于其他模型, 在训练速度和算法准确率上有了更好的表现, 主要做了如下改进:
层次Softmax: 针对有大量类别的数据集或者是类别不均衡分布的数据集, FastText模型的层次Softmax技巧通过对标签信息进行编码, 可以缩小模型预测的目标数量. 该技巧建立在Huffman编码的基础上, 用来表征类别的树形结构, 当类别数为
Subwords: subwords可以理解为是字级别的
FastText模型的架构中只有一层的隐藏层和输出层, 保证了模型在CPU上能实现分钟级的训练, 更容易在工程应用上进行部署. 但是也正因此, 模型只能对单个标签进行分类, 在做多标签处理时, 模型也仅会随机选一个label进行模型的更新, 导致其他信息被忽略, 不适合做多标签的分类应用.
TextCNN模型是CNN模型的一个变种, 可以充分发挥CNN的并行计算能力, 训练速度更快, 在保留了原始CNN的特点之外, 还加入了对文本特征的抽取能力. TextCNN采用一维卷积来获取句子的
模型对数据的整体处理流程为: 文本序列中的词和词组构成特征向量, 特征向量通过线性/非线性变换映射到中间层, 中间层再映射到标签数据上, 输出文本对应的标签值. 本文中混合模型其实是兼顾了文档向量和特征抽取的能力, 保证了模型在遇到复杂多变的数据集时的多态性.
FastText模型的输入层到隐藏层部分, 主要生成用来表征文本的向量; 模型的隐藏层到输出层是一个Softmax线性的多类别分类器. 它更适用于分类类别非常大且数据集足够大的情况, 当类别数较小或数据集较小时容易导致过拟合. 而TextCNN采用了max pooling操作, 可以保证文本的特征的位置与旋转不变性, 强特征的提取效果不受其位置所限制. 此外, max pooling能够减少模型参数数量, 有利于减少过拟合问题. 但是这也容易导致TextCNN丢失特征的位置信息, 并且无法记录同一特征的强度信息.
此外, FastText模型为了保证句子词向量的相似性(模型要求词向量按照相同的方向更新), 没有添加正则项, 从而导致模型的泛化能力减弱. 而TextCNN使用预训练产生的词向量作embedding layer, 并且在本文实验中采用混合向量(基于字向量、静态词向量、动态词向量)进行文本中词信息的表示, 能够捕捉到更多的语义信息, 以此来减少数据集的影响, 提高模型的准确率. 同时, TextCNN在池化层后加了全脸阶层和Softmax层做分类任务, 并且加上了L2正则项和Dropout方法, 来防止模型的过拟合问题, 最后整体使用梯度法进行参数的更新模型的优化.
为了确认该短文本分类的混合模型的算法有效性, 同时也为了在长文本中验证其效果, 实验选择了相关的公开数据集:
1) TTNews: 短文本采用今日头条的公开新闻数据集进行实验验证, 数据文件中每行是一条数据, 以_!_符号进行分割, 文本格式内容依次为新闻的ID编号, 新闻分类编码code, 新闻分类的名称信息, 新闻标题title和新闻关键词keyword. 数据采集时间为2018年05月, 共计有382 688条, 有15种新闻类别, 每种新闻类别对应的数据量大小如
TTNews数据集中类别统计
新闻类别 | 数据量 |
news_tech | 41 542 |
news_entertainment | 39 396 |
news_sports | 37 568 |
news_car | 35 785 |
news_game | 29 300 |
news_culture | 28 030 |
news_finance | 27 085 |
news_edu | 27 058 |
news_world | 26 909 |
news_military | 24 984 |
news_travel | 21 422 |
news_agriculture | 19 322 |
news_house | 17 672 |
news_story | 6273 |
stock | 340 |
为了保证是短文本数据集, 本次实验是选用两个关键数据: 新闻分类名称和新闻对应的标题, 比如“news_entertainment胡歌为林心如澄清娱乐界谣言, 最后发现纯属乌龙”.
2) THUCNews: 长文本实验方面, 实验采用了清华大学的THUCNews数据集, 该数据集是由新浪新闻在2005~2011年间的所有数据经过滤产生的, 包含了74万篇的新闻文档, 均是UTF-8纯文本格式. 进一步在原始的分类基础之上, 划分了14个待选的类别: Education, Technology, Finance, Stocks, Home, Social, Games, Fashion, Current Affairs, Lottery, Real Estate, Sports, Constellation, Entertainment[
THUCNews数据集中类别统计
新闻类别 | 数据量 |
Technology | 162 928 |
Stocks | 154 397 |
Sports | 131 604 |
Entertainment | 92 631 |
Current Affairs | 63 085 |
Social | 50 848 |
Education | 41 935 |
Finance | 37 097 |
Home | 32 585 |
Games | 24 372 |
Real Estate | 20 049 |
Fashion | 13 367 |
Lottery | 7587 |
Constellation | 3577 |
首先需要对上述文本数据集进行自动分词, 本文采用中文分词工具NLPIR汉语粉刺系统, 调用GitHub上开源的工具包进行文本分词, 每个词用空格分开. 并且将数据处理为每条新闻文本为一行, 每行的末尾使用“__label__”特殊字符串.
对分词后的数据进行清洗, 去除无意义的语气词、特殊符号、错词等, 把有效数据进行整理. 我们将traindata和testdata按照8:2的比例划分, 并用shuffle函数将原始数据打散.
本次实验我们采用了常用的评估标准, 包括: 召回率
我们假设文本分类针对数据
类别划分结果
分类器的分类判断 | 文本与类别的关系 | |
属于 | 不属于 | |
标记为“是” |
|
|
标记为“否” |
|
|
实验在类别
实验在类别
本次实验的对比算法包括: CNN、RNN、TextCNN、TextRNN、FastText、Seq2seqAttn、RCNN等模型.
在混合模型的实际训练中, 模型整体保持了较高的运行效率, 在训练时间上的消耗见实验结果
FastText模型中最重的两个参数分别是: 词向量大小维度dim和subwords范围的大小subsize. 其中, dim越大, 模型就能获得更多的信息但同时对训练数据的要求也就更高, 而且训练速度也会降低, 因此本实验中词向量的维度dim选100. Subwords是单词序列中包含最小min到最大max之间的所有字符串, 根据本文实验数据我们设置为1~3之间灵活调整, 以便能够从数据中识别出中文特有的属性(如人名、专有名词等信息). 在训练参数上, 本实验的epochs设为10, 学习率Lr设为0.1. FastText是基于多线程的, 根据本文实验环境, 对CPU核数调整为16.
TextCNN模型的输入采用基于Word2Vec和glove的混合词向量, 具体包括字向量、静态词向量和动态词向量. 因为在处理NLP任务时需要对文本进行截取, 在短文本实验中padding值为50, 长文本实验中padding值为300, 卷积核的尺寸filter_size范围区间可取(1, 10), 在短文本实验中取{2,3,4}, 在长文本实验中取{3,4,5}, 每个filter的feature maps取100, 因此, 短文本实验中的卷积层大小为50×100, 长文本实验中卷积层大小为300×100. 卷积核的数量filter_nums范围区间可取(100, 600), dropout范围区间可取(0, 0.5), 在本文实验中统一取filter_nums为150, dropout取0.5. 实验中采用ReLU激活函数进行处理, 池化层选择了1–max pooling, 为了进一步检验模型的性能水平, 本文实验采取了交叉验证处理. 在模型的训练参数上, 本实验主要设置batch_size为64, num_epochs为10.
本次实验采用短文本数据集TTNews对算法模型进行测试验证, 并用长文本数据集THUCNews对各算法模型进行比较, 进一步验证所提的多神经网络混合的短文本分类模型在实验数据上的有效性, 实验结果如
从
不同模型在数据集上的实验结果(单位: %)
模型 | 指标 | 数据集 | |
TTNews | THUCNews | ||
本文模型 | 92.03 | 95.65 | |
91.74 | 94.74 | ||
91.88 | 95.19 | ||
CNN | 81.11 | 84.78 | |
82.45 | 83.41 | ||
81.77 | 84.09 | ||
RNN | 77.89 | 82.80 | |
79.65 | 80.61 | ||
78.76 | 81.69 | ||
TextCNN | 86.07 | 92.14 | |
84.41 | 92.74 | ||
85.23 | 92.44 | ||
TextRNN | 82.31 | 89.45 | |
82.00 | 90.44 | ||
82.15 | 89.94 | ||
FastText | 80.74 | 94.23 | |
79.14 | 93.74 | ||
79.93 | 93.98 | ||
Seq2seqAttn | 80.19 | 84.54 | |
82.66 | 83.57 | ||
81.41 | 84.05 | ||
RCNN | 82.14 | 84.49 | |
81.41 | 83.42 | ||
81.77 | 84.44 |
不同模型在数据集上的准确率、召回率和
本文模型的准确率与调参因子
本文在相同数据集和相同的训练环境下(保证了各变量的控制条件), 分析了各模型的训练时间, 并对比分析了它们分别在短文本数据集(TTNews)和长本文数据集(THUCNews)上的实际效果, 结果如
不同模型在数据集上的训练时间对比
从
本文提出了将短文本内容进行关键词提取并重构短文本特征, 将重构后的特征值作为FastText模型的输入, 原始的短文本内容作为TextCNN模型的输入, 并引入参数
本文的主要研究关键点在于短文本内容的分类算法和对分类算法的融合应用, 同时也针对短文本内容的特点进行了特征重构, 将分类任务均衡化来解决相应的问题. 但是对于从短文本中提取与主题关联度契合度更高的关键词这一步仍有很大的改进空间. 由于短文本内容往往包含的信息量较少, 如新闻标题、用户评价文本等, 所以如何从信息度较低的短文本内容中提炼出符合要求的关键词是下一步需要研究的工作重点.
Salton G, Wong A, Yang CS. A vector space model for automatic indexing. Communications of the ACM, 1975, 18(11): 613–620.
et al. Bag of tricks for efficient text classification. Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics. Valencia, Spain. 2017. 427–431.]]>
常耀成, 张宇翔, 王红, 等. 特征驱动的关键词提取算法综述. 软件学报, 2018, 29(7): 2046–2070.
康卫, 邱红哲, 焦冬冬, 等. 基于搜索的短文本分类算法研究. 电子技术应用, 2018, 44(11): 121–123, 128.
Lin YS, Jiang JY, Lee SJ. A similarity measure for text classification and clustering. IEEE Transactions on Knowledge and Data Engineering, 2014, 26(7): 1575–1590.
崔伟东, 周志华, 李星. 支持向量机研究. 计算机工程与应用, 2001, 27(1): 58–61.
Tan SB. An effective refinement strategy for KNN text classifier. Expert Systems with Applications, 2006, 30(2): 290–298.
et al. Automatic keyword extraction from individual documents. In: Berry MW, Kogan J., eds. Text Mining: Applications and Theory. New Jersey: John Wiley & Sons, Ltd, 2010. 1–20.]]>
何金金, 郭振波, 王开西. 基于TextRank的网评产品特征提取方法. 青岛大学学报(自然科学版), 2018, 31(1): 109–114.
Hauke J, Kossowski T. Comparison of values of Pearson's and Spearman's correlation coefficients on the same sets of data. Quaestiones Geographicae, 2011, 30(2): 87–93.
冯勇, 屈渤浩, 徐红艳, 等. 融合TF-IDF和LDA的中文FastText短文本分类方法. 应用科学学报, 2019, 37(3): 378–388.
刘全, 梁斌, 徐进, 等. 一种用于基于方面情感分析的深度分层网络模型. 计算机学报, 2018, 41(12): 2637–2652.
Srivastava N, Hinton G, Krizhevsky A,