一种基于拼音相同或相似的中文文本纠错方法

文档序号:1043308 发布日期:2020-10-09 浏览:11次 >En<

阅读说明:本技术 一种基于拼音相同或相似的中文文本纠错方法 (Chinese text error correction method based on pinyin identity or similarity ) 是由 何卓威 于 2020-06-03 设计创作,主要内容包括:本发明提出一种基于拼音相同或相似的中文文本纠错方法,包括以下步骤:S1,在传统ngrams语言模型基础上做调整,建立粒度为单个中文字符的中文字结构语言模型;S2,对待纠错语句进行候选处理,生成候选序列;S3,基于混淆集和MAD算法对候选序列进行检错,获得待纠错语句候选序列;S4,基于中文字结构语言模型的最大后验概率,使用双选Viterbi算法解码输出纠错结果。本发明相对于传统方法词粒度准确率较高,纠错速度较传统方法快。(The invention provides a Chinese text error correction method based on pinyin identity or similarity, which comprises the following steps: s1, adjusting on the basis of the traditional ngrams language model, and establishing a Chinese character structure language model with the granularity of a single Chinese character; s2, performing candidate processing on the statement to be corrected to generate a candidate sequence; s3, error detection is carried out on the candidate sequence based on the confusion set and the MAD algorithm, and a candidate sequence of the statement to be corrected is obtained; and S4, decoding and outputting an error correction result by using a double-choice Viterbi algorithm based on the maximum posterior probability of the Chinese character structure language model. Compared with the traditional method, the method has the advantages of higher word granularity accuracy and higher error correction speed.)

一种基于拼音相同或相似的中文文本纠错方法

技术领域

本发明涉及文本纠错技术领域,尤其是涉及一种基于拼音相同或相似的中文文本纠错方法。

背景技术

文本纠错适用很多领域,如人工打字辅助:可在用户输入后自动检查并提示错别字情况。从而降低因疏忽导致的错误表述,有效提升用户输入效率和质量;搜索纠错领域:针对电商、搜索引擎等搜索接口,用户经常在搜索时输入错误,通过分析搜索项的形式和特征,可自动纠正搜索项并提示用户,进而给出更符合用户需求的搜索结果,有效屏蔽错别字对用户真实需求的影响;语音识别或机器人对话领域:将文本纠错嵌入对话系统中,可自动修正语音识别转文本过程中的错别字,向对话理解系统传递纠错后的正确语句,明显提高语音识别准确率,使产品整体体验更佳。现有技术中,对于音似词替换错误,需要进行查错和纠错处理。通常是基于混淆集进行查错和纠错,并对需要修改的范围逐字改正,而混淆集的建立需要花费大量时间和人工进行维护,成本高且使用不便。现有基于统计方法的纠错语言模型往往基于词粒度,即以词语为分析单位,通过考察词与词之间的关系,来进行纠错。但是纠错分字粒度、词粒度纠错,传统方法字粒度准确率较低,需要换个思路重新建模。

发明内容

针对混淆集的建立需要花费大量时间和人工进行维护,成本高且使用不便以及传统方法字粒度准确率较低的问题,本发明提出了一种基于拼音相同或相似的中文文本纠错方法,建立粒度为单个中文字符的中文字结构语言模型,利用混淆集和MAD算法对候选序列进行检错,并使用双选Viterbi算法解码输出纠错结果。

为实现上述目的,本发明提供以下的技术方案:

一种基于拼音相同或相似的中文文本纠错方法,包括以下步骤:

S1,在传统ngrams语言模型基础上做调整,建立粒度为单个中文字符的中文字结构语言模型;

S2,对待纠错语句进行候选处理,生成候选序列;

S3,基于混淆集和MAD算法对候选序列进行检错,获得待纠错语句候选序列;

S4,基于中文字结构语言模型的最大后验概率,使用双选Viterbi算法解码输出纠错结果。

建立粒度为单个中文字符的中文字结构语言模型,基于字粒度,即以单个字为分析单位,通过考察字与字之间的关系,来进行纠错,相对于传统方法词粒度准确率较高。基于混淆集和MAD算法对候选序列进行检错,前期准备工作需求人力较少,只需垂直领域文本语料即可,不需要花费大量时间和人工进行维护,成本低且使用方便。使用双选Viterbi算法解码输出纠错结果,最大可能筛选最大概率路径纠错速度较传统方法快而且准确。

作为优选,所述步骤S1具体包括:

S101,语料预处理并生成分词文件;

S102,分词文件转换成拼音词组,再将拼音词组拆成字结构,所有字结构组成字结构文本;

S103,使用最终转换成字结构的文本生成粒度为单个中文字符的中文字结构语言模型。

建立粒度为单个中文字符的中文字结构语言模型,基于字粒度,即以单个字为分析单位,通过考察字与字之间的关系,来进行纠错,相对于传统方法词粒度准确率较高。

作为优选,所述步骤S1具体包括:

S104,将中文字结构语言模型升级为类语言模型,把类似的词组成词类,然后计算N-gram统计量的时候使用词类标签来替代词。

本中文字结构语言模型是基于ngrams模型建立的,ngrams模型较为稀疏,即把所有的词都看成完全不同的东西。对于某一个词,模型需要足够多的训练数据才能比较准确的估计其概率,考虑词的这种相似性,通过把常见不易错的词组组成词类,可以更好的排查语句剩余部分是否有错,并提高纠错正确率。

作为优选,所述步骤S101具体包括:

S111,文本语料统一半角格式、去除标点、分行处理;

S112,中文数字转换为***数字;

S113,使用中文jieba分词库进行分词,获得分词文件。

本发明将语料中对文本纠错无意义的纯数字转化为通配符<d>,即不成词组的大写中文数字和***数字转化为一个词类,提高语言模型泛化能力以及纠错效率。

作为优选,所述步骤S2具体包括:根据同音或音似规则,一句话逐字生成候选序列,每字一层,平均每层候选个数在100-150之间,优化常见多音字拼音,将少量、不常用发音剔除,从而提高语言模型泛化能力以及纠错效率。

作为优选,所述步骤S3具体包括:

混淆集检错:

S301,判断待纠错语句中是否有自定义错误集,如果有,则直接输出纠错结果;

S302,判断待纠错语句分词后,词频异常的词组,作为错误集,进入待纠错语句候选序列;

MAD算法检错:

S311,将待纠错语句分别按长度2、3动态分为两组;

S312,计算两组分词语言模型概率;

S313,按分组长度加权平均,得出两组加权概率值;

S314,将两组加权概率值分别取平均值,然后按照MAD算法检错离群值,所述离群值即为错误位置。

作为优选,所述步骤S314具体包括:

(1)计算所有观察点的中位数median(X);

(2)计算每个观察点与中位数的绝对偏差值abs(X-median(X));

(3)计算(2)中的绝对偏差值的中位数,即MAD=median(abs(X-median(X)));

(4)将(2)得到的值除以(3)的值,得到一组基于MAD的所有观察点的离中心的距离值abs(X-median(X))/MAD.

(5)通过设定阈值,超过阈值的则认为是离群值,即错误位置。

作为优选,所述双选viterbi算法,使用beamsearch算法联合viterbi算法具体包括:

S401,设置BeamSize1和BeamSize2两个参数进行约束,其中BeamSize1<BeamSize2;

S402,当前候选层,优先使用beamsearch算法按路径获取BeamSize1个最大概率路径;

S403,排除BeamSize1个路径已包含的节点,从剩余的节点中按viterbi算法依节点补位BeamSize2-BeamSize1个节点,及每层BeamSize2个最大概率路径;

S404,利用最大概率路径输出纠错结果。

viterbi算法较beamsearch算法更接近真实最大概率路径,但是针对ngram语言模型,本发明使用的是5元ngram语言模型,联合viterbi算法使用时,对于总长大于5的待纠错语句,单节点只取最大概率路径,在全局不一定是最大概率路径。

为优化这个问题,本发明使用beamsearch算法联合viterbi算法,命名双选viterbi算法,类似beamsearch算法,需设置BeamSize1、BeamSize2两个参数(BeamSize1<BeamSize2)约束,即当前候选层,优先使用beamsearch算法按路径获取BeamSize1个最大概率路径,然后排除BeamSize1个路径已包含的节点,从剩余的节点中按viterbi算法依节点补位BeamSize2-BeamSize1个节点,及每层BeamSize2个最大概率路径,双选viterbi算法更接近真实概率路径,最大可能筛选最大概率路径纠错速度较传统方法快而且准确

本发明有以下有益效果:建立粒度为单个中文字符的中文字结构语言模型,基于字粒度,即以单个字为分析单位,通过考察字与字之间的关系,来进行纠错,相对于传统方法词粒度准确率较高。基于混淆集和MAD算法对候选序列进行检错,前期准备工作需求人力较少,只需垂直领域文本语料即可,不需要花费大量时间和人工进行维护,成本低且使用方便。使用双选Viterbi算法解码输出纠错结果,最大可能筛选最大概率路径纠错速度较传统方法快而且准确。

附图说明

图1是本实施例的方法流程图;

图2是本实施例的viterbi算法流程图;

图3是本实施例的Beamsearch算法流程图。

具体实施方式

实施例:

本实施例提出一种基于拼音相同或相似的中文文本纠错方法,参考图1,包括以下步骤:

S1,在传统ngrams语言模型基础上做调整,建立粒度为单个中文字符的中文字结构语言模型;

需要经过文本语料、分词文本、转换为字结构、生成统计计数文件再到生成语言模型这些步骤,使字粒度语言模型保留了词粒度语言模型的优点,便于语句逐字检错。

字结构说明:由汉字+拼音+词语位置编号组成,其中位置编号有6种,单个字编号为s,两字词语编号为b2、e2,三字以上词语编号为b、m、e。

步骤S1具体包括:

S101,语料预处理并生成分词文件;

步骤S101具体包括:

S111,文本语料统一半角格式、去除标点、分行处理;

S112,中文数字转换为***数字;

S113,使用中文jieba分词库进行分词,获得分词文件。

本发明将语料中对文本纠错无意义的纯数字转化为通配符<d>,即不成词组的大写中文数字和***数字转化为一个词类,提高语言模型泛化能力以及纠错效率。

示例:

语料:你所说的是不是事实?

分词:你所说的是不是事实

S102,分词文件转换成拼音词组,再将拼音词组拆成字结构,所有字结构组成字结构文本;

示例:你所说的是不是事实

转换拼音词组:你_ni3_s所_suo3_b2说_shuo1_e2的_de_s是_shi4_b不_bu4_m是_shi4_e事_shi4_b2实_shi2_e2

拆成字结构:你_ni3_s所_suo3_b2说_shuo1_e2的_de_s是_shi4_b不_bu4_m是_shi4_e事_shi4_b2实_shi2_e2

S103,使用最终转换成字结构的文本生成粒度为单个中文字符的中文字结构语言模型。

S104,将中文字结构语言模型升级为类语言模型,把类似的词组成词类,然后计算N-gram统计量的时候使用词类标签来替代词。

建立粒度为单个中文字符的中文字结构语言模型,基于字粒度,即以单个字为分析单位,通过考察字与字之间的关系,来进行纠错,相对于传统方法词粒度准确率较高。

本中文字结构语言模型是基于ngrams模型建立的,ngrams模型较为稀疏,即把所有的词都看成完全不同的东西。对于某一个词,模型需要足够多的训练数据才能比较准确的估计其概率,考虑词的这种相似性,通过把常见不易错的词组组成词类,可以更好的排查语句剩余部分是否有错,并提高纠错正确率。

S2,对待纠错语句进行候选处理,生成候选序列;

步骤S2具体包括:根据同音或音似规则,一句话逐字生成候选序列,每字一层,平均每层候选个数在100-150之间,优化常见多音字拼音,将少量、不常用发音剔除,从而提高语言模型泛化能力以及纠错效率。

鉴于中文多音字有1000个左右,优化常见多音字拼音,将少量、不常用发音剔除

例如“上”字发音有shǎng、shàng,属多音字,但是shǎng在日常中很少使用,只保留shàng拼音即可。

S3,基于混淆集和MAD算法对候选序列进行检错,获得待纠错语句候选序列;

步骤S3具体包括:

混淆集检错:

S301,判断待纠错语句中是否有自定义错误集,如果有,则直接输出纠错结果;

S302,判断待纠错语句分词后,词频异常的词组,作为错误集,进入待纠错语句候选序列;

MAD算法检错:

S311,将待纠错语句分别按长度2、3动态分为两组;

示例:

假设一句话:abcdefg

则分为【ab、ab、bc、cd、de、ef、fg、fg】、【abc、abc、abc、bcd、cde、def、efg、efg、efg】两组;

S312,计算两组分词语言模型概率;

S313,按分组长度加权平均,得出两组加权概率值;

【ab、(ab+bc)/2、(bc+cd)/2、(cd+de)/2、(de+ef)/2、(ef+fg)/2、fg】、

【abc、(abc+abc+bcd)/3、(abc+bcd+cde)/3、(bcd+cde+def)/3、(cde+def+efg)/3、(def+efg+efg)/3、efg】

S314,将两组加权概率值分别取平均值,然后按照MAD算法检错离群值,离群值即为错误位置。

步骤S314具体包括:

(1)计算所有观察点的中位数median(X);

(2)计算每个观察点与中位数的绝对偏差值abs(X-median(X));

(3)计算(2)中的绝对偏差值的中位数,即MAD=median(abs(X-median(X)));

(4)将(2)得到的值除以(3)的值,得到一组基于MAD的所有观察点的离中心的距离值abs(X-median(X))/MAD。

(5)通过设定阈值,超过阈值的则认为是离群值,即错误位置。

S4,基于中文字结构语言模型的最大后验概率,使用双选Viterbi算法解码输出纠错结果。

双选viterbi算法,使用beamsearch算法联合viterbi算法具体包括:

S401,设置BeamSize1和BeamSize2两个参数进行约束,其中BeamSize1<BeamSize2;

S402,当前候选层,优先使用beamsearch算法按路径获取BeamSize1个最大概率路径;

S403,排除BeamSize1个路径已包含的节点,从剩余的节点中按viterbi算法依节点补位BeamSize2-BeamSize1个节点,及每层BeamSize2个最大概率路径;

S404,利用最大概率路径输出纠错结果。

参考图1,viterbi算法是从候选动态网络空间中筛选出一条或多条最优路径作为纠错结果,其在每一步的所有选择都保存了前续所有步骤到当前步骤当前选择的最小总代价(或者最大价值)以及当前代价的情况下前继步骤的选择。依次计算完所有步骤后,通过回溯的方法找到最优选择路径。假设一句话长度为3,对应每个位置候选为3个,实际平均110个,而且每个位置候选个数可以不相同,这里只通俗讲解viterbi算法,从候选层a→候选层b时,以b2节点为例,a1b2、a2b2、a3b2概率分别为0.5、0.2、0.1,b2节点当前最优路径即为最大概率路径a1b2,同理可得到b1、b3节点最优路径,然后再从候选层b→候选层c,以c2节点为例,b1c2、b2c2、b3c2概率分别为0.2、0.3、0.1,c2节点当前最优路径即为最大概率路径a1b2c2,同理可得c1、c3最大概率路径,通过排序即可得到全局最大概率路径,即为纠错结果。

参考图2,Beamsearch算法属于贪心算法思想,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点,Beamsearch算法需要设置BeamSize,通常远小于当前候选层个数,图2中仅示例,BeamSize设置为2,在候选层a,a1、a2、a3概率分别为0.5、0.3、0.1,则候选层a保留最大概率BeamSize个数节点,即a1、a2,从候选层a→候选层b时,分别获取a1b1、a1b2、a1b3、a2b1、a2b2、a2b3的概率为0.4、0.3、0.2、0.2、0.2、0.1,则候选层b保留最大概率2个节点,即为a1b1、a1b2,同理可得候选层c每个节点的概率,通过排序即可得到全局最大概率路径,即为纠错结果。

viterbi算法较beamsearch算法更接近真实最大概率路径,但是针对ngram语言模型,本发明使用的是5元ngram语言模型,联合viterbi算法使用时,对于总长大于5的待纠错语句,单节点只取最大概率路径,在全局不一定是最大概率路径。为优化这个问题,本发明使用beamsearch算法联合viterbi算法,命名双选viterbi算法,类似beamsearch算法,需设置BeamSize1、BeamSize2两个参数(BeamSize1<BeamSize2)约束,即当前候选层,优先使用beamsearch算法按路径获取BeamSize1个最大概率路径,然后排除BeamSize1个路径已包含的节点,从剩余的节点中按viterbi算法依节点补位BeamSize2-BeamSize1个节点,及每层BeamSize2个最大概率路径,双选viterbi算法更接近真实概率路径,最大可能筛选最大概率路径纠错速度较传统方法快而且准确。

本发明有以下有益效果:建立粒度为单个中文字符的中文字结构语言模型,基于字粒度,即以单个字为分析单位,通过考察字与字之间的关系,来进行纠错,相对于传统方法词粒度准确率较高。基于混淆集和MAD算法对候选序列进行检错,前期准备工作需求人力较少,只需垂直领域文本语料即可,不需要花费大量时间和人工进行维护,成本低且使用方便。使用双选Viterbi算法解码输出纠错结果,最大可能筛选最大概率路径纠错速度较传统方法快而且准确。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种语句处理方法、装置、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!