一种基于马尔可夫语言模型的缩略词组扩展方法技术

技术编号:19744633 阅读:43 留言:0更新日期:2018-12-12 04:37
本发明专利技术公开了一种基于马尔可夫语言模型的缩略词组扩展方法,该方法首先进行数据准备,从业务文档中抽取出独立词及其对应扩展词的映射关系,从独立词到扩展词的映射关系称为扩展表;其次利用正则表达式,在明确书写的分词位置对缩略词组进行切割,得到原型词序列;然后将原型词序列中不属于可扩展集的原型词认为是复合词,通过隐马尔可夫模型对构成独立词的字符序列进行建模,使用维特比算法求最大似然解的方式自动识别复合词中各个独立词的分割点,从而将复合词切割为独立词;利用单词序列概率模型来评估扩展结果,以此来提高缩略词扩展的准确度。

【技术实现步骤摘要】
一种基于马尔可夫语言模型的缩略词组扩展方法
本专利技术涉及一种缩略词组扩展方法,尤其涉及一种基于马尔可夫语言模型的缩略词组扩展方法。
技术介绍
代码中的方法名、变量名等程序员在编写代码时定义的名称,往往是有意义的,也从一定程度上反映了相关代码的逻辑、业务等。但程序员在编写代码时会使用简洁的缩写,导致可读性变差,不论是人工还是自动化分析代码时都会造成一定的困扰。因此如何把这些缩写的变量名等还原成缩写前的词,从而挖掘出更有价值的信息,对理解程序逻辑业务有非常大的意义。
技术实现思路
本专利技术的目的在于针对现有技术的局限和不足,提供一种基于马尔可夫语言模型的缩略词组扩展方法。本专利技术的目的是通过以下技术方案来实现的:一种基于马尔可夫语言模型的缩略词组扩展方法,包括以下步骤:(1)数据准备:从业务文档中抽取出独立词及其对应扩展词的映射关系,独立词包括标准词和缩略词,其中一个标准词的扩展词是其自身,而一个缩略词可以对应多个扩展词,扩展词可以是任意独立词或独立词组;从独立词到扩展词的映射关系称为扩展表,记为d:W→E,其中为(应用场景中可能出现的)所有独立词的集合,A为字母表,A*表示任意长度字母序列全集,为扩展词序列的集合,如果一个独立词w映射为多个扩展词e1,e2,...,en,则d(w)={e1,e2,...,en},如果一个独立词w不能被扩展(包括不是合法的独立词)映射为多个扩展词e1,e2,...,en,则令d(w)=Φ={se},se表示空字符串(因此Φ不是空集);再令V={w|d(w)≠Φ},称为可扩展的独立词集合,简称可扩展集;根据不同的应用场景可以准备不同的扩展表;(2)利用正则表达式,在明确书写的分词位置,对缩略词组进行切割,得到原型词序列LP=<p1,p2,...,pn>,其中明确书写的分词位置是指除字母和数字之外的符号出现的位置(例如空格、下划线、中划线等),以及字母和数字直接相邻的位置(例如“A0”中“A”与“0”之间的位置);(3)将LP中不属于可扩展集V的原型词pi(即d(pi)=Φ)认为是复合词,通过独立词边界状态模型对复合词pi进行切割,将切割所得序列替换pi在LP中的位置,得到新的序列如果所得仍然包含不属于可扩展集V的元素,则对重复步骤(3)得到以此类推直至第I个序列其中任一元素要么要么不能再被切割;所述独立词边界状态模型的训练具体为:通过隐马尔可夫模型对构成独立词的字符序列进行建模,使用维特比算法求最大似然解的方式自动识别复合词中各个独立词的分割点,从而将复合词切割为独立词;(4)对步骤(3)得到的序列中的每个原型词从扩展表中搜索对应的扩展词集合通过全排列得到缩略词组可能的扩展词序列集合(即各集合Cj的笛卡尔乘积);(5)通过单词序列概率模型计算每个扩展词序列LE∈EP的概率,根据概率对扩展词序列排序并输出,概率最大的即为缩略词组的最合理的扩展词序列;所述单词序列概率模型的训练具体为:根据业务环境中得到的相关文档准备语料库,利用语料库提供的句子,学习得到单词序列的马尔可夫语言模型,通过该模型评估扩展词序列中相邻单词间的依存概率,从而评估产生的扩展词序列的合理性。进一步地,所述步骤(1)中,扩展表的内容通过人工统计或者网络爬虫等自动化的方式获取。进一步地,所述步骤(3)中,独立词边界状态模型的训练方法和使用方法具体为:首先,对于一个由n个字符构成的复合词w=<o1,o2,...,on>,欲将其切割为多个独立词的序列,假设正确的切割序列为其中与之间(k=1,...,t)为切割点,则w的位置编码序列S(w)定义为序列<s1,s2,...,sn>,其中,即当字母ok位于切割序列中某独立词首位时,对应位置编码sk=0,位于某独立词中间位置时,对应位置编码sk=1,ok位于某独立词末尾时,对应位置编码sk=2,即相应地,对于一个独立词w'=<o'1,o'2,...,o'm>,由于不做分割,对应的位置编码序列为S(w')=<s1,s2,...,sm>,其中基于以上定义,利用可扩展集V,使用集合{<w,S(w)>|w∈V}作为训练集,训练一个隐马尔可夫模型MV,其中每个训练样本<w,S(w)>中,独立词w的字符序列作为观测序列,S(w)作为隐藏状态序列;关于使用观测序列和隐藏状态序列样本,训练隐马尔可夫模型的方法,在此不做赘述;如此得到的隐马尔可夫模型MV即为步骤(3)中所指的独立词边界状态模型;在获得独立词边界状态模型MV之后,对于一个待切割的复合词将其本身作为观测序列,使用模型MV,通过维特比算法计算出最大概率的位置隐状态序列将S*(wx)解释为复合词wx对应的位置编码序列,从而得到wx中每个字符所对应的位置编码,如果前后相邻的两个字符oi和oi+1的编码分别为和则在这两个字符之间切割wx,得到wx的切割序列如果不存在这样的字符oi和oi+1,则认为wx不可分割;关于使用隐马尔可夫模型以及维特比算法,求得观测序列对应的隐状态序列的方法,在此不做赘述。进一步地,所述步骤(5)中,单词序列概率模型的训练方法具体为:通过马尔可夫语言模型评估单词间的依存概率来进行评估;根据业务环境中得到的相关文档准备语料库,利用语料库提供的句子,学习得到模型来评估产生的扩展词序列的合理性;在马尔可夫语言模型中,对于一个长度为T的句子L={l1,l2,...,lT},其中li∈W(i=1..T)为句子L中第i个单词,假设句子中任意单词li出现概率P(li|li-1li-2...l1)只与前面n个单词有关(n通常取1~3)即:P(li|li-1li-2...l1)=P(li|li-1li-2...li-n)基于语料库中全部的句子,通过统计句子中单词序列的计数估算转移概率:其中count(li-n...li-1li)表示单词序列li-n...li-1li在全部语料中出现的次数,count(li-n...li-1)代表上一个单词序列的前缀li-n...li-1在全部语料中出现的次数;但由于数据集的数据有限性,上述公式的分子及分母有可能会出现0,显然对于预测一个未知的单词概率等于0是不合理的,因此,本专利技术采用加一平滑算法来计算转移概率,通过如下公式估算转移概率:其中|W|是独立词的总数,是一个人为指定的0到1之间的常数;这样就确保了转移概率矩阵中不会出现为0的元素,并且尽可能的接近真实分布;基于上述估算公式得到马尔可夫语言模型,对于长度为T的扩展词序列LE=<e1e2...eT>∈EP的概率支持度S(LE)为:长度越长的扩展词序列,使用上述公式计算得到的概率支持度倾向于越小,相互比较时缺乏公平性;为消除这一影响,使用以下公式计算扩展词序列的归一化概率支持度Snorm(LE):其中|LE|表示序列LE的长度。进一步地,为所述步骤(5)训练单词序列概率模型之前,可选择预先对语料库中所有单词做词根化和词形还原处理,忽略基于同一单词词根的不同词性、不同时态和不同单复数形式的单词差别;如果这么做,在所述步骤(本文档来自技高网...

【技术保护点】
1.一种基于马尔可夫语言模型的缩略词组扩展方法,其特征在于,包括以下步骤:(1)数据准备:从业务文档中抽取出独立词及其对应扩展词的映射关系,独立词包括标准词和缩略词,其中一个标准词的扩展词是其自身,而一个缩略词可以对应多个扩展词,扩展词可以是任意独立词或独立词组;从独立词到扩展词的映射关系称为扩展表,记为d:W→E,其中

【技术特征摘要】
1.一种基于马尔可夫语言模型的缩略词组扩展方法,其特征在于,包括以下步骤:(1)数据准备:从业务文档中抽取出独立词及其对应扩展词的映射关系,独立词包括标准词和缩略词,其中一个标准词的扩展词是其自身,而一个缩略词可以对应多个扩展词,扩展词可以是任意独立词或独立词组;从独立词到扩展词的映射关系称为扩展表,记为d:W→E,其中为所有独立词的集合,A为字母表,A*表示任意长度字母序列全集,为扩展词序列的集合,如果一个独立词w映射为多个扩展词e1,e2,...,en,则d(w)={e1,e2,...,en},如果一个独立词w不能被扩展映射为多个扩展词e1,e2,...,en,则令d(w)=Φ={se},se表示空字符串;再令V={w|d(w)≠Φ},称为可扩展的独立词集合,简称可扩展集;根据不同的应用场景可以准备不同的扩展表;(2)利用正则表达式,在明确书写的分词位置,对缩略词组进行切割,得到原型词序列LP=<p1,p2,...,pn>,其中明确书写的分词位置是指除字母和数字之外的符号出现的位置,以及字母和数字直接相邻的位置;(3)将LP中不属于可扩展集V的原型词pi认为是复合词,通过独立词边界状态模型对复合词pi进行切割,将切割所得序列替换pi在LP中的位置,得到新的序列如果所得仍然包含不属于可扩展集V的元素,则对重复步骤(3)得到以此类推直至第I个序列其中任一元素要么要么不能再被切割;所述独立词边界状态模型的训练具体为:通过隐马尔可夫模型对构成独立词的字符序列进行建模,使用维特比算法求最大似然解的方式自动识别复合词中各个独立词的分割点,从而将复合词切割为独立词;(4)对步骤(3)得到的序列中的每个原型词从扩展表中搜索对应的扩展词集合通过全排列得到缩略词组可能的扩展词序列集合(5)通过单词序列概率模型计算每个扩展词序列LE∈EP的概率,根据概率对扩展词序列排序并输出,概率最大的即为缩略词组的最合理的扩展词序列;所述单词序列概率模型的训练具体为:根据业务环境中得到的相关文档准备语料库,利用语料库提供的句子,学习得到单词序列的马尔可夫语言模型,通过该模型评估扩展词序列中相邻单词间的依存概率,从而评估产生的扩展词序列的合理性。2.根据权利要求1所述的一种基于马尔可夫语言模型的缩略词组扩展方法,其特征在于,所述步骤(1)中,扩展表的内容通过人工统计或者网络爬虫等自动化的方式获取。3.根据权利要求1所述的一种基于马尔可夫语言模型的缩略词组扩展方法,其特征在于,所述步骤(3)中,独立词边界状态模型的训练方法和使用方法具体为:首先,对于一个由n个字符构成的复合词w=<o1,o2,...,on>,欲将其切割为多个独立词的序列,假设正确的切割序列为其中与之间为切割点,k=1,...,t,则w的位置编码序列S(w)定义为序列<s1,s2,...,sn>,其中,当字母ok位于切割序列中某独立词首位时,对应位置编码sk=0,位于某独立词中间位置时,对应位置编码sk=1,ok位于某独立词末尾时,对应位置编码sk=2,即相应地,对于一个...

【专利技术属性】
技术研发人员:李定邦付晗杨朝晖
申请(专利权)人:浙江网新恒天软件有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1