发明内容
为解决上述技术问题,本发明的目的是提供一种结合主题语义与TF*IDF算法的大规模文本分类方法及系统。所述方法与系统提高文本分类处理的效能,同时立足于大规模文本的数据驱动分析处理模式,与语种无关,可以跨语种和混合语种使用,避免TF*IDF算法缺乏词语之间内在关联信息,以及LDA方法在文本分类处理中对增量处理能力弱和主题计算不稳定等问题。
本发明的目的通过以下的技术方案来实现:
一种结合主题语义与TF*IDF算法的大规模文本分类方法,包括:
步骤A收集文本语料,并将收集得到的文本集进行预处理;
步骤B对预处理后的文本集根据业务需要进行分类,分成训练语料和测试语料;
步骤C对训练语料进行LDA分析处理,得到文本-主题分布和主题-词语分布;
步骤D计算词语对文本分类的主题语义因子TSF;
步骤E对测试语料进行特征词语的选取,形成数量不同的特征向量;
步骤F采用特征词分类权重计算方法计算选取的特征词对应各分类的权重;
步骤G构造文本分类器,利用分类器对测试文本集合进行计算,得到文本分类结果;
步骤H采用评价函数评估分类器的性能参数,并根据评价参数结果确定特征向量;
步骤I将新增加的文本进行预处理后送入文本分类器进行分类处理,得到分类结果。
一种结合主题语义与TF*IDF算法的大规模文本分类系统,包括:
语料收集和预处理模块、主题语义分析及主题语义因子计算模块、特征选择与权重计算模块、文本分类模块、评估与参数优选模块和结果输出模块;
所述语料收集和预处理模块,去除文本中无关的显示标记和内容,仅保留文本内容信息,对文本涉及的字符集编码进行规整,对文本进行分词处理;
所述主题语义分析及主题语义因子计算模块,实现LDA分析处理,得到文本-主题分布和主题-词语分布,在此基础上计算给出词语对文本分类的主题语义因子TSF;
所述特征选择与权重计算模块,根据信息增益和TSF进行特征选择,选择一定数量的词语作为特征向量的特征项,依据TF、IDF和TSF计算特征向量的权重;
所述文本分类模块,对输入的以特征向量表示的文档进行分类处理;
所述评估与参数优选模块,实现对文本分类效果的评估并依据最优效果确定分类的特征词数量;
所述结果输出模块,用于实现对文本分类结果的呈现和输出。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
对TF*IDF算法引入了主题语义,调整特征向量中特征词语的选择和特征项权重的计算,有效强化了特征词语之间内在关联信息的利用,弥补了TF*IDF算法的不足。实验表明,本发明采用的处理方法,较通用的TF*IDF算法,分类准确率提高7个百分点。同时主题语义通过文本数据驱动的方式获得,无需引入额外的语言知识,降低了技术实施的成本,特别适合大规模、多语种文本的分类处理。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合实施例及附图对本发明作进一步详细的描述。
本发明为TF*IDF算法的向量空间文本方法上引入主题语义,提供了优化选择特征词语和计算特征向量权重的新方法。该方法通过对训练文本计算进行LDA分析,计算得到词语在主题限制下对于分类的作用,将这一作用引入到特征选择和权重计算,改进了已有的方法,形成语种无关的结合主题语义与TF*IDF算法的大规模文本分类方法。实验表明,该方法可以有效提高文本分类的正确率、召回率和F1测度等性能。
图1所示为结合主题语义与TF*IDF算法的大规模文本分类方法流程,包括以下步骤:
步骤1,根据业务需要收集整理文本语料,规范文本的内码表示,形成文本集合,并根据业务需求对文本进行分类。
步骤2,对收集得到的文本集按篇进行分词处理,得到文档的词语序列串。对文本进行分类。分成4个类别,各类文本数量分别为:市政市容管理类(4021篇)、灾难事件类(4835篇)、军事新闻类(4452篇)和其他类(6692篇);其中一半作为训练语料(10000篇),另一半作为测试语料(10000篇)。
步骤3对训练语料进行LDA分析,得到文档-主题分布θ,主题-词语分布φ。
对训练语料进行LDA分析处理包括:
构建文本集合的LDA模型,以单个文档为处理单位,利用潜在狄利克雷分配模型为文档集合建立主题模型;
使用Gibbs算法求解获得文档-主题分布和主题-词汇分布;
对LDA模型参数设置,其中,对超参数α和β的各个分量统一取值,即采用对称的Dirichlet参数,并根据主题数目取α=5/K,所有的β取固定的经验值β=0.01;其中K值表示对语料集合设置的主题数;根据语料文本集合,主题数K采用模型混乱度分析方法进行估计,在得到混乱度随主题数变化曲线的基础上,选择混乱度较低的主题数作为候选,进一步利用待处理的真实语料进行实验和人工分析,选择生成的主题具有比较好解释对应的主题数。
步骤4计算各个类别的类别-主题分布,计算得到词语w对文本分类C的主题语义因子TSF;
主题语义因子TSF计算公式为:
词语w对文本分类C的主题语义因子TSF具体计算如下:
式中TSF(w|C)为主题语义因子,表示词语w对C类文档分类的重要性,K表示LDA分析处理时确定的主题总数,φ为LDA分析得到的词语-主题分布,式中P(zj|C)依据文档-主题分布θ计算,采用算术平均的方法直接计算,具体计算公式为:
其中,T表示属于分类C的文档总数,zj是分类C中各文档中隐含的主题;
词语w对文本分类C的主题语义因子TSF具体计算如下:
式中K表示LDA分析处理时确定的主题总数。
步骤5计算词语对文本类别的信息增益,结合主题语义因子TSF计算词语w的分类重要值,设定不同阈值,得到不同数目的特征词语(特征词语的总数分别为2000、4000、6000、8000、10000、12000)。
特征词语的具体选取方法包括:
对分词处理后的训练文本中的每个词语计算作为特征词语的信息增益;在信息增益的基础上,考虑主题语义因子的影响;信息增益的值为不考虑任何特征时文档的熵和考虑了该特征后文档熵的差值,具体计算公式为:
G(w)=E(S)-E(Sw)
式中P(C)表示C类文档在语料中的出现概率,P(w)表示语料中包含特征项w的文档概率,P(C|w)表示文档包含特征项w时属于C类的条件概率,表示语料中不包含特征项w的文档概率,/>表示文档不包含特征项w时属于C类的条件概率,M表示对文本集合分类的总数;
在计算信息增益的基础上,结合主题语义因子TSF计算词语的分类重要值,具体公式如下:
根据词语的分类重要值大小,选取不同数目的词语作为特征向量。
步骤6使用特征词分类权重计算方法(TF*IDF*TSF)计算选取的特征词对应各分类的权重;具体计算公式如下:
式中TSF(w|C)为计算得到的主题语义因子,表示词语w对C类文档分类的重要性;
步骤7构造本文分类器,利用分类器对测试文本集合进行计算,得到文本分类结果。构造文本分类器中采用k-最近邻方法实现。
步骤8采用评价函数评估不同特征词语数量下的分类器的性能;采用micro-F1测度函数进行文本分类性能评价。
步骤9根据分类器的评价参数结果,确定特征词语数量,形成特征向量。
步骤10将新增加的文本进行预处理后送入文本分类器进行分类处理,得到分类结果。
所述步骤1和步骤9中预处理包括:去除文本中无关的显示标记和内容,仅保留文本内容信息;对文本涉及的字符集编码进行规整;对文本进行分词处理。
本实施例还提供了一种结合主题语义与TF*IDF算法的大规模文本分类系统,包括:
语料收集和预处理模块、主题语义分析及主题语义因子计算模块、特征选择与权重计算模块、文本分类模块、评估与参数优选模块和结果输出模块;
所述语料收集和预处理模块,去除文本中无关的显示标记和内容,仅保留文本内容信息,对文本涉及的字符集编码进行规整,对文本进行分词处理;
所述主题语义分析及主题语义因子计算模块,实现LDA分析处理,得到文本-主题分布和主题-词语分布,在此基础上计算给出词语对文本分类的主题语义因子TSF;
所述特征选择与权重计算模块,根据信息增益和TSF进行特征选择,选择一定数量的词语作为特征向量的特征项,依据TF、IDF和TSF计算特征向量的权重;
所述文本分类模块,对输入的以特征向量表示的文档进行分类处理;
所述评估与参数优选模块,实现对文本分类效果的评估并依据最优效果确定分类的特征词数量;
所述结果输出模块,用于实现对文本分类结果的呈现和输出。
上述实施例提供的方案涉及的各个环节:
1、语料选择:
可以从各种网站上下载、收集需要分类的内容,也可以利用自有信息系统中存在的各类文档、电子文件等;对文本涉及的字符集编码进行规整;对文本进行分词处理。
进一步需要根据用户的需求对收集得到的电子文本进行分类。同时尽量保持各个分类的文本数量基本均衡。
将预处理和分类的语料分成测试语料和训练语料两部分。
2、训练语料LDA分析和主题语义因子TSF计算:
2-1、LDA建模
将语料集合表示为由M个文档构成,记作D={d1,…,dM},其中文档dm是长度为(N)的词语序列,可以写成w=(w1,…,w(N)),其中wn表示序列中的第n个词语。
LDA模型的出发点是将各文档表示为K个潜在主题的混合。这里外层的框表示一个文本,内层的框表示主题和词语的混合选择:α和β是模型的预设的超参数;K表示形成的主题个数(如图3所示)。
主题本身是在文档中显式出现,用词汇上的概率分布来捕捉,它的生成过程如下:
(1)从Dirichlet分布先验β中为每个主题抽取多项式分布φk,共抽取K个分布。
(2)从Dirichlet分布先验α中为每个文档抽取多项式分布θm,共抽取M个分布。
(3)对语句集合中的每个文本和文本中的词汇:
a)从多项式分布θm中抽取主题zm;
b)从多项式分布φk中抽取词语wn;
Dirichlet分布为一族连续的多元概率分布,以数学家Lejeune Dirichlet的名字命名,表示为:
其中α=(α1…αK)T为Dirichlet的分布参数。Γ(x)为伽玛函数,定义为
模型中最重要的变量是主题-词语分布φk和文档-主题分布θm。对于这两个参数可以直接使用极大似然法估计,但是这样存在局部极值问题,一般采用Gibbs方法求取。
2-2使用Gibbs算法求解获得文档-主题分布和主题-词汇分布
具体为在文档m中,对于给定的词语wn,首先利用Gibbs抽样取得词语在主题z上的后验概率P(wn|z)估计值;在其他词语上的主题分配(z-n)确定的情况下,估计该当前词语wn分配主题j的概率p(zn=j);然后边缘化φk和θm,间接求得φk和θm的值。下式是具体的说明。
其中CVK和CMK分别为维数为V×K和M×K的数量矩阵,V为词语个数。为词语w分配给主题j的频次,其中不包含当前记号实例n;/>为文档dm中分配给主题j的词语个数,其中不包含当前实例n。wn表示一个特征词语。一旦词语特征分配给了主题j,就增加了给任何特定的特征分配主题j的概率;同样,若主题j在一个文本中使用了多次,则该文本的任意词语分配主题j的概率也将增加。
利用Gibbs抽样方法估计LDA模型中的参数,首先为词语特征在[1…K]主题中随机分配一个主题,构成初始的Markov链,然后对于文本中的所有词语特征根据上面的公式分配主题,获取Markov链的下一个状态,经过多次迭代,Markov链就可以达到稳定状态。
抽样算法估计每个词语与主题z的φ和θ的值,公式如下:
式中值为从主题j中抽取新词记号wn的概率估计,而/>为在文档wm从主题j抽取新词的概率估计。/>和/>即为文本-主题分布和主题-词语分布的估计值,用于后继计算。
2-3、LDA模型参数设定。
对于LDA模型,选择超参数α=5/K,所有的β取固定的经验值β=0.01。为了确定适合的主题数K值,计算得到混乱度随K变化的情况,确定适当的主题K数。
混乱度的计算方法是计算文档集中所包含的各句群的似然值(Likelihood),进而取它的几何均值的倒数。LDA处理模型混乱度随着句群似然值的增加而单调递减。具体计算公式如下:
上式中N为文档集中文档个数,Ns为文档S中词项的个数,p(S)为文档S中的似然值。这里采用的LDA模型,因而文档的似然值由文档的主题分布和主题的词汇分布给出,具体计算如下:
式中n(w,S)为文档S中词w出现的次数。
如图4给出本例中混乱度随K值变化的曲线。从图中可以看出,当主题数K值取大于160的值,混乱度都有较低的表现。这里需要说明的是,随着主题数增加混乱度也会降低。同时随着主题数的增加,混乱度可以很低,但是相应的也失去了模型的归纳处理能力。因此这里选择主题数K值并非要选择对应混乱度最低的K值,而是选择一个混乱度相对较低,同时产生出来的主题模型容易解释。综合这些因素,在本例中主题数K值选择200。
2-4计算分类的类别-主题分布。
给出的是文档-主题分布,需要转换为类别-主题分布。采用算术平均的方法直接计算。具体计算的公式为:
其中,T表示属于分类C的文档总数,zj是分类C中各文档中隐含的主题。
2-5、词语w对文本分类C的主题语义因子TSF具体计算如下:
式中K表示LDA分析处理时确定的主题总数。
3、特征选取:
本实施例基本处理框架是向量空间模型,选择词语作为特征项组成特征向量,利用计算向量空间的距离来进行文本分类处理。本发明中利用信息增益结合主题语义因子TSF,对候选词语进行重要程度评估,并按照不同门限选择数量不等的词语作为特征词。
结合主题语义因子TSF计算词语w的分类重要值,具体公式如下:
式中G(w)为词语w的信息增益,M表示对文本集合分类的总数,TSF(w|C)为计算得到的主题语义因子,表示词语w对C类文档分类的重要性。
信息增益的值为不考虑任何特征词语时文档的熵和考虑了该特征词语后文档熵的差值,具体计算的公式为:
式中P(C)表示C类文档在语料中的出现概率,P(w)表示语料中包含特征项w的文档概率,P(C|w)表示文档包含特征项w时属于C类的条件概率,表示语料中不包含特征项w的文档概率,/>表示文档不包含特征项w时属于C类的条件概率,M表示对文本集合分类的总数。
在上述计算的基础上,根据词语的分类重要值,分别选择总数为2000、4000、6000、8000、10000、12000的词语作为特征词语。
4、特征向量的权重计算:
这里特征向量权重计算公式为:
式中W(w|C)表示词语w在类别C中所占的权重,tfw表示词语w在训练文本集合中C类别中出现的频次,N表示训练文本集合中的文本总数,nw表示训练文本集合中出现词语w的文本数量,TSF(w|C)为计算得到的主题语义因子,表示词语w对C类文档分类的重要性。
上面计算公式中为标准的TF*IDF方法。
TF*IDF是特征向量建立和权重计算的最常用方法。向量空间的文本表示模型采用数值量化的向量描述文本内容之间的关联关系,通过计算向量之间的相似度来确定文本内容的相似程度,大大降低了早期统计方法中的数据稀疏问题,但是向量空间模型把向量中的各个分量视为独立的特征项,忽略了特征之间的语义关联关系,这使得利用TF*IDF方法性能上还存在缺陷。这里融入LDA带来的浅层语义信息。根据LDA分析结果,计算主题语义因子TSF,并将TSF作为新的量化维度引入特征选择和特征向量权重计算中,强化了特征项之间内在关联性的量化计算,优化了文本分类的性能。
5、构造分类器:
采用k-最近邻法,分类规则为:
式中y(dx,Cj)取值为0或1,取值为1时表示dx属于Cj,取值为0时表示dx不属于Cj;sim(dx,di)中为输入测试文档dx与训练文档di之间利用向量空间距离衡量的相似度;bj为二元决策的门限值。
6、评价函数:
在文本分类处理中已经存在了多种性能评估的函数,包括召回率、正确率、F-测度等。目前业内较多使用micro-F1测度和macro-F1测度,比较而言micro-F1测度更常用一些,这里也采用micro-F1测度评估文本分类的性能,具体公式如下:
式中,r表示总召回率,p表示总正确率;Ncr表示正确分类的文本数,Nc表示分类器分类的文本总数,Ns表示测试集中存在的正确分类文本数。
对于不同总数的特征词语,使用F1评估可能最优的特征词语数量,作为分类器使用的特征向量。
7、实验结果
这里收集整理文本语料20000篇,分成4个类别,各类文本数量分别为:市政市容管理类(4021篇)、灾难事件类(4835篇)、军事新闻类(4452篇)和其他类(6692篇);其中一半作为训练语料(10000篇),另一半作为测试语料(10000篇)。
下表为实验结果:
从实验结果可以看出,在各种不同特征词数目下本发明形成的TF*IDF*TSF方法的分类效果都要好于TF*IDF算法,当N=10000时,文本分类的F1达到最优,提升值较TF*IDF算法的值提高7%以上,充分说明了该方法的有效性。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。