一种文本训练方法和分类方法 【技术领域】
本发明涉及模式识别领域,具体涉及一种文本训练方法和分类方法。
背景技术
随着互联网技术的快速发展,在线文本呈现指数增长。面对浩如烟海的文本数据,人们迫切需要一种能够自动处理与组织大规模文本的高效工具。文本自动分类就是对大量文本按照它的内容进行自动分类,从而帮助人们有效地处理和组织文本数据。因此,研发高性能文本分类方法就越来越成为信息检索领域的一个研究热点。许多经典的机器学习方法被引入到文本分类中来。比较常用的有中心分类方法、Rocchio、最近邻(KNN)、Winnow、贝叶斯(NB)、支持向量机(SVM)、投票方法(Voting)等方法。
在众多的文本分类方法中,支持向量机与投票方法的分类精度最高。但他们的训练与分类时间都很长,难以满足大规模文本分类的需要。相反,中心分类方法、贝叶斯、Rocchio与Winnow则是典型的线性分类器,训练和分类时间与问题的规模成线性关系,因此从时间上可以满足大规模文本的分类需要,但它们的精度往往不太理想。所以,总的来说,目前的分类方法尚处于顾此失彼的状况,很难达到高性能文本分类方法的要求。
【发明内容】
本发明要解决的技术问题是在精度和速度之间实现平衡(trade-off),提供一种文本训练方法,根据该方法训练得到的中心对文本进行分类不仅精度高而且速度快。
根据本发明的一个方面,提供了一种文本训练方法,包括下列步骤:
1)计算每类训练样本集的中心向量;
2)根据训练样本集的中心向量对所述训练样本集中的样本进行分类;
3)对分类不正确的样本,根据设定的拉近权dragweight和推远权pushweight修正所述分类不正确的样本的所属类别A的中心向量或/和被错分到的类别B的中心向量。
在上述方法中,所述步骤3)包括:
31)对样本向量d中特征l的权重dl大于0的情况,根据公式对所述分类不正确的样本的所属类别A的中心向量进行修正,其中Cs表示类别的中心向量,o表示迭代步数;
32)如果根据公式对所述CA,lS,o+1进行归一化,其中CN表示将所述Cs归一化后的中心向量。
在上述方法中,所述步骤3)包括:
33)对样本向量d中特征l的权重dl大于0的情况,根据公式对所述分类不正确的样本被错分到的类别B的中心向量进行修正,其中Cs表示类别的中心向量,o表示迭代步数;
34)如果根据公式对所述CB,lS,o+1进行归一化,其中CN表示将所述Cs归一化后的中心向量。
其中,所述步骤33)还包括:
331)如果所述CB,lS,o+1小于0,则将CB,lS,o+1置为0。
其中,所述拉近权dragweight是1.0。
其中,所述推远权pushweight是1.0。
在上述方法中,所述步骤2)和步骤3)执行迭代步数的最大值次。
其中,所述迭代步数的最大值的取值范围是[5,8]。
根据本发明的另一方面,还提供了一种文本分类方法,包括下列步骤:
根据上述任一文本训练方法所得到的中心向量对新文本进行分类。
本发明的有益效果在于,根据本发明的文本训练方法所得到的中心进行文本分类,不但提高了分类精度,实际训练和分类时间还保持较短。
【附图说明】
图1是根据本发明一个具体实施例的文本训练方法流程图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对根据本发明一个实施例的文本分类方法进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明试图在保持中心分类方法的时间复杂度不变的情况下,通过修正(或称之为优化)类别的中心向量来提高它们的分类精度。
中心分类方法的分类思路简单,根据算术平均值为每类文本集生成一个代表该类的中心向量,然后在新文本来到时,确定新文本的向量,计算该向量与每类中心向量间的距离(相似度),最后判定新文本属于与样本距离最近的类,具体步骤如下:
步骤1:计算每类训练样本集的中心向量;
步骤2:新文本到来后,分词,将新文本表示为特征向量;
步骤3:计算新文本特征向量和每类中心向量间地相似度;
步骤4:比较每类中心向量与新文本特征向量的相似度,将新文本分到相似度最大的那个类别中。
分析中心分类方法分类出错的训练结果,可以发现,一个样本t之所以会被错分,是因为它与正确类别A的相似度小于与错分入的类别B的相似度,即:Sim(t,CA)<Sim(t,CB),其中CA和CB分别表示类别A和B的中心向量,Sim(t,CA)和Sim(t,CB)分别表示样本t与类别A和类别B的相似度。在选定的特征集下,样本t是确定的,那么引起错误的不确定因素只能是类别A的中心向量CA或类别B的中心向量CB。如果对这两个类的中心向量做出适当修正,使之满足Sim(t,CA)>Sim(t,CB)(即Dist(t,CA)<Dist(t,CB),其中Dist(t,CA)和Dist(t,CB)分别表示样本t与类别A的中心向量CA和类别B的中心向量CB的距离),则样本t就可以被正确分类。
为此本发明提出了基于修正策略的分类方法。修正策略的基本做法是在上述步骤1中利用错分样本对误分入的类别的中心向量或/和所属类别的中心向量做出修正。优选的,对上述两个中心向量同时进行修正,则既保证了错误修正的一致性,又能很快达到高水平的性能平衡点。例如,如果A类中样本t被误分到B类,那么就应该加大样本t与A类中心向量之间的相似度,减少与B类中心向量之间的相似度。很显然,经过“修正”操作之后,样本t被正确分类的可能性大大提高了。本发明对全部训练样本进行分类,对每一个错分样本都要进行“修正”操作。对全部训练样本只需重复执行少量次数修正操作就能达到性能的稳定点。
根据上述分析,如图1流程图所示,本发明一个实施例的计算每类训练样本集的中心向量的步骤的具体流程如下:
首先根据公式(1)计算每类训练样本集的中心向量。本领域技术人员可以理解,除了公式(1)的计算方法,在此步骤中还可以采用其它的方法来计算每类训练样本集的中心向量。
Ci=1|ci|Σd∈cid---(1)]]>
其中,d表示样本文档向量,Ci表示类别i的中心向量,|Ci|表示类中的文档数。
然后,设定必要的参数,例如迭代步数的最大值(max-iteration-step),其优选范围是[5,8],拉近权(dragweight)和推远权(pushweight),上述权值优选值为1.0。
根据每类训练样本集的中心向量对训练集中的每篇样本文本进行分类。如果分类正确,则直接对训练集中的下一篇样本文本进行分类,直到所有样本文本分类完毕。如果分类错误,则执行下述修正中心向量的步骤,再对下一篇样本文本进行分类,直到所有样本文本分类完毕。对所有样本文本执行max-iteration-step次判断分类正确与否和修正中心向量的操作后,结束。
若属于A类的样本d被错分到B类,根据本发明的一个优选实施例,采用公式(2)至公式(5)修正A类的中心向量和B类的中心向量。
根据公式(2)计算经过一次修正后的A类的中心向量:
CA,lS,o+1=CA,lS,o+dragweight×dl]]>如果dl>0 (2)
如果则不做进一步处理,否则对公式(2)所得到的向量进行归一化:
CA,lN,o+1=CA,lS,o+1||CAS,o+1→||2---(3)]]>
同理,根据公式(4)计算经过一次修正后的B类的中心向量,并如果则根据公式(5)进行归一化:
CB,lS,o+1=[CB,lS,o-pushweight×dl]+]]>如果dl>0 (4)
CB,lN,o+1=CB,lS,o+1||CBS,o+1→||2---(5)]]>
其中d表示样本文档向量,dl表示文本向量中特征l的权重。CS表示按照公式(1)计算的中心向量,C1S表示中心向量CS在特征l上的分量;CN表示将CS归一化的中心向量,C1N表示中心向量CN在特征l上的分量。o表示迭代步数,|| ||2表示2-范数。
公式(4)中|z|+的定义为|z|+=max{z,0},用于去掉中心向量中的负数。该函数的运用是一个提高中心向量计算精度的优选方案,因为根据实验,含有负数的中心向量可能导致精度下降。本领域技术人员可以理解,在公式(4)中,不采用该函数仍然能实现本发明的基本效果。
根据本发明的上述实施例,采用迭代步数的最大值作为方法终止的边界条件,本领域技术人员可以理解,可以采用其它边界条件来终止方法的执行,例如,分类正确的样本文本的个数占样本文本总个数的比例。
设训练文档数为D,测试文档数为T,总词数为W,总类别数为K,最大迭代步数为M。那么计算中心分类方法分类器的时间复杂度为O(DW+KW),其中O(DW)用来计算中心向量,O(KW)用来计算归一化中心向量。因为D>K,所以,中心分类方法的训练时间复杂度约为O(DW)。修正阶段需要对D篇文档进行分类,对错误文档需要修改2个类的中心向量,所以时间复杂度为O(D(KW+2W)),因为K≥2,所以时间需求约为O(DKW)。所以整个训练阶段的时间复杂度为O(DW+MDKW),约为O(MDKW)。所以,修正策略的训练阶段依然与问题的规模即文档数D成线性关系。修正策略最终得到的分类器依然是K个中心向量,所以分类的时间复杂度与中心分类方法一样,都是O(TKW)。所以,基于本发明的分类器也是一个线性分类器。
对一个中文语料集进行实验,评价指标采用精度(Accuracy)和时间。采用中心分类方法与支持向量机方法作为对比分类方法。
训练集语料包含2898篇经济类文章,测试集语料包含1449篇经济类文章,分为4个类别,词典大小为40748,训练步数为5步。
本发明方法与支持向量机方法达到了基本一样的精度,大约为86%,高出中心分类方法(80%)6个百分点。本发明方法的分类时间为0.698秒,与中心分类方法(0.688秒)基本相当,远远低于支持向量机方法(206.021秒)。因此,本发明方法取得了与支持向量机方法相当的分类精度,但实际运行时间却要远远低于支持向量机方法。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。