侯庆霖
(广州杰赛科技股份有限公司,广东 广州 510310)
文本分类经历了基于知识工程向机器学习方法转变的历程[1]。以知识工程为主的文本分类算法由于其可移植性和通用性较差,逐渐被机器学习方法所取代。用于文本分类的机器学习方法有:向量机[2]、神经网络[3]、贝叶斯[4]及K近邻[5]等算法,这些算法都在文本分类的领域具有较好的性能。机器学习方法的文本分类研究主要由3方面构成:文本表示、空间维度约减以及文本分类器[6]。作为文本分类基础的文本表示(也称为特征表示或者特征选择)是文本分类好坏的基础,成为了当前最热门的研究课题。文本的特征学习技术在21世纪以来得到广泛的关注,词的分布表示最早由Hinton提出,实质上是将每一个词映射成k维实数向量[7]。在2013年,谷歌将连续词袋的Skip——Gram模型进行扩展,开源了基于深度神经网络学习的Woed2vec词向量学习工具,这是自然语言处理历史上一次重大的变革。但是由于中文文本本身具有近义词和同义词数量众多的特点,单纯的词向量模型已经无法满足文档的特征表示,因此文本将神经网络训练得到的向量空间模型与卡方检验算法结合,形成基于词向量的文本特征选择方法,弥补了使用卡方检验中存在的特征词“不完备”的特点。考虑到选取的特征词语集合不能表达特定学科领域的概念,本文对扩充后特征词集合构建候选术语网络;然后根据特征词向量的位置关系、词汇信息特征考察特征词之间的内部结合紧密度;最后,采用词语的左熵或右熵规则实现术语抽取,形成特定学科领域内能够反映文本表示的特征词抽取方法。
特征表示是基于某种评价标准,对文本中的特征项进行评估,并对每一个特征进行评分,按照分数进行排序,选择Top N特征项作为文本表示的特征集合。因此,针对中文的特征表示分为3步:
(1)采用中文分词工具对文本进行分词,分词后的结果作为原始特征集合;
(2)通过某种评估方法计算每一个词语的特征值(权值),并按照特征值进行排序;
(3)选取若干个最能代表文本内容的特征词,形成文本的最优特征集合。
显然,不同的特征表示函数决定了文本分类效果的好坏,下面对常见的几种特征函数进行介绍。
(1)卡方检验
卡方检验(CHI)是数理统计中用来检查两个变量之间独立性的一种假设检验方法[8]。卡方检验的假设是样本具有独立性,样本的分布遵循卡方分布,通过样本的实际观察值与理论推断值的偏差来决定卡方检验之的大小,如果χ2值越大,说明两者之间的偏差程度越大,待分类文本类别越不可能与语料库的分类一致;同理,χ2值越小,说明两者越趋于相同,待分类文本类别越有可能与语料库的类别一致。卡方检验用于文本特征表示方法时,假设特征词t与类别ci之间符合卡方(χ2)分布,则特征词t对于类别ci的卡方值为:
其中,A表示某一个类别包含该特征词t的文档总数量;B表示在某一个类别中,排除该类别后其他类别包含该特征词t的文档的数量;C表示某一个类别不包含该特征词t的文档总数量;D表示在某一个类别中,排除该类别后其他类别也不包含该特征词t的文档的数量。从上述公式可知,χ2(t,c)=0时,表示该特征词t不包含与文本类别相关的鉴别信息,反之亦然。本文的方法是借助卡方检验选出若干个与文本类别有最强相关性的特征项即可,因此不需要设置任何阈值。
(2)互信息
互信息(MI, Mutual Information)用来度量两个对象之间的相互性,也即一个随机变量包含的另一个随机变量的信息量。互信息通常用来作为特征词和类别之间的相关性度量的标准,如果某个特征词t属于某一个类别的话,那么特征词t和类别ci的互信息量会最大。则特征词t对于类别ci的互信息计算公式为:
p(t, ci)表示训练集中包含特征词t又属类别ci的概率,P(t)表示包含特征词t的文本在训练集中出现的概率,p(ci)表示类别ci在训练集中出现的概率。根据上述的公式,如果该特征词t在类别ci中出现的频率越高,而在其他类别中出现的频率越低,那么特征词t与类别ci的相关性越大,特征词t越有可能属于类别ci。由于互信息仅仅考虑特征词在每一个文本中是否出现,而没有考虑其在文本中出现的次数,因此,在同等条件概率下,稀有词将高于常用词的MI值,因此其在文本分类中效果不佳。
(3)文档频率法
文档频率法(TF-IDF, Term Frequency–Inverse Document Frequency)用来评估特征词t对于某一个类别ci的重要程度。TF-IDF的主要思想是:如果某个特征词ti在某一类别cj出现的频率TF高,并且在其他类别中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来做类别分类。其公式为:
tfij表示特征词的词频,nij表示特征词ti在类别cj中出现的次数,而分母是该类别中所有词语的出现次数总和。
idfi表示逆文档频率, |{j: ti∈ cj}|表示包含该特征词ti的文件总数,|D|表示语料库中的文件总数。
TF-IDF实际上是tf × idf,tf表示特征词在类别cj中出现的频率。idf的主要思想是:如果包含特征词t的文档越少,idf越大,则说明特征词t具有很好的类别区分能力。
相关研究证明,卡方检验算法在存在类别交叉现象明显的文本分类中表现出高于其他算法的分类性能,但是由于卡方分类算法不考虑词频信息,因此过于倚重低频词,不利于文本特征的真实表示。同理,互信息也是由于没有考虑特征项的词频信息,出现倾向于选择低频词的特点。而文档频率法则过于关注词频信息,容易误删稀有词。
词向量的思想是将一个词语采用低维的实数向量来表示。词向量与语言模型有着密不可分的关系,目前常见的语言模型包括统计语言模型、n-gram模型、神经网络语言模型等。2013年谷歌公司开源出来的词向量工具是基于神经网络语言模型进行训练的,其词向量具有优良的特性:包含词语的语义信息可用于同义词、聚类或者词性的分析;向量的组合运算能够发现向量的共同特征。
开源的word2vec训练学习的词向量表示,考虑了词语之间的语义关系的特点,而卡方检验方法则具备分类的稳定性能特点。因此,本文考虑了训练数据集所包含的具有类别表征能力的词语具有局限性的特点,以及其他文本特征表示算法具有独立性的假设的缺陷,采用基于词向量和卡方检验相结合的算法来选取具有表征类别能力的特征词。具体的步骤为:
(1)计算每一个类别所有词语的CHI值,并对其进行排序,选取Top N的词语作为特征词,得到每一个类别的特征词集合。假设类别编号为i,wij表示类别i的第j个特征词,将所有类别的特征词进行合并,假设类别总数为D。即{w11, w12, …, w1N}∪{w21, w22, …,w2N}∪…∪{wD1, wD2, …, wDN},得到合并后的特征词集合w={w1, w2, …, wd},其中d是合并后的维数,根据实际的情况决定。
(2)利用word2vec训练所有类别词语的词向量,利用余弦相似性计算特征词集合w中每一个词语与其相似的前M个词语,并将最相似的词语加进原有的特征词集合中。
getnearest(wi, M)是利用余弦相似度计算的与特征词集合最相似的M个词。
以扩充后的特征词集合为基础,构造候选术语网络,以词语间词汇信息特征、词语的相关性,评价词汇内部结合的紧密度,结合词语间的位置关系进行词语合并,抽取相关领域候选的术语,则有:
其中,b∈w,w表示经过扩充后的特征词语集合;R(a,b)表示在某一个类别内,词语a与特征词语集合中任意一个特征词的相关性;a表示词语a的向量,b表示词语b的向量。w表示经过扩充后的特征词语集合。如果特征词a的相关性与特征词b的相关性越高,那么两者越有可能是某领域中的术语。
其中,PMI(a, b)表示特征词a与特征词语集合中任意一个特征词的点间互信息,P(a&b)表示两个特征词语a与b在某类别共同出现的概率,即a与b共同出现在某类别中的文档数,P(a)与P(b)分别表示两个特征词单独出现的概率,即词语出现在某一类别的的文档数。若两个词语在某类别中共现概率越大,表明其关联度越大;反之,关联度越小。P(a&b)与P(a)P(b)的比值是词语a与词语b两个词语的统计独立性度量。
其中,EL(a, b)表示词语a的左熵,表示对特征词a左边的词语b出现的稳定性的度量。
同理,ER(a, b)表示词语a的右熵,表示对特征词a左边的词语b出现的稳定性的度量。
那么,结合公式(6)和(7),得出扩充后的特征集合的每一个特征词在每一个类别中与其他特征词的内部结合紧密度:
其中,α值根据实际决定。本文的α取值采用加权平均的方式,也就是α1=α2=0.25。术语抽取的阈值可参考Farkas的派系强度函数公式计算得出:
其中,d表示与扩充后特征词的数量,如果特征词a与特征词b之间的内部结合紧密度小于设定的阈值,那么认为特征词a和特征词b不能合并成特定领域的术语;反之,特征词a和特征词b有可能合成术语。
经过词语之间的内部紧密度筛选后,满足条件的词语将会形成候选术语集合,本文根据左熵(公式(8))和右熵(公式(9))的定义,确定术语的组合。
实验环境:windows server 2008 R2 64bit,Inter Xeon 2.50 GHz CPU,16.0 GB 内存。仿真环境:Python 2.7。
在本实验中,本文通过选取中国科学院语言资料研究室提供的文本库作为实验语料,通过人工选取了640篇文章并将其归为8类,这样每个类别包含80篇文章。由于该语料库的语料来源多样、文章体裁多样,因此该语料库能够在一定程度上代表中文文本分类的准确性。
(1)分词系统的选取
本文的实验过程以结巴工具作为中文分词工具,其主要功能包括中文分词、词性标注以及关键词抽取。该分词系统具有3种模式:精确模式,试图将句子最精确地切开,适合文本分析;全模式,把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义问题;搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词,本文的预处理数据阶段采用精确模型进行中文文本的词语切分。
(2)文本表示
本文采用谷歌开源的word2vec训练学习的词向量表示方法来获取词语信息。采用word2vec方法对词信息本身进行信息分析并建立索引,借助索引来表示文本的内容。
(3)特征选择与提取
本文采用基于词向量和卡方检验相结合的算法来选取具有表征类别能力的、扩展性特征词集合后;以扩充后的特征词集合为基础,构造候选术语网络,以特征词间词汇信息特征、特征词的相关性,评价特征词之间结合的紧密度,结合特征词的位置关系(左熵或右熵)进行特征词合并,抽取相关领域候选术语。而术语的向量表示可通过两个特征词向量的组合运算得出。w表示经过扩充后的特征词语集合,s表示在各个领域的术语集合,那么最终的特征词语集合为W=w∪s。计算特征语集合中每个特征词的TF-IDF值,并将其作为分类器输入数据进行训练,得到分类器模型。
(4)分类器的选择
在众多的文本分类算法中,比较经典的就是Rocchio分类器、朴素贝叶斯分类器、基于支持向量机分类器、基于神经网络分类器、基于k-最近邻算法分类器。本文考虑了术语形成原理以及术语的词向量特征,采用卷积神经网络对文本进行分类的算法[9],卷积神经网络中卷积层包括三个部分:卷积、池化、非线性激活函数层(tanh或者sigmoid)。卷积层通常来说是用来提取特征词向量的空间特征,然后使用平均池化进行下采样,最后通过多层神经网络(MLP, Multilayer Perceptron)作为最后的分类器对本文的特征词向量进行分类。卷积神经网络的优点是层与层之间采用稀疏连接矩阵来保证神经网络的运算速度。其实卷积神经网络的系属性特点主要是用于激活层,它一般取max(0, x),在神经网络迭代计算的过程中,实际上变成它在不断试探如何用一个大多数为0的矩阵来表达输入数据特征,结果因为稀疏特性的存在,使得计算效果又快又好。除此之外,卷积神经网络引入“权值”共享原则,这样大大减少了神经网络运算的参数,降低了复杂度。
(1)训练过程
文本自动分类之前需要对文本进行训练构建分类模型。本文随机选取实验语料的30%作为训练数据集,采用卷积神经网络分类算法训练文本,借助上述提出的方法构造文本分类器。按照上面提到的文本分类步骤对文本进行预处理、词向量空间构建、特征词提取、分类器构造四个阶段,在挖掘特征词之后把特征词或者术语的词向量输入到卷积网络,并按照其对应的人工分类的主题进行输出,训练出一个特征词向量与分类主题进行非线性映射的模型,形成文本分类模型。
(2)分类过程
分类过程是对剩下的实验语料库进行文本分类的过程,值得注意的是,在分类过程中,文本的词向量空间构建、特征词提取等步骤与训练过程是相似的,在获取文本的特征词向量空间后,把该向量空间输入已经训练好的文本分类模型,最终判别出文本的专题分类。
在文本分类的评估指标中,最常被用来衡量分词性能的指标是召回率和准确率。
召回率是正确划分到某一个主题文档数量与文档库中某个主题所有的相关文档的比率,是衡量中文文本分类系统的查全率;正确率是正确划分到某一个主题的文档数量与被系统划分到某一个主题的文档总数的比率,是衡量文本分类系统的查准率。
在本实验中,首先选取了常见几种文本分类算法,其中包括CHI算法、MI算法和TFIDF算法,将上述集中几种分类算法与本文提出的算法对同一实验语料库进行文本分类实验,最后根据实验结果对各分类算法做性能比对。详细的对比结果如图1至图4所示:
图1 CHI分类算法的实验结果
图2 MI分类算法的实验结果
图3 TF-IDF分类算法的实验结果
图4 本文分类算法的实验结果
上述实验所选用的实验语料库均为中科院语言资料研究室提供的实验语料,在采用中文结巴分词以及词语向量模型构建词语向量空间的基础上,采用多种文本分类的方法进行实验对比。由上图可知,本文采取的算法准确率最高,其次,CHI和MI的算法准确率较高,而TF-IDF的算法准确率略低。
CHI算法虽然能够选取具有表征类别能力的特征词集合,但是其所选的特征词没有考虑到特征词和特征类别的相关性。除此之外,该方法获取的特征词不能“完备”表达特定学科领域的概念,因此,CHI算法的文本分类准确率有待提高。
MI算法虽然考虑了特征词和特征类别的相关性,但由于不同学科领域拥有相似的关键词,而MI算法仅仅对该领域的特征词进行抽取而没有将相关领域的术语进行抽取,因此,MI的文本分类算法准确率相对CHI较低。
TF-IDF算法能够体现特征词在语料库中的重要程度,但是该方法不仅没有考虑特征词相关性和“完备性”的特点,也没有对特定领域的术语进行抽取,因此,采用该方法提取的特征词不能很好体现不同的学科领域特征。
由此看来,不同分类算法的准确率有明显的区别,说明特征词的选择至关重要,本文结合词向量和卡方检验相结合的方法,通过扩充特征词集合弥补了单纯使用卡方检验中存在的特征词“不完备”的缺陷。除此之外,本文考虑到扩充的特征词语集合不能表达特定学科领域的概念,采用特征词集合之间的位置关系、词汇信息特征考察特征词之间的内部结合紧密度,结合词语的左熵或右熵规则实现术语抽取,形成特定学科领域内能够反映文本表示的词语抽取方法,这种方法所抽取的特征词更能体现特定学科领域的特征,因此具有更好的分类效果。
本文结合词向量和卡方检验相结合的方法,通过扩充特征词集合弥补了单纯使用卡方检验中存在的特征词“不完备”的缺陷,形成更加具有表征类别能力的特征词集合。在此基础上,构造候选术语网络,以词语间词汇信息特征、词语的相关性,评价词汇内部结合的紧密度,结合词语间的位置关系进行词语合并,抽取该领域的术语。最后以特征词和术语作为文本的特征表示,放入卷积神经网络分类器中进行训练并实现文本的自动分类。实验表明,本文所采用的方法抽取的特征词集合更能体现特定学科领域的特征,具有更好的分类效果。