基于知识图谱和贝叶斯分类器的图书分类

2020-06-12 11:43邹鼎杰
计算机工程与设计 2020年6期
关键词:特征词分词分类器

邹鼎杰

(中国人民解放军国防大学 政治学院, 上海 200433)

0 引 言

图书分类问题属于文本分类问题,解决图书分类问题的基本思路是将文本分类算法应用到图书分类中[1-3]。文献[4]将LDA(latent dirichlet allocation)模型应用到图书分类中,采取复合加权策略将书目体例体信息和所在类目信息融合到模型之中,图书分类性能得到了有效提升。文献[5]将长短时间记忆神经网络(long short term memory neural network,LSTM)模型应用到图书分类中,将图书的各描述字段组合成一个描述字符串,利用词嵌入模型将描述字符串转换成作为LSTM模型输入的二维矩阵,通过构建多个二元分类器解决多标签分类问题。文献[6]将门控循环单元网络(gated recurrent unit neural networks,GRU)模型应用到文本分类中,GRU在继承LSTM门控制原理基础上简化了神经元结构,模型复杂度更低,实际应用效果更好。不同于文献[5]直接将LSTM模型用于文本分类,文献[6]只利用GRU能够充分考虑上下文信息的优势提取文本重要特征,采用结构更简单、执行更高效的朴素贝叶斯分类器完成文本分类,两者结合更加提高了文本分类的效率和准确率。上述研究主要通过优化模型提升图书分类器性能,忽视了纸质图书的描述元数据较少这一现实问题。在输入信息有限的情况下,再好的模型和算法也难以发挥出优良性能。因此,本文提出从现有知识图谱zhishi.me中提取关于图书、作者和出版社3类实体的详细信息,通过增加图书的描述信息提升图书分类准确率的解决方案。

1 相关工作

1.1 知识图谱与Zhishi.me

知识图谱(knowledge graph)最早由Google于2012年5月正式发布,主要用于提升google的搜索服务质量,目前已经成为Google语义搜索的关键支撑工具[7]。在基于知识图谱的语义搜索中,人们输入的检索对象不再只被视作一段普通文本,而是与现实世界中对应的实体[8-10]。比如输入“姚明”,搜索引擎将识别出篮球运动员姚明,并在结果页面的右侧框中呈现姚明的简要介绍信息,年龄、身高等属性信息以及家长、妻子等关系信息。知识图谱可以被视作Tim Berners-Lee年提出的链接数据(linked data)的一种应用。实体是知识图谱中最关键的概念,它既包括存在于物理世界中的具体事物,也包括仅存在于抽象世界的概念。实体包含两类属性[11],一类属性是普通文本类型,比如姚明的身高、年龄等属性;另一类属性本身也是一种实体,比如姚明的家长、妻子等,这类属性通常也被称作关系。目前,互联网上已经发布了大量知识图谱供人们使用,比较著名的知识图谱有Knowledge Vault、Wolfram Alpha、Watson KB、DBpedia、YAGO KB、Facebook KB、Zhishi.me等[12]。其中Zhishi.me是目前在互联网上发布的规模最大的中文知识图谱之一[13],本文将从Zhishi.me中提取图书、作者和出版社3类实体的详细知识,以解决纸质图书描述性信息不足的问题。

Zhishi.me包含有从百度百科、互动百科和维基百科中抽取出的大约两千万个实体的详细信息以及实体之间的关系,绝大多数图书、作者和出版社的信息均可在Zhishi.me中查到。该知识库由深圳狗尾草科技有限公司开发,并发布在“中文开放知识图谱”平台上供公众免费使用[14]。Zhishi.me中的实体主要包含9种属性,各属性的类型和功能见表1。

表1 Zhishi.me中实体的9种属性

1.2 朴素贝叶斯分类器

(1)

(2)

在朴素贝叶斯分类器中,模型的训练过程就是通过训练集统计先验概率Pci和特征dj在类别ci中出现概率的过程。完成模型训练后,对图书的分类过程就是寻找图书出现概率最大类别的过程,计算方法如式(3)所示

(3)

通常情况下,特征出现在类别中的条件概率Pdj|ci是一个较小的小数,这些小数经过连续乘操作以后得到的将是一个极小的小数。为了避免小数过小导致浮点数下界溢出,通常将式(3)两边同时取对数,将乘法操作转变为加法操作[17],寻找最大概率类的式(3)变换为式(4)的形式

(4)

2 基于知识图谱和朴素贝叶斯分类器的图书分类过程

与传统的文本分类类似,图书分类过程包括训练和分类两个过程,如图1所示。特征融合处理步骤中,分别从数据集中提取图书的书名、作者和出版社信息,然后从知识图谱中抽取关于图书、作者和出版社的详细描述信息,利用分词技术从这些信息中提取表示图书内容特征的关键词。特征融合步骤中产生的关键词规模庞大,不仅会占用过多的存储空间,而且不利于提升分类器性能,因此需要采取某种策略选择最能够代表文档内容特征的关键词,即特征选择。明确每本图书的特征词和图书的类号以后,即可训练朴素贝叶斯分类器的关键参数,主要是先验概率和条件概率;训练后的分类器模型可用于对新购图书分类,分类过程中的特征融合和特征选择过程与训练过程中的处理方法完全一样。

图1 图书分类过程

2.1 特征融合

图书馆中纸质图书的描述元数据较为稀缺,与图书内容特征相关的元数据只有书名、作者和出版社。严格意义上讲,只有书名能够直接揭示内容特征,作者和出版社只能间接揭示图书内容特征。单凭简短的书名难以对图书有效分类。因此,需要添加额外的内容特征。Zhishi.me的9种属性中,abstracts、infobox和category最能揭示实体的内容特征,因此选择这3种属性内容作为图书、作者和出版社的详细描述信息。labels字段虽然也能揭示内容特征,但通常与原有实体标签重复,不采用该字段中信息;其余5种属性在内容上与实体的描述没有必然的相关性,所以也不作为补充信息。

在图书分类中,关键词是表示图书内容特征的最小语义单元,因此需要利用分词技术从长文本中提取关键词。分词过程一般采用专门的分词软件包完成,本文使用Python语言版jieba分词工具完成分词。3个固有字段中,作者姓名和出版社直接作为特征词,不必分词。图书名称则需要通过分词,提取细粒度的特征词。实体的3种属性中,abstracts是长文本,需要分词。infobox是描述实体的基本属性特征,本身就是短文本,所以不必分词,直接作为特征词。category属性是对实体主题特征的揭示,既可以直接作为特征词,也可以对其分词后提取细粒度的特征词。为确保category属性完整形式能够作为特征,需要将训练集中所有的category属性添加到jieba分词的字典中。在使用jieba分词时,选择“全模式”,既可以生成比较完整的长词,又能够得到细粒度的特征词。

2.2 特征选择

特征融合后形成的特征词规模较大,如果将所有特征词用于表示图书内容特征,会导致训练后的模型占用过多内存空间,影响分类器的应用效果;低质量的特征词还有可能降低分类器性能,因此需要选择高质量的特征词代表图书内容特征,删除质量较低的特征词。在选择特征值之前,需要删除停用词,这不仅有利于提高计算性能,也有助于提高分类器性能。选用TF-IDF权重作为选择特征词的标准。TF(term frequency)即特征词频率。通常情况下一个词在书中出现频率越高,越能够代表这本书的内容特征。由于不同图书的特征词数量差别较大,因此选择相对频率表示特征词,特征词w在图书b中的频率计算方法如式(5)所示,其中nw为特征词在图书b中出现的次数,nb为图书b中所有关键词出现的总次数(不是关键词数)

(5)

IDF(inverse document frequency)即逆文本频率指数,表征特征词在所有图书中出现的普遍程度。如果特征词w仅在少量图书中出现过,那么w的IDF就比较高,在分类中起到的作用就越明显;反之在分类中的重要性就比较低。IDF的计算方法如式(6)所示,其中N是训练集中所有图书的种数,Nw是包含有特征词w的图书种数

(6)

特征词w的TF-IDF值由该词的TF值和IDF值相乘得到,如式(7)所示。计算图书b中每个特征词的TF-IDF值,然后将特征词根据TF-IDF值由高到低排序,选取排名前k的特征词作为图书b的最终特征词。最终选取的特征词数量k的具体数值与分类器的效果密切相关,需要根据实验效果设定

(7)

2.3 模型训练与分类预测

朴素贝叶斯分类器的训练过程就是通过训练集的数据来估计图书随机出现在类别c中的先验概率Pc,以及特征词w出现在类别c中的条件概率Pd|c。先验概率的估计方法如式(8)所示,其中N是训练集所有图书的种数,Nc是训练集中类别为c的图书种数

(8)

条件概率Pw|c的估算方法如式(9)所示,其中Nd,c是类别为c的图书中包含有特征词d的图书种数

(9)

训练集中总会出现某特征词w没有出现在类别c中情况,这将导致条件概率为0。朴素贝叶斯公式的条件概率是通过先验概率与各个特征的条件概率持续相乘得到,如果有一个特征的条件概率为0,那么这本书出现在这个类号中的概率将为0;这与真实情况不符。因此需要进行平滑处理,避免这种情况发生。引入拉普拉斯修正(Laplacian correction)做平滑处理,修正后的先验概率和条件概率的计算方法分别如式(10)和式(11)所示,式中L为类别总数

(10)

(11)

训练后得到的先验概率是一个L维向量,条件概率是一个L×S的矩阵,其中S是从训练集中提取的特征总数。将上述训练参数存储在哈希表中,在需要预测新书分类号时可通过查表获取。假设先验概率存储在哈希表H1中,一本书应当分配到类号c的先验概率为H1c。假设条件概率存储在哈希表H2中,特征词w出现在类别c中的条件概率为H2cw。

分类预测过程就是根据图书的特征词集合估计图书属于某一分类的条件概率,并找出条件概率最大的类号的过程。朴素贝叶斯分类器不仅假设特征词出现的概率相互独立,而且假设特征词的位置对分类没有影响,因此可以使用集合(而非向量)表示图书的特征词以节省存储空间。假设待预测新书的特征集为D,预测这本书所属分类的方法如式(12)所示。新书中仍然可能出现训练集中没有出现的特征词,该词的条件概率仍然可以使用式(11)估算

(12)

3 实验结果及分析

3.1 实验数据

实验数据包括两部分,一部分是已经被图书馆著录的图书元数据,包括图书的标题、作者、出版社和中图法分类号,另一部分是从Zhishi.me知识图谱中获取的关于图书、作者和出版社的详细描述信息。图书著录数据源于上海某高校在2013年至2017年间的图书外借数据集,由首届“慧源共享”上海高校开放数据创新研究大赛主办方提供。以ISBN作为图书唯一标识符,清洗掉格式不规范、内容明显残缺的数据后,得到约42万种图书的著录数据,包含图书名称、图书作者、图书出版社以及图书的正确分类号4个字段,总计有22余万名作者和1万余家出版社。Zhishi.me知识图谱提供离线下载和在线访问两种知识获取方式,离线数据比较陈旧,因此选择在线访问方式获取详细信息。通过在线获取方式提取到约35万种图书、143万名读者和5000余家出版社的详细信息。

3.2 评价指标

选取3个常用的分类器评估指标,分别是准确率P(Precision)、召回率R(Recall)和综合考虑P和R的F1值。对于类别c,其分类准确率计算方法如式(13)所示,其中Nc为被分类为c类的图书总数,TPc为Nc中被正确分类的图书总数

(13)

类别c的召回率计算方法如式(14)所示,其中Mc是属于类别c的所有图书种数

(14)

类别c的F1值是对P值和R值同等重视条件下的综合考量,计算方法如式(15)所示

(15)

图书分类的类目体系庞大,难以逐个分析每个类目的准确率、召回率和F1值,选用这些指标的平均值作为综合考量指标[18],即“宏查准率”(macro_P)、“宏召回率”(macro_R)和“宏F1值”(macro_F1),计算方法分别如式(16)、式(17)和式(18),式中CLS是所有分类号的集合,L是集合CLS包含的元素数量

(16)

(17)

(18)

3.3 评估方法

《中图法》类目体系庞大,通常采取层级分类法,典型的层级设计是按照《中图法》原有体系逐层分类。层级分类法的典型特点是上一层级的错误将积累到下一层级,第一层级的分类准确率成为决定层级分类法最终分类准确率的关键因素。因此,本文以《中图法》第一层级共22个大类作为分类目标。

特征选择步骤中确定的选择特征数k是影响模型性能的关键参数,需要根据验证集进行测试。因此将数据集均匀地划分成10份,其中6份用作训练集,2份用作验证集,2份用作测试集。为确保划分出的子集合中包含的类别一致,首先根据分类号对数据集按照字母先后顺序排序,确保相同类号的图书处于相邻位置。然后从0开始对排序的图书进行编号,取编号尾号为0的所有图书作为第1份,编号尾号为1的所有图书作为第2份,依次类推形成10份均匀的图书数据集。最后随机选择相应份数作为训练集、验证集和测试集。

3.4 参数选择

朴素贝叶斯分类器的基本原理是计算一本书属于某一个类别的概率,根据式(12),这个概率的计算过程分为两步。第一步假设对这本书的内容一无所知,这时一本书属于某一类的概率仅由先验概率决定。由于对图书本书一无所知,仅靠先验知识进行分类的效果通常不会很好,因此需要引入关于图书的信息。第二步就是通过不断引入图书内容特征修正概率的过程。理论上讲,似乎引入的内容特征越多,修正的效果就越好,最终的分类质量就越高。实践中,由于特征关键词的质量差别较大,引入低质量的关键词可能会降低分类器质量。因此,本文设计了特征选择策略,根据特征词的TF-IDF的排序后由高到低选择特征词,通常假设选择排名前k的特征词。k的具体数值与具体的数据集密切相关,需要根据训练集和验证集测试得到。

利用训练集和验证集在k值为1至20范围内分别测试分类器的性能,以macro_F1作为分类器的度量标准。最终测试结果如图2所示。从图中可以看出,随着选择特征数的增加,分类器的性能随之增加,但是该新增趋势并不持续,在达到特定阈值以后性能开始下降;其原因是最初新增的特征词质量较高,对于修正条件概率起到正向作用,后期增加的特征词质量较低,对于提升分类器性能起到负向作用。曲线在最后均趋于平稳,其原因是k值已经超过了图书拥有的特征词数量,k值的增加并不会导致更多特征词的引入。对比无知识图谱和有知识图谱的情况可以发现,无知识图谱的曲线在k值为3时即达到峰值,其原因是书名的长度有限,原生图书元数据能够贡献的特征词较少,含知识图谱的图书特征词更丰富,曲线在k值为8时达到峰值。通过上述分析发现,无知识图谱条件下k值为3的分类器性能最高,含知识图谱条件下k值为8的分类器性能最高,因此在测试过程中分别选择3和8作为模型参数。

图2 选择特征数k对分类器性能的影响

3.5 测试结果

使用不包含知识图谱的数据集训练模型时将选择特征数设定为3,使用包含知识图谱的数据集训练模型时设定特征数为8,在测试集上测试模型性能。最终结果见表2,“宏查准率”、“宏召回率”和“宏F1值”均有较大幅度的提升,从知识图谱中提取的关于图书、作者和出版社的详细信息能够有效提升分类器性能。

表2 测试结果

4 结束语

针对图书馆中纸质图书描述元数据普遍较少,不利于提升图书自动分类器性能的问题,提出了从Zhishi.me知识图谱中引入图书详细数据的解决思路。分析了Zhishi.me知识图谱的内部结构和知识抽取策略,提出了利用基于TF-IDF权值的特征选择方法。在上海市某高校图书馆的真实图书数据集进行了实验验证,分析了特征词数k值对分类器性能的影响,并根据最优k值对比在无知识图谱和含知识图谱两种情况下的图书分类性能,发现准确率P、召回率R以及F1值均有较大幅度提升。

猜你喜欢
特征词分词分类器
基于类信息的TF-IDF权重分析与改进①
分词在英语教学中的妙用
结巴分词在词云中的应用
结巴分词在词云中的应用
基于改进TFIDF算法的邮件分类技术
产品评论文本中特征词提取及其关联模型构建与应用
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
面向文本分类的特征词选取方法研究与改进
基于层次化分类器的遥感图像飞机目标检测