1.一种基于词频的skip语言模型的训练方法,其特征在于,包括以下步骤:
S1.收集语料,收集用于语言模型训练的中文句子,形成语料库;
S2.中文句子分词:将语料库中每个中文句子切分成一个一个单独的词语,词语之间用空格分隔;
S3.生成学习集corpus:将语料库中所有的中文句子生成训练需要的标准输入格式;
S4.统计学习集corpus中的词汇和词频,生成中文词汇表wt,即遍历所有语料库中的中文句子,列举其中出现的所有词汇和标点,统计这些词汇和标点的出现数量,形成中文词汇表wt;
S5.统计中文词汇表wt中短语和短语出现的次数,生成1-n元中文短语表pt0,即按照n-gram方式,根据选择n值的不同,列举所有n元短语并统计每个短语出现的次数,生成中文短语表pt0;
S6.设定选择性跳过标准k,根据中文词汇表wt中的词频统计结果进行k的判断,当词汇的出现次数k不大于i的所有词汇数量之和占全部词汇数量的60%以上时,取k=i;
S7.根据步骤S6中k对中文句子进行选择性跳过处理,生成skip短语表pt1;
S8.将skip短语表pt1和中文短语表pt0合并,生成新的1-n元中文短语表pt2;
S9.根据步骤S8中生成的中文短语表pt2进行语言模型的训练,得到skip-ngram语言模型。
2.根据权利要求1所述的一种基于词频的skip语言模型的训练方法,其特征在于:所述步骤S2的具体步骤为:
S21.准备中文词典:在互联网上下载尽可能全面的词典文件,读取词典中所有词汇存储到set集合中,取词典中最长词汇的字数L作为最大匹配字数;
S22.进行正向最大匹配分词,获得分词结果Rf:读入语料库中的一个中文句子,首先从句首截取L个汉字串,在词典中搜索,如果词典中存在该词汇,分出该词汇,在已分出的词汇后面截取L个汉字串,继续在词典中搜索,直到中文句子被扫描完为止;如果词典中不存在该词汇,去除第L个汉字,对剩下的L-1个汉字串,继续在词典中搜索,直到切分出一个词或剩余字串的长度为零为止;
S23.进行逆向最大匹配分词,获得分词结果Rb:读入语料库中的一个中文句子,首先从句尾截取L个汉字串,在词典中搜索,如果词典中存在该词汇,分出该词汇,在已分出的词汇前面截取L个汉字串,继续在词典中搜索,直到中文句子被扫描完为止;如果词典中不存在该词汇,去除第L个汉字,对剩下的L-1个汉字串,继续在词典中搜索,直到切分出一个词或剩余字串的长度为零为止;
S24.根据词粒度选取分词结果:依照大颗粒度词越多越好、非词典词和单字词越少越好的原则,选取Rf和Rb中的一个结果作为最终分词结果。
3.根据权利要求1所述的一种基于词频的skip语言模型的训练方法,其特征在于:所述步骤S3的具体步骤为:
S31.tokenisation:遍历语料库中所有中文句子,在词汇和标点之间插入空格,添加句子起始标志“<s>”和结束标志“</s>”;
S32.truecasing:根据词典,将语料库中每句中文句子的字和词组都转换为没有格式的形式;
S33.cleaning:设置中文句子最大长度限制,将长语句和空语句删除。
4.根据权利要求1所述的一种基于词频的skip语言模型的训练方法,其特征在于:所述步骤S6的具体步骤为:
S61.统计中文词汇表wt中出现的总词汇数量s;
S62.初始化词汇出现次数i=1;
S63.计算词频比例r,即中文词汇表中出现次数不大于i的所有词汇的数量之和count(wi)与s的比例:
S64.进行判定:当r≤60%时,i=i+1,转到步骤S62;当r>60%时,取k=i,结束。
5.根据权利要求1所述的一种基于词频的skip语言模型的训练方法,其特征在于:所述步骤S7的具体步骤为:
S71.首先从步骤S5得到的pt0中抽取所有n元短语;
S72.初始化短语表pt1,对所有n元短语中首尾词汇以外的词汇w进行跳过判断,当词汇w的词频Nw满足Nw≥k时,词汇w为高频词汇,不适合被跳过,保留词汇w不做处理;当词汇w的词频Nw满足Nw<k时,词汇w为低频词汇,适合被跳过,则删除词汇w并将剩下的低阶短语,添加到短语表pt1中;
S73.按照步骤S71和步骤S72完成所有中间词汇的选择性跳过处理,统计新短语出现的次数,生成新的skip短语表pt1。
6.根据权利要求1所述的一种基于词频的skip语言模型的训练方法,其特征在于:所述步骤S9的具体步骤为:
S91.定义词汇w的历史计数:N1+(gw)=|{wi:count(wiw)>0}|;
N1+(gw)表示语料库中词汇w在多少个词汇后面出现过,符号“g”代表出现在w之前出现过的任意一个词汇;
定义词序列的历史计数:
表示词序列
在多少个词汇后面出现过,
遍历pt2表中的1-n元短语,利用上述公式计算pt2中每个词汇和短语的历史计数N1+;
S92.使用历史计数代替n-gram语言模型训练中的原始计数,定义一元文法的概率计算公式为:
推广到n元文法有:
利用上述公式计算pt2中每个词汇和短语的计数概率;
S93.根据步骤S91和步骤S92,利用Kneser-Ney平滑算法公式对pt2中每个词汇和短语进行概率计算,即计算语言模型的概率,得到语言模型概率表,即语言模型文件;
计算语言模型的概率的公式如下:
其中D(0≤D≤1)是一个固定数值,计算公式如下:
其中Ni是精确计数为i的n元短语的个数。