[发明专利]基于Spark的并行化随机标签子集多标签文本分类方法在审
申请号: | 201710086932.6 | 申请日: | 2017-02-17 |
公开(公告)号: | CN106874478A | 公开(公告)日: | 2017-06-20 |
发明(设计)人: | 王进;王鸿;夏翠萍;范磊;欧阳卫华;陈乔松;雷大江;李智星;胡峰;邓欣 | 申请(专利权)人: | 重庆邮电大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 重庆市恒信知识产权代理有限公司50102 | 代理人: | 刘小红 |
地址: | 400065 重*** | 国省代码: | 重庆;85 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 spark 并行 随机 标签 子集 文本 分类 方法 | ||
1.一种基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,包括以下步骤:
首先,从HDFS上获取来自互联网的大规模文本数据集和配置信息文件,所述大规模文本数据集包括训练数据集和预测数据集,通过Spark API提供的textFile方法将训练数据集、预测数据集、配置信息文件转换成Spark平台的分布式数据集RDD,完成初始化操作;
其次,并行地随机生成规定数目的标签子集,由原始训练集为每一个标签子集生成一个新的训练集,该训练集特征为原始训练集的全部特征,新训练集中的标签仅保留对应标签子集中包含的标签;
再次,对于每一个新生成的训练集,将训练集的多个标签通过标签幂集法转换为单个标签,将新生成的训练集转化为一个单标签多类数据集,并行地为这些数据集训练一个基分类器;
然后,使用训练好的基分类器形成预测模型对测试集进行预测,将得到的单标签多类预测结果转化为多标签结果;
最后,将所有预测结果进行汇总投票,得到测试集最终的多标签预测结果,完成文本分类。
2.根据权利要求1所述的基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,所述转换成Spark平台的分布式数据集RDD的步骤包括:创建一个SparkContext对象,然后用它的textFile函数创建分布式数据集RDD,一旦创建完成,这个分布式数据集就可以被并行操作,算法最开始还需输入数据集的标签个数L、标签子集标签数n和和要生成的模型数m。
3.根据权利要求2所述的基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,所述并行地随机生成规定数目的标签子集,由原始训练集为每一个标签子集生成一个新的训练集,包括步骤:
(1)通过SparkContext对象的parallelize函数创建一个RDD,该RDD分区数为m,每个分区包含标签全集,通过RDD的map转化操作对每个分区的标签全集随机抽样,将标签全集转换为一个包含n个标签的随机标签子集,得到RDD1;
(2)通过collect行动操作将训练集RDD变为一个本地集合,对RDD1进行map操作,使该RDD的每个分区包含一个随机标签子集和训练集全集的二元组,得到RDD2;
(3)通过map操作对RDD2每个分区的训练集的标签进行过滤,只留下与之对应的标签子集中包含的标签,得到RDD3。
4.根据权利要求3所述的基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,所述对于每一个新生成的训练集,将训练集的多个标签通过标签幂集法转换为单个标签,该数据集转化为一个单标签多类数据集,并行地为这些数据集训练一个基分类器,包括以下步骤:
(1)通过mapPartitions操作,并行地对RDD3的每个分区的训练集执行标签幂集算法,对于训练集的多个标签进行变换,将这些标签转换为一个标签,原始训练集由多标签数据集转换为了单标签多类数据集,得到RDD4;
(2)对RDD4继续执行mapPartitions操作,在其每一个分区上初始化一个单标签基分类器,其中基分类器类型由配置文件指定,将分区上的单标签多类数据集输入基分类器中进行训练,生成预测模型,返回一个由随机标签子集和预测模型组成的二元组,得到RDD5;
(3)对RDD5执行cache操作,将其缓存在内存中。
5.根据权利要求3所述的基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,所述使用训练好的基分类器对测试集进行预测,将得到的单标签多类预测结果转化为多标签结果,包括以下步骤:
I.对于每个样本生成2个长度为L的double类型数组Sum、Votes,分别保存样本的预测标签集合以及所有的模型对每个标签的投票;
II.采用生成的多标签模型hi对每个样本分别进行预测,i=1,2,3...n,每个多标签模型对应一个随机标签子集,根据生成的随机标签子集对待预测样本进行预处理,随机地生成k个标签构造LabelSet对象,LabelSet和特征组合一起作为模型的输入;
Votesj←Votesj+1 (2)
III.根据公式(1)和公式(2)更新Sum和Votes,即当模型预测某个标签的输出为1时,标签索引对应的Sum数组元素的值加1,Votes不管模型输出为1还是0,标签索引对应的值都加1;
avgj=Sumj/Votesj (3)
IV.聚合所有的模型输出,保存每个样本的预测结果(id,confidence,predcitLabel),根据公式(3)算出每个样本的置信度,若置信度大于0.5,则样本属于该标签,否则样本不属于该标签。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆邮电大学,未经重庆邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710086932.6/1.html,转载请声明来源钻瓜专利网。