分类器生成方法、分类方法、装置、电子设备及存储介质转让专利

申请号 : CN201711217129.8

文献号 : CN107992887B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邹荣珠

申请人 : 东软集团股份有限公司

摘要 :

本发明实施例公开了一种分类器生成方法、分类方法、装置、电子设备及存储介质,将特征向量集合对应的特征集划分为多个子特征集,依据多个子特征集中的特征,将特征向量集合中的特征向量划分为分别与每个子特征集对应的子特征向量集合,对应每个子特征向量集合建立初始分类器,对初始分类器进行协同训练,得到半监督分类器。也就是说,不同的分类器使用同一特征向量的不同的子特征向量进行训练,因此,所生成的分类器利用了相同数据的不同特征之间差异,提高了半监督分类方法的分类效果的稳定性。

权利要求 :

1.一种分类器生成方法,其特征在于,包括:

将文本数据集的特征向量集合对应的特征集划分为多个子特征集,包括:根据所述特征集中特征的数量的大小获取各个特征对类别的贡献度,基于所述贡献度,将所述特征集划分为多个子特征集;所述特征向量集合中包括有标记文本数据的特征向量和无标记文本数据的特征向量,所述类别为有标记文本数据被标记出的类别;所述特征对类别的贡献度包括:特征对每个类别的贡献度,或者,特征对所有类别的贡献度;

依据所述多个子特征集中的特征,将所述特征向量集合中的特征向量进行划分,得到分别与每个子特征集对应的子特征向量集合;

利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练,得到所述子特征向量集合对应的初始分类器;

利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器。

2.根据权利要求1所述的方法,其特征在于,所述特征对类别的贡献度,包括:与有标记文本数据被标记的类别对应的特征权重;

或者,

与有标记文本数据被标记的所有类别对应的特征得分,所述特征得分用于表征,特征与所有有标记文本数据被标记为所属类别这一结果的关联度,以及特征与其它特征之间的关联度。

3.根据权利要求2所述的方法,其特征在于,所述获取各个特征对类别的贡献度,包括:若所述特征集中特征的数量大于或等于预设阈值,获取各个特征对类别的第一贡献度,所述第一贡献度为,与有标记文本数据被标记的类别对应的特征权重;

若所述特征集中特征的数量小于所述预设阈值,获取各个特征对类别的第二贡献度,所述第二贡献度为,与有标记文本数据被标记的所有类别对应的特征得分。

4.根据权利要求1所述的方法,其特征在于,所述基于所述贡献度,将所述特征向量集合对应的特征集划分为多个子特征集,包括:按照贡献度所对应的类别,利用所述特征集中的特征构建分别与每个类别对应的特征序列,所述特征序列中的特征按照贡献度升序排列或降序排列;

遍历所构建的特征序列,每遍历到一个特征序列,执行如下划分过程:

按照特征的排列顺序,依次取出预设个数的未被划分的特征;将取出的预设个数的未被划分的特征按预设顺序依次划分到不同的子特征集中,使得各个子特征集中划分到的特征的数量相同或近似相同。

5.根据权利要求1所述的方法,其特征在于,在利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,至少有一个分类模型使用的分类算法与其它分类模型使用的分类算法不同。

6.根据权利要求1所述的方法,其特征在于,在利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,各个预设分类模型所使用的分类算法相同,其中,至少有一个分类模型中预定参数的取值与其它分类模型中所述预定参数的取值不同。

7.根据权利要求1所述的方法,其特征在于,所述利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器,包括:利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度;

将所述子特征向量集合中,分类置信度最大的预设数目个无标记文本数据的子特征向量的类别,作为所述预设数目个无标记文本数据的伪标记;

将不同子特征向量集合中的伪标记进行交换;

利用所述子特征向量集合中,有标记文本数据的子特征向量和具有交换得到的伪标记的无标记文本数据的子特征向量,训练对应的初始分类器,得到新的分类器;

若新的分类器满足预设的训练终止条件,将新的分类器作为半监督分类器;

若新的分类器不满足所述训练终止条件,则将新的分类器作为初始分类器,返回执行所述利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度的步骤。

8.一种分类方法,其特征在于,包括:

应用如权利要求1-7任意一项所述的分类器生成方法生成的半监督分类器,预测待分类文本数据的类别。

9.一种分类器生成装置,其特征在于,包括:

第一划分模块,用于将文本数据集的特征向量集合对应的特征集划分为多个子特征集,包括:根据所述特征集中特征的数量的大小获取各个特征对类别的贡献度,基于所述贡献度,将所述特征集划分为多个子特征集;所述特征向量集合中包括有标记文本数据的特征向量和无标记文本数据的特征向量,所述类别为有标记文本数据被标记出的类别;所述特征对类别的贡献度包括:特征对每个类别的贡献度,或者,特征对所有类别的贡献度;

第二划分模块,用于依据所述多个子特征集中的特征,将所述特征向量集合中的特征向量进行划分,得到分别与每个子特征集对应的子特征向量集合;

第一训练模块,用于利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练,得到所述子特征向量集合对应的初始分类器;

第二训练模块,用于利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器。

10.根据权利要求9所述的装置,其特征在于,所述特征对类别的贡献度,包括:与有标记文本数据被标记的类别对应的特征权重;

或者,

与有标记文本数据被标记的所有类别对应的特征得分,所述特征得分用于表征,特征与所有有标记文本数据被标记为所属类别这一结果的关联度,以及特征与其它特征之间的关联度。

11.根据权利要求10所述的装置,其特征在于,所述第一划分模块获取各个特征对类别的贡献度时,具体用于,若所述特征集中特征的数量大于或等于预设阈值,获取各个特征对类别的第一贡献度,所述第一贡献度为,与有标记文本数据被标记的类别对应的特征权重;

若所述特征集中特征的数量小于所述预设阈值,获取各个特征对类别的第二贡献度,所述第二贡献度为,与有标记文本数据被标记的所有类别对应的特征得分。

12.根据权利要求9所述的装置,其特征在于,所述第一划分模块包括:

构建子单元,用于按照贡献度所对应的类别,利用所述特征集中的特征构建分别与每个类别对应的特征序列,所述特征序列中的特征按照贡献度升序排列或降序排列;

遍历子单元,用于遍历所构建的特征序列,每遍历到一个特征序列,执行如下划分过程:按照特征的排列顺序,依次取出预设个数的未被划分的特征;将取出的预设个数的未被划分的特征按预设顺序依次划分到不同的子特征集中,使得各个子特征集中划分到的特征的数量相同或近似相同。

13.根据权利要求9所述的装置,其特征在于,所述第一训练模块在利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,至少有一个分类模型使用的分类算法与其它分类模型使用的分类算法不同。

14.根据权利要求9所述的装置,其特征在于,所述第一训练模块在利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,各个预设分类模型所使用的分类算法相同,其中,至少有一个分类模型中预定参数的取值与其它分类模型中所述预定参数的取值不同。

15.根据权利要求9所述的装置,其特征在于,所述第二训练模块包括:

预测单元,用于利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度;

标记单元,用于将所述子特征向量集合中,分类置信度最大的预设数目个无标记文本数据的子特征向量的类别,作为所述预设数目个无标记文本数据的伪标记;

交换单元,用于将不同子特征向量集合中的伪标记进行交换;

训练单元,用于利用所述子特征向量集合中,有标记文本数据的子特征向量和具有交换得到的伪标记的无标记文本数据的子特征向量,训练对应的初始分类器,得到新的分类器;

迭代控制单元,用于若新的分类器满足预设的训练终止条件,将新的分类器作为半监督分类器;若新的分类器不满足所述训练终止条件,则将新的分类器作为初始分类器,触发预测单元执行利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度的过程。

16.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1-7任一项所述的分类器生成方法,和/或,如权利要求8所述的分类方法。

17.一种电子设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7中任一项所述的分类器生成方法,和/或,如权利要求8所述的分类方法。

说明书 :

分类器生成方法、分类方法、装置、电子设备及存储介质

技术领域

[0001] 本发明涉及机器学习技术领域,更具体地说,涉及一种分类器生成方法、分类方法、装置、电子设备及存储介质。

背景技术

[0002] 分类问题是数据分析和数据挖掘等领域中的热点问题之一。数据分类通常分为模型训练和类别预测两个步骤,即先由标记好类别的数据训练分类模型,然后根据分类模型预测新数据的类别。然而,大量标记好类别的数据是很难获取的,因为获得这些标记需要耗费大量的人力物力。事实上,在真实世界中通常存在大量的无标记数据,有标记数据则比较少。为此,研究者提出半监督分类方法,它主要考虑如何利用少量的有标记数据和大量的无标记数据进行模型训练和类别预测的问题。
[0003] 通常,半监督分类方法根据使用的分类器的数量,分为单分类器方法和多分类器方法。多分类器方法由于可以利用分类器之间的差异(即分类器所使用分类算法的差异)使得分类器具有较强的分类能力和较快的收敛速度而应用更广。
[0004] 然而,发明人在实现本申请过程中发现,现有的使用多分类器的半监督分类方法的分类效果不稳定。

发明内容

[0005] 本发明的目的是提供一种分类器生成方法、分类方法、装置、电子设备及存储介质,以提高半监督分类方法的分类效果的稳定性。
[0006] 为实现上述目的,本发明提供了如下技术方案:
[0007] 一种分类器生成方法,包括:
[0008] 将文本数据集的特征向量集合对应的特征集划分为多个子特征集,所述特征向量集合中包括有标记文本数据的特征向量和无标记文本数据的特征向量;
[0009] 依据所述多个子特征集中的特征,将所述特征向量集合中的特征向量进行划分,得到分别与每个子特征集对应的子特征向量集合;
[0010] 利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练,得到所述子特征向量集合对应的初始分类器;
[0011] 利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器。
[0012] 上述方法,优选的,所述将特征向量集合对应的特征集划分为多个子特征集,包括:
[0013] 获取各个特征对类别的贡献度,所述类别为有标记文本数据被标记出的类别;
[0014] 基于所述贡献度,将所述特征向量集合对应的特征集划分为多个子特征集。
[0015] 上述方法,优选的,所述特征对类别的贡献度,包括:
[0016] 与有标记文本数据被标记的类别对应的特征权重;
[0017] 或者,
[0018] 与有标记文本数据被标记的所有类别对应的特征得分,所述特征得分用于表征,特征与所有有标记文本数据被标记为所属类别这一结果的关联度,以及特征与其它特征之间的关联度。
[0019] 上述方法,优选的,所述获取各个特征对类别的贡献度,包括:
[0020] 若所述特征集中特征的数量大于或等于预设阈值,获取各个特征对类别的第一贡献度,所述第一贡献度为,与有标记文本数据被标记的类别对应的特征权重;
[0021] 若所述特征集中特征的数量小于所述预设阈值,获取各个特征对类别的第二贡献度,所述第二贡献度为,与有标记文本数据被标记的所有类别对应的特征得分。
[0022] 上述方法,优选的,所述基于所述贡献度,将所述特征向量集合对应的特征集划分为多个子特征集,包括:
[0023] 按照贡献度所对应的类别,利用所述特征集中的特征构建分别与每个类别对应的特征序列,所述特征序列中的特征按照贡献度升序排列或降序排列;
[0024] 遍历所构建的特征序列,每遍历到一个特征序列,执行如下划分过程:
[0025] 按照特征的排列顺序,依次取出预设个数的未被划分的特征;将取出的预设个数的未被划分的特征按预设顺序依次划分到不同的子特征集中,使得各个子特征集中划分到的特征的数量相同或近似相同。
[0026] 上述方法,优选的,在利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,至少有一个分类模型使用的分类算法与其它分类模型使用的分类算法不同。
[0027] 上述方法,优选的,在利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,各个预设分类模型所使用的分类算法相同,其中,至少有一个分类模型中预定的参数的取值与其它分类模型中所述预定参数的取值不同。
[0028] 上述方法,优选的,所述利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器,包括:
[0029] 利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度;
[0030] 将所述子特征向量集合中,分类置信度最大的预设数目个无标记文本数据的子特征向量的类别,作为所述预设数目个无标记文本数据的伪标记;
[0031] 将不同子特征向量集合中的伪标记进行交换;
[0032] 利用所述子特征向量集合中,有标记文本数据的子特征向量和具有交换得到的伪标记的无标记文本数据的子特征向量,训练对应的初始分类器,得到新的分类器;
[0033] 若新的分类器满足预设的训练终止条件,将新的分类器作为半监督分类器;
[0034] 若新的分类器不满足所述训练终止条件,则将新的分类器作为初始分类器,返回执行所述利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度的步骤。
[0035] 一种分类方法,包括:
[0036] 应用如前所述的分类器生成方法生成的半监督分类器,预测待分类文本数据的类别。
[0037] 一种分类器生成装置,包括:
[0038] 第一划分模块,用于将文本数据集的特征向量集合对应的特征集划分为多个子特征集,所述特征向量集合中包括有标记文本数据的特征向量和无标记文本数据的特征向量;
[0039] 第二划分模块,用于依据所述多个子特征集中的特征,将所述特征向量集合中的特征向量进行划分,得到分别与每个子特征集对应的子特征向量集合;
[0040] 第一训练模块,用于利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练,得到所述子特征向量集合对应的初始分类器;
[0041] 第二训练模块,用于利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器。
[0042] 上述装置,优选的,所述第一划分模块包括:
[0043] 获取单元,用于获取各个特征对类别的贡献度,所述类别为有标记文本数据被标记出的类别;
[0044] 划分单元,用于基于所述贡献度,将所述特征向量集合对应的特征集划分为多个子特征集。
[0045] 上述装置,优选的,所述特征对类别的贡献度,包括:
[0046] 与有标记文本数据被标记的类别对应的特征权重;
[0047] 或者,
[0048] 与有标记文本数据被标记的所有类别对应的特征得分,所述特征得分用于表征,特征与所有有标记文本数据被标记为所属类别这一结果的关联度,以及特征与其它特征之间的关联度。
[0049] 上述装置,优选的,所述获取单元具体用于,
[0050] 若所述特征集中特征的数量大于或等于预设阈值,获取各个特征对类别的第一贡献度,所述第一贡献度为,与有标记文本数据被标记的类别对应的特征权重;
[0051] 若所述特征集中特征的数量小于所述预设阈值,获取各个特征对类别的第二贡献度,所述第二贡献度为,与有标记文本数据被标记的所有类别对应的特征得分。
[0052] 上述装置,优选的,所述划分单元包括:
[0053] 构建子单元,用于按照贡献度所对应的类别,利用所述特征集中的特征构建分别与每个类别对应的特征序列,所述特征序列中的特征按照贡献度升序排列或降序排列;
[0054] 遍历子单元,用于遍历所构建的特征序列,每遍历到一个特征序列,执行如下划分过程:按照特征的排列顺序,依次取出预设个数的未被划分的特征;将取出的预设个数的未被划分的特征按预设顺序依次划分到不同的子特征集中,使得各个子特征集中划分到的特征的数量相同或近似相同。
[0055] 上述装置,优选的,所述第一训练模块在利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,至少有一个分类模型使用的分类算法与其它分类模型使用的分类算法不同。
[0056] 上述装置,优选的,所述第一训练模块在利用所述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,各个预设分类模型所使用的分类算法相同,其中,至少有一个分类模型中预定的参数的取值与其它分类模型中所述预定参数的取值不同。
[0057] 上述装置,优选的,所述第二训练模块包括:
[0058] 预测单元,用于利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度;
[0059] 标记单元,用于将所述子特征向量集合中,分类置信度最大的预设数目个无标记文本数据的子特征向量的类别,作为所述预设数目个无标记文本数据的伪标记;
[0060] 交换单元,用于将不同子特征向量集合中的伪标记进行交换;
[0061] 训练单元,用于利用所述子特征向量集合中,有标记文本数据的子特征向量和具有交换得到的伪标记的无标记文本数据的子特征向量,训练对应的初始分类器,得到新的分类器;
[0062] 迭代控制单元,用于若新的分类器满足预设的训练终止条件,将新的分类器作为半监督分类器;若新的分类器不满足所述训练终止条件,则将新的分类器作为初始分类器,触发预测单元执行利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度的过程。
[0063] 一种计算机可读存储介质,所述机算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如前所述的分类器生成方法,和/或,分类方法。
[0064] 一种电子设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如前所述的分类器生成方法,和/或,分类方法。
[0065] 本申请提供的一种分类器生成方法、分类方法、装置、电子设备及存储介质,将文本数据集的特征向量集合对应的特征集划分为多个子特征集,依据多个子特征集中的特征,将特征向量集合中的特征向量划分为分别与每个子特征集对应的子特征向量集合,对应每个子特征向量集合建立初始分类器,对初始分类器进行协同训练,得到半监督分类器。也就是说,不同的分类器使用同一特征向量的不同的子特征向量进行训练,因此,所生成的半监督分类器利用了相同数据的不同特征之间的差异,提高了半监督分类方法的分类效果的稳定性。

附图说明

[0066] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0067] 图1为本申请实施提供的分类器生成方法的一种实现流程图;
[0068] 图2为本申请实施提供的将特征向量集合对应的特征集划分为多个子特征集的一种实现流程图;
[0069] 图3为本申请实施提供的分类器生成方法的另一种实现流程图;
[0070] 图4为本申请实施提供的将得到的初始分类器进行协同训练,得到半监督分类器的一种实现流程图;
[0071] 图5为本申请实施提供的分类方法的一种实现流程图;
[0072] 图6为本申请实施提供的分类器生成装置的一种结构示意图;
[0073] 图7为本申请实施提供的第一划分模块的一种结构示意图;
[0074] 图8为本申请实施提供的划分单元的一种结构示意图;
[0075] 图9为本申请实施提供的第二训练模块的一种结构示意图;
[0076] 图10为本申请实施提供的分类装置的一种结构示意图。
[0077] 说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。

具体实施方式

[0078] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0079] 现有技术中的基于多分类器的半监督分类方法,多个分类器使用不同的分类算法,通过相同的数据进行训练得到,但是发明人在研究中发现,半监督分类方法中的多分类器使用不同分类算法,利用的是分类算法对相同数据的不同归纳偏好(即,假设数据服从不同的数据分布),得到对数据分类结果的差异性,并利用差异的结果调整每个分类模型,使得分类算法之间共同提高。但这种提高受两个因素的制约:1)不同分类算法对同一训练集的数据分布假设的有效性,有效性越低则不同分类算法共同提高的能力越差;2)训练集对不同分类算法的数据分布假设的包容性,包容性越弱则不同分类算法共同提高的能力越差。因此,半监督分类方法中的基于分类算法的不同体现多个分类器的差异,是放大了分类算法分类效果的不稳定性。因此,现有技术中通过分类算法的差异体现分类器差异的半监督分类方式,分类效果的稳定性较差。
[0080] 本申请实施例公开的方案中,从数据特征的角度来体现分类器的差异,也就是说,将数据所包含的特征划分到不同的特征集合中,分别对应每个特征集合训练一分类器,由于不同的特征集合中包含不同的特征,这样训练得到的多个分类器就能够从数据特征上来体现出差异。而数据特征之间的差异不会受到上述两种因素的制约。因此,分类效果比较稳定。
[0081] 请参阅图1,图1为本申请实施例提供的分类器生成方法的一种实现流程图,可以包括:
[0082] 步骤S11:将文本数据集的特征向量集合对应的特征集划分为多个子特征集,其中,特征向量集合中包括有标记文本数据的特征向量和无标记文本数据的特征向量。
[0083] 训练半监督分类器所使用的数据集由有标记文本数据和无标记文本数据组成。本申请实施例中,无标记文本数据中可以包括待分类文本数据,也可以不包括待分类文本数据,或者,只包括部分待分类文本数据。也就是说,待分类文本数据可以作为半监督分类方法的训练样本。在训练半监督分类器之前,预先对上述数据集中各条数据进行特征提取,得到各条数据的特征向量。即,每条数据都由一个特征向量表示。每个特征向量中包括若干个特征,每个特征的取值表征该特征在数据中的属性。数据集中所有数据的特征向量构成了上述特征向量集合。
[0084] 例如,对于文本类数据,可以提取文本中出现的某些词语作为文本的特征,特征在文本中出现的概率可以作为特征的取值,所有提取的词语及词语在文本中出现的频率构成文本的特征向量,该特征向量的格式可以如下所示:
[0085] (词语1(概率1),词语2(概率2),词语3(概率3),……)。
[0086] 在本申请中,预先设定特征的数量,以及相应数量的特征,每条数据的特征向量的生成方法相同,从而各条数据对应的特征向量的维度相同。
[0087] 在设定相应数量的特征时,可以预先从数据集中提取若干特征,然后对选取的特征进行优化,若优化得到的特征数量多于预先设定的特征数量,可以对特征进行进一步优化,例如,删除一些不常出现且对分类作用不大的特征,具体可以根据经验确定需要删除的特征;和/或,将高维度的特征向量映射到低维度的特征向量等。
[0088] 在确定预设数量的特征后,从各条数据中提取各个特征及对应的特征值,得到各条数据的特征向量。
[0089] 例如,假设数据集由第一文本和第二文本构成,预先设定了8个特征,即8个词语,分别为:图像、序列、匹配、灰度、扫描、提取、映射和亮度。假设从第一文本中只能提取到图像、序列、扫描和映射四个特征,其中,图像在第一文本中出现的概率为0.7,序列在第一文本中出现的概率为0.3,扫描在第一文本中出现的概率为0.5,映射在第一文本中出现的概率为0.5,则从第一文本中提取的第一特征向量为:
[0090] (图像(0.7),序列(0.3),匹配(0),灰度(0),扫描(0.5),提取(0),映射(0.5),亮度(0));
[0091] 假设从第二文本中只能提取到图像、序列、匹配、灰度、扫描和提取六个特征,其中,图像在第二文本中出现的概率为0.6,序列在第二文本中出现的概率为0.2,匹配在第二文本中出现的概率为0.8,灰度在第二文本中出现的概率为0.1,扫描在第二文本中出现的概率为0.3,提取在第二文本中出现的概率为0.7,则从第二文本中提取的第二特征向量为:
[0092] (图像(0.6),序列(0.2),匹配(0.8),灰度(0.1),扫描(0.3),提取(0.7),映射(0),亮度(0))。
[0093] 以特征向量集合由第一特征向量和第二特征向量构成为例,该特征向量集合对应的特征集为:
[0094] (图像、序列、匹配、灰度、扫描、提取、映射、亮度);
[0095] 假设将该特征集划分为了三个子特征集,分别为:
[0096] 第一子特征集:(图像、扫描、提取);
[0097] 第二子特征集:(序列、映射、亮度);
[0098] 第三子特征集:(匹配、灰度)。
[0099] 其中,子特征集的个数可以预先指定。子特征集的个数越多,则不同子特征集之间的差异性越明显,半监督方法的整体泛化能力越强,但每个子特征集所包含的特征数量越少,这样会导致单个子特征集对应的分类方法的分类准确性降低,而且子特征集的数量越多半监督分类算法的整体运行性能越低,因此需要综合考虑算法运行效率和算法的整体泛化能力,本申请实施例中,子特征集的个数可以为3。
[0100] 步骤S12:依据上述多个子特征集中的特征,将特征向量集合中的特征向量进行划分,得到分别与每个子特征集对应的子特征向量集合。
[0101] 假设子特征集的个数为M,本申请实施例中,特征向量集合中的每个特征向量均被划分为M个子特征向量,具体划分方式可以为:
[0102] 对于每一个特征向量,将该特征向量分别去对应每个子特征集所包含的特征,看特征向量中包含的各个特征分别属于哪一个子特征集,将特征及其取值加入到特征所属子特征集对应的,该特征向量的子特征向量中。
[0103] 例如,依据前述第一子特征集、第二子特征集和第三子特征集中的特征,将第一特征向量划分为三个子特征向量,分别为:
[0104] 与第一子特征集对应的子特征向量:
[0105] (图像(0.7),扫描(0.5),提取(0)),
[0106] 与第二子特征集对应的子特征向量:
[0107] (序列(0.3),映射(0.5),亮度(0)),
[0108] 以及,与第三子特征集对应的子特征向量:(匹配(0),灰度(0))。
[0109] 将第二特征向量划分为三个子特征向量,分别为:
[0110] 与第一子特征集对应的子特征向量:
[0111] (图像(0.6),扫描(0.3),提取(0.7)),
[0112] 与第二子特征集对应的子特征向量:
[0113] (序列(0.2),映射(0),亮度(0)),
[0114] 以及,与第三子特征集对应的子特征向量:(匹配(0.8),灰度(0.1))。
[0115] 基于此,
[0116] 第一子特征集对应的子特征向量集合中包括如下两个子特征向量,分别为:
[0117] (图像(0.7),扫描(0.5),提取(0));
[0118] (图像(0.6),扫描(0.3),提取(0.7))。
[0119] 第二子特征集对应的子特征向量集合中包括如下两个子特征向量,分别为:
[0120] (序列(0.3),映射(0.5),亮度(0));
[0121] (序列(0.2),映射(0),亮度(0))。
[0122] 第三子特征集对应的子特征向量集合中包括如下两个子特征向量,分别为:
[0123] (匹配(0),灰度(0));
[0124] (匹配(0.8),灰度(0.1))。
[0125] 步骤S13:利用子特征向量集合中的有标记文本数据的子特征向量,对预设分类模型进行训练,得到子特征向量集合对应的初始分类器。
[0126] 本申请实施例中,对应每个子特征向量集合,预先建立一分类模型,对应不同子特征向量集合,建立的分类模型所使用的分类算法可以相同,也可以不同。
[0127] 每个分类模型使用对应的子特征向量集合中的子特征向量进行训练,得子特征向量集合对应的初始分类器。
[0128] 机器学习常用的分类方法包括决策树、贝叶斯分类、逻辑回归、支持向量机、神经网络和随机森林等。本申请实施例中,可以随机为各个子特征向量集合选择不同的分类算法。也可以根据特征的特点和规模选择合适的分类算法。
[0129] 一般而言,决策树对特征的缺失值以及离散值不敏感,而对连续值或者关联性强的特征的数据表现不佳;贝叶斯分类假设特征之间独立性强;逻辑回归对大量多类特征表现不佳;支持向量机对特征数量大的数据适用于线性模型,对于特征数量少的数据适用于非线性核函数模型;神经网络可映射任意复杂的非线性关系但对大规模的特征运用非线性模型性能较低,且在数据不充分时表现很差,随机森林是运用决策树的集成分类方法,比决策树具有更好的泛化能力,但不适宜作为子分类方法。
[0130] 技术人员可以根据上述各分类算法的优缺点以及实际数据特征的特点和规模选择合适的分类算法。
[0131] 步骤S14:利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器。
[0132] 对初始分类器进行协同训练的过程包括多轮迭代过程,在每轮迭代过程中:
[0133] 每个初始分类器利用本分类器对应的子特征向量集合中的有标记文本数据,以及,本分类器对应的子特征向量集合中具有交换到的伪标记的无标记文本数据进行训练。其中,交换到的伪标记为其它分类器预测的无标记文本数据的类别。
[0134] 由于每个子特征向量集合对应一个初始分类器,而子特征向量集合有多个,因此初始分类器有多个,得到的半监督分类器也是多个,半监督分类器的个数与初始分类器的个数相同。
[0135] 在得到半监督分类器后,就可以利用半监督分类器对待分类文本数据进行分类了。
[0136] 本申请实施例提供的分类器生成方法,将特征向量集合对应的特征集划分为多个子特征集,依据多个子特征集中的特征,将特征向量集合中的特征向量划分为分别与每个子特征集对应的子特征向量集合,对应每个子特征向量集合建立初始分类器,对初始分类器进行协同训练,得到半监督分类器。也就是说,不同的分类器使用同一特征向量的不同的子特征向量进行训练,因此,所生成的半监督分类器利用了相同数据的不同特征之间差异,提高了半监督分类方法的分类效果的稳定性。
[0137] 其中,若预设分类模型使用相同的分类算法,则由于多个分类器协同训练过程中不会放大分类算法的不稳定性,或者,放大程度会很小,因此,分类效果比较稳定。
[0138] 在一可选的实施例中,将特征向量集合对应的特征集划分为多个子特征集的一种实现流程图如图2所示,可以包括:
[0139] 步骤S21:获取各个特征对类别的贡献度,该类别为有标记文本数据被标记出的类别;
[0140] 特征对类别的贡献度越大,基于该特征,有标记文本数据被标记为所属类别的概率越大。
[0141] 本申请实施例中,特征对类别的贡献度可以包括:特征对每个类别的贡献度,或者,特征对所有类别的贡献度。特征对所有类别的贡献度是指,特征对所有有标记文本数据被标记为所属类别这一结果的贡献度。假设特征数量为N,类别数量为L,那么,
[0142] 若特征对类别的贡献度为特征对每个类别的贡献度,则获取各个特征对类别的贡献度时,获取的贡献度的个数为:N*L。
[0143] 若特征对类别的贡献度为特征对所有类别的贡献度,则获取各个特征对类别的贡献度时,获取的贡献度的个数为N。
[0144] 步骤S22:基于特征对类别的贡献度,将特征向量集合对应的特征集划分为多个子特征集。
[0145] 本申请实施例中,按照特征对类别的贡献度,将特征集划分为多个子特征集,即,不同子特征集之间的差异为特征对类别的贡献度的差异。
[0146] 在一可选的实施例中,特征对类别的贡献度可以为:
[0147] 与有标记文本数据被标记的类别对应的特征权重。
[0148] 可以基于特征向量集合中有标记文本数据的特征向量训练分类模型,并在训练过程中进行特征权重的计算。特征权重越大,表明特征对有标记文本数据被标记为所属类别的贡献度越大,或者说,基于该特征,有标记文本数据被标记为所属类别的概率越大。
[0149] 本实施例中,在获取特征权重时,对于每一个特征,都要获取该特征与每个类别对应的特征权重。
[0150] 在另一可选的实施例中,特征对类别的贡献度可以为:
[0151] 与有标记文本数据被标记的所有类别对应的特征得分,该特征得分用于表征,特征与所有有标记文本数据被标记为所属类别这一结果的关联度,以及特征与其它特征之间的关联度。
[0152] 可以利用最小冗余最大相关性(Minimum Redundancy Maximum Relevance,MRMR)算法计算特征与有标记文本数据被标记的类别之间的互信息,以及特征与特征之间的互信息,然后根据特征与类别之间的互信息,以及特征与特征之间的互信息,计算得到每个特征的一个得分,该特征的得分越高,表示特征与分类结果之间关联度越大,且与其它特征相关性越小。特征与分类结果之间的关联度越大,表明特征对所有有标记文本数据被标记为所属类别这一结果的贡献度越大,或者说,基于该特征,所有有标记文本数据被标记为所属类别的概率越大。
[0153] 本实施例中,在获取特征得分时,对于每一个特征,只需要获取一个特征得分即可。
[0154] 在一可选的实施例中,在获取各个特征对类别的贡献度时,可以根据特征集中特征的数量(以下简称特征量)的大小选择不同的贡献度。具体的:
[0155] 若特征量大于或等于预设阈值,则获取各个特征对类别的第一贡献度,该第一贡献度为,与有标记文本数据被标记的类别对应的特征权重。
[0156] 若特征量小于上述预设阈值,则获取各个特征对类别的第二贡献度,该第二贡献度为,与有标记文本数据被标记的所有类别对应的特征得分。
[0157] 本申请实施例中,根据特征集中特征量的规模,选择依据不同的关联度将特征集划分为多个子特征集,保证子特征集之间具有较强的独立性,且包含的对分类有用的属性足够充分。
[0158] 在一可选的实施例中,在将特征集划分为多个子特征集时,可以将特征集中的特征均匀地或近似均匀地划分为多个子特征集。具体可以从以下几个方面进行考虑:
[0159] 一、考虑特征数量的均匀,即,基于特征集中特征的数量N,以及子特征集的数量M,将上述N个特征平均分为M组,每一组特征构成一个子特征集。
[0160] 二、考虑特征对类别的贡献度的均匀,即,将特征集划分为多个子特征集后,不同的子特征集中,特征对类别的贡献度尽量接近。
[0161] 发明人在实现本申请的过程中发现,单纯的考虑数量均匀或单纯考虑贡献度均匀的话,半监督分类器的分类效果的稳定性虽较现有技术有所提升,但是仍然不能满足对稳定性有更高要求的应用场景。因此,本申请中,综合考虑了特征数量的均匀和特征对类别的贡献度的均匀,根据特征对类别的贡献度,按类别从特征集中提取与该类别对应的特征,并将对应每个类别提取的特征均匀划分到不同的子特征集中。其中,对应不同类别提取的特征不同。基于该方式划分多个子特征集后,不同子特征集中,对应同一类别提取到的特征的数量相同或近似相同,而且,每个子特征集中,基于不同类别提取到的特征的数量相同或近似相同,使得在数据空间中,数据分布比较均匀,提高分类算法对数据分布假设的有效性和数据对分类器归纳偏好的包容性,分类的性能更好。
[0162] 本申请实施例中,基于各个特征对类别的贡献度,将特征向量集合对应的特征集划分为多个子特征集的一种实现方式可以为:
[0163] 按照贡献度所对应的类别,利用特征集中的特征构建分别与每个类别对应的特征序列,特征序列中的特征按照贡献度升序排列或降序排列。
[0164] 每个特征序列均由特征集中所有的特征的组成。由于每个类别对应一个特征序列,因此,特征序列的个数等于类别数。即,有多少个类别,就有多少个特征序列。
[0165] 遍历所构建的特征序列,每遍历到一个特征序列,执行如下划分过程:
[0166] 按照特征的排列顺序,依次取出预设个数的未被划分的特征;将取出的预设个数的未被划分的特征按预设顺序依次划分到不同的子特征集中,使得各个子特征集中划分到的特征的数量相同或近似相同。
[0167] 为便于说明,假设子特征集的个数为M,M为正整数;特征的数量为N,通常N远大于M;数据的类别数为L,L≥2且L远小于N。则将特征集中的特征均匀或近似均匀地划分为M个子特征集后,每个子特征集中特征数P为: 或者,P=[N/M],其中, 表示向下取整,[]表示取整数部分。
[0168] 将特征集划分为M个子特征集的一种实现方法如下所示:
[0169] 步骤a:对应每一个类别,将特征集中的特征构建为与该类别对应的特征序列,该特征序列中,特征按照特征对该类别的贡献度降序的顺序排列。也就是说,构建L个特征序列,每个特征序列对应一个类别,每个特征序列中包括前述N个特征,该N个特征按照特征对类别的贡献度降序的顺序排列。
[0170] 步骤b:对上述L个特征序列进行多次遍历,直至所有特征均被划分到子特征集中,在每一次遍历过程中:
[0171] 每遍历到一个特征序列,按照特征的排列顺序,从未被划分的特征中,依次取出预设个数的特征,将取出的预设个数的特征按预设顺序依次划分到不同的子特征集中,使得各个子特征集中划分到的特征的数量相同或近似相同。
[0172] 一般情况下,上述预设个数为子特征集个数的整数倍,例如,预设个数可以等于M,或者,等于2M,或者,等于3M等。
[0173] 但随着特征被逐渐划分,每个特征序列中剩余的未被划分的特征的数量会出现小于预设个数的情况,此时将剩余的所有未被划分的特征按预设顺序依次划分到不同的子特征集中。
[0174] 本申请实施例中,上述预设顺序不做具体限定,只要保证各个子特征集中划分到的特征的数量相同或近似相同即可。例如,
[0175] 假设子特征集个数M=3,3个子特征集分别为S1,S2,S3,则每遍历到一个特征序列,按照该特征序列中特征的排列顺序依次取出3个未划分的特征,假设3个未划分的特征按照关联度降序的顺序依次为T1,T2,T3,则将3个特征依次划分到3个子特征集中的方式至少可以有以下几种:
[0176] 方式一:特征T1划分到子特征集S1,特征T2划分到子特征集S2,特征T3划分到子特征集S3。
[0177] 方式二:特征T1划分到子特征集S2,特征T2划分到子特征集S3,特征T3划分到子特征集S1。
[0178] 方式三:特征T1划分到子特征集S3,特征T2划分到子特征集S2,特征T3划分到子特征集S1。
[0179] 当然,将3个特征依次划分到3个子特征集中的方式并不仅有上述三种方式,还可以有其它方式,例如,特征T1划分到子特征集S1,特征T2划分到子特征集S3,特征T3划分到子特征集S2,等等,这里不再一一举例说明。
[0180] 上述示例中,每遍历到一个特征序列,从该序列中取出的特征的数量与子特征集的数量相同。在另一示例中,假设每遍历到一个特征序列,从该序列中取出的特征的数量为子特征集数量的2倍,例如:
[0181] 假设子特征集个数M=3,3个子特征集分别为S1,S2,S3,则每遍历到一个特征序列,按照该特征序列中特征的排列顺序依次取出6个未划分的特征,假设6个未划分的特征按照关联度降序的顺序依次为T1,T2,T3,T4,T5,T6,则将6个特征依次划分到3个子特征集中的方式至少可以有以下几种:
[0182] 方式一:特征T1、T2划分到子特征集S1,特征T3、T4划分到子特征集S2,特征T5、T6划分到子特征集S3。
[0183] 方式二:特征T1、T2划分到子特征集S2,特征T3、T4划分到子特征集S3,特征T5、T6划分到子特征集S1。
[0184] 方式三:特征T1、T2划分到子特征集S3,特征T3、T4划分到子特征集S2,特征T5、T6划分到子特征集S1。
[0185] 当然,将6个特征依次划分到3个子特征集中的方式并不仅有上述三种方式,还可以有其它方式,例如,特征T1、T4划分到子特征集S1,特征T2、T5划分到子特征集S2,特征T3、T6划分到子特征集S3,等等,这里不再一一举例说明。
[0186] 以特征对类别的贡献度为特征权重为例,假设类别数为2,子特征集个数为3,3个子特征集分别为S1,S2,S3。特征集中一共有13个特征,分别为:T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13。对应类别1,按照特征权重降序排列得到的特征序列假设为:T1,T2,T4,T5,T3,T6,T13,T7,T9,T8,T10,T11,T12,记为第一特征序列;对应类别2,按照特征权重降序排列得到的特征序列假设为:T2,T4,T3,T1,T6,T13,T9,T8,T7,T10,T11,T5,T12,记为第二特征序列。对上述两个特征序列进行遍历,假设从第一特征序列开始进行遍历,则遍历到第一特征序列时,从中依次取出3个特征T1,T2,T4,将该3个特征依次划分到三个子特征集中:
[0187] S1:T1;
[0188] S2:T2;
[0189] S3:T4。
[0190] 然后遍历第二特征序列,按照特征的排列顺序,由于T1,T2,T4已经被划分到子特征集中,因此,不再从第二特征序列中提取这两个特征,而是提取T3,T6,T13,将该3个特征依次划分到三个子特征集中:
[0191] S1:T1,T3;
[0192] S2:T2,T6;
[0193] S3:T4,T13。
[0194] 然后再次遍历第一特征序列,按照特征的排列顺序,由于T1,T2,T4,T3,T6,T13已经被划分到子特征集中,因此,不再从第一特征序列中提取这6个特征,而是提取T5,T7,T9,将该3个特征依次划分到三个子特征集中:
[0195] S1:T1,T3,T5;
[0196] S2:T2,T6,T7;
[0197] S3:T4,T13,T9。
[0198] 然后再次遍历第二特征序列,按照上述提取原则,提取特征T8,T10,T11,将该3个特征依次划分到三个子特征集中:
[0199] S1:T1,T3,T5,T8;
[0200] S2:T2,T6,T7,T10;
[0201] S3:T4,T13,T9,T11。
[0202] 最后再次遍历第一特征序列,将最后一个特征提取出来,划分给子特征集S1:
[0203] S1:T1,T3,T5,T8,T12;
[0204] S2:T2,T6,T7,T10;
[0205] S3:T4,T13,T9,T11。
[0206] 基于以上划分过程,在实际应用中,由于特征集中特征数量远大于子特征集的个数,会包含大量冗余属性,大量的冗余属性可起到相似的描述作用,此时均匀或近似均匀地划分多个子特征集后,每个子特征集所包含的特征的属性仍是充分的。充分是指每个子特征集都包含足够产生最优学习机器的信息。由于不同子特征集中的特征不同,因此,子特征集之间是有差异的。
[0207] 需要说明的是,当特征对类别的贡献度为,与有标记文本数据被标记的所有类别对应的得分时,由于每个特征的特征得分是对应有标记文本数据被标记的所有类别的,也就是说,每个特征只有一个特征得分。因此,对应不同类别,所构建的特征序列相同,因此,在此情况下,只需要按照特征得分降序或升序的顺序,将特征集中的特征构建为一个特征序列即可,后续,只需要对该一个特征序列中的所有特征按照排列顺序进行遍历即可。在遍历过程中,将遍历到的特征按预设顺序划分到不同的子特征集。
[0208] 在一可选的实施例中,在利用子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,至少有一个分类模型使用的分类算法与其它分类模型使用的分类算法不同。
[0209] 也就是说,对应不同子特征向量集合建立的分类模型,分类模型所使用的分类算法可以完全不同,也可以部分不同。即,对应不同的子特征向量集合,可以使用不同分类算法建立与子特征向量集合对应的分类模型,换句话说,任意两个分类模型所使用的分类算法均不同;或者,部分分类模型所使用的分类算法相同。其中,使用相同分类算法的那部分分类模型中,不同的分类模型的预定参数的取值可以相同也可以不同。
[0210] 预定参数是指对分类器的分类结果有较大影响的参数。例如,在使用支持向量机的分类器中,核函数是比较重要的参数。
[0211] 本申请实施例中,不同的分类器使用同一特征向量的不同的子特征向量进行训练,而且,至少有一个分类器使用的分类算法与其它分类器使用的分类算法不同,因此,所生成的分类器既利用了同一特征向量的特征之间差异,又利用了分类器本身的差异,使得分类器具有更强的分类能力和更快的收敛速度的基础上,提高了半监督分类方法的分类效果的稳定性。
[0212] 在另一可选的实施例中,在利用子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,不同子特征向量集合对应的预设分类模型所使用的分类算法相同,其中,至少有一个分类模型中预定的参数的取值与其它分类模型中所述预定参数的取值不同。
[0213] 也就是说,对应不同子特征集建立的分类模型,分类模型所使用的分类算法相同,分类模型中预定的参数的取值可以完全不同,也可以部分不同。即,对应不同的子特征向量集合,使用相同的分类算法建立与子特征向量集合对应的分类模型,但对应不同子特征向量集合,分类器中的预定参数的取值不同。也就是说,任意两个分类器中预定参数的取值均不同;或者,部分分类器中的预定参数的取值相同。
[0214] 本申请实施例中,不同的分类器使用同一特征向量的不同的子特征向量进行训练,而且,至少有一个分类器中的预定参数的取值与其它分类器中预定参数的取值不同,因此,所生成的分类器既利用了同一特征向量的特征之间差异,又利用了分类器本身的差异,使得分类器具有更强的分类能力和更快的收敛速度的基础上,提高了半监督分类方法的分类效果的稳定性。
[0215] 在本方案中,由于不同的特征表征数据的不同特性,不同的子特征集对应不同的特征,因此,将特征向量集合对应的特征集划分为多个子特征集,也就是将特征向量集合从不同的角度进行了划分,而每一个角度都可以看成是一个视图,因此,每个视图对应一个子特征向量集合。
[0216] 换句话说,每个子特征向量集合中的子特征向量,构成了前述特征向量集合对应的数据集的一个视图。因此,本申请实施例公开的方案中,子特征向量集合还可以用视图来表示。因此,如无特别说明,下文中涉及的视图均表征子特征向量集合。
[0217] 在一些实际问题中,对于同一事物可以从多种不同的途径或不同的角度对其进行描述,这多种描述构成事物的多个视图。多视图数据在真实世界中广泛存在,例如:
[0218] 在网页分类问题中,既可以根据网页本身包含的信息来对网页进行分类,也可以利用链接到该网页的超链接所包含的信息来进行分类,这样,网页数据就可以用两个视图表示,刻画网页本身包含信息的特征集构成第一个视图,刻画超链接所包含信息的特征构成第二个视图。
[0219] 在电视片段的识别问题中,既可以根据视频中包含的信息来进行识别,也可以根据音频中包含的信息来进行识别,所以,电视数据可以用视频数据和音频数据这两个视图表示。
[0220] 结合视图的概念,本申请实施例提供的半监督分类器生成方法的另一种实现流程图如图3所示,可以包括:
[0221] 步骤S30:确定特征向量集合对应的特征集中特征的数量所属的数据范围。
[0222] 步骤S31:获取与所确定的数据范围对应的,各个特征对类别的贡献度,该类别为,有标记文本数据被标记出的类别。
[0223] 本申请实施例中,若特征数量大于或等于预设阈值,获取各个特征对类别的第一贡献度,该第一贡献度为,与有标记文本数据被标记的类别对应的特征权重;
[0224] 若特征数量小于上述预设阈值,获取各个特征对类别的第二贡献度,该第二关联贡献度为,与有标记文本数据被标记的所有类别对应的特征得分。
[0225] 步骤S32:按照贡献度所对应的类别,利用特征集中的特征构建分别与每个类别对应的特征序列,该特征序列中的特征按照贡献度升序排列或降序排列。
[0226] 步骤S33:遍历所构建的特征序列,每遍历到一个特征序列,执行如下划分过程:按照特征的排列顺序,依次取出预设个数的未被划分的特征;将取出的预设个数的未被划分的特征按预设顺序依次划分到不同的子特征集中,使得各个子特征集中划分到的特征的数量相同或近似相同。
[0227] 步骤S34:依据划分得到的子特征集中的特征,将上述特征向量集合中的特征向量进行划分,得到分别与每个子特征集对应的视图。
[0228] 步骤S35:利用视图中的有标记文本数据的子特征向量对预设分类模型进行训练,得到视图对应的初始分类器。
[0229] 也就是说,对应每个视图,预先设置一分类模型。每个分类模型利用该分类模型对应视图中的子特征向量进行训练,得到每个视图对应的初始分类器。其中,至少有部分分类模型使用不同的分类算法,或者,至少有部分分类模型使用的分类算法相同,但分类算法中的预设参数的取值不同。
[0230] 步骤S36:利用视图中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器。
[0231] 由于每个视图对应一个初始分类器,因此,经过协同训练后,每个视图对应一个半监督分类器。
[0232] 对初始分类器进行协同训练的过程包括多轮迭代过程,在每轮迭代过程中:
[0233] 每个初始分类器利用本分类器对应视图中的有标记文本数据,以及,本分类器对应视图中具有交换到的伪标记的无标记文本数据进行训练。其中,交换到的伪标记为其它视图对应的分类器预测的无标记文本数据的类别。
[0234] 本申请实施例提供的分类器生成方法,根据数据特征对分类类别的贡献度,将数据特征划分为多个视图,至少有部分视图对应不同的分类器。从数据的特性上保证分类器输入的差异,提高了分类器的差异性,而这种差异不会受到数据分布假设的有效性和数据对分类器归纳偏好的包容性的制约,从而降低了对不稳定性的放大程度;同时特征划分时,考虑每个视图中对应每个分类类别划分得到特征相对均匀,使得在数据空间上,数据分布较为均匀,提高不同分类算法对数据分布假设的有效性和数据对分类器归纳偏好的包容性,分类的性能更好。因此,本申请提供的分类器生成方法,相较于现有技术中只利用分类算法间的差异而言,分类性能更好,且分类效果的稳定性更高。
[0235] 另外,根据特征集中特征量的规模,选择依据不同的关联度将特征向量集合划分为多个视图,保证视图之间具有较强的独立性,且包含的对分类有用的属性足够充分。
[0236] 在上述公开的实施例中,利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器的一种实现流程图如图4所示,可以包括:
[0237] 步骤S41:利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度。
[0238] 分类器在预测无标记文本数据的类别的过程中,还计算各个无标记文本数据的子特征向量的分类置信度。也就是说,所建立的初始分类器是能够输出分类置信度的分类器。
[0239] 步骤S42:对应每个子特征向量集合,确定该子特征向量集合中分类置信度最大的Q个无标记文本数据的子特征向量,并将该Q个无标记文本数据的子特征向量的类别作为该Q个无标记文本数据的子特征向量的伪标记。Q为预设数目。
[0240] 步骤S43:将不同子特征向量集合中的Q个伪标记进行交换。
[0241] 具体的,对应每个子特征向量集合,将该子特征向量集合中确定的Q个伪标记交换给其它子特征向量集合,其它子特征向量集合中确定的Q个伪标记交换给该子特征向量集合。也就是说,假设子特征向量集合的个数为M,则每个子特征向量集合交换得到的伪标记数量为Q*(M-1)。
[0242] 在每个子特征向量集合中,根据其它子特征向量集合对应的分类器给出的伪标记所标记的无标记文本数据的ID,将其它子特征向量集合对应的分类器给出的伪标记赋予本子特征向量集合中,具有相同ID的无标记文本数据的子特征向量。
[0243] 若其它子特征向量集合对应的分类器中,不同子特征向量集合对应的分类器对同一无标记文本数据赋予的伪标记不同,则可以按照投票法确定无标记文本数据的最终伪标记。例如,
[0244] 可以预先为各个分类器分配投票权重,在不同子特征向量集合对应的分类器对同一个无标记文本数据的伪标记不同时,根据分类器的投票权重,对应该无标记文本数据,将给出同一伪标记的分类器的投票权重求和;将最大和值对应的伪标记确定为该无标记文本数据的最终伪标记。其中,各个分类器的投票权重可以相同,也可以不同。
[0245] 或者,基于少数服从多数的原则,对应同一无标记文本数据,统计给出同一伪标记的分类器的个数,将最多数量的分类器给出的伪标记确定为该无标记文本数据的最终伪标记。
[0246] 步骤S44:利用子特征向量集合中,有标记文本数据的子特征向量和具有交换得到的伪标记的无标记文本数据的子特征向量,训练对应的初始分类器,得到子特征向量集合对应的新的分类器。
[0247] 本申请实施例中,在训练初始分类器时,每个子特征向量集合对应的分类器使用的无标记文本数据的子特征向量,仍然是本子特征向量集合中的无标记文本数据的子特征向量,只是该无标记文本数据的子特征向量的伪标记是其它子特征向量集合对应的分类器给出的伪标记,而不是本子特征向量集合对应的分类器给出的伪标记。
[0248] 步骤S45:判断是否满足终止条件,若是,则进入步骤S46;否则,进入步骤S47。
[0249] 可以通过判断所有分类器的预置的目标函数值的变化是否均小于预设阈值,来判断是否满足终止条件。若所有新的分类器的目标函数值的变化均小于预设阈值,则确定满足终止条件,否则,确定不满足终止条件。
[0250] 也可以通过迭代次数判断是否满足终止条件,如果得到新的分类器后迭代次数达到预定次数,则确定满足终止条件,否则确定不满足终止条件。
[0251] 步骤S46:将新的分类器作为半监督分类器。
[0252] 步骤S47:将新的分类器作为初始分类器,并返回执行步骤S41。
[0253] 本申请实施例中,多个分类器是高度协同的,即,每轮迭代中都是选取分类器具有最高分类预测置信度的前Q个无标记文本数据打上伪标记,使得分类器交换的伪标记对分类器当前分类模型具有正向贡献的同时,也具有很高的安全性。具有很高的安全性是指,较少数量的伪标记也使得模型调整的不会过于剧烈,保证模型不断小幅度优化调整。
[0254] 另外,分类器之间在交换伪标记时,若有多个分类器对同一个数据打上不同的伪标记,则按照投票法选出该数据的最终伪标记,尽可能减少伪标记数据用于分类模型调整时的错误噪声。同时将该最终伪标记交换给每个预测分类与最终伪标记不同的分类器,以尽可能发现对分类模型调整有贡献的数据。
[0255] 基于上述分类器生成方法生成的半监督分类器,本申请还提供一种分类方法,该分类方法应用如前述任意一实施例公开的分类器生成方法生成的半监督分类器,预测待分类文本数据的类别。
[0256] 参考上述半监督分类器的生成过程,本申请公开的分类方法的一种实现流程图如图5所示,可以包括:
[0257] 步骤S51:获取待分类文本数据的特征向量。
[0258] 待分类文本数据的特征向量的提取过程与上述半监督分类器生成过程中,特征向量的提取过程相同。即,按照半监督分类器生成过程中,预先定义的预设数量的特征,从待分类文本数据中提取特征向量。所提取的特征向量对应的特征即为预定义的特征。
[0259] 步骤S52:将待分类文本数据的特征向量划分为多个子特征向量,不同子特征向量对应的特征不同。
[0260] 在将待分类文本数据的特征向量划分为多个子特征向量时,是基于上述半监督分类器生成过程中得到的多个子特征集进行划分的,具体的,依据上述预先得到的多个子特征集中的特征,将待分类文本数据的特征向量进行划分,得到分别与每个子特征集对应的子特征向量。
[0261] 步骤S53:依据子特征向量对应的特征,从预先训练好的多个半监督分类器中,确定与该特征对应的半监督分类器。其中,不同的半监督分类器应用训练数据集中相同数据的不同特征进行训练得到。
[0262] 步骤S54:将子特征向量作为所确定的半监督分类器的输入,由半监督分类器对输入的子特征向量进行处理,得到待分类文本数据的类别。
[0263] 由于不同的半监督分类器预测的待分类文本数据的类别可能不同,因此,在得到待分类文本数据的类别后,若不同的半监督分类器预测的待分类文本数据的类别不同,可以按照投票法确定待分类文本数据的最终类别。例如,
[0264] 当不同的半监督分类器预测的待分类文本数据的类别不同时,根据预先为半监督分类器分配的投票权重,将对待分类文本数据给出同一类别的半监督分类器的投票权重求和;将最大和值对应的类别确定为待分类文本数据的最终类别。其中,各个半监督分类器的投票权重可以相同,也可以不同。
[0265] 或者,基于少数服从多数的原则,统计给出同一类别的半监督分类器的个数,将最多数量的半监督分类器预测出的类别确定为该待分类文本数据的最终类别。
[0266] 本申请实施例提供的分类方法为半监督分类方法,不同的半监督分类器应用训练数据集中相同数据的不同特征进行训练得到,因此,基于该半监督分类器的分类方法,分类效果的稳定性较高。
[0267] 需要说明的是,如果待分类文本数据作为训练样本中的无标记文本数据参与了半监督分类器的生成过程,那么,由于半监督分类器生成过程中,已经将待分类文本数据的特征向量划分为多个子特征向量,因此,在对待分类文本数据进行分类时,无需执行步骤S51~步骤S52,直接从步骤S53开始执行即可。
[0268] 与方法实施例相对应,本申请实施例还提供一种分类器生成装置。请参阅图6,为本申请实施例提供的分类器生成装置的一种结构示意图,可以包括:
[0269] 第一划分模块61,第二划分模块62,第一训练模块63和第二训练模块64;其中,[0270] 第一划分模块61用于将文本数据集的特征向量集合对应的特征集划分为多个子特征集,其中,特征向量集合中包括有标记文本数据的特征向量和无标记文本数据的特征向量;
[0271] 第二划分模块62用于依据上述多个子特征集中的特征,将上述特征向量集合中的特征向量进行划分,得到分别与每个子特征集对应的子特征向量集合;
[0272] 第一训练模块63用于利用上述子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练,得到子特征向量集合对应的初始分类器;
[0273] 第二训练模块64用于利用子特征向量集合中的有标记文本数据的子特征向量和无标记文本数据的子特征向量,将得到的初始分类器进行协同训练,得到半监督分类器。
[0274] 本申请实施例提供的分类器生成装置,将特征向量集合对应的特征集划分为多个子特征集,依据多个子特征集中的特征,将特征向量集合中的特征向量划分为分别与每个子特征集对应的子特征向量集合,对应每个子特征向量集合建立初始分类器,对初始分类器进行协同训练,得到半监督分类器。也就是说,不同的分类器使用同一特征向量的不同的子特征向量进行训练,因此,所生成的半监督分类器利用了同一特征向量的特征之间的差异,提高了半监督分类方法的分类效果的稳定性。
[0275] 在一可选的实施例中,第一划分模块61的一种结构示意图如图7所示,可以包括:
[0276] 获取单元71,用于获取各个特征对类别的贡献度,该类别为有标记文本数据被标记出的类别;
[0277] 划分单元72,用于基于获取单元71获取的贡献度,将特征向量集合对应的特征集划分为多个子特征集。
[0278] 在一可选的实施例中,特征对类别的贡献度,可以包括:
[0279] 与有标记文本数据被标记的类别对应的特征权重;
[0280] 或者,
[0281] 与有标记文本数据被标记的所有类别对应的特征得分,该特征得分用于表征,特征与所有有标记文本数据被标记为所属类别这一结果的关联度,以及特征与其它特征之间的关联度。
[0282] 在一可选的实施例中,获取单元71具体可以用于,
[0283] 若特征集中特征的数量大于或等于预设阈值,获取各个特征对类别的第一贡献度,该第一贡献度为,与有标记文本数据被标记的类别对应的特征权重;
[0284] 若特征集中特征的数量小于上述预设阈值,获取各个特征对类别的第二贡献度,该第二贡献度为,与有标记文本数据被标记的所有类别对应的特征得分。
[0285] 在一可选的实施例中,划分单元72的一种结构示意图如图8所示,可以包括:
[0286] 构建子单元81,用于按照贡献度所对应的类别,利用特征集中的特征构建分别与每个类别对应的特征序列,该特征序列中的特征按照贡献度升序排列或降序排列;
[0287] 遍历子单元82,用于遍历所构建的特征序列,每遍历到一个特征序列,执行如下划分过程:按照特征的排列顺序,依次取出预设个数的未被划分的特征;将取出的预设个数的未被划分的特征按预设顺序依次划分到不同的子特征集中,使得各个子特征集中划分到的特征的数量相同或近似相同。
[0288] 在一可选的实施例中,第一训练模块在利用子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,至少有一个分类模型使用的分类算法与其它分类模型使用的分类算法不同。
[0289] 在另一可选的实施例中,第一训练模块在利用子特征向量集合中的有标记文本数据的子特征向量对预设分类模型进行训练时,各个预设分类模型所使用的分类算法相同,其中,至少有一个分类模型中预定的参数的取值与其它分类模型中所述预定参数的取值不同。
[0290] 在一可选的实施例中,第二训练模块64的一种结构示意图如图9所示,可以包括:
[0291] 预测单元91,用于利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度;
[0292] 标记单元92,用于将子特征向量集合中,分类置信度最大的预设数目个无标记文本数据的特征向量的类别,作为该预设数目个无标记文本数据的伪标记;
[0293] 交换单元93,用于将不同子特征向量集合中的伪标记进行交换;
[0294] 训练单元94,用于利用子特征向量集合中,有标记文本数据的子特征向量和具有交换得到的伪标记的无标记文本数据的子特征向量,训练对应的初始分类器,得到新的分类器;
[0295] 迭代控制单元95,用于若新的分类器满足预设的训练终止条件,将新的分类器作为半监督分类器;若新的分类器不满足上述训练终止条件,则将新的分类器作为初始分类器,触发预测单元91执行利用初始分类器预测对应的子特征向量集合中的无标记文本数据的特征向量的类别,以及各个无标记文本数据的特征向量的分类置信度的过程。
[0296] 与前述分类方法相对应,本申请还提供一种分类装置,该分类装置应用如前任意一分类器生成方法生成的半监督分类器对待分类文本数据进行分类。本申请实施例提供的分类装置的一种结构示意图如图10所示,可以包括:
[0297] 获取模块101,第三划分模块102,确定模块103和控制模块104;其中,获取模块101,用于获取待分类文本数据的特征向量;
[0298] 第三划分模块102,用于将上述待分类文本数据的特征向量划分为多个子特征向量;其中,不同子特征向量对应的特征不同;
[0299] 确定模块103,用于依据子特征向量对应的特征,从预先生成的多个半监督分类器中,确定与上述特征对应的半监督分类器;其中,不同的半监督分类器应用训练数据集中相同数据的不同特征进行训练得到;
[0300] 控制模块104,用于将子特征向量作为所确定的半监督分类器的输入,由半监督分类器对输入的子特征向量进行处理,得到待分类文本数据的类别。
[0301] 本申请实施例提供的分类装置,所应用的多个半监督分类器中,不同的半监督分类器应用训练数据集中相同数据的不同特征进行训练得到,因此,基于该半监督分类器的分类方法,分类效果的稳定性较高。
[0302] 另外,本申请实施例还提供一种计算机可读存储介质,该机算机可读存储介质中存储有指令,当该指令在终端设备上运行时,使得终端设备执行本申请实施例中提供的分类器生成方法,或者,分类方法。
[0303] 本申请实施例还提供一种电子设备,该电子设备包括:存储器,处理器,及存储在存储器上并可在上述处理器上运行的计算机程序,该处理器执行上述计算机程序时,实现本申请实施例提供的分类器生成方法,或者,分类方法。该电子设备可以是计算机设备。
[0304] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0305] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统(若存在)、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0306] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0307] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0308] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0309] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0310] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。