【编者按】:随着互联网技术的迅速发展与普及,如何对浩如烟海的数据进行分类、组织和管理,已经成为一个具有重要用途的研究课题。而在这些数据中,文本数据又是数量最大的一类。以统计理论为基础,利用机器学习算法对已知的训练数据做统计分析从而获得规律,再运用规律对未知数据做预测分析,已成为文本分类领域的主流。InfoQ联合“达观数据“共同策划了《文本数据的机器学习自动分类方法》系列文章,为您详细阐述机器学习文本分类的基本方法与处理流程。本文为第一部分,着重介绍文本预处理以及特征抽取的方法。
随着互联网技术的迅速发展与普及,如何对浩如烟海的数据进行分类、组织和管理,已经成为一个具有重要用途的研究课题。而在这些数据中,文本数据又是数量最大的一类。“文本分类是指在给定分类体系下,根据文本内容自动确定文本类别的过程”(达观数据科技联合创始人,张健)。文本分类有着广泛的应用场景,例如:
20世纪90年代以前,占主导地位的文本分类方法一直是基于知识工程的方法:借助专业人员的帮助,为每个类别定义大量的推理规则,如果一篇文档能满足这些推理规则,则可以判定属于该类别。但是这种方法有明显的缺点:分类的质量依赖于规则的好坏;需要大量的专业人员进行规则的制定;不具备可推广性,不同的领域需要构建完全不同的分类系统,造成开发资源和资金资源的巨大浪费。
而机器学习技术能很好地解决上述问题,以统计理论为基础,利用算法让机器具有类似人类般的自动“学习”能力——对已知的训练数据做统计分析从而获得规律,再运用规律对未知数据做预测分析。机器学习方法运用在文本分类上的基本过程就是: 标注 ——利用人工对一批文档进行了准确分类,以作为训练集(进行机器学习的材料); 训练 ——计算机从这些文档中挖掘出一些能够有效分类的规则,生成分类器(总结出的规则集合); 分类 ——将生成的分类器应用在有待分类的文档集合中,获取文档的分类结果。由于机器学习方法在文本分类领域有着良好的实际表现,已经成为了该领域的主流。
达观数据团队在处理海量数据方面具有丰富的经验,在文本分类技术方面有深入的实践,并将文本分类技术成功运用到了线上服务中,取得了良好的效果。本文整理了文本分类的基本方法和处理流程,进行了综述性介绍。
1.文本分类流程
文本分类的流程如图 1所示,包括训练、特征抽取、训练模型、分类预测等几个主要环节。
图 1 文本分类流程图
2.文本预处理
2.1文档建模
机器学习方法让计算机自己去学习已经分类好的训练集,然而计算机是很难按人类理解文章那样来学习文章,因此,要使计算机能够高效地处理真实文本,就必须找到一种理想的形式化表示方法,这个过程就是文档建模。文档建模一方面要能够真实地反映文档的内容,另一方面又要对不同文档具有区分能力。文档建模比较通用的方法包括 布尔模型、向量空间模型(VSM) 和 概率模型 。其中最为广泛使用的是向量空间模型。
经典的 向量空间模型(VSM: Vector Space Model) 由Salton等人于60年代提出,并成功地应用于著名的SMART文本检索系统。VSM概念非常直观——把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂。当文档被表示为文档空间的向量时,就可以通过计算向量之间的相似性来度量文档间的相似性。文本处理中最常用的相似性度量方式是余弦距离。文本挖掘系统采用向量空间模型,用特征词条(T1,T2,…Tn)及其权值Wi代表目标信息,在进行信息匹配时,使用这些特征项评价未知文本与目标样本的相关程度。特征词条及其权值的选取称为目标样本的特征提取,特征提取算法的优劣将直接影响到系统的运行效果。
设D为一个包含m个文档的文档集合Di为第i个文档的特征向量,则有D={D1,D2,…,Dm}, Di=(di1di2…dij),i=12,…,m j=1,2,…,n。其中dij(i=1,2,…,m; j=1,2,…,n)为文档Di中第j个词条tj的权值它一般被定义为tj在Di中出现的频率tij的函数,例如采用TF-IDF函数,即dij=tij*log(N/nj)。其中N是文档数据库中文档总数,nj是文档数据库含有词条tj的文档数目。假设用户给定的文档向量为D2,未知的文档向量为q,两者的相似程度可用两向量的夹角余弦来度量,夹角越小说明相似度越高。相似度的计算公式如下
图 2 向量空间模型
通过上述的向量空间模型,文本数据就转换成了计算机可以处理的结构化数据,两个文档之间的相似性问题转变成了两个向量之间的相似性问题。
2.2 中文分词技术
在使用向量模型表示文档时,首先要对文档进行词汇化处理。对于英语或者法语等语言来说,将文档转化成词的集合比较简单,但是对于汉语来说,不像英文文本的单词那样有空格来区分,这个处理过程要依赖于分词技术。从简单的查词典的方法,到后来的基于统计语言模型的分词方法,中文分词的技术已趋于成熟。但是,尽管现在分词软件的准确率已经比较高了,它对 专业术语(称为未登录词识别) 的识别率还不是很好。例如“来自星星的你”,分词可以成功切分为“来自/星星/的/你”,但是怎样把“来自星星的你”作为一个完整的专有名词(电视剧名称)识别出来,还有很多技术要解决。为了进一步提高关键词抽取的准确率,通常需要在词库中添加专名词表来保证分词的质量。
在完成分词之后,我们对词语的位置信息做进一步的发掘,需要确定记录位置信息的方式以及各个位置的词在反映主题时的相对重要性。标题、摘要和结论、正文等文章各个部分的位置权重是各不相同的,当软件逐词扫描统计词频时,记录每个词的位置信息。
在计算文档的特征向量的值时,还需要对文本集进行一些处理,过滤掉无用的信息。滤除这些没有作用的词语可以减少文本特征向量的维数,减少不必要的运算。常见做法包括:
1.文本特征抽取
目前大多数中文文本分类系统都采用词作为特征项,作为特征项的词称作特征词。这些特征词作为文档的中间表示形式,用来实现文档与文档、文档与用户目标之间的相似度计算 。如果把所有的词都作为特征项,那么特征向量的维数将过于巨大,会对分类系统的运算性能造成极大的压力。在这样的情况下,要完成文本分类几乎是不可能的。寻求一种 有效的特征降维方法 ,不仅能降低运算复杂度,还能提高分类的效率和精度,是文本自动分类中一项重要技术。
特征抽取的主要功能就是在不损伤核心信息的情况下降低向量空间维数,简化计算,提高文本处理的速度和效率。相对于其他分类问题,文本特征抽取的方式常见的有4种:
其中基于数学方法进行特征选择比较精确,人为因素干扰少,尤其适合于文本应用。这种方法通过构造评估函数,对特征集合中的每个特征进行评估,并对每个特征打分,这样每个词语都获得一个评估值,又称为权值,然后将所有特征按权值大小排序,提取预定数目的最优特征作为提取结果的特征子集。
2.评估函数
对用数学方法进行特征选择的算法, 决定文本特征提取效果的主要因素是评估函数的质量 ,常用评估函数包括:
(1) TF-IDF
单词权重最为有效的实现方法就是TF-IDF它是由Salton在1988 年提出的。其中TF 称为词频, 用于计算该词描述文档内容的能力 IDF 称为反文档频率, 用于计算该词区分文档的能力。TF*IDF 的指导思想建立在这样一条基本假设之上 在一个文本中出现很多次的单词 在另一个同类文本中出现次数也会很多反之亦然。所以如果特征空间坐标系取TF 词频作为测度 就可以体现同类文本的特点。另外还要考虑单词区别不同类别的能力 TF*IDF 法认为一个单词出现的文本频率越小 它区别不同类别的能力就越大 所以引入了逆文本频度IDF 的概念以TF 和IDF 的乘积作为特征空间坐标系的取值测度。TF-IDF 法是以特征词在文档d中出现的次数与包含该特征词的文档数之比作为该词的权重,即其中, Wi表示第i个特征词的权重,TFi(t,d)表示词t在文档d中的出现频率,N表示总的文档数,DF(t)表示包含t的文档数。用TF-IDF算法来计算特征词的权重值是表示当一个词在这篇文档中出现的频率越高,同时在其他文档中出现的次数越少,则表明该词对于表示这篇文档的区分能力越强,所以其权重值就应该越大。将所有词的权值排序, 根据需要可以有两种选择方式:
达观数据的实践经验是,计算机选择的关键词数量在10∽15个,人工选择的关键词数量在4∽6个比较合适, 通常具有最好的覆盖度和专指度。TFIDF算法是建立在这样一个假设之上的:对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词语,所以如果特征空间坐标系取TF词频作为测度,就可以体现同类文本的特点。另外考虑到单词区别不同类别的能力,TFIDF法认为一个单词出现的文本频数越小,它区别不同类别文本的能力就越大。因此引入了逆文本频度IDF的概念,以TF和IDF的乘积作为特征空间坐标系的取值测度,并用它完成对权值TF的调整,调整权值的目的在于突出重要单词,抑制次要单词。但是在本质上IDF是一种试图抑制噪音的加权 ,并且单纯地认为文本频数小的单词就越重要,文本频数大的单词就越无用,显然这并不是完全正确的。IDF的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以 TF*IDF法的精度并不是很高 。此外,在TFIDF算法中并没有体现出单词的位置信息,对于Web文档而言,权重的计算方法应该体现出HTML的结构特征。特征词在不同的标记符中对文章内容的反映程度不同,其权重的计算方法也应不同。因此应该对于处于网页不同位置的特征词分别赋予不同的系数,然后乘以特征词的词频,以提高文本表示的效果。
(2) 词频法词频是一个词在文档中出现的次数。通过词频进行特征选择就是将词频小于某一阈值的词删除,从而降低特征空间的维数。这个方法是基于这样一个假设,即出现频率小的词对过滤的影响也较小。但是在信息检索的研究中认为,有时频率小的词含有更多的信息。因此,在特征选择的过程中不宜简单地根据词频大幅度删词。
(3) 文档频次法文档频数(Document Frequency, DF)是最为简单的一种特征选择算法,它指的是在整个数据集中有多少个文本包含这个单词。在训练文本集中对每个特征计一算它的文档频次,并且根据预先设定的阑值去除那些文档频次特别低和特别高的特征。文档频次通过在训练文档数量中计算线性近似复杂度来衡量巨大的文档集,计算复杂度较低,能够适用于任何语料,因此是特征降维的常用方法。在训练文本集中对每个特征计算它的文档频数,若该项的DF 值小于某个阈值则将其删除,若其DF 值大于某个阈值也将其去掉。因为他们分别代表了“没有代表性”和“没有区分度”两种极端的情况。DF 特征选取使稀有词要么不含有用信息,要么太少而不足以对分类产生影响,要么是噪音,所以可删去。DF 的优点在于计算量小, 速度快,它的时间复杂度和文本数量成线性关系,所以非常适合于超大规模文本数据集的特征选择。不仅如此,文档频数还非常地高效,在有监督的特征选择应用中当删除90%单词的时候其性能与信息增益和x2 统计的性能还不相上下。但如果某一稀有词条主要出现在某类训练集中,却能很好地反映类别的特征,而因低于某个设定的阈值而滤除掉,包含着重要的判断信息被舍弃,这样就会对分类精度有一定的影响。
(4) 互信息方法互信息(Mutual Information)衡量的是某个词和类别之间的统计独立关系,某个词t和某个类别Ci传统的互信息定义如下:互信息是计算语言学模型分析的常用方法,它度量两个对象之间的相互性。在过滤问题中用于度量特征对于主题的区分度。
互信息的定义与交叉嫡近似。互信息本来是信息论中的一个概念,用于表示信息之间的关系, 是两个随机变量统计相关性的测度,使用互信息理论进行特征抽取是基于如下假设:在某个特定类别出现频率高,但在其他类别出现频率比较低的词条与该类的互信息比较大。通常用互信息作为特征词和类别之问的测度,如果特征词属于该类的话,它们的互信息量最大。由于该方法不需要对特征词和类别之间关系的性质作任何假设,因此非常适合于文本分类的特征和类别的配准工作。特征项和类别的互信息体现了特征项与类别的相关程度, 是一种广泛用于建立词关联统计模型的标准。
互信息与期望交叉熵的不同在于没有考虑特征出现的频率, 这样导致互信息评估函数不选择高频的有用词而有可能选择稀有词作为文本的最佳特征。因为对于每一主题来讲,特征t的互信息越大,说明它与该主题的共现概率越大,因此,以互信息作为提取特征的评价时应选互信息最大的若干个特征。互信息计算的时间复杂度类似于信息增益, 互信息的平均值就是信息增益。互信息的不足之处在于得分非常受词条边缘概率的影响。达观的实验数据显示,互信息分类效果通常比较差,其次是文档频率、CC 统计,CHI 统计分类效果最好。
对互信息而言,提高分类精度的方法有:1) 可以增加特征空间的维数,以提取足够多的特征信息,这样就会带来了时间和空间上的额外开销; 2) 根据互信息函数的定义,认为这些低频词携带着较为强烈的类别信息,从而对它们有不同程度的倚重. 当训练语料库没有达到一定规模的时候,特征空间中必然会存在大量的出现文档频率很低(比如低于3 次) 的词条,他们较低的文档频率导致了他们必然只属于少数类别. 但是从抽取出来的特征词观察发现,大多数为生僻词,很少一部分确实带有较强的类别信息,多数词携带少量的类别信息,甚至是噪音词。
(5) 期望交叉熵(Expected Cross Entropy)交叉嫡与信息量的定义近似,其公式为:交叉嫡 ,也称KL距离。它反映了文本主题类的概率分布和在出现了某特定词汇的条件下文本主题类的概率分布之间的距离,词汇w的交叉嫡越大,对文本主题类分布的影响也越大。它与信息增益唯一的不同之处在于没有考虑单词未发生的情况,只计算出现在文本中的特征项。如果特征项和类别强相关, P(Ci|w)就大,若P(Ci) 又很小的话,则说明该特征对分类的影响大。交叉熵反映了文本类别的概率分布和在出现了某个特定词的条件下文本类别的概率分布之间的距离, 特征词t 的交叉熵越大, 对文本类别分布的影响也越大。熵的特征选择效果都要优于信息增益。
(6) 二次信息熵(QEMI)将二次熵函数应用于互信息评估方法中,取代互信息中的Shannon熵,就形成了基于二次熵的互信息评估函数。基于二次熵的互信息克服了互信息的随机性,是一个确定的量,因此可以作为信息的整体测度,另外它还比互信息最大化的计算复杂度要小,所以可以比较高效地用在基于分类的特征选取上。
(7) 信息增益方法(Information Gain)信息增益方法是机器学习的常用方法,在过滤问题中用于度量已知一个特征是否出现于某主题相关文本中对于该主题预测有多少信息。通过计算信息增益可以得到那些在正例样本中出现频率高而在反例样本中出现频率低的特征,以及那些在反例样本中出现频率高而在正例样本中出现频率低的特征。信息增益G(w)的训算公式如下:其中P(w)是词w出现的概率,P(Ci)是取第i个目录时的概率,P(C, |w) 是假定w出现时取第i个目录的概率。
信息增益是一种基于熵的评估方法,涉及较多的数学理论和复杂的熵理论公式,定义为某特征项为整个分类所能提供的信息量,不考虑任何特征的熵与考虑该特征后的熵的差值。他根据训练数据,计算出各个特征项的信息增益,删除信息增益很小的项,其余的按照信息增益从大到小排序。信息增益是信息论中的一个重要概念, 它表示了某一个特征项的存在与否对类别预测的影响, 定义为考虑某一特征项在文本中出现前后的信息熵之差。某个特征项的信息增益值越大, 贡献越大, 对分类也越重要。信息增益方法的不足之处在于它考虑了特征未发生的情况。特别是在类分布和特征值分布高度不平衡的情况下, 绝大多数类都是负类, 绝大多数特征都不出现。此时的函数值由不出现的特征决定, 因此, 信息增益的效果就会大大降低。信息增益表现出的分类性能偏低。因为信息增益考虑了文本特征未发生的情况,虽然特征不出现的情况肿可能对文本类别具有贡献,但这种贡献往往小于考虑这种情况时对特征分值带来的干扰。
(8) 统计量方法x2统计量用于度量特征w和主题类C之间的独立性。而表示除w以外的其他特征,C表示除C以外的其他主题类,那么特征w和主题类C的关系有以下四种情况: ,用A, B, C, D表示这四种情况的文档频次,总的文档数N=A+B+C+D,扩统计量的计算公式如下:当特征w和主题类C之间完全独立的时候,x2统计量为0。x2统计量和互信息的差别在于它是归一化的统计量,但是它对低频特征的区分效果也不好。X2 统计得分的计算有二次复杂度, 相似于互信息和信息增益。在 X2 统计和互信息之间主要的不同在于 X2 是规格化评价, 因而 X2 评估分值对在同类中的词是可比的, 但是 X2 统计对于低频词来说是不可靠的。
利用x2 统计方法来进行特征抽取是基于如下假设:在指定类别文本中出现频率高的词条与在其他类别文本中出现频率比较高的词条,对判定文档是否属于该类别都是很有帮助的.采用x2估计特征选择算法的准确率在实验中最高,其分类效果受训练集影响较小,比较稳定。而且在对文教类和政治类存在类别交叉现象的文本进行分类时,采用x2估计的分类系统表现出了优于其它方法的分类性能。X2估计的可靠性较好,便于对程序的控制,无需因训练集的改变而人为的调节特征阀值的大小。
(9) 文本证据权(The Weight of Evidence for Text)文本证据权衡量类的概率和给定特征时类的条件概率之间的差别。
(10) 优势率(Odds Ratio)优势率只适用于二元分类的情况,其特点是只关心文本特征对于目标类的分值。Pos表示目标类,neg表示非目标类。
(11) 遗传算法(Genetic Algorithm, GA):遗传算法(Genetic Algorithm, GA)是一种通用型的优化搜索方法,它利用结构化的随机信息交换技术组合群体中各个结构中最好的生存因素,复制出最佳代码串,并使之一代一代地进化,最终获得满意的优化结果。
文本实际上可以看作是由众多的特征词条构成的多维空间,而特征向量的选择就是多维空间中的寻优过程,因此在文本特征提取研究中可以使用高效寻优算法。在将文本特征提取问题转化为文本空间的寻优过程中,首先对Web文本空间进行遗传编码,以文本向量构成染色体,通过选择、交叉、变异等遗传操作,不断搜索问题域空间,使其不断得到进化,逐步得到Web文本的最优特征向量。 基于协同演化的遗传算法不是使用固定的环境来评价个体,而是使用其他的个体来评价特定个体。基于协同演化的遗传算法不仅能反映其母体的特征,还能反映其他同类文本的共性,这样可以有效地解决同一主题众多文本的集体特征向量的提取问题,获得反映整个文本集合某些特征的最佳个体。
(12) 主成分分析法(Principal Component Analysis,PCA)
PCA是非常常用的一种通用特征降维方法,也同样大规模用于文本特征抽取中,基于其处理方式的不同又分为 数据方法和矩阵方法 。
矩阵方法中,所有的数据通过计算方差一协方差结构在矩阵中表示出来,矩阵的实现目标是确定协方差矩阵的特征向量,它们和原始数据的主要成分相对应。在主成分方法中,由于矩阵方法的复杂度在n很大的情况 以二次方增长,因此人们又开发了主要使用Hebbian学习规则的PCA神经网络方法。主成分分析法是特征选取常用的方法之一,它能够揭示更多有关变量_丰要方向的信息。但它的问题在于矩阵方法中要使用奇异值分解对角化矩阵求解方差一协方差。
(13) 模拟退火算法(Simulating Anneal,SA)特征选取可以看成是一个组合优化问题,因而可以使用解决优化问题的方法来解决特征选取的问题。模拟退火算法(Simulating Anneal,SA)就是其中一种方法。模拟退火算法是一个很好的解决优化问题的方法,将这个方法运用到特征选取中,理论上能够找到全局最优解,但在初始温度的选取和邻域的选取t要恰当,必须要找到一个比较折中的办法,综合考虑解的性能和算法的速度。
(14) N—Gram算法它的基本思想是将文本内容按字节流进行大小为N的滑动窗口操作,形成长度为N的字节片段序列。每个字节片段称为gram,对全部gram的出现频度进行统计,并按照事先设定的阈值进行过滤,形成关键gram列表,即为该文本的特征向量空间,每一种gram则为特征向量维度。
由于N—Gram算法可以避免中文分词的障碍,所以对中文分类有较高的实用性。中文文本处理大多采用双字节进行分解,称之为bi-gram。但是bigram切分方法在处理20%左右的中文多字词时,往往产生语义和语序方面的偏差。而对于专业研究领域,多字词常常是文本的核心特征,处理错误会导致较大的负面影响。基于N—Gram改进的文本特征提取算法,在进行bigram切分时,不仅统计gram的出现频度,而且还统计某个gram与其前邻gram的情况,并将其记录在gram关联矩阵中。对于那些连续出现频率大于事先设定阈值的,就将其合并成为多字特征词。这样通过统计与合并双字特征词,自动产生多字特征词,可以较好地弥补N—Gram算法在处理多字词方面的缺陷。
3. 评估函数对比分析
上述罗列的几种文档特征评估函数的特点如何呢?信息增益的定义过于复杂,因此应用较多的是交叉嫡和互信息。其中互信息的效果要好于交叉嫡,这是因为互信息是对不同的主题类分别抽取特征词,而交叉嫡跟特征在全部主题类内的分布有关,是对全部主题类来抽取特征词。这些方法,在英文特征提取方面都有各自的优势,但用于中文文本,并没有很高的效率。主要有2个方面的原因:
目前使用评估函数进行特征选取越来越普遍,特征选取算法通过构造一个评估函数的方法,选取预定数目的最佳特征作为特征子集的结果。在几种评估方法中,每一种方法都有一个选词标准,遵从这个标准,从文本集的所有词汇中选取出有某个限定范围的特征词集。因为评估函数的构造不是特别复杂,适用范围又很广泛,所以越来越多的人们喜欢使用构造评估函数来进行特征的选取,这些评估函数在Web文本挖掘中被广泛使用,特征选择精度普遍达到70%~80%,但也各自存在缺点和不足。例如,“信息增益”考虑了单词未发生的情况,对判断文本类别贡献不大,而且引入不必要的干扰,特别是在处理类分布和特征值分布高度不平衡的数据时选择精度下降。“期望交叉熵”与“信息增益”的唯一不同就是没有考虑单词未发生的情况,因此不论处理哪种数据集,它的特征选择精度都优于“信息增益”。与“期望交叉熵”相比,“互信息”没有考虑单词发生的频度,这是一个很大的缺点,造成“互信息”评估函数经常倾向于选择稀有单词。“文本证据权”是一种构造比较新颖的评估函数,它衡量一般类的概率和给定特征类的条件概率之间的差别,这样在文本处理中,就不需要计算W的所有可能值,而仅考虑W在文本中出现的情况。“优势率”不像前面所述的其他评估函数将所有类同等对待,它只关心目标类值,所以特别适用于二元分类器,可以尽可能多地识别正类,而不关心识别出负类。从考虑文本类间相关性的角度,可以把常用的评估函数分为两类,即类间不相关的和类间相关的
“文档频数”(DF)是典型的类间不相关评估函数, DF的排序标准是依据特征词在文档中出现篇数的百分比,或称为篇章覆盖率。这种类型的评估函数,为了提高区分度,要尽量寻找篇章覆盖率较高的特征词,但又要避免选择在各类文本中都多次出现的无意义高频词,因此类间不相关评估函数对停用词表的要求很高。但是很难建立适用于多个类的停用词表,停用词不能选择太多,也不能选择太少,否则都将会影响特征词的选择。同时,类间不相关评估函数还存在一个明显的缺点,就是对于特征词有交叉的类别或特征相近的类别,选择的特征词会出现很多相似或相同的词条,造成在特定类别间的区分度下降。类间相关的评估函数,例如期望交叉熵、互信息、文本证据权等,综合考虑了词条在已定义的所有类别中的出现情况,可以通过调整特征词的权重,选择出区分度更好的特征,在一定程度上提高了相近类别的区分度。但是,该区分度的提高仅体现在已定义的类别间,而对于尚未定义的域外类别,类间相关评估函数的选择效果也不理想。因此,在评估函数选择问题上,提高对域外类别文本的区分度是十分重要的研究课题。
传统的特征选择方法大多采用以上各评估函数进行特征权重的计算,由于这些评估函数是基于统计学的,其中一个主要缺陷就是需要用一个很庞大的训练集才能获得几乎所有的对分类起关键作用的特征.这需要消耗大量的时间和空间资源,况且,构建这样一个庞大的训练集也是一项十分艰巨的工作。然而,在现实应用中,考虑到工作效率,不会也没有足够的资源去构建一个庞大的训练集,这样的结果就是:被选中的甚至是权重比较高的特征,可能对分类没有什么用处,反而会干涉到正确的分类;而真正有用的特征却因为出现的频率低而获得较低的权重,甚至在降低特征空间维数的时候被删除掉了。基于评估函数的特征提取方法是建立在特征独立的假设基础上,但在实际中这个假设是很难成立的,因此需要考虑特征相关条件下的文本特征提取方法。
4. 词向量的应用
特征选择也可以通过用映射或变换的方法把原始特征变换为较少的新特征。上面提到的特征选择模块,在实际情况会碰到这样的问题:无论是采用文档频率、信息增益法、互信息法等得降维方法,都会损失了部分的文档信息。以文档频率为例,在特征选择过程中由于某些关键的词语低于了人为设定的阈值,所以会被直接忽视掉,而很多情况这部分词汇能包含较多的信息,对于分类的重要性比较大。怎么能够进一步理解这部分的信息,是急需要解决的问题。一个想法是找到这些使用频率比较低的词语相似的高频词,譬如在讨论“月亮”的古诗词中,包含了很多低频的同义词,如“玉兔”,“婵娟”等,如果我们能把这些低频的词语合并到一个维度,无疑是能够增强分类系统对文档的理解深度的。词向量这一概念能够有效地表示词语之间的相似性,适用于这种方法。
先介绍一下词向量的定义。一种最简单的词向量是one-hot representation,就是用一个很长的向量来表示一个词,向量的长度是词典D的大小N,向量的分量只有一个为1,其他全为0,1的位置对应该词在词典中的索引。这种词向量表示有一些缺点:容易受维数灾难的困扰。另一种词向量是Distributed Representation,它最早是Hinton于1986年提出来的,可以克服one-hot representation的上述缺点。其基本想法是:通过训练将某种语言中的每个词映射成一个固定长度的短向量。所有这些向量构成一个词向量空间,每个向量是该空间中的一个点,在这个空间上引入距离,就可以根据词之间的距离来判断它们之间的(词法、语义上的)相似性了。如何获取Distributed Representation的词向量呢?有很多不同的模型可以用来估计词向量,包括有名的LSA、LDA和神经网络算法。 Word2Vec 就是使用度比较广的一个神经网络算法实现的词向量计算工具。
现在介绍词向量在分类系统上的具体实践。Word2Vec能够将词映射成一个固定长度的短向量,所以生成了文档集合词语的向量表示。由于向量的距离代表了词语之间的相似性,我们可以通过聚类的方法(譬如K-Means)把相似的词语合并到一个维度,重新计算该维度的特征向量权值。相比于原来的方法,使用词向量能在一定程度保留了文档的信息。此外,Word2Vec作为无监督学习方法的一个实现,能够允许它从无标注的文本进行训练,能进一步提升系统的性能。
另外,基于向量空间模型的文本分类方法是没有考虑到词的顺序的。基于卷积神经网络(CNN)来做文本分类,可以利用到词的顺序包含的信息。CNN模型把原始文本作为输入,不需要太多的人工特征。下图是CNN模型的一个实现,共分四层,第一层是词向量层,doc中的每个词,都将其映射到词向量空间,假设词向量为k维,则n个词映射后,相当于生成一张n*k维的图像;第二层是卷积层,多个滤波器作用于词向量层,不同滤波器生成不同的feature map;第三层是pooling层,取每个feature map的最大值,这样操作可以处理变长文档,因为第三层输出只依赖于滤波器的个数;第四层是一个全连接的softmax层,输出是每个类目的概率。除此之外,输入层可以有两个channel,其中一个channel采用预先利用word2vec训练好的词向量,另一个channel的词向量可以通过backpropagation在训练过程中调整。
图 3 基于卷积神经网络的文本分类算法
作者简介:张健,复旦大学计算机软件与理论硕士,现任达观数据联合创始人,曾在盛大创新院负责相关推荐模块,在盛大文学数据中心负责任务调度平台系统和集群维护管理,数据平台维护管理和开发智能审核系统。 对大数据技术、机器学习算法有较深入的理解和实践经验。