随机森林在中文图书分类中的应用和改进

2022-12-02 06:12沈雅婷徐志豪
电脑与电信 2022年8期
关键词:分词决策树类别

沈雅婷 徐志豪

(南京理工大学紫金学院,江苏 南京 210023)

1 引言

在诸多图书管理工作中,图书分类是最为重要的、最为复杂的。信息时代的到来使得图书的数量爆发式增长。涉及面愈来愈广和种类愈来愈繁多的图书使得传统模式的人工分类法无法高效快速完成图书分类的工作。

高性能高准确率的图书分类算法已成为人们研究的热门[1]。针对中文图书分类问题,研究方法已从早期的知识工程分类方法发展到近年来的机器学习/深度学习分类方法[2]。

知识工程分类方法需要专家制定新规则并且实时完善知识库以用于图书分类;当增加图书类别时,传统的机器学习/深度学习分类方法具有局限性,需要不断更新特征集然后重新训练分类模型,这样无疑给中文图书分类的效率和实施带来了一定困难。

为了能够更加高效、准确地处理中文文本分类问题,对包含多决策树的随机森林模型(RandomForest)进行研究,为了保证整体预测的稳定,模型中不同决策树的泛化能力保存了适当的差别,这些不相同的决策树在投票比重上相同。对数据集预处理后,本文基于随机森林算法,尝试提出有实际应用价值的中文图书分类方法。希望提高使用机器学习、深度学习对自然文本分类的准确率。

图书分类应用,实则是文本分类,文本分类一直是一项基础而重要的任务。一般来说,使用机器学习/深度学习进行文本分类的流程如图1所示。

图1 文本分类流程

主要的文本分类算法的发展里程如图2所示。自20世纪60年代到2010年代,基于浅层学习的文本分类模型占据核心地位,例如朴素贝叶斯(NB),K近邻(KNN)和支持向量机(SVM),浅层学习意味着基于统计的模型,相比于传统基于规则的方法这种方法提高了准确性和稳定性,同时也有耗时和昂贵的缺点。自2010年代往后,由浅层学习逐步转为机器学习/深度学习,使得文本分类效果实现逐渐突破[3]。

图2展示了文本分类算法发展,其中很多算法是使用文本特征对文本进行描述,让文本转变成一种能够让计算机更易处理的形式,同时减少信息的损失。在早期,计算机处理器的性能不佳,浅层模型学习中人工智能是难点问题。不过总体来讲,浅层模型在小规模数据上表现要优于深度学习模型[4]。这些算法经过数十年的发展已经十分成熟,对于处理非大规模中文图书分类而言比较适用。但是浅层模型因为基于传统的规则分类,仍然需要人工进行明确的功能设计,这样既耗时又昂贵。由于文本的多样性,传统规则分类存在局限性,因此具有改进空间。

图2 主要的文本分类算法的发展历程

2 Bagging和随机森林

Bagging是一种并行式集成算法,算法中多个模型之间互不干扰、无依赖关系[5]。其核心在于对训练集使用自助采样法采集训练子集。在结合的计算时,分类任务中使用投票法,回归任务中使用平均法。

机器学习的诸多算法中,随机森林有着重要意义。在21世纪Breiman结合了Bagging算法和随机子空间算法提出了随机森林算法。自随机森林诞生以来,作为灵活高效的机器学习算法,其被普遍应用在各个领域。

随机森林在处理文本分类时主要步骤分为文本预处理、训练模型和分类[6]。计算机科学界在关于训练过程发展出诸多的改进措施。在2014年由曹正凤、谢邦昌提出了“混合随机森林算法”,其中总结出了CART算法与C4.5算法在计算过程中的相似点,利用二者的这种特点提出构建二叉树的加权节点分裂算法并将此应用到随机森林中。

在分类的过程中,计算机科学界也提出了很多的改进方式。Croux等人提出在进入随机森林的文本分类过程之前,先根据决策树的性能排序并对每一棵决策树评估。接下来将分类性能差的决策树淘汰,使用没有被淘汰的分类性能相对优秀的决策树来组成完整的随机森林,从而对测试对象进行分类处理。

在后来的发展过程中,计算机科学界对随机森林不断地优化,其中包括对分类选项的加权、选取文本特征进行针对性的优化、利用向量空间模型与基于潜在主题的文本表示方法两者相结合建立决策树等,本文在此不再赘述。

决策树是在既定或然率的情况之下通过组成树状的决策链来求取期望值,评判是否符合条件,最后得到判断结果。决策树的理论模型如图3所示。多个决策树组成的随机森林其再对不同决策树进行整合最后得到最优分类结果[7]。图3展示了随机森林的理论模型。

图3 功能为判断是否为好瓜的决策树

图4 随机森林理论模型图

在随机森林构建决策树的任务时,投票法是使用频率最高的结合策略。假设类别的集合为{c1,c2……,cN},将ci在样本x上的预测输出为一个N维向量(h1i(x),h2i(x),……,hiN(x))T,其中hij(x)表示hj类别cj上的输出。绝对多数投票法:

上式中,T表示分类器数目,N表示类别数,即在T个分类器中对x进行类别判断如果超过一半的分类器都预测类别为j,则输出类别为j,否则reject(拒绝),重新进行分类预测。

2.1 文本分类预处理

文本预处理是文本分类的基础,目的有:(1)去除文本中与分类目标任务无关的部分文字(即去停用词);(2)将长段的文字内容进行词量划分使得完整的文本转换成适合文本处理的形式(即分词)。文本分类的速度和精度基于有效的内容处理和合适的词量划分。

文本实验的文本预处理统共分成下列步骤:提取文本信息、去除格式标记、文本分词。

(1)提取文本信息。图书分类数据集存储于表格文件(data.xlsx)。使用python中的xlrd库对data.xlsx文件进 行相关的列读取,选择其中的书名(sheet[0])、关键词(sheet[3])、摘要(sheet[4])、中国图书分类号(sheet[5])为文本分类的训练项。

(2)去除格式标记。在存储的数据集中,有很大一部分的格式信息符号和无关字符,不能作为训练依据的有效信息,因此在分类前要对提取的信息进行去除格式标记。

(3)文本分词。作为中文文本处理中的基本环节,文本分词也是中文人机自然语言交互的一个关键步骤。“词语”是自然语言处理中的基本单位,在进行文本分类时也是以“词语”作为基本单位的,即以词为单位的最小数据块[8]。在对英文等用字母构成词语的语言进行文本分词可以以空格作为分词的分隔符,而在中文等这种以“字”作为最小单位的语言中,由字组成的句子中间不存在明显分隔标志。因此,在对中文进行文本分类时,将完整的文本划分为一个个词块是必不可少的步骤。这样可以提高训练效率和准确率。

文本分词样例图如图5所示。

图5 文本分词样例图

使用第三方库对“南京理工大学紫金学院欢迎您!!!”进行文本分词的示例。

图中对其进行三种分词。第一种为全模式,将句子中所有可能成为词语部分划分出来。第二种为精确模式,jieba库试图将句子精确地划分开。第三种为搜索引擎模式,在第二种分词模式的基础上,对于分词后较长的词语再次切分。本文选择第三种模式。

2.2 文本向量化

使用随机森林进行文本分类时,需将文本中提取的大量的分词转换为统一的、简洁的、方便存储的、能够被机器快速高效准确识别的向量化数据结构。使用向量在空间中的方向和大小关系来描述文本文档中的文字之间的逻辑关系[9]。

在1975年,Salton等人提出了向量空间模型(Vector Space Model,VSM),在自然语言处理任务的多种模型中,其使用最为广泛。其小组通过研究发现将多种文本表示模型结合,能够更好地表示文本。在传统的文本向量空间模型中存在一些问题,其中包括维度高和文本表示向量稀疏[10]。在大量的文本向量化的过程中,这些问题不仅仅会消耗计算机许多的存储资源,而且容易导致过拟合,降低分类精确度。因此研究如何在不降低精度的前提下降低文本向量化的维度一直是研究的重点[11]。特征选择和特征提取是为了降低向量维度的两种主要方法。用特征选择方法得到的特征是原始集中的一个子集,而利用特征提取所得到的特征集与原始特征集不一定相同的,是原始特征集中的特征经过组合或者变换而成[12]。特征提取主要利用一种特定的方法将特征词进行处理或将具有相似或者相近分布性质的特征空间组合在一起从而构成一个新的特征[13]。因此原始特征集的大小被缩减以达到降低文本向量化的维度降低目的,比如隐形语义索引(LSI)。本文使用的是特征选择方法,目前最为常见的特征选择算法主要包括:卡方检验、信息增益、互信息等,这些方法主要是在原始特征集中选择出最有利于表达文本的特征词,从而很大程度缩小特征集的大小以降低文本表示的维度。

3 Pre_RandomForest模型

3.1 Pre_RandomForest图书文本分类

中文图书分类流程如图6所示。

图6 中文图书分类流程示意图

在自助采样法中,给定包含m个样本数据的数据集D,经过m次的随机采样操作则得到一个包含m个样本的采样集D"。原始集中会有一部分在D"中多次出现,而另一部分不会出现。每个样本被采样的概率为,那么不被采样的概率就是(1-),那么其中一个样本在m次采样中一次也没有被采样的概率为(1-)m,当数据集足够大,m趋向于无穷取极限可得:

则在样本集D中任意一个样本从未出现在采样集D"中的概率约为36.8%。即可以看作原始样本集中约有36.8%的样本可能不会被抽取到采样集D"中[14]。

本文采用随机森林进行图书文本分类。随机森林分为训练过程和分类过程两部分[7]。

3.1.1 训练过程

训练过程分为文本清洗(去停用词)、文本分词、词向量模型计算、文档向量计算、分类模型计算。

(1)加权取样。原始数据文件data.xlsx作为样本集,从中抽取样本构成采样集,对于原始样本集中的样本构造一个权值。样本每次被选中则加重该样本的权值,在下一次随机抽取的同时加入权值,降低该样本再一次被选中的概率,从而在原始样本集中抽选样本构造采样集时尽可能地使采样集保持多样性,从而提高训练器的准确率。

(2)文本清洗。从原始数据文件data.xlsx中提取的文本中包含了大量的干扰数据,这些噪音数据能够在文本分词向量化之前去除。为了方便类别统计,将中国图书分类号取首字母进行训练和分类(将2万余类别化简为22个数据类别)。

(3)文本分词。中文图书分类中的数据大多以中文形式表示,其中中文以“字”作为最小单位构成了句子,字符之间缺乏能够划分的分隔符。为了便于将杂乱的自然语言文本转换为有序的、便于存储和计算机识别的数据,本文在训练预处理工作中将文本划分为以“词”为单位的词串。本文采用jieba等库来对中文文本进行分词处理[15]。

(4)词向量模型计算。本文采用word2vec等库将所得分词进行向量化处理,通过词向量之间的空间维度联系表示词串之间的逻辑关系。将这些得到关系的向量进行存储以用于训练模型。

(5)文档向量计算。将原数据集中的所有相关类别作为一个文档,对于这个文档进行向量化。将这些得到关系的文档向量存储用于训练。

(6)分类模型计算。通过这些已得的向量模型构造决策树,采取原始数据中的一部分作为训练数据训练该决策树。使用得到的决策树构造随机森林。

3.1.2 分类过程

原始数据集(data.xlxs)共有120845条书本数据,进行图书粗分类,将图书划分22个类别,即取图书类别号的首字母。例如:《道家文化与中医学》的图书分类号为“R-092”,其分类在“中国图书馆图书分类法”含义为“R:医药、卫生”,“R-0:一般理论”,“R-09:药学”,“R-092:药典、药方集、药物鉴定”。为了方便实验取其首字母作为算法的分类类别为“R”。

使用选择好的决策树构造随机森林模型,将原始数据集选取在训练过程中使用相同的列的数据加载进入该模型中对所有数据进行分类。通过本文算法预测类别与原始数据集中的标注类别进行比对得到分类的准确率。

3.2 随机森林的加权选取特征样本构造决策树

随机森林由Bagging和决策树构成。其中根据自主采样法的Bagging,从原始数据集中,可放回的随机抽取样本m次,得到含m个样本的采样集。原始数据集中的样本部分多次表现在采样集中,部分则未曾表现。然后基于采样集训练基学习器,再将基学习器结合[16]。在随机森林的训练过程中,样本的差异性越大,由多种决策树构成的随机森林在分类时表现出的降噪能力越强[17]。在随机抽取样本时,对每个样本建立权值wi,表示对原始数据集中每个样本的关注度[18]。当每个样本被选中的时候,则加大该样本的wi,并引入参数ti作为表示每个样本被选中的次数,其默认值设置为0,第i个样本被选中时,其ti值加1。使原本均匀取样的Bagging算法根据选取的次数调整不同样本权值大小,降低抽取同样样本的概率,提高采样集的多样性。加权平均法:

其中T为分类器的数量,hi(x)为x样本在第hi向量上的概率,ti为其被选中的次数,wi为其权值[19]。

4 实验与结果分析

数据集来源网络,共133425条数据。数据集的有效字段包含书名、作者、出版社、关键词、摘要、中文图书分类号等,如图7所示。除去中文图书分类号的5个字段内容可用作分类。

图7 图书样本数据(部分)

实验所使用的第三方库的版本信息如表1所示。

表1 实验所用第三方库的版本信息

程序中各个文件的功能如表2所示。

表2 文件功能说明表

参数如图8所展示。

图8 word2vec的参数

其中sg=1为skip-gram算法;size代表词向量的维数;window为句子中当前词与目标词的最大距离;min_count对词进行过滤,小于min_count被过滤;negative用于设置nose words;sample用于设置高频词汇的随机降采样的配置阈值;hs=1采用hierarchica技巧;workers表示训练的并行数[20]。

参照“中国图书馆分类法”对样本进行主题剖析,并依照文献内容的科目属性和特点进行分拣、组织。中文图书分类号即为所获取的分类代号。原样本中存在29521种细类别,为了使每一种类别存在尽量多的训练数,本文只对图书进行粗分类,即22种类别。例如“R-092”表示“R:医药、卫生”,“R-0:一般理论”,“R-09:药学”,“R-092:药典、药方集、药物鉴定”,只考虑“R”为一种类别。数据集中的类别字段(部分)如图9所示。

图9 中国图书分类号(部分)

对数据集进行多次实验并得到实验结果,如图10所示。

图10 训练结果截图

图10展示了使用Pre_RandomForest对数据集进行模型分析训练。经过预处理得到样本集120845,采样集为120845,标签种类为22个。

部分分类结果(准确率)截图如图11所示。

图11 分类结果(准确率)截图

图11所示的部分实验结果,类别有‘E’,‘P’,‘T’,‘A’,‘I’,‘J’,‘F’,‘Q’,‘S’,‘R’,‘C’,‘N’,‘G’,‘K’,‘B’,‘H’,‘O’。根据分类后所得的标签和原本数据集中首字母进行匹配得到准确率约为90.17%。

Pre_RandomForest与Bert、TextCNN、FastText的准确率对比如图12所示。

图12 算法模型分类准确率对比图

在相同的数据集上,Pre_RandomForest与Bert、TextCNN、FastText的分类准确率进行比较,Pre_RandomForest的准确率更高且更稳定,Pre_RandomForest与Bert、TextCNN、FastText相比较具有一定的竞争优势。

5 结语

本文选取基于Bagging模型的随机森林对中文图书进行分类,通过对文本数据进行预处理(去停用词、分词)、词向量化以外,还对样本加权,使得原始数据集中每个样本的关注度有所区别,从而提高分类的效率和准确率。Pre_Random-Forest与Bert、TextCNN等相比分类的准确率更高。

图书分类是图书管理发展的重要方向之一,Pre_RandomForest在一定程度上提高了图书分类的准确率,今后可以结合此方法探索出更高精度的算法,解决更复杂的图书管理任务。

猜你喜欢
分词决策树类别
论陶瓷刻划花艺术类别与特征
分词在英语教学中的妙用
一起去图书馆吧
结巴分词在词云中的应用
结巴分词在词云中的应用
决策树和随机森林方法在管理决策中的应用
决策树学习的剪枝方法
决策树多元分类模型预测森林植被覆盖
决策树在施工项目管理中的应用
选相纸 打照片