一种基于在线搜索辅助的中文文本纠错方法

文档序号:31477387发布日期:2022-09-10 00:48阅读:45来源:国知局
1.本发明属于自然语言处理领域,尤其涉及一种基于在线搜索辅助的中文文本纠错方法。
背景技术
::2.文本纠错是一种对语句自动检查、自动纠正的技术。文本纠错系统能够将输入的可能带有错误的句子输出为正确句子。通过文本纠错技术,能够提升文本的质量,是自然语言处理领域的基石之一。据统计,在互联网等新媒体领域中,文本出错率高于2%;在语音识别领域中,出错率最高可达8-10%。看似文本出错率不高,但是一句话里出现一个错词,就可能完全改变了整句话的原意,可能使读者错误地理解作者的意思,进而产生不好的影响。比如在医学领域,出现一个错字产生的影响可能是致命的。并且,大部分自然语言处理技术都需要在正确的文本上进行操作,而不能够在带有错误的文本上获得一个好的效果。因此,能够有一个方法能够自动的对文本进行纠错十分具有意义。3.现如今,在全球范围内,对英文的文本纠错研究已经比较成熟,然而,对中文文本纠错技术仍然不够完善。目前,中文文本纠错数据集规模小,使得中文文本纠错的准确率和普适性不高。其次,中文文本纠错依赖于模型训练过的数据,然而许多专业词汇是难以在数据集中出现的,这就导致了目前的大多数中文文本纠错模型不能够很好地对含有专业词语错误的语句进行正确纠正。最后,现有的中文文本纠错模型大多都需要先针对性地使用对应数据集进行训练,然后才能进行文本纠错,如果更换了文本类型,那么模型就需要重新训练,不能够做到即时即用。技术实现要素:4.本发明的目的在于针对现有技术的不足,提供一种基于在线搜索辅助的中文文本纠错方法,该方法首先将要纠正的语句进行分句,将分句后的句子依次通过搜索引擎进行在线查询,将查询到的内容爬取并统计其中的词频构建词频表。然后对原始语句进行分词,根据分词后的结果在词频表中的词频和困惑度进行检错获得可疑词。将可疑词根据原始语句上下文和在搜索引擎中查询到的结果上下文信息进行搜索,并根据词频、拼音编辑距离和结构相似度使用topsis算法进行打分,选取分数较高的词作为候选词,再额外增加部分近音近型词也作为候选词。将候选词对原始语句的可疑词进行替换,使用原始gpt-2模型计算替换后语句的困惑度,选择困惑度最小的语句作为最终纠正后的结果。该方法基于待纠正语句在搜索引擎中的查询结果,能够智能地对待纠正语句的错误部分进行检查,然后对其进行纠正,最后返回正确语句。此外,本发明因为基于在线查询,所以可以通过搜索引擎的方式可以获得大量与待纠正语句意思相近的数据,使用词频、词语当前出现概率、n-gram等方式进行检错,使用topsis算法对词频、拼音编辑距离、结构相似度这三个考量因素筛选出较为合适的错误词的替换词,以及使用gpt-2模型根据困惑度作为评价指标可以获得最合适的正确语句输出。本发明在获得需要的模型之后,不需要再进行额外的训练,能够做到即时即用,不受其他因素的干扰。5.本发明的目的是通过以下技术方案来实现的:6.一种基于在线搜索辅助的中文文本纠错方法,包括以下步骤:7.s1:将待纠正的原始语句进行分句,分句的依据为原始语句所包含的词语数量。8.s2:将步骤s1分句后的语句通过搜索引擎进行查询,将前三十条查询结果的标题和摘要部分进行爬取并保存到本地。9.s3:基于步骤s2获得的三十条查询结果,进行分词和统计词频,然后构建词频表。10.s4:基于步骤s2获得的三十条查询结果,对其进行新词发现,将新词发现的结果加入jieba词表,再根据变化后的jieba词表对原始语句进行分词,获得原始语句分词后的结果。11.s5:基于步骤s3和步骤s4获得的通过搜索引擎查询构建得到的词频表和原始语句分词结果,进行检错,使用原始语句分词结果在词频表中进行查询,如果某个词在词频表中的词频值小于阈值,则认为该词可能有误,作为可疑词。12.s6:基于步骤s4获得的原始语句分词结果,进行未登录词检错补充,将未在jieba词库中的未登录词加入可疑词中。13.s7:进行概率检错补充,将原始语句通过原始gpt-2模型,获得每个字的概率值,如果某字的概率值明显小于其他字的概率值,将该字加入可疑词中。14.s8:基于步骤s7获得的可疑词,依次获得可疑词在原始语句中的上下文信息text_ori,以一个可疑词和对应的上下文信息text_ori为一对的方式存储。获得上下文信息的方式为根据距离,获取在原始语句中离可疑词距离为x及以内的词作为上下文信息text_ori。15.s9:基于步骤s8和步骤s2获得的可疑词在原始语句中的上下文信息text_ori和通过搜索引擎查询到的结果,依次获得text_ori在搜索引擎查询到的结果中的上下文信息text_search,此时的上下文信息text_search作为候选词。以一个可疑词和对应的候选词为一对的方式存储。仍然使用根据距离的方式,分别获取搜索引擎查询到的结果中距离text_ori为2,4,6的词作为上下文信息text_search。16.s10:基于步骤s9获得的候选词,分别计算候选词与对应的可疑词的拼音编辑距离和结构相似度。其中,结构相似度使用预先构建好的孪生网络进行计算。17.s11:基于步骤s10和步骤s3获得的候选词与对应的可疑词的拼音编辑距离和结构相似度和词频表,使用topsis算法,基于词频、拼音编辑距离和结构相似度计算得分,选取得分最高的前8个候选词作为可疑词的候选词。18.s12:基于步骤s7获得的可疑词,筛选出在jieba词表内与可疑词拼音编辑距离较小的词和结构相似度较高的词,也作为可疑词的候选词加入到步骤s10获得的可疑词的候选词中。19.s13:基于步骤s2获得的搜索引擎查询结果,构件3-gram词表,使用n-gram算法,选择出可能出现在可疑词位置的词,也作为可疑词的候选词加入到步骤s10获得的可疑词的候选词中。20.s14:基于步骤s13获得的可疑词的候选词和步骤s6获得的可疑词,将原始语句中的可疑词用可疑词对应的候选词做排列组合式替换,获得候选句集。因为可能原始语句无误,因此候选句集中再加入原始语句。21.s15:基于步骤s14获得的候选句集,使用原始gpt-2模型计算整个候选句的困惑度,选择困惑度最低的句子作为最终结果。22.进一步地,所述的将待纠正的原始语句进行分句,分句条件为,先对原始语句使用jieba进行分词,如果原始语句分词结果的词语个数大于等于15,则按照句号、问号、感叹号、分号将原始语句进行切分。如果在切分后的短句中,词语个数仍然大于等于15,则按照逗号继续切分。23.进一步地,所述的分句后的语句,使用搜索引擎查询的网址前缀,具体是指:将查询内容拼接到网址前缀中,使用爬虫进行访问,爬取在搜索引擎中的搜索结果,将搜索结果中的前三十条信息中的标题和摘要保存到本地。24.进一步地,所述的根据查询结果,进行分词和统计词频,然后构建词频表,具体是指:将爬取到的三十条查询结果的标题和摘要,使用jieba分词,将它们分为词语,然后统计每个词出现的次数,出现次数即为这个词的词频,将每个词和它对应的词频保存下来,作为词频表。25.进一步地,所述的对查询结果进行新词发现,将新词发现的结果加入jieba词表,再对原始语句进行分词,具体是指:新词发现算法能够从已有语料中进行挖掘,找出那些未登录的可能成词的短语,新词是指新出现的或者旧词新意的词。因为使用的是jieba分词,依赖jieba词表,而jieba词表较老,无法正确分出一些较新的词语,使用新词发现算法,将相关的可能成词的短语筛选出来,对原始语句重新分词,能够提升分词准确率。新词发现算法主要分为3个步骤:a)将语料文本生成n-gram表,并统计每个词的词频。b)利用凝固度从之前的n-gram表中筛选出备选新词。c)再通过自由度从备选新词中筛选出最终的新词。给定一个原始语句s,分词后的结果为x1,x2,…,xn。26.凝固度用点间互信息表示,公式为:[0027][0028]其中,pmi(x,y)是点间互信息,p(x,y)是指两个词一起出现的概率,p(x),p(y)是指各词出现的概率。凝固度越大,说明这两个词出现在一起的概率越大,是一个词语的可能性也就越大。[0029]自由度用左右熵表示,左右熵公式分别为为:[0030][0031][0032]其中,eleft(prew)表示左熵,eright(sufw)表示右熵,prew是词w前缀的集合,sufw是词w后缀的集合。自由度越大,说明它的周边词越丰富,其成为一个独立的词的可能性也就越大。[0033]进一步地,所述的使用原始语句分词结果在词频表中进行查询,进行检错,具体是指:在已经构建好的词频表中,依次查询原始语句分词结果x1,x2,...,xn在词频表中的词频值c1,c2,...,cn,选择c1,c2,...,cn中的最大值cmax作为基准,若其他词的词频值ck(k≠max)<5%*cmax,则认为该词可能有误,加入到可疑词中。[0034]进一步地,所述的未登录词检错补充,具体是指:在jieba词表内查找原始语句分词结果x1,x2,...,xn,如果词语x不在jieba词表内,则认为该词可能有误,加入到可疑词中。[0035]进一步地,所述的概率检错补充,具体是指:句子s由词语x1,x2,...,xn组成,而gpt-2模型可以输入真实前文x1,x2,...,xm-1,获得下一个词xm′可能出现的词和其对应的概率。根据每个原始语句的真实词xk获得概率pk,计算其中的中位值pm,如果有词语xm的概率值小于中位值10%*pm,则认为该词可能有误,若该词不在可疑词中,则加入到可疑词中。[0036]进一步地,所述的获得可疑词在原始语句中的上下文信息text_ori,具体是指:假设现有原始语句s,s由词语x1,x2,x3,x4,x5,x6,x7,x8组成,可疑词为x3。根据距离公式:[0037]dis=min(3,wordnum//2)[0038]其中,wordnum代表分词后的词语个数。通过计算得到距离dis,获得原始语句中距离可疑词xk为dis及以内的所有词语,作为xk的上下文信息text_ori。text_ori=xk-dis,xk-dis+1,…,xk-1,xk+1,…,xk+dis。[0039]进一步地,所述的获得上下文信息text_ori在搜索引擎查询到的结果中的上下文信息text_search,具体是指:在保存到本地搜索引擎查询到的三十条结果内容中,根据预设距离获得上下文信息text_ori的上下文信息text_search。例如:搜索引擎的某一条结果为s′,由词语x′1,x′2,...,xj′组成,现有原始语句s,s由词语x1,x2,...,xn组成,可疑词为xk,xk-dis,xk-dis+1,...,xk-1,xk+1,...,xk+dis是xk的上下文信息text_ori。现在对每个上下文信息text_ori,都在s′中根据距离dissearch寻找上下文信息text_search,距离dissearch分别选取2,4,6。对于上下文信息text_ori中的xk-dis,若xk-dis也在s′中出现,则x′k-dis-2,x′k-dis-1,xk-dis+1′,xk-dis+2′是xk-dis在s′中距离为2的上下文信息text_search,x′k-dis-4,...,x′k-dis-1,x′k-dis+1,...,x′k-dis+4是x1在s′中距离为4的上下文信息text_search,x′k-dis-6,...,x′k-dis-1,x′k-dis+1,...,x′k-dis+6是x1在s′中距离为6的上下文信息text_search。以此类推对xk-dis+1,...,xk-1,xk+1,...,xk+dis做相同的操作,获得上下文信息text_search。将这些上下文信息text_search作为对应可疑词的候选词。[0040]这里基于一个假设,假设有个句子bab,其中a这个词有误,a的上下文信息为b,而在一个正确的句子cbc中,b出现在这个正确的句子cbc中,那么可以认为b的上下文信息c可能可以用来替换有误的a。即,错误句子中词a的旁边有词b,而正确句子中词b的旁边有词c,则词c可能可以用来候选词a。在本发明中,可以认为错误句子为原始语句,正确句子为从搜索引擎查询结果中爬取的前三十条信息。[0041]进一步地,所述的计算候选词与对应的可疑词的拼音编辑距离和结构相似度,具体是指:编辑距离是从一个字符串变到另一个字符串的最小编辑次数,其中每次编辑只能在字符串中插入一个字符、删除一个字符或者修改一个字符。而拼音编辑距离是两个汉语转换为无音标的拼音后的编辑距离。拼音编辑距离公式如下:[0042]pydis=ls(py1,py2)[0043]其中,pydis表示拼音编辑距离,ls表示编辑距离计算,py1,py2分别表示两个词的无音标拼音。[0044]结构相似度使用预先训练的孪生网络进行图形相似度计算来获取。孪生网络是连体的神经网络,其中的两个神经网络共享参数权重。孪生神经网络有两个输入graph1,m表示指标数,表示第j个指标的最大值,zij表示标准化后第i个方案第j个指标的值。[0055]第i个方案的评分公式如下:[0056][0057]其中,si表示第i个方案的评分。根据每个dissearch获得第i个方案的评分[0058]由此得出各方案与最优方案的接近程度。将不同距离dissearch获得的分别乘以对应的作为最终分数,即:[0059][0060]其中,score为最终的得分,作为评价方案的优劣标准,选择score最大的前八个候选词作为较合理的候选词。总体来说,公式如下:[0061][0062]其中,为可疑词xk对应的候选词,top-8表示取前8个。[0063]进一步地,所述的筛选出在jieba词表内与可疑词拼音编辑距离较小的词和结构相似度较高的词,具体是指:将可疑词xk按字粒度按照字粒度切分为n个字c1,c2,...,cn,然后对每个字cm(1≤m≤n)在jieba词表内寻找拼音编辑距离小于等于1的所有字将这些字按照下标m作为位置进行排列组合,生成个词,这些词若登录在jieba词表内,也作为可疑词的候选词。对于结构相似度,使用预先训练好的孪生网络,计算和可疑词xk图片相似度大于80%的词,作为可疑词的候选词,加入候选词[0064]进一步地,所述的使用n-gram算法,选择出可能出现在可疑词位置的词,具体是指:对于n-gram算法,我们假设第n个词出现的概率只和前n-1个词有关,因此句子的概率分布如下:[0065][0066]其中,p(s)是整个句子的概率,wn是组成句子的词语,表示第wi个词到wi-n+1个词的历史序列,表示给定历史序列的词的前提下,当前词出现的概率。在本发明中,使用3-gram算法,句子的概率分布如下:[0067]p(s)=p(w1|w0,w-1)p(w2|w1,w0)…p(wi|wi-1,wi-2)[0068]将通过搜索引擎查询得到的三十条信息用3-gram算法构建3-gram表,以(wi-1,wi-2,wi)的方式存储。遍历待纠错的原始语句s,s由词语x1,x2,...,xn组成,若存在xk-2=wk-2,xk-1=wk-1,则将wk认为是可以用来替代xk的候选词,加入候选词[0069]进一步地,所述的将原始语句中的可疑词用可疑词对应的候选词做排列组合式替换,获得候选句集,具体是指:对于原始语句s,s由词语x1,x2,...,xn组成,现有可疑词xi,xj,...,xk,可疑词对应的候选词为依次将可疑词xm(m∈(i,j,...,k))用xm的候选词替换,做排列组合,生成候选句集。[0070]进一步地,所述的使用原始gpt-2模型计算整个候选句的困惑度,具体是指:对于给定的语句,若其长度为n,首先将其向左移动一位作为label,将其去除末位作为input,将input输入到gpt-2获得的输出与label做交叉熵损失crossentropyloss,再求以自然数为底的次方即为所求困惑度。困惑度是用来衡量语言概率模型优劣的一个方法,困惑度越小,表明句子越合理。计算困惑度公式如下:[0071]out=gpt-2(input)[0072]loss=crossentropyloss(out,label)[0073]ppl=lnloss[0074]其中,给定句子s,s由词语x1,x2,...,xn组成,input=x1,x2,...,xn-1,label=x2,...,xn,ppl为所求的困惑度。将所有候选句集和原始语句进行困惑度计算,从中选择困惑度最小的句子作为最终的纠错结果。[0075]本发明的有益效果是:本发明提供了一种新的中文文本纠错方式,使用了在线查询的方式,根据词频因素同时辅以概率对待纠正语句进行检错,对句中错误的部分使用topsis算法根据词频、拼音编辑距离、结构相似度对错误词的可替换词进行筛选。用可替换词对错误词进行替换,最后通过使用gpt-2模型计算困惑度的方式获得最优解作为纠错结果返回。解决了不同数据集需要分次训练分次使用和专业词汇无法纠正的问题,能够即时即用的进行中文文本纠错。附图说明[0076]图1是本发明提出方法的流程图;具体实施方式[0077]本发明公开一种基于在线搜索辅助的中文文本纠错方法,基于待纠正语句在搜索引擎中的查询结果,智能地对待纠正语句的错误部分进行检查,然后对其进行纠正,最后返回正确语句。基于本发明提供的中文文本纠错技术,能够将可能带有错误的中文语句改正,使读者更好地理解作者的本意,也能够为后续的自然语言处理技术增加更高的准确性。[0078]本发明公开了一种基于在线搜索辅助的中文文本纠错方法,能够在不需要额外训练纠错模型、不需要大规模数据集的情况下,即时即用,将可能含有错误的中文语句进行自动纠正。本方法首先将要纠正的语句进行分句,将分句后的句子依次通过搜索引擎进行查询,将查询到的内容爬取并统计其中的词频构建词频表。然后对原始语句进行分词,根据分词后的结果在词频表中的词频和困惑度进行检错获得可疑词。将可疑词根据原始语句上下文和在搜索引擎查询到的内容的上下文信息进行搜索,并根据词频、拼音编辑距离、结构相似度使用topsis算法进行打分,选取分数较高的词作为候选词,再额外增加部分近音近型词也作为候选词。将候选词对原始语句的可疑词进行替换,使用原始gpt-2模型计算替换后语句的困惑度,选择困惑度最小的语句作为最终纠正后的结果。本发明能够通过在线查询的方式,根据词频、困惑度的方式进行检错,根据词频、拼音编辑距离、结构相似度综合考虑获得候选词,使用候选词替换对应的可疑词获得候选句,最后根据候选句整体困惑度获得修改后最优的正确语句。[0079]下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0080]如图1所示,一种基于在线搜索辅助的中文文本纠错方法,该方法包括以下步骤:[0081]s1:将待纠正的原始语句进行分句,分句的依据为原始语句所包含的词语数量。[0082]s2:将步骤s1分句后的语句通过搜索引擎进行查询,将前三十条查询结果的标题和摘要部分进行爬取并保存到本地。[0083]s3:基于步骤s2获得的三十条查询结果,进行分词和统计词频,然后构建词频表。[0084]s4:基于步骤s2获得的三十条查询结果,对其进行新词发现,将新词发现的结果加入jieba词表,再根据变化后的jieba词表对原始语句进行分词,获得原始语句分词后的结果。[0085]s5:基于步骤s3和步骤s4获得的通过搜索引擎查询构建得到的词频表和原始语句分词结果,进行检错,使用原始语句分词结果在词频表中进行查询,如果某个词在词频表中的词频值小于阈值,则认为该词可能有误,作为可疑词。[0086]s6:基于步骤s4获得的原始语句分词结果,进行未登录词检错补充,将未在jieba词库中的未登录词加入可疑词中。[0087]s7:进行概率检错补充,将原始语句通过原始gpt-2模型,获得每个字的概率值,如果某字的概率值明显小于其他字的概率值,将该字加入可疑词中。[0088]s8:基于步骤s7获得的可疑词,依次获得可疑词在原始语句中的上下文信息text_ori,以一个可疑词和对应的上下文信息text_ori为一对的方式存储。获得上下文信息的方式为根据距离,获取在原始语句中离可疑词距离为x及以内的词作为上下文信息text_ori。[0089]s9:基于步骤s8和步骤s2获得的可疑词在原始语句中的上下文信息text_ori和通过搜索引擎查询到的结果,依次获得text_ori在搜索引擎查询到的结果中的上下文信息text_search,此时的上下文信息text_search作为候选词。以一个可疑词和对应的候选词为一对的方式存储。仍然使用根据距离的方式,分别获取搜索引擎查询到的结果中距离text_ori为2,4,6的词作为上下文信息text_search。[0090]s10:基于步骤s9获得的候选词,分别计算候选词与对应的可疑词的拼音编辑距离和结构相似度。其中,结构相似度使用预先构建好的孪生网络进行计算。[0091]s11:基于步骤s10和步骤s3获得的候选词与对应的可疑词的拼音编辑距离和结构相似度和词频表,使用topsis算法,基于词频、拼音编辑距离和结构相似度计算得分,选取得分最高的前8个候选词作为可疑词的候选词。[0092]s12:基于步骤s7获得的可疑词,筛选出在jieba词表内与可疑词拼音编辑距离较小的词和结构相似度较高的词,也作为可疑词的候选词加入到步骤s10获得的可疑词的候选词中。[0093]s13:基于步骤s2获得的搜索引擎查询结果,构件3-gram词表,使用n-gram算法,选择出可能出现在可疑词位置的词,也作为可疑词的候选词加入到步骤s10获得的可疑词的候选词中。[0094]s14:基于步骤s13获得的可疑词的候选词和步骤s6获得的可疑词,将原始语句中的可疑词用可疑词对应的候选词做排列组合式替换,获得候选句集。因为可能原始语句无误,因此候选句集中再加入原始语句。[0095]s15:基于步骤s14获得的候选句集,使用原始gpt-2模型计算整个候选句的困惑度,选择困惑度最低的句子作为最终结果。[0096]1、数据预处理[0097]首选需要将待纠正的原始语句进行分句。分句条件为:如果原始语句分中词语个数大于等于15,则按照句号、问号、感叹号、分号将原始语句进行切分。假设语句s是当前待纠正语句,s由词x1,x2,...,xn构成,若n≥15,则需要对s进行分句,比如当xi=′。′,则将s分为x1,x2,...,xi和xi+1,xi+2,...,xn。如果在切分后的短句中,词语个数仍然大于等于15,则按照逗号继续切分。[0098]然后将分句依次在搜索引擎中进行查询,将查询结果的前三十条题目和摘要进行爬取并保存。然后对其分词,构建词频表tableword,词频表为词语和其对应的出现次数构成的表。[0099]然后对爬取下来的查询结果进行新词发现,将新词发现的结果加入jieba词表,再对原始语句进行分词。新词发现算法主要分为3个步骤:a)将语料文本生成n-gram表,并统计每个词的词频。b)利用凝固度从之前的n-gram表中筛选出备选新词。c)再通过自由度从备选新词中筛选出最终的新词。给定一个原始语句s,分词后的结果为x1,x2,...,xn。[0100]凝固度用点间互信息表示,公式为:[0101][0102]其中,pmi(x,y)是点间互信息,p(x,y)是指两个词一起出现的概率,p(x),p(y)是指各词出现的概率。凝固度越大,说明这两个词出现在一起的概率越大,是一个词语的可能性也就越大。[0103]自由度用左右熵表示,左右熵公式分别为为:[0104][0105][0106]其中,eleft(prew)表示左熵,eright(sufw)表示右熵,prew是词w前缀的集合,sufw是词w后缀的集合。自由度越大,说明它的周边词越丰富,其成为一个独立的词的可能性也就越大。将新词发现的结果加入jieba词表,重新对句子分词[0107]2、检错模块[0108]接着使用之前构建好的词频表tableword进行检错。在已经构建好的词频表tableword中,依次查询原始语句分词结果x1,x2,...,xn在词频表中的词频值c1,c2,...,cn,选择c1,c2,...,cn中的最大值cmax作为基准,若其他词的词频值ck(k≠max)<5%*cmax,则认为该词可能有错。[0109]然后进行未登录词检错。如果分词后的词语x1,x2,...,xn不在jieba词表内,则认为该词有误。[0110]最后进行概率检错。gpt-2模型可以输入前文来获得下一个词x′可能出现的概率。概率公式如下:[0111]p(xk)=gpt-2(x1,x2,...,xk-1)[0112]其中,p(xk)表示第k个词语出现的概率,x1,x2,...,xk-1表示前k-1个词语组成的短语。根据每个真实词的概率p1,p2,...,pn,计算其中的中位值pm,如果有词语xm的概率值小于中位值10%*pm,则认为该词可能有误。[0113]3、纠错模块[0114]在获得了可疑词之后,要获得可疑词在原始语句中的上下文信息text_ori。根据距离公式:[0115]dis=min(3,wordnum//2)[0116]其中,wordnum代表分词后的词语个数。通过计算得到dis,获得原始语句中距离可疑词xk为dis及以内的所有词语,作为xk的上下文信息text_ori。text_ori=xk-dis,xk-dis+1,…,xk-1,xk+1,…,xk+dis。[0117]然后在搜索引擎查询到的三十条结果内容中,根据预设距离获得上下文信息text_ori的上下文信息text_search。例如:搜索引擎的某一条结果为s′,由词语x′1,x′2,...,xj′组成,现有原始语句s,s由词语x1,x2,...,xn组成,可疑词为xk,xk-dis,xk-dis+1,...,xk-1,xk+1,...,xk+dis是xk的上下文信息text_ori。现在对每个上下文信息text_ori,都在s′中根据距离dissearch寻找上下文信息text_search,距离dissearch分别选取2,4,6。对于上下文信息text_ori中的xk-dis,若xk-dis也在s′中出现,则x′k-dis-2,x′k-dis-1,xk-dis+1′,xk-dis+2′是xk-dis在s′中距离为2的上下文信息text_search,x′k-dis-4,...,x′k-dis-1,x′k-dis+1,...,x′k-dis+4是x1在s′中距离为4的上下文信息text_search,x′k-dis-6,...,x′k-dis-1,x′k-dis+1,...,x′k-dis+6是x1在s′中距离为6的上下文信息text_search。以此类推对xk-dis+1,...,xk-1,xk+1,...,xk+dis做相同的操作,获得上下文信息text_search。将这些上下文信息text_search作为对应可疑词的候选词。[0118]获得候选词后,因为会有大量数据,所以需要对其进行一定的筛选,将较适合的候选词选出。本发明使用候选词的词频、以及与对应的可疑词的拼音编辑距离和结构相似度作为参考标准。[0119]编辑距离指从一个字符串变到另一个字符串的最小编辑次数,其中每次编辑只能在字符串中插入一个字符、删除一个字符或者修改一个字符。而拼音编辑距离是两个汉语转换为无音标的拼音后的编辑距离。拼音编辑距离公式如下:[0120]pydis=ls(py1,py2)[0121]其中,pydis表示拼音编辑距离,ls表示编辑距离计算,py1,py2分别表示两个词的无音标拼音。[0122]结构相似度使用预先训练的孪生网络进行图形相似度计算来获取。孪生网络是连体的神经网络,其中的两个神经网络共享参数权重。孪生神经网络有两个输入graph1,graph2,将两个输入放入两个神经网络network1和network2,在获得主干特征提取网络之后,我们可以获取到一个多维特征,将其平铺到一维上,就获得两个输入的一维向量。将这两个一维向量进行相减,再进行绝对值求和,相当于求取了两个一维向量的距离。然后对这个距离进行全连接,对结果取sigmoid,使其值在0-1之间,代表两个输入图片的相似程度。[0123]因为没有较好的汉字图片数据集,因此本发明设计了一套用于计算汉字图形相似度的汉字图片数据集。使用opencv,将每一个汉字ck的不同字体形式生成图片同一汉字ck的不同字体图片都视为同一类型,不同汉字视为不同类型。训练时,当两个输入指向同一个类型的图片时,此时标签为1。当两个输入指向不同类型的图片时,此时标签为0。然后将网络的输出结果和真实标签进行交叉熵运算,就可以作为最终的loss。结构相似度公式如下:[0124]similarity=graphsimi(graph1,graph2)[0125]其中,similarity为结构相似度,graphsimi为孪生网络模型,graph1,graph2分别为使用两个词语生成的词语图片。[0126]为了合理地使用词频、拼音编辑距离和结构相似度这三个评价指标,本发明使用了topsis算法来综合考量。topsis算法是根据有限个评价对象与理想化目标的接近程度进行排序的方法。首先对数据进行正向化处理,正向化处理是指将各个评价指标都处理成越大越好。在本发明中,评价指标为候选词的词频,候选词与可疑词的拼音编辑距离以及候选词与可疑词的结构相似度。词频,结构相似度都是越大越好,因此不用处理,而拼音编辑距离是越小越好,因此取拼音编辑距离的倒数作为评价指标。即,评价指标为以下三点:①词频,②③ꢀsimilarity。[0127]然后对数据进行标准化处理,这是为了消除不同的数据指标量纲的影响。标准化公式如下:[0128][0129]其中,zij表示标准化后的第i个方案的第j个指标的值,xij表示原数据中的第i个方案的第j个指标。[0130]然后确定各项指标的最优理想值z+和最劣理想值z-,最优理想值z+的各属性值是各候选方案中最好的值,也就是每个指标里最大的值。而最劣理想值z-是每个指标里最小的值。然后求出各个方案与最优理想值和最劣理想值之间的欧氏距离。对于第i个方案zi,它与最优解和最劣解的距离公式如下:[0131][0132][0133]其中,表示第i个方案zi与最优解的距离,表示第i个方案zi与最劣解的距离,m表示指标数,表示第j个指标的最大值,zij表示标准化后第i个方案第j个指标的值。[0134]第i个方案的评分公式如下:[0135][0136]其中,si表示第i个方案的评分。根据每个dissearch获得第i个方案的评分由此得出各方案与最优方案的接近程度。将不同距离dissearch获得的分别乘以对应的作为最终分数,即:[0137][0138]其中,score为最终的得分,作为评价方案的优劣标准,选择score最大的前八个候选词作为较合理的候选词。总体来说,公式如下:[0139][0140]其中,为可疑词xk对应的候选词,top-8表示取前8个。[0141]考虑到错误词的候选词可能未出现在通过搜索引擎查询得到的数据中,进而筛选出在jieba词表内与可疑词相近的词。使用拼音编辑距离和结构相似度作为评判标准。对于拼音编辑距离,将可疑词xk按字粒度按照字粒度切分为n个字c1,c2,...,cn,然后对每个字cm(1≤m≤n)在jieba词表内寻找拼音编辑距离小于等于1的所有字将这些字按照下标m作为位置进行排列组合,生成个词,这些词若登录在jieba词表内,也作为可疑词的候选词。对于结构相似度,使用预先训练好的孪生网络,计算和可疑词xk图片相似度大于80%的词,作为可疑词的候选词,加入候选词[0142]额外地,使用n-gram算法,选择出可能出现在可疑词位置的词。对于n-gram算法,我们假设第n个词出现的概率只和前n-1个词有关,因此句子的概率分布如下:[0143][0144]其中,p(s)是整个句子的概率,wn是组成句子的词语,表示第wi个词到wi_n+1个词的历史序列,表示给定历史序列的词的前提下,当前词出现的概率。在本发明中,使用3-gram算法,句子的概率分布如下:[0145]p(s)=p(w1|w0,w-1)p(w2|w1,w0)...p(wi|wi-1,wi-2)[0146]将通过搜索引擎查询得到的三十条信息用3-gram算法构建3-gram表,以(wi-1,wi-2,wi)的方式存储。遍历待纠错的原始语句s,s由词语x1,x2,...,xn组成,若存在xk-2=wk-2,xk-1=wk-1,则将wk认为是可以用来替代xk的候选词,加入候选词[0147]在获得了所有可疑词的对应可替换的候选词之后,要使用候选词对原始语句s进行修改。将原始语句中的可疑词用可疑词对应的候选词做排列组合式替换,获得候选句集。对于原始语句s,s由词语x1,x2,...,xn组成,现有可疑词xi,xj,...,xk,可疑词对应的候选词为依次将可疑词xm(m∈(i,j,...,k))用xm的候选词替换,做排列组合,生成候选句集。[0148]最后,要从候选句集中挑选出最优的语句作为最终输出结果。本发明使用句子的困惑度来评价一个句子整体的通顺程度。困惑度是用来衡量语言概率模型优劣的一个方法,困惑度越小,表明句子越合理。将困惑度最低也就是最通顺的句子作为正确句子输出。本发明使用gpt-2模型计算整个候选句的困惑度。对于gpt-2模型,给定一语句,若其长度为n,首先将其向左移动一位作为label,将其去除末位作为input,将input输入到gpt-2获得的输出与label做交叉熵损失crossentropyloss,再求以自然数为底的次方即为所求困惑度。计算困惑度公式如下:[0149]out=gpt-2(input)[0150]loss=crossentropyloss(out,label)[0151]ppl=lnloss[0152]其中,给定句子s,s由词语x1,x2,...,xn组成,input=x1,x2,...,xn-1,label=x2,...,xn,ppl为所求的困惑度。将所有候选句集和原始语句进行困惑度计算,从中选择困惑度最小的句子作为最终的纠错结果。[0153]至此,基于在线查询的文本纠错已经完成,可以实现输入一段带有错误的文本,输出这个文本的正确形式。[0154]对于本领域的技术人员来说,可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1