文本分类方法、电子设备和计算机可读存储介质与流程

文档序号:18030153发布日期:2019-06-28 22:34阅读:190来源:国知局
文本分类方法、电子设备和计算机可读存储介质与流程

本发明实施例涉及机器学习领域,特别涉及一种文本分类方法、电子设备和计算机可读存储介质。



背景技术:

在给定的分类体系下,根据文本的内容自动地确定文本关联的类别。从数学角度来看,文本分类是一个映射的过程,它将未标明类别的文本映射到已有的类别中,该映射可以是一一映射,也可以是一对多的映射,因为通常一篇文本可以同多个类别相关联。

然而,发明人发现现有技术中至少存在如下问题:现有的文本分类方法存在分类不准确的问题。



技术实现要素:

本发明实施方式的目的在于提供一种文本分类方法、电子设备和计算机可读存储介质,使得可以提高文本分类的准确性。

为解决上述技术问题,本发明的实施方式提供了一种文本分类方法,包括以下步骤:根据n种不同的分类算法获取待分类文本的n种分类评分;其中,n为大于1的自然数,一种分类算法对应一种分类评分;根据所述n种分类评分确定所述待分类文本所属的类别。

本发明的实施方式还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的文本分类方法。

本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的文本分类方法。

本发明实施方式相对于现有技术而言,根据n种不同的分类算法有利于得到待分类文本的n种分类评分,n为大于1的自然数,一种分类算法对应一种分类评分,根据n种分类评分确定待分类文本所属的类别。也就是说,采用多种不同的分类算法的结合来决定最终待分类文本所属的类别。由于多种分类算法是不同的,得出的分类评分会有差异,利于避免现有技术中采用单一算法确定待分类文本的类别准确度较低的问题。根据多种分类评分确定待分类文本所属的类别,有利于多种分类评分可以相互结合来提高文本分类的准确性。

另外,所述根据所述n种分类评分确定所述待分类文本所属的类别,具体包括:确定每一种分类算法对应的分类评分的加权系数;根据确定的加权系数对所述n种分类评分进行加权处理;根据加权处理的结果确定所述待分类文本所属的类别。加权处理有利于合理的综合考虑到每一种分类算法,进一步提高最终确定的待分类文本所属的类别的准确性。

另外,在所述确定每一种分类算法对应的分类评分的加权系数之后,还包括:若检测到所述确定的所述待分类文本所属的类别的准确度低于预设门限,则调整所述每一种分类算法对应的分类评分的加权系数。加权系数可以根据实际的分类结果的准确性进行动态调整,有利于满足实际需求,提高分类的准确性。

另外,根据确定的加权系数对所述n种分类评分进行加权处理,具体包括:对所述n种分类评分分别取对数,获取所述n种分类评分对应的对数分类评分;根据确定的加权系数对获取的所述对数分类评分进行加权处理,取对数后,方便计算,即方便进行加权处理,在一定程度上提高了文本分类的速度。

另外,所述n种不同的分类算法具体为:两种不同的分类算法。用两种算法的结合,同现有技术采用一种算法相比较,可以在一定程度上提高准确性,而且因为仅增加了一种算法不至于对分类的速度产生明显的影响,即采用两种算法相结合,既可以在一定程度上提高准确性,同时也不会影响速度。

另外,所述两种不同的分类算法具体为:贝叶斯算法和tfidf算法;所述根据n种不同的分类算法获取待分类文本的n种分类评分,具体包括:根据所述贝叶斯算法获取所述待分类文本的贝叶斯评分;根据所述tfidf算法获取所述待分类文本的tfidf评分。利用贝叶斯算法和tfidf算法结合,更加适合文本分类的场景,有利于进一步提高文本分类的准确性。

另外,在所述根据n种不同的分类算法获取待分类文本的n种分类评分之前,还包括:获取训练文本集;其中,所述训练文本集中的每个训练文本对应一种分类类别;所述根据n种不同的分类算法获取待分类文本的n种分类评分,具体为:根据所述训练文本集和所述n种不同的分类算法,获取待分类文本被分配为不同分类类别的分类评分;其中,一种分类类别对应n种分类评分。训练文本集中的训练文本有利于对待分类文本进行分类提供分类依据,从而进行更加准确的分类。

另外,所述训练文本集中的分类类别的数量为m,所述m为大于1的自然数;所述根据所述n种分类评分确定所述待分类文本所属的类别,具体包括:对每一种分类类别对应的n种分类评分进行加权处理,获取每一种分类类别对应的最终评分;将m种分类类别对应的最终评分进行比较,将最终评分最大的分类类别作为确定的所述待分类文本所属的类别。评分越高,分类结果的准确度越高,将最终评分最大的分类类别作为确定的待分类文本所属的类别,有利于在比较中为待分类文本确定准确的所属类别,极大的提高了分类的准确性。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是根据本发明第一实施方式的文本分类方法的流程图;

图2是根据本发明第二实施方式的文本分类方法的流程图;

图3是根据本发明第三实施方式的文本分类方法的流程图;

图4是根据本发明第四实施方式的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施方式涉及一种文本分类方法。本实施方式的核心在于:根据n种不同的分类算法获取待分类文本的n种分类评分,n为大于1的自然数,一种分类算法对应一种分类评分;根据n种分类评分确定待分类文本所属的类别,使得可以提高文本分类的准确性。下面对本实施方式的文本分类方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

本实施方式中的文本分类方法如图1所示,具体包括:

步骤101:根据n种不同的分类算法获取待分类文本的n种分类评分。

具体的说,n为大于1的自然数,不同的分类算法可以为贝叶斯算法、tfidf算法、神经网络算法等。一种分类算法可以对应一种分类评分,比如说贝叶斯算法对应的分类评分可以称为贝叶斯评分记为t1、tfidf算法对应的分类评分可以称为tfidf评分记为t2、神经网络算法对应的评分可以称为神经网络评分记为t3。每一种分类评分可以包括多个分类评分,分类评分的种类数取决于有多少种分类算法,每一种分类评分中的个数取决于待分类文本可能被分配的分类类别的数量。在一个例子中,待分类文本可能被分配的分类类别有“0”类和“1”类,需要说明的是,此处的“0”和“1”分别用来表示实际应用中的具体类别。对于“0”类可以分别利用各分类算法获取t1、t2、t3;对于“1”类可以分别利用各分类算法获取t1、t2、t3。需要说明的是,t1、t2、t3的获取方式可以由本领域技术人员根据现有技术得到,在本实施方式中不做具体说明。需要说明的是,本实施方式中只是以“0”类和“1”类这两种类别为例,在实际应用中还可以更多的类别,本实施方式对此不做具体限定。

步骤102:根据n种分类评分确定待分类文本所属的类别。

具体的说,可以首先确定每一种分类算法对应的分类评分的加权系数,加权系数可以为默认的值,也可以由本领域技术人员根据实际需要设定每一种分类算法对应的分类评分的加权系数,比如说根据每一种分类方法进行分类的准确度确定加权系数,准确度越高的分类方法对应的加权系数可以设置的越大。

进一步的,可以根据确定的加权系数对n种分类评分进行加权处理,本实施方式中以3种分类算法为例,但在实际应用中并不以此为限。3种分类算法对应3种分类评分,假设贝叶斯算法、tfidf算法、神经网络算法对应的加权系数分别为a、b、c,其中a+b+c=1。在步骤101中的例子中,加权处理的结果可以由以下公式得到:a*t1+b*t2+c*t3,根据上述公式可以分别得到关于“0”类和“1”类的两个最终评分。最后将加权处理后的两个最终评分进行对比,将最终评分最大的一个作为最终确定的待分类文本所属的类别。比如说,“0”类的最终评分大于“1”类的最终评分,那么可以确定待分类文本所属的类别为“0”类。

值得一提的是,在确定每一种分类算法对应的分类评分的加权系数之后,还包括:若检测到确定的待分类文本所属的类别的准确度低于预设门限,则调整每一种分类算法对应的分类评分的加权系数。预设门限可以由本领域技术人员根据实际需要进行设置,本实施方式对此不做具体限定。也就是说,本实施方式中可以根据文本分类的准确性,动态的调整加权系数,以进一步保证之后在进行文本分类时的准确性。

与现有技术相比,本实施方式根据n种不同的分类算法有利于得到待分类文本的n种分类评分,n为大于1的自然数,一种分类算法对应一种分类评分,根据n种分类评分确定待分类文本所属的类别。也就是说,采用多种不同的分类算法的结合来决定最终待分类文本所属的类别。由于多种分类算法是不同的,得出的分类评分会有差异,利于避免现有技术中采用单一算法确定待分类文本的类别准确度较低的问题。根据多种分类评分确定待分类文本所属的类别,有利于多种分类评分可以相互结合来提高文本分类的准确性。

本发明的第二实施方式涉及一种文本分类方法。第二实施方式是第一实施方式的进步改进,主要改进之处在于:在本发明第二实施方式中,在根据n种不同的分类算法获取待分类文本的n种分类评分之前,还包括:获取训练文本集,训练文本集中的训练文本有利于对待分类文本进行分类提供分类依据。

本实施方式中的文本分类方法如图2所示,具体包括:

步骤201:获取训练文本集。

具体的说,训练文本集中的每个训练文本对应一种分类类别,可以将已有的训练材料进行建模处理,将建立的模型作为获取的训练文本集。首先,可以将训练文本进行中文分词,也就是说,将每一个分词的结果表示成向量的形式。分解各个训练文本中的特征,将其表示成向量。例如:

postinglist=[

['交通','交通运输','客货运输','出租车','拥堵'],

['天气','城市,'公交车','运输','改善'],

['净化','天气','城市','公交车'],

['交通管制','追尾','公交车',‘货车’,‘客车’],

['维护','我们','公民','警察','好好']

],且预设标记向量为classvec=[0,1,0,1,1],也就是说,postinglist中第一行和第三行中的训练文本标记的分类类别为“0”类,第二、四、五行中的训练文本标记的分类类别为“1”类。

进一步的,将文档词条转换成词向量,选出将所有训练样本中不重复的词,得到一个所有词的列表。如上述的样本得到的列表为:

trainvec=['交通','交通运输','客货运输','出租车','拥堵','天气','城市,'公交车','运输','改善','净化','交通管制','追尾',‘货车’,‘客车’,'维护','我们','公民','警察','好好']。

再进一步的,对训练样本中的数据向量化,将每条样本都和trainvec中的对比,对应位置上,如果存在就是1,不存在就是0。上例中的样本向量化后为:

trainvecnum=

[

[1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0],

[0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0],

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1]

],可以将得到的trainvecnum作为本步骤中获取的训练文本集,训练文本集可以为将训练文本向量化后的向量集。

步骤202:根据训练文本集和n种不同的分类算法,获取待分类文本被分配为不同分类类别的分类评分。

在一个例子中,待分类文本可以为:“来电反映:在将军大道城市附件发生货车追尾事件”。可以先对该待分类文本进行分词,分词的结果可以为:来电,反映,在,将军大道,城市,附近,发生,货车,追尾,事件。然后根据分词的结果将其转化为特征向量为,转化为的特征向量可以为:

predvecnum=[0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0]

进一步的,可以针对训练文本集中分类为“1”和“0”分别计算条件概率:训练文本集中分类为“0”的条件概率可以为:

[1/9,1/9,1/9,1/9,1/9,0,0,1/9,0,0,0,1/9,1/9,1/9,1/9,0,0,0,0,0]

训练文本集中分类为“1”的条件概率可以为:

[0,0,0,0,0,2/14,2/14,2/14,1/14,1/14,1/14,0,0,0,0,1/14,1/14,1/14,1/14,1/14]

再进一步的,为了避免之后在计算待分类文本的分类评分即条件概率时,出现乘积的概率为0情况,可以将条件概率的值按预设的策略统一增加,比如说,将条件概率的值的分母都加上20分子都加上1,这样其条件概率的矩阵就变化为:

[2/29,2/29,2/29,2/29,2/29,1/29,1/29,2/29,1/29,1/29,1/29,2/29,2/29,2/29,2/29,1/29,1/29,1/29,1/29,1/29]

[1/34,1/34,1/34,1/34,1/34,3/34,3/34,3/34,2/34,2/34,2/34,1/34,1/34,1/34,1/34,2/34,2/34,2/34,2/34,2/34]。

需要说明的是,本实施方式只是以分母都加上20,分子都加上1为例,在实际应用中并不以此为限,但应当保证统一增加后的概率值和为1,比如说上述“1”类和“0”类的各项条件概率之和均为1。

最后,可以根据上述条件概率的矩阵以及待分类文本转化而成的特征向量predvecnum,再结合不同的分类算法,获取待分类文本被分配为不同分类类别的分类评分,本实施方式中的不同分类类别即为“0”类和“1”类。

步骤203:对每一种分类类别对应的n种分类评分进行加权处理,获取每一种分类类别对应的最终评分。

具体的说,以步骤201中的例子进行说明,共有“0”类和“1”类两种分类类别,假设有3种分类算法,则有三种分类评分,可记为t1、t2、t3,进行加权处理得到最终评分的公式可以为:a*t1+b*t2+c*t3,其中,a,b,c分别为三种分类算法对应的加权系数且a+b+c=1。根据加权处理的公式可以得到“0”类和“1”类的最终评分。

步骤204:将m种分类类别对应的最终评分进行比较,将最终评分最大的分类类别作为确定的待分类文本所属的类别。

具体的说,本实施方式中m以2为例,但在实际应用中并不以此为限。比如说,可以将在上述示例中得到“0”类和“1”类这两种分类评分的最终评分进行大小比较,将最终评分最大的分类类别作为确定的待分类文本所属的类别。

与现有技术相比,本实施方式中,在根据n种不同的分类算法获取待分类文本的n种分类评分之前,还包括:获取训练文本集;其中,训练文本集中的每个训练文本对应一种分类类别;根据n种不同的分类算法获取待分类文本的n种分类评分,具体为:根据训练文本集和n种不同的分类算法,获取待分类文本被分配为不同分类类别的分类评分;其中,一种分类类别对应n种分类评分。训练文本集中的训练文本有利于对待分类文本进行分类提供分类依据,从而进行更加准确的分类。

本发明的第三实施方式涉及一种文本分类方法。第三实施方式是第二实施方式的进步改进,主要改进之处在于:第三实施方式中n种不同的分类算法具体为:两种不同的分类算法。采用两种算法相结合,既可以在一定程度上提高准确性,同时也不会影响速度。

本实施方式中的文本分类方法如图3所示,具体包括:

步骤301:获取训练文本集。

步骤301与第二实施方式中步骤201大致相同,为避免重复在此不再一一赘述。

步骤302:根据训练文本集和贝叶斯算法,获取待分类文本被分配为不同分类类别的贝叶斯评分。

具体的说,可参考第二实施方式中的示例,训练文本集中“0”类和“1”类对应的条件概率的矩阵分别为:

[2/29,2/29,2/29,2/29,2/29,1/29,1/29,2/29,1/29,1/29,1/29,2/29,2/29,2/29,2/29,1/29,1/29,1/29,1/29,1/29]

[1/34,1/34,1/34,1/34,1/34,3/34,3/34,3/34,2/34,2/34,2/34,1/34,1/34,1/34,1/34,2/34,2/34,2/34,2/34,2/34]。

待分类文本转化为的特征向量为:predvecnum=[0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0]。

进一步的,根据训练文本集中“0”类对应的条件概率和predvecnum可以得到待分类文本被分配为“0”类和“1”类的贝叶斯评分为:

p(0类)=1/29*2/29*2/29*2/5=0.0000656

p(1类)=3/34*1/34*1/34*3/5=0.0000458

其中,1/29、2/29、2/29分别为predvecnum中为1的位置对应在训练文本集中“0”类的条件概率的矩阵中的位置的概率值。3/34、1/34*、1/34分别为predvecnum中为1的位置对应在训练文本集中“1”类的条件概率的矩阵中的位置的概率值。由于标记向量是:classvec=[0,1,0,1,1],即“0”类占2/5,“1”类占3/5,因此在计算“0”类和“1”类的贝叶斯评分时,分别乘以2/5和3/5,有利于考虑到整个训练文本集。

值得一提的是,考虑到计算的贝叶斯评分数值很小,可以对贝叶斯评分取对数,得到对数贝叶斯评分,利用对数贝叶斯评分进行后续计算,方便了后续的计算。

步骤303:根据训练文本集和tfidf算法,获取待分类文本被分配为不同分类类别的tfidf评分。

具体的说,tfidf(termfrequency–inversedocumentfrequency)词频--反转文件频率,是一种用于情报检索与文本挖掘的常用加权技术,用以评估一个词对于一个文件或者一个语料库中的一个领域文件集的重复程度。tfidf评分可以通过以下公式计算:tf-idf=tf*idf。其中,tf表示一个单词在所在文本中的重要程度,可以理解为单词出现在第i类中的频率;idf表示一个单词在所有文本中的重要程度,可以理解为总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到。比如说,计算“0”类的tfidf评分时,tf表示单词出现在训练文本集的“0”类中的频率;idf的值表示出现某个“0”类词语的文章,占到总文章集合的百分比。

在一个例子中,训练文本集可以为:postinglist=

[

['交通','交通运输','客货运输','出租车','拥堵'],

['天气','城市,'公交车','运输','改善'],

['净化','天气','城市','公交车'],

['交通管制','追尾','公交车',‘货车’,‘客车’],

['维护','我们','公民','警察','好好']

],且预设标记向量为classvec=[0,1,0,1,1]。

待分类文本的分词结果为:来电,反映,在,将军大道,城市,附近,发生,货车,追尾,事件。根据训练文本集和待分类文本的分词结果可以得到,对应的“0”类的tf为[0,0,0,0,0,0,0,1,1,0],对应的“1”类的tf为[0,0,0,0,1,0,0,0,0,0]。

进一步的,idf的计算可以通过以下公式得到:idf=log(d/{t属于d}),其中,d表示所有文本的数量,t为所有文本中出现某个词语f的文本的数量。通过上述公式可以得到:对应的“0”类idf=[0,0,0,0,0,0,0,1/10,1/10,0];对应的“1”类的idf=[0,0,0,0,2/14,0,0,0,0,0]。

最后可以得到“0”类的tfidf评分为:1/10*1+1/10*1=0.2;“1”类的tfidf评分为:2/14*1=1/7。

需要说明的是,步骤302和步骤303并无明显先后关系,在实际应用中也可以先执行步骤303再执行步骤302,对此本实施方式不做具体限定。

步骤304:对每一种分类类别对应的两种分类评分进行加权处理,获取每一种分类类别对应的最终评分。

具体的说,参照步骤303的示例可以得到,对于“0”类,贝叶斯评分为:t1=0.0000656;tfidf评分为:t2=0.2。对于“1”类,贝叶斯评分为:t1=0.0000458;tfidf评分为:t2=1/7。最终评分可以通过公式t=t1*γ+t2*(1-γ)计算,其中:0<γ<1。在实际应用中,γ的大小还可以根据文本分类的准确性动态的调整。

需要说明的是,本步骤中还可以对贝叶斯评分取对数,将取完对数后的对数贝叶斯评分作为t1带入最终评分的公式中进行计算,使得计算更加方便。

步骤305:将m种分类类别对应的最终评分进行比较,将最终评分最大的分类类别作为确定的待分类文本所属的类别。

具体的说,参照步骤304的示例,根据最终评分的计算公式可以得到“0”类和“1”类的最终评分,如果“0”类的最终评分大,则待分类文本所属的类别为“0”类,如果“1”类的最终评分大则待分类文本所属的类别为“1”类。需要说明的是,本实施方式中只是以“0”类和“1”类这两种类别为例,在实际应用中还可以更多的类别,本实施方式对此不做具体限定。

与现有技术相比,本实施方式中优雅的结合了贝叶斯算法和tfidf算法两种分类算法,更加适合文本分类的场景,相比于现有技术因为仅增加了一种算法不至于对分类的速度产生明显的影响,即采用两种算法相结合,既可以在一定程度上提高准确性,同时也不会影响速度。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第四实施方式涉及一种电子设备,如图4所示,包括至少一个处理器401;以及,与所述至少一个处理器401通信连接的存储器402;其中,所述存储器402存储有可被所述至少一个处理器401执行的指令,所述指令被所述至少一个处理器401执行,以使所述至少一个处理器401能够执行上述的文本分类方法。

其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器401。

处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器401在执行操作时所使用的数据。

本发明第五实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1