一种基于字符序列的文本检错方法

文档序号:25423689发布日期:2021-06-11 21:36阅读:64来源:国知局
本发明涉及文本分析
技术领域
:,尤其是涉及一种基于字符序列的问答文本检错方法。
背景技术
::问答系统的快速发展为信息检索系统注入了新的活力,不同于传统的搜索引擎,它能用准确、简洁的自然语言回答用户用自然语言表达的问题。因此问答系统成为了目前各大厂商大力发展的新一代信息检索工具,例如:面向医疗行业的智能问答系统,基于移动通讯领域的问答系统以及面向电商领域的智能问答系统等。尽管目前问答系统已经被广泛应用于上述领域,但在实际中,用户输入文本往往会存在一些错误,如果问答系统不能识别文本中的错误,那么就很难正确地理解用户的意图并给出对应的答案。例如在物流行业,当用户输入“为什么我的建议直不发?”时,实际是将“件一”错误写成了“建议”,此时文本表达的含义与原始的信息完全不同,为此需要能够对输入拼写进行自动检错,以保证问答系统能够准确地进行人机交互。不同于英文文本的拼写错误,中文的输入不存在非词错误,无法像英文那样以字典匹配的方式进行错误查找,中文的输入错误主要集中在同音字错误以及形近字错误,并且中文没有词边界,即词与词之间没有间隔符,在不同的语境下,同一个词语的组合可能会导致正确与错误两种相反的结果。例如:“快递有快的吗”和“我要寄快的”,前一个文本中的“快的”使用正确,而后一个文本中的“快的”却是一个错误的组合。因此传统的英文文本检错方法不适用中文的文本检错。中文的特殊性使得自然语言的自动检错工作更为困难。目前常用的中文文本检错方法是基于概率统计的方法,包括:n元匹配检错算法,nmws的检错算法以及基于混合系统的检错算法等。大量正确的语料是保证这些检错方法能够准确检查出错误字符的重要前提,一旦语料中存在错误,则这些错误就会被一直保留下去,并且在检错算法的处理过程中,用来判断文本表述是否合理的阈值是一个难以确定的超参数,与此同时基于规则统计的方法将导致文本检错只能从局部进行,而无法考虑长距离依赖关系。鉴于以上情况,一些研究者开始将深度学习中的序列模型运用到文本检错中,利用该类模型进行自动提取上下文特征,进而利用上下文信息来进行目标字符的正误判断。比较常见的模型有:rnn模型,bi-lstm模型,bi-gru模型等,然而,当文本数量比较小时,由于文本中错误字符与正确字符的类别分布不均衡,通常正确字符的数量要远远多于错误字符的数量,使得模型均很难学习到在语料库中占小比例的错误字符的特征,无法准确地对目标字符进行正误判断,导致文本检错结果的准确率不高。技术实现要素:本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于字符序列的问答文本检错方法,利用bi-lstm神经网络来提取文本中的上下文特征,通过构建决策权重矩阵,并将该权重矩阵与bi-lstm的隐藏输出相结合,以突出错误字符特征,提高文本检错结果的准确率。本发明的目的可以通过以下技术方案来实现:一种基于字符序列的文本检错方法,包括以下步骤:s1、获取问答系统的日志信息,并从日志信息中提取出样本语料,其中,样本语料包括多个样本文本,样本文本由字符序列组成;s2、基于样本语料,构建领域词表,并根据领域词表,构建各样本文本对应的决策权重矩阵;s3、构建文本检错模型,该文本检错模型包括依次连接的输入层、嵌入层、bi-lstm层,全连接层以及输出层;s4、将多个样本文本分别向量化处理后依次输入文本检错模型,根据预设的迭代次数以及各样本文本对应的决策权重矩阵,对文本检错模型进行训练,以得到训练好的文本检错模型;s5、获取实际文本,并根据领域词表,构建该实际文本对应的决策权重矩阵;s6、将实际文本向量化处理后输入训练好的文本检错模型,结合该实际文本对应的决策权重矩阵,得到该实际文本对应的检错结果,其中,检错结果具体为对应于实际文本字符序列的类别标签序列。进一步地,所述步骤s1具体包括以下步骤:s11、获取问答系统的日志信息,从日志信息中筛选出由字符序列组成的多个样本文本;s12、依次对多个样本文本的字符序列进行正确字符和错误字符的人工标注,得到各字符序列对应的人工标签序列。进一步地,所述步骤s2具体包括以下步骤:s21、对样本语料中的多个样本文本进行分词处理,以得到领域词表;s22、根据领域词表,以及文本中其余字符与目标字符的相对位置,首先将样本文本的字符数量填充至与预设的文本字符数量相同,之后依次计算得到文本中其余字符对目标字符的影响权重,其中,若文本的字符数量小于预设的文本字符数量,则从该文本的最后一个字符开始依次填充0字符,直至该文本的字符数量与预设的文本字符数量相同,若文本的字符数量等于预设的文本字符数量,则无需对该文本进行0字符填充,预设的文本字符数量等于样本语料中长度最长的样本文本所包含的字符数量;s23、将其余字符对目标字符的各影响权重分别平均化处理,之后按照字符序列的排列顺序,将平均化处理后目标字符的各影响权重按顺序排列组成该目标字符的决策权重向量;s24、基于字符序列的排列顺序,将各目标字符的决策权重向量按顺序排列组成文本的决策权重矩阵。进一步地,所述步骤s22中计算文本中其余字符对各目标字符的影响权重的规则为:若文本中其余字符与目标字符的相对位置越大,则其余字符对目标字符的影响权重越小;若文本中其余字符与目标字符之间的片段存在于领域词表中,则该其余字符对目标字符的影响权重随着该其余字符与目标字符之间相对位置的增大而增大。进一步地,所述领域词表具体为:words_table=(words1,words2,words3,…wordsm)其中,words_table为领域词表,wordsm为领域词表中第m个分词,m是一个正整数。进一步地,所述决策权重矩阵具体为:sen_matrixj=(avg_vector1,…avg_vectork)avg_vectori=(avi1,avi2,…,avil,…,avik)sentencej=(w1,w2,w3,…,wn,…,wk),k≥n其中,sen_matrixj为文本j的决策权重矩阵,avg_vectori为目标字符i的决策权重向量,k为预设的文本字符数量,n为文本j的实际字符数量,avil为字符l对目标字符i的影响权重平均值,vil为字符l对目标字符i的影响权重,dil为字符l与目标字符i的相对位置,wordsil为字符l与目标字符i之间的片段,sentencej为文本j的字符序列,wk为字符序列中第k个字符。进一步地,所述步骤s4具体包括以下步骤:s41、根据样本文本的数量,将多个样本文本平均分成a个batch,并对a个batch中各样本文本进行向量化处理,其中,a个batch构成一个epoch,一个batch中包含b个样本文本;s42、将a个batch依次输入文本检错模型,结合各样本文本对应的决策权重矩阵,每输入一个batch,则计算一次loss值,根据该loss值反向调节文本检错模型的参数;s43、根据预设的迭代次数t,重复执行t次步骤s42的过程,即重复输入t次epoch给文本检错模型,最终得到训练好的文本检错模型。进一步地,所述步骤s42的具体过程为:将a个batch依次输入文本检错模型,每输入一个batch,即依次输入b个向量化处理后的样本文本,每输入一个向量化处理后的样本文本,则在文本检错模型中bi-lstm层的隐藏输出和该样本文本对应的决策权重矩阵相乘,从而突出该样本文本中错误字符的特征,在输出层计算得到一个子loss值;一个batch输入完成后,得到b个子loss值,对这b个子loss值求取平均值,则得到该batch对应的loss值,根据该loss值反向调节文本检错模型的参数,当a个batch全部输入完成后,则根据这a个batch对应的loss值先后对文本检错模型的参数进行了a次反向调节。进一步地,所述loss值具体是采用均方差损失函数计算输出类别标签序列与输入文本字符序列对应的人工标签序列之间的均方误差。与现有技术相比,本发明具有以下优点:一、本发明充分利用隐含在文本中字符与字符之间的位置关系,并基于领域词表获得文本中字符与字符之间的上下文关联信息,以构建文本中各字符对应的决策权重向量,最终得到文本对应的决策权重矩阵,克服了文本中错误字符与正确字符的类别分布不均衡的问题,通过与bi-lstm层的隐藏输出相接合,能够有效突出文本中错误字符的特征,使得文本检错模型能够准确地对文本进行检错,保证了文本检错结果的准确性。二、本发明通过对文本的字符序列进行向量化处理,使得文本检错能够从语义层面分析输入文本,基于bi-lstm的文本检错模型,能够充分利用输入文本中的上下文信息来对目标字符进行正误判断,且文本检错模型输出为对应于字符序列的类别标签序列,即针对字符序列中各字符进行检错,能够精确定位文本中错误字符所在的位置。三、本发明通过计算比较文本输出类别标签序列与该文本人工标签序列之间的均方误差,并利用该均方误差值反向调节文本检错模型的参数,进一步提高了文本检错模型的可靠性。附图说明图1为本发明的方法流程示意图;图2为实施例中文本检错模型的结构示意图;图3为本发明与传统的文本检错方法在数据集1情况下的检错结果对比示意图;图4为本发明与传统的文本检错方法在数据集2情况下的检错结果对比示意图。具体实施方式下面结合附图和具体实施例对本发明进行详细说明。如图1所示,一种基于字符序列的文本检错方法,包括以下步骤:s1、获取问答系统的日志信息,并从日志信息中提取出样本语料,其中,样本语料包括多个样本文本,样本文本由字符序列组成;s2、基于样本语料,构建领域词表,并根据领域词表,构建各样本文本对应的决策权重矩阵;s3、构建文本检错模型,该文本检错模型包括依次连接的输入层、嵌入层、bi-lstm层,全连接层以及输出层;s4、将多个样本文本分别向量化处理后依次输入文本检错模型,根据预设的迭代次数以及各样本文本对应的决策权重矩阵,对文本检错模型进行训练,以得到训练好的文本检错模型;s5、获取实际文本,并根据领域词表,构建该实际文本对应的决策权重矩阵;s6、将实际文本向量化处理后输入训练好的文本检错模型,结合该实际文本对应的决策权重矩阵,得到该实际文本对应的检错结果,其中,检错结果具体为对应于实际文本字符序列的类别标签序列。在本实施例构建及训练文本检错模型的过程中,首先利用bi-lstm神经网络来提取文本中的上下文信息,利用获得的上下文信息对目标字符进行正误判断,与此同时,为了突出文本中错误字符的特征,减缓类别分布不均问题,通过构建决策权重矩阵并将其与bi-lstm的隐藏输出相结合,最后通过计算比较文本的输出类别标签序列与人工标注的one-hot标签序列,以得到均方误差,通过计算的均方误差反向调节文本检错模型每一层的参数,从而得到训练好的文本检错模型。具体的,本实施例应用上述方法的主要过程包括以下:p1、获取问答系统的日志信息,得到包含多个样本文本的样本语料,并对其进行预处理操作:对语料中各文本的每个字符进行人工标注,并将所有文本按照一定的比例分为训练语料,验证语料和测试语料,预处理后的数据格式如表1所示,表1idsequencetagging1我/r想/r差/e异/e下/r快/r递/r物/r流/r2请/r问/r什/r么/r侍/e候/r派/r件/r3请/r问/r查/r得/r到/r货/r运/r进/r度/r码/e其中,r表示该字符为正确字符,e表示该字符为错误字符。p2、利用jieba工具对语料进行分词,以制作问答系统的领域词表,然后利用该词表以及文本中其他字符与目标字符的相对位置,计算得到各目标字符的决策权重向量,最终构建文本对应的决策权重矩阵,其中,决策权重的构建考虑到其他字符与目标字符的相对位置以及其他字符与目标字符之间的片段是否存在于领域词表中,若其他字符与目标字符的距离越远,则其他字符对目标字符的影响权重越小;但如果其他字符与目标字符之间的片段存在领域词表中,那么该字符对目标字符的影响权重就越大并且随着距离的增大而增大;决策权重矩阵的构建是以中文字符为单位,以文本长度作为每个字符的权重向量维度,具体表达如以下公式所示:words_table=(words1,words2,words3,…wordsm)sen_matrixj=(avg_vector1,…avg_vectork)avg_vectori=(avi1,avi2,…,avil,…,avik)sentencej=(w1,w2,w3,…,wn,…,wk),k≥n其中,words_table为领域词表,wordsm为领域词表中第m个分词,m是一个正整数,因为权重的计算主要依据字符之间的相对位置和其他字符与目标字符之间的片段是否处于词汇表中,而这两种因素计算的数值范围不同,所以为了加快网络的收敛,本发明采用标准化的sen_matrixj作为文本j的决策权重矩阵,avg_vectori为目标字符i的决策权重向量,它的主要作用是结合bi-lstm的隐藏输出值,从而影响目标字符的正误判决,k为预设的文本字符数量,n为文本j的实际字符数量,avil为字符l对目标字符i的影响权重平均值,vil为字符l对目标字符i的影响权重,dil为字符l与目标字符i的相对位置,wordsil为字符l与目标字符i之间的片段,sentencej为文本j的字符序列,wk为字符序列中第k个字符。p3、构建文本检错的网络模型结构,如图2所示,它由输入层,嵌入层,bi-lstm层,全连接层,输出层5部分组成,其中输入层的层数据为文本字符序列,输出为类别标签序列,图中的r表示该位置处字符是正确的,e表示该位置处字符是错误的,为了从语义层面分析文本,嵌入层采用了word2vec词向量模型获取文本中的字符的表示向量,将向量化后的字符序列作为文本检错网络模型的输入,以输出对应于该文本字符序列的类别标签序列,并且利用bi-lstm获取输入文本的上下文信息,由于在一个数据集中正确字符要远远多于错误字符,甚至一句话中只有一个字符是错误的或者不存在错误字符,所以为了缓解上述类别分布不均问题,在全连接层引入文本对应的决策权重矩阵,以增加目标字符正误判断时的参考信息,表2为文本检错网络模型的输入输出格式示意,表2id输入字符序列输出类别序列1我的订单到了几天都不排送rrrrrrrrrrer2你的围巾是围巾品rrrrreerp4、调用输入文本对应的决策权重矩阵,将bi-lstm的隐藏输出和该文本的决策权重矩阵相结合,从而突出该文本中错误字符的特征,并通过均方误差计算loss值,利用loss值反向调节文本检错网络模型的参数,最终得到训练好的文本检错网络模型。p5、利用训练好的文本检错网络模型对实际文本进行检错。为验证本发明方法的检错准确性及可靠性,本实施例根据如表3所示的两个物流数据集:表3数据集类别数据总量错误文本错误字符dataset11204246dataset22408295分别采用基于统计的n元匹配检错方法,基于bi-lstm的文本检错方法以及本发明方法进行检错结果的比较,其中,评估指标为sighanbake-off中文输入拼写纠错大赛中使用的拼写检错评价指标,其具体表达含义如下公式所示:其中,tc表示模型正确识别的文本数目,即正确的文本能被正确的识别并且错误的文本能被正确的识别出文本中包含的所有错误,表4描述了表达式中其余各个指标在数据集中的表示情况:表4图3和图4分别为数据集1和数据集2情况下不同检错方法的检错结果对比示意图,从图中可以看出,在两种不同的数据集中,基于深度学习模型测试的结果在准确率(accuracy),召回率(recall)和f1等评估指标上测试结果远远高于基于规则和统计的n元匹配文本检错算法,但基于n元匹配文本检错算法在负正类率(fpr)和精确率(precision)两项评估指标上略高于深度学习的模型。上述现象产生的原因是因为当语料库的质量比较高时,基于统计规则的匹配方法可以准确的检测出错误句子中存在的一些字符错误,但基于统计的方法存在不能关联上下文信息,无法识别长距离依赖等问题导致其它三项指标的结果偏低。此外本发明方法在三项综合指标上的测试结果均要高于传统bi-lstm算法。这是由于本发明在bi-lstm神经网络的基础上加入了基于字符的决策权重矩阵,该决策权重矩阵为字符正误判决提供了更多的参考信息。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1