1.一种基于Spark大数据平台的并行CRF算法,其特征在于,包括以下步骤:
首先,读取大规模数据集,进行数据初始化处理,将数据集划分为训练集和测试集;其次,将训练集转换为Spark大数据平台的分布式数据集RDD,获取特征模型,将特征模型广播到全节点;再次,利用flatMap特征模型将训练数据转换成特征,过滤无效特征,然后通过整合相同的特征得到未使用的特征,实现生成并行特征;然后,将全节点每一个训练实例转换成特征向量FI和特征索引标量EI,实现训练数据的并行转换和中间数据缓存;通过梯度计算更新特征权值,每次迭代过程判断是否满足终止条件;根据HDFS上存储好的特征模型和测试数据RDD,利用特征权值计算测试数据转换Map,通过最大和置信算法得到预测标记序列。
2.根据权利要求1所述的一种基于Spark大数据平台的并行CRF算法,其特征在于,所述对训练集创建弹性分布式训练数据集RDD,获取特征模板,创建分布式特征模型RDD具体包括;首先创建一个SparkContext对象,SparkContext是Spark的入口,负责连接Spark集群,创建RDD,累积量和广播量;然后调用它的parallelize(DataSet)或textFile(DataSetURL)函数创建分布式数据集RDD,一旦创建完成,这个分布式数据集就可以被并行操作;即,RDD(TrainData)=SparkContext.textFile(TrainData)。
3.根据权利要求2所述的一种基于Spark大数据平台的并行CRF算法,其特征在于,所述特征模板和训练数据以Block形式存储在HDFS系统中,由SparkContext对象通过textFile方法将数据转化以Partition形式存储的RDD并加载到内存中,对于特征模板RDD调用filter并传入规则,将无效数据过滤。
4.根据权利要求2所述的一种基于Spark大数据平台的并行CRF算法,其特征在于,所述通过flatMap将特征模型映射到训练数据,训练集RDD通过一系列转换操作进行处理,将原始数据以句子为单位根据自定义的类型转化为句子封装类,每个Partition中包含若干个封装类单元存储在集群节点的内存中;然后用相同的key整合相同的特征,并收集它们的values,得到未使用的特征,并存储特征的RDD,从而生成并行特征。
5.根据权利要求4所述的一种基于Spark大数据平台的并行CRF算法,其特征在于,所述得到并行特征的RDD后,对所有节点训练数据根据并行特征转换为特征向量FI和特征索引标量EI,然后调用RDD().cache函数将中间数据缓存到内存中,在后面的迭代过程中可以直接调用。
6.根据权利要求4所述的一种基于Spark大数据平台的并行CRF算法,其特征在于,所述通过梯度计算更新特征权值,判断是否满足终止训练条件的方法是:在训练过程中将训练集RDD、SparkContext对象、训练过迭代最大次数及收敛值作为过程的输入;根据缓存在内存中的特征向量FI和特征索引标量EI计算特征权值的期望,判断特征权值是否大于收敛值,实现并行训练阶段,输出特征的权值向量,特征集合和模型的元数据信息。
7.根据权利要求4所述的一种基于Spark大数据平台的并行CRF算法,其特征在于,所述将全节点每一个训练实例转换成特征向量FI和特征索引标量EI,具体包括:对于每一个训练实例中的 被转换为一个标量,这代表着在RDD(feature)的特征索引将这个标量标准化为
8.根据权利要求4所述的一种基于Spark大数据平台的并行CRF算法,其特征在于,所述通过最大和置信算法得到预测标记序列具体包括:
预测阶段首先从HDFS上读取训练好的模型数据和测试集并转化为RDD存储在内存中,将模型RDD广播到各个工作节点的Executor进程,Executor进程执行特征抽取操作,重置图中节点对象和边对象的cost值,通过算法完成路径代价的计算,最终找出最优的预测标记序列。
9.根据权利要求4所述的一种基于Spark大数据平台的并行CRF算法,其特征在于,所述CRF应用于中文分词时,训练和测试文件必须包含多个tokens,每个token包含多个列,每个token必须写在一行,且各列之间用空格或制表格间隔,一个token的序列可构成一个sentence,sentence之间用一个空行间隔,最后一列是CRF用于训练的正确的标注形式。