文法错误识别方法、装置、计算机设备及存储介质与流程

文档序号:18232581发布日期:2019-07-24 08:25阅读:177来源:国知局
文法错误识别方法、装置、计算机设备及存储介质与流程

本申请涉及语言处理技术领域,尤其涉及一种文法错误识别方法、装置、计算机设备及存储介质。



背景技术:

随着信息化技术的不断发展,越来越多的人们通过将大量文本输入电脑中以进行处理,但是在将文本输入电脑的过程中,会产生文本输入错误问题,例如同音字问题、多音字问题、音近字问题、形近字问题、多字、少字、词语搭配不对、历史文化常识性错误、语法搭配错误等等。文本输入错误问题的存在,对人们的工作和生活带来了极大的影响,因此需要采用文法错误识别方法来识别出输入文本中的错误。

但是,目前的文法错误识别方法依赖于单一的神经网络进行建模,存在召回质量低、识别准确率低等问题。



技术实现要素:

本申请提出一种文法错误识别方法、装置、计算机设备及存储介质,用于解决现有技术中的文法错误识别技术存在召回质量低、识别准确率不高的技术问题。

本申请第一方面实施例提出了一种文法错误识别方法,包括:

获取文本序列和候选字集合,其中,候选字集合的生成基于短语替换表PT字典;

根据所述文本序列和候选字集合生成第一词向量数组表示、第二词向量数组表示和第三词向量数组表示;

根据所述文本序列和候选字集合生成N-gram统计特征和PT特征;

根据所述第一词向量数组表示和所述第二词向量数组表示和所述N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征;

根据所述第一词向量数组表示和所述第三词向量数组表示和所述N-gram统计特征和所述PT特征通过文法特征提取模块生成文法错误特征信息;以及

根据所述候选字集合的语言模型特征和所述文法错误特征信息通过排序校对模型生成错误输出几率打分。

作为本申请第一种可能的实现方式,所述根据所述文本序列生成第一词向量数组表示,包括:

根据所述文本序列和第一词向量表生成所述第一词向量数组表示。

作为本申请第二种可能的实现方式,所述根据所述文本序列和候选字集合生成第二词向量数组表示,包括:

获取所述文本序列中目标位置的字;

获取所述PT字典中与所述目标位置的字对应的召回候选字;

根据所述目标位置的字与所述目标位置的字对应的召回候选字生成候选字集合;以及

根据所述候选字集合和所述第二词向量表生成所述第二词向量数组表示。

作为本申请第三种可能的实现方式,所述根据所述文本序列和候选字集合生成第三词向量数组表示,包括:

根据所述候选字集合和第三词向量表生成第一级词向量数组表示;

根据所述目标位置生成字序列窗口,其中,所述字序列窗口为以所述目标位置为中心的固定长度的窗口;

根据所述字序列窗口获取上下文字序列;

根据所述上下文字序列和所述第三词向量表生成第二级词向量数组表示;

所述第一级词向量数组表示和所述第二级词向量数组表示构成所述第三词向量数组表示。

作为本申请第四种可能的实现方式,所述PT字典通过用户点击搜索日志挖掘获得。

作为本申请第五种可能的实现方式,所述根据所述第一词向量数组表示和第二词向量数组表示和所述N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征,包括:

将所述第一词向量数组表示输入所述基于候选排序的语言模型的双向循环神经网络RNN网络生成第一上下文编码向量;

根据所述第二词向量数组表示和N-gram统计特征生成第一候选字特征向量;以及

根据所述第一上下文编码向量和所述第一候选字特征向量生成语言模型的相似度特征矩阵Sim;

根据所述语言模型的相似度特征矩阵Sim生成候选字集合的语言模型打分lm_probs;

所述相似度特征矩阵Sim和所述候选字集合语言模型打分构成候选字集合的语言模型特征;

所述相似度特征矩阵Sim和所述候选字集合的语言模型打分lm_probs构成候选字集合的语言模型特征。

作为本申请第六种可能的实现方式,所述将所述第一词向量数组表示输入所述语言模型的双向循环神经网络RNN网络生成第一上下文编码向量,包括:

将所述第一词向量数组表示输入正序循环神经网络RNN网络进行编码以生成当前位置的前一个位置的输出并作为正序编码向量;

将所述第一词向量数组表示输入逆序循环神经网络RNN网络进行编码以生成所述当前位置的后一个位置的输出并作为逆序编码向量;

将所述正序编码向量和所述逆序编码向量拼接形成所述第一上下文编码向量。

作为本申请第七种可能的实现方式,所述根据所述第一词向量数组表示和所述第三词向量数组表示和所述N-gram统计特征和所述PT特征通过文法特征提取模块生成文法错误特征信息,包括:

根据所述第一词向量数组表示生成第一上下文编码向量;

根据所述第三词向量数组表示中的第一级词向量数组表示和所述N-gram统计特征和所述PT特征生成的第二候选字特征向量;

将所述第一上下文编码向量、所述第二候选字特征向量和所述第三词向量数组表示中的第二级词向量数组表示,按位置进行对齐和横向拼接,生成所述文法错误特征信息。

作为本申请第八种可能的实现方式,所述根据所述候选字集合的语言模型特征和所述文法错误特征信息通过排序校对模型生成错误输出几率打分,包括:

根据所述文法错误特征信息,直接生成错误输出几率的第一次打分;

根据所述错误输出几率的第一次打分,利用所述候选字集合的语言模型特征中的相似度特征矩阵Sim,进行第一级校对,生成错误输出几率的第二次打分;

根据所述错误输出几率的第二次打分,利用所述候选字集合的语言模型特征中的候选字集合语言模型打分,进行第二级校对,生成最终的错误输出几率打分。

本申请实施例的文法错误识别方法,通过获取文本序列和候选字集合,根据文本序列和候选字集合生成第一词向量数组表示、第二词向量数组表示和第三词向量数组表示,根据文本序列和候选字集合生成N-gram统计特征和PT特征;根据第一词向量数组表示和第二词向量数组表示和N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征,根据第一词向量数组表示和第三词向量数组表示和N-gram统计特征和PT特征通过文法特征提取模块生成文法错误特征信息,最终根据候选字集合的语言模型特征和文法错误特征信息通过排序校对模型生成错误输出几率打分。该方法根据基于候选排序的语言模型生成候选字集合的语言模型特征和文法特征提取模块生成文法错误特征信息,最终排序校对模型生成错误输出几率打分,能够准确识别出文本序列中的错误序列,从而提高了文法错误识别的准确率。

本申请第二方面实施例提出了一种文法错误识别装置,包括:

获取模块,用于获取文本序列和候选字集合,其中,候选字集合的生成基于短语替换表PT字典;

第一生成模块,用于根据所述文本序列和候选字集合生成第一词向量数组表示、第二词向量数组表示和第三词向量数组表示;

第二生成模块,用于根据所述文本序列和候选字集合生成N-gram统计特征和PT特征;

第三生成模块,用于根据所述第一词向量数组表示和所述第二词向量数组表示和所述N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征;

第四生成模块,用于根据所述第一词向量数组表示和第三词向量数组表示和所述N-gram统计特征和所述PT特征通过文法特征提取模块生成文法错误特征信息;以及

第五生成模块,用于候选字集合的语言模型特征和所述文法错误特征信息通过排序校对模型生成错误输出几率打分。

本申请实施例的文法错误识别装置,通过获取文本序列和候选字集合,根据文本序列和候选字集合生成第一词向量数组表示、第二词向量数组表示和第三词向量数组表示,根据所述文本序列和候选字集合生成N-gram统计特征和PT特征根据第一词向量数组表示和第二词向量数组表示和所述N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征,根据第一词向量数组表示和第三词向量数组表示和N-gram统计特征和PT特征通过文法特征提取模块生成文法错误特征信息,最终根据候选字集合的语言模型特征和所述文法错误特征信息通过排序校对模型生成错误输出几率打分。该方法根据基于候选排序的语言模型生成候选字集合的语言模型特征和文法特征提取模块生成文法错误特征信息,最终排序校对模型生成错误输出几率打分,能够准确识别出文本序列中的错误序列,从而提高了文法错误识别的准确率。

本申请第三方面实施例提出了一种计算机设备,包括:包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本申请上述实施例提出的文法错误识别方法。

本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述实施例提出的文法错误识别方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例所提供的一种文法错误识别方法的流程示意图;

图2为本申请实施例所提供的一种基于候选排序校对的语言模型的结构示意图;

图3为本申请实施例所提供的一种基于候选排序的语言模型训练方法的流程示意图;

图4为本申请实施例所提供的一种文法特征提取方法的流程示意图;

图5为本申请实施例所提供的一种文法错误识别装置的结构示意图;

图6示出了适于用来实现本申请实施方式的示例性计算机设备的框图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

下面参考附图描述本申请实施例的文法错误识别方法、装置、计算机设备及存储介质。

图1为本申请实施例所提供的一种文法错误识别方法的流程示意图。

本申请实施例以该文法错误识别方法被配置于文法错误识别装置中来举例说明,该文法错误识别装置可以应用于任一计算机设备中,以使该计算机设备可以执行文法错误识别功能。

其中,计算机设备可以为个人电脑(Personal Computer,简称PC)、云端设备、移动设备等,移动设备例如可以为手机、平板电脑、个人数字助理、穿戴式设备、车载设备等具有各种操作系统、触摸屏和/或显示屏的硬件设备。

如图1所示,该文法错误识别方法可以包括以下步骤:

步骤101,获取文本序列和候选字集合。

其中,文本序列是多于一个的字符按顺序构成的字符串,候选字集合的生成基于短语替换表PT字典。

本申请实施例中,通过自然语言处理技术对文本中的文法错误进行识别之前,需要获取待识别文本的文本序列,以对文本序列进行进一步操作。获取的文本序列可以为用户直接输入的文本序列,也可以为对用户输入的语音进行识别后所得的文本序列,在此不做限定。

举例来说,用户在搜索框中输入“今天是个好天气”,并按下搜索按键以将“今天天气如何”发送给计算机设备,则“今天是个好天气”即为获取到的文本序列。又例如,用户在某个应用中输入一段语音,该段语音被该应用经由互联网发送给计算机设备,计算机设备识别该语音并获得文本序列“今天是个好天气”,则“今天是个好天气”即为获取到的文本序列。

其中,短语替换表(Phrase Table,简称PT)字典,是根据大量的用户点击搜索日志并辅以该映射词组在语料库中出现的频数,生成的原始词语至候选词语的映射表。其中,语料库,是指经科学取样和加工的大规模电子文本库,本实施例中,语料是指用户点击搜索日志数据。

举例来说,假如用户搜索时的原始词语为王者荣耀,候选搜索词语为王者荣耀和王者荣誉,在用户搜索的总频次为100时,原始词语为王者荣耀到候选词语为王者荣耀的映射词组,出现在语料库中的频次为90,原始词语为王者荣耀到候选词语为王者荣誉的映射词组,出现在语料库中的频次为10。

步骤102,根据文本序列和候选字集合生成第一词向量数组表示、第二词向量数组表示和第三词向量数组表示。

在自然语言处理中,自然语言文本是由一堆符号顺序拼接而成的不定长序列,很难直接转变为计算机所能理解的数值型数据,因而无法直接进行进一步的计算处理。词向量由于包含了丰富的信息,使得深度学习能够处理绝大多数自然语言处理应用。因此,本申请实施例中,首先对获取到的文本序列和候选字集合转换为循环神经网络(Recurrent Neural Network,RNN)能够识别的形式,即词向量。词向量每一维的值代表一个具有一定的语义和语法上解释的特征,所以,可以将词向量的每一维称为一个词语特征。

本申请实施例中,生成的词向量的维度不同,所包含的语义和语法上解释的特征也不相同,本实施例中,为了和其它维度不同的词向量相区别,故将文本序列和候选字集合生成的三组词向量称为第一词向量数组表示、第二词向量数组表示和第三词向量数组表示。

本申请实施例中,第一词向量数组表示为获取的文本序列根据第一词向量表生成的。第一词向量表,是根据大规模训练语料统计得到的。需要说明的是,将文本序列生成词向量的方法有很多,但是这些方法都依照一个思想,即任一词的含义可以用它的周边词来表示。目前,生成词向量的方式可分为:基于统计的方法和基于语言模型的方法。其中,基于语言模型生成词向量的方法是通过训练神经网络语言模型(Neural Network Language Model,简称NNLM),词向量作为语言模型的附带产出。举例来说,可以通过word2vec模型将自然语言文本转换为RNN网络能够识别的词向量。

本申请实施例中,在使用word2vec模型将自然语言文本转换为RNN网络能够识别的词向量时,是按照字级别来处理的,因此不需要对自然语言文本进行分词处理,生成的词向量不需要进行预训练,采用的是随机初始化的方式。

步骤103,根据文本序列和候选字集合生成N-gram统计特征和PT特征。

本申请实施例中,可以根据获取的文本序列和候选字集合生成N-gram统计特征和PT特征。

对于N-gram特征的构造,针对输入的文本序列中的每个字,例如,输入的文本序列为“交通先行”时,选取上下文窗口的最大长度为4,即可构造出大小分别为2、3、4的上下文窗口,再根据目标字所处位置的不同构造出上下文窗口的片段,进而去检索其N-gram频次信息。从而构造出一个维度大小为9的N-gram特征,具体构造为:上下文窗口大小2、3、4分别对应2维、3维、4维频数特征,每个候选对应9维基于N-gram频次的归一化特征,3个候选共计27维。

对于PT特征的构造,同N-gram特征构造上下文片段的方式,亦可构造出一个维度大小为9的PT特征。这里的不同之处在于,PT特征需要检索的是相应片段在候选域里出现的统计频数。每个候选字对应9维基于PT映射候选域频次的归一化特征,3个候选共计27维。

步骤104,根据第一词向量数组表示和第二词向量数组表示和N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征。

本申请实施例中,获取的文本序列中可能存在语法的错误,将根据获取到的文本序列生成的第一词向量数组表示、第二词向量数组表示和N-gram统计特征输入已经经过训练的基于候选排序的语言模型,能够生成候选字集合的语言模型特征。

在本申请的一个实施例中,基于候选排序的语言模型可以通过双向RNN网络对训练样本进行训练得到,并且训练得到的基于候选排序的语言模型与相关技术中的语言模型不同,这里对基于候选排序的语言模型在解码端的输出做了限制,即解码时涉及的词典空间不再是整个汉字库或者语料库,而是根据PT字典提供的短语映射和相关的统计信息所构造的候选集合,大大降低了解码端的模型训练难度。

需要说明的是,在常规的编码-解码模型(Encoder-Decoder)中,其解码端的解空间大小跟目标语言的词表大小一致,就本申请而言,解码端和编码端共享同一个字典空间(假如约9000个字),如果采用通用的Encoder-Decoder模型架构,在中文输入序列的每个位置上,需要在接近9000个可能的候选字中去判断哪个更合适,计算量较大。因此本模型对传统Encoder-Decoder模型架构进行了场景化改良,即基于PT召回候选,将解码端的候选集合从9000这样的数量级降低到个位数,从而大大降低了解码端的模型训练难度、提高了召回的质量和错误检测的准确率。

作为一种示例,参见图2,图2为本申请实施例提供的一种基于候选排序的语言模型的结构示意图。如图2所示,模型中标号为1的模块是输入部分,输入的为中文文本序列,将中文文本序列输入到基于候选排序的语言模型后分别生成词向量维度为128的第一词向量数组表示和第二词向量数组表示。第二词向量数组表示为候选字集合和第二词向量表生成的,即图2中候选字“缴、同、限、型、教、痛、线、形”对应的词向量。其中,生成的词向量的维度大小与候选集合的大小有关,每维信息分别表示相应候选字的输出权重大小。将生成的第一词向量数组表示输入双向长短时记忆网络(Bidirectional Long Short-term Memory,BLSTM),分别得到正序编码向量和逆序编码向量,将生成的正序编码向量和逆序编码向量横向拼接起来,生成第一上下文编码向量,对应于图2中的[h1、h2、h3、h4]。

模型中标号为5的部分,是通过查询每个候选字和上下文构成的短语,在N-gram字典中出现的频次以作为N-gram特征与对应候选字的词向量数组表示进行横向拼接,再将拼接后的词向量数组表示经过双向RNN网络的全连接层和非线性转换,得到最后的第一候选字特征向量。

参见模型中标号为6的部分,最终计算上下文编码向量和第一候选字特征向量的向量内积,再经过归一化,生成语言模型的相似度特征矩阵Sim,根据语言模型的相似度特征矩阵Sim生成候选字集合的语言模型打分lm_probs,其中,相似度特征矩阵Sim和候选字集合语言模型打分构成了候选字集合的语言模型特征。

步骤105,根据第一词向量数组表示和第三词向量数组表示和N-gram统计特征和PT特征通过文法特征提取模块生成文法错误特征信息。

其中,文法错误特征信息,是用于标注输入的文本序列是否正确的标签信息,例如,输入的第三词向量数组表示对应的文本序列正确时,生成的文法错误特征信息可以为0,输入的第三词向量数组表示对应的文本序列错误时,生成的文法错误特征信息可以为1。

本申请实施例中,文法特征提取模块也可以通过双向RNN网络训练得到,该模块整体是一个典型的序列标注模型,用于检测一个输入搜索词可能存在错误的可能性。

需要说明的是,文法特征提取模块的RNN网络与基于候选排序的语言模型的RNN网络相比,没有解码端,直接利用RNN网络每个位置的隐藏状态直接做0或1的标签预测,例如,可以在输入的正确文本位置的隐藏状态标记为0,输入的错误文本位置的隐藏状态标记为1。

步骤105,根据候选字集合的语言模型特征和文法错误特征信息通过排序校对模型生成错误输出几率打分。

本申请实施例中,根据基于候选排序的语言模型生成候选输出概率信息和文法错误检测模型生成文法错误检测信息,通过排序校对模型即可生成错误输出几率信息。

需要说明的是,根据候选字集合的语言模型特征和文法错误特征信息通过排序校对模型生成错误输出几率打分的过程中,存在两级校对的过程。

具体地,根据文法错误特征信息,直接生成错误输出几率的第一次打分,

根据错误输出几率的第一次打分,利用候选字集合的语言模型特征中的相似度特征矩阵Sim,进行第一级校对,生成错误输出几率的第二次打分,进一步的,根据错误输出几率的第二次打分,利用候选字集合的语言模型特征中的候选字集合语言模型打分,进行第二级校对,生成最终的错误输出几率打分。由此,能够较大程度的提高排序校对模型错误识别的准确率。

本申请实施例的文法错误识别方法,通过获取文本序列和候选字集合,根据文本序列和候选字集合生成第一词向量数组表示、第二词向量数组表示和第三词向量数组表示,根据文本序列和候选字集合生成N-gram统计特征和PT特征,根据第一词向量数组表示和第二词向量数组表示和N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征,根据第一词向量数组表示和第三词向量数组表示和N-gram统计特征和PT特征通过文法特征提取模块生成文法错误特征信息,最终根据候选字集合的语言模型特征和文法错误特征信息通过排序校对模型生成错误输出几率打分。该方法根据基于候选排序的语言模型生成候选字集合的语言模型特征和文法特征提取模块生成文法错误特征信息,最终排序校对模型生成错误输出几率打分,能够准确识别出文本序列中的错误序列,从而提高了文法错误识别的准确率。

在本申请实施例一种可能的实现方式中,对于基于候选排序的语言模型可以采用训练样本进行训练,以提高错误检测的准确率,具体的模型训练过程参见图3,图3为本申请实施例所提供的一种基于候选排序的语言模型训练方法的流程示意图。

如图3所示,该模型训练方法可以包括以下步骤:

步骤201,获取训练文本序列和候选字集合。

本申请实施例中,训练文本序列是带标注的,用于指示训练文本序列是否存在错别字,候选字集合的生成基于短语替换表PT字典。其中,训练文本序列包括:不包含错别字的正确文本序列、包含错别字的拼音编辑距离为0的文本序列、包含错别字的拼音编辑距离为1的文本序列。

需要说明的是,编辑距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

需要说明的是,用于训练的文本序列可以使用现有的文本序列集合。

步骤202,根据训练文本序列和候选字集合生成第一词向量数组表示和第二词向量数组表示。

本申请实施例中,步骤202的实现过程,可以参见上述实施例中步骤102,在此不再赘述。

需要说明的是,将训练文本序列输入双向RNN网络时,将训练文本序列中同一批次数据的最长序列长度作为文本序列输入长度,长度不足的输入序列,会用特殊标记进行填充,例如,[PAD],并加上首尾标记[START]、[END]。

举例来说,如果输入的文本序列分别为交通先行和遵守交通规则,由于最长序列长度为6,再加上首尾标记后最终最长序列长度为8,此时双向RNN网络模型接受的实际输入为:[[START]交通先行[END][PAD][PAD],[START]遵守交通规则[END]]。

步骤203,将第一词向量数组表示输入基于候选排序的语言模型的双向RNN网络生成第一上下文编码向量。

本申请实施例中,将根据文本序列和第一词向量表生成的每个位置的输入文本序列的第一词向量数组表示输入正序RNN网络中进行编码,生成当前位置的前一个位置的输出并作为正序编码向量;将每个位置的输入文本序列的第一词向量数组表示输入逆序RNN网络中进行编码,生成当前位置的后一个位置的输出并作为逆序编码向量;最后将正序编码向量和逆序编码向量横向拼接起来,即生成双向的RNN网络的输出,即第一上下文编码向量。

举例来说,“交通先行”中对于“先”而言,上文为交通,即取“通”这个位置的正序RNN网络输出的正序编码向量,记为[f1,f2,…,f128],下文为行,即取“行”这个位置的逆序RNN网络输出的逆序编码向量,记为[b1,b2,…,b128],则该位置的最终编码向量为[f1,f2,…,f128,b1,b2,…,b128]。

需要说明的是,使用RNN网络对各位置的第一词向量数组表示进行编码时,在每个时刻,其输出的第一上下文编码向量不仅要依赖于当前时刻的输入,还要考虑上一时刻的模型“状态”。通过对历史状态的依赖,RNN模型能够有效的表征文本数据的上下文依存信息。

作为一种可能的实现方式,也可以通过长短时记忆网络(Long Short Term Memory Network,LSTM)或者加了门的递归神经网络(Gated Recurrent Unit,GRU),来实现将第一词向量数组表示生成第一上下文编码向量,具体的生成过程参见现有技术,在此不再赘述。

步骤204,根据第二词向量数组表示和N-gram统计特征生成第一候选字特征向量。

其中,第二词向量数组表示是根据候选字结合和第二词向量表生成的。具体地,通过获取文本序列中目标位置的字,获取PT字典中与目标位置的字对应的召回候选字,根据目标位置的字与目标位置的字对应的召回候选字生成候选字集合,进而,根据候选字集合和第二词向量表生成第二词向量数组表示。

例如,输入基于候选排序的语言模型为“交通先行[分隔符]2(位置,0-based)”时,对应目标位置的字为“先”,结合输入的上下文本(交通、行),根据PT字典中与目标位置的字对应的召回候选字为“先、限、线”。根据目标位置的字与目标位置的字对应的召回候选字生成候选字集合,为{先、限、线},进而根据候选字集合和第二词向量表生成第二词向量数组表示。第二词向量数组表示和第一词向量数组表示的生成方法相同,但是第二词向量数组表示与第一词向量数组表示之间是相互独立的。需要说明的是,在模型训练时,PT召回的候选词中一定包含有正确的字。

本申请实施例中,PT召回候选的每个字共享相同的上下文,故而可以查询每个候选字和上下文构成的短语,在N-gram字典中出现的频次以作为N-gram特征与对应字的词向量进行横向拼接,再将拼接后的词向量经过双向RNN网络的全连接层和非线性转换,得到最后的第一候选字特征向量。

需要说明的是,N-gram字典,是根据大量门户网站上的标题的无标注语料数据生成,用于提供词语出现的频数信息。

步骤205,根据第一上下文编码向量和第一候选字特征向量生成语言模型的相似度特征矩阵Sim,根据语言模型的相似度特征矩阵Sim生成候选字集合的语言模型打分lm_probs。

本申请实施例中,根据在步骤203和步骤204中第一上下文的编码向量和第一候选字特征向量,将第一上下文的编码向量和第一候选字特征向量映射到相同大小的维度上,生成语言模型的相似度特征矩阵,进而根据语言模型的相似度特征矩阵生成候选字集合的语言模型打分lm_probs,最后再结合实际正确的字,通过交叉熵代价函数计算损失值以对基于候选排序的语言模型进行训练。其中,相似度特征矩阵Sim和候选字集合语言模型打分构成候选字集合的语言模型特征。

其中,交叉熵代价函数是用来衡量人工神经网络(Artificial Neural Networks,ANN)的预测值与实际值的一种方式。通过交叉熵代价函数计算损失值以对基于候选排序的语言模型进行训练,使得模型输出的预测值与实际值尽量保持一致。

需要说明的是,在训练模型的过程中,针对不同的候选字,模型在输出时仅会将与之最可能形成相互替换的字联系起来,这样就大大减小了解空间,降低了解码时的不确定性。

本申请实施例中,通过获取训练文本序列和候选字集合,根据训练文本序列和候选字集合生成第一词向量数组表示和第二词向量数组表示,将第一词向量数组表示输入基于候选排序的语言模型的双向RNN网络生成第一上下文编码向量,根据第二词向量数组表示N-gram统计特征生成第一候选字特征向量,根据第一上下文编码向量和第一候选字特征向量生成语言模型的相似度特征矩阵,根据语言模型的相似度特征矩阵生成候选字集合的语言模型打分,相似度特征矩阵和候选字集合语言模型打分构成候选字集合的语言模型特征。由于第二词向量数组表示是根据PT召回候选字集合和第二词向量表生成的,从而减小RNN网络解码端解空间的大小、降低了模型整体的复杂度,从而大大提高了召回的质量和错误检测的准确率。

作为一种可能的实现方式,参见图4,在图1所述实施例的基础上,步骤105还可以包括以下步骤:

步骤301,根据第一词向量数组表示生成第一上下文编码向量。

本申请实施例中,步骤301的实现过程,可以参见上述实施例中步骤203的实现过程,在此不再赘述。

步骤302,根据第三词向量数组表示中的第一级词向量数组表示、N-gram统计特征和PT特征生成的第二候选字特征向量。

其中,第三词向量数组表示,是指根据第三词向量表生成的候选字集合词向量数组表示和固定窗口上下文词向量数据表示。

本申请实施例中,根据文本序列和候选字集合生成第三词向量数组表示的过程可以为:通过根据候选字集合和第三词向量表生成第一级词向量数组表示,根据目标位置生成字序列窗口,其中,字序列窗口为以目标位置为中心的固定长度的窗口,根据字序列窗口获取上下文字序列,根据上下文字序列和第三词向量表生成第二级词向量数组表示,最终,根据第一级词向量数组表示和第二级词向量数组表示构成第三词向量数组表示。

本申请实施例中,根据第三词向量数组表示中的第一级词向量数组表示、N-gram统计特征和PT特征生成第二候选字特征向量,可以参见上述实施例中第一候选字特征向量的生成过程,在此不再赘述。

步骤303,将第一上下文编码向量、第二候选字特征向量和第三词向量数组表示中的第二级词向量数组表示,按位置进行对齐和横向拼接,以生成文法错误特征信息。

本申请实施例中,将生成的第一上下文编码向量、第二候选字特征向量与第三词向量数组表示中的第二级词向量数组表示,按位置进行对齐和横向拼接,生成文法错误特征信息,以验证特征的有效性。

本申请实施例中,通过根据第一词向量数组表示生成第一上下文编码向量,根据第三词向量数组表示中的第一级词向量数组表示和所述N-gram统计特征和所述PT特征生成的第二候选字特征向量,将第一上下文编码向量、第二候选字特征向量与第三词向量数组表示中的第二级词向量数组表示,按位置进行对齐和横向拼接,生成文法错误特征信息,从而实现了对文本序列中每个位置的字是否正确进行标注。

为了实现上述实施例,本申请还提出一种文法错误识别装置。

图5为本申请实施例所提供的一种文法错误识别装置的结构示意图。

如图5所示,该文法错误识别装置包括:获取模块110、第一生成模块120、第二生成模块130、第三生成模块140、第四生成模块150以及第五生成模块160。

获取模块110,用于获取文本序列和候选字集合,其中,候选字集合的生成基于短语替换表PT字典。

第一生成模块120,用于根据文本序列和候选字集合生成第一词向量数组表示、第二词向量数组表示和第三词向量数组表示。

第二生成模块130,用于根据文本序列和候选字集合生成N-gram统计特征和PT特征。

第三生成模块140,用于根据第一词向量数组表示和第二词向量数组表示和N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征。

第四生成模块150,用于根据第一词向量数组表示和第三词向量数组表示和N-gram统计特征和PT特征通过文法特征提取模块生成文法错误特征信息。

第五生成模块160,用于根据候选字集合的语言模型特征和文法错误特征信息通过排序校对模型生成错误输出几率打分。

作为一种可能的实现方式,第一生成模块120,具体用于:

根据文本序列和第一词向量表生成第一词向量数组表示。

作为另一种可能的实现方式,第一生成模块120,还可以具体用于:

获取文本序列中目标位置的字;获取PT字典中与目标位置的字对应的召回候选字;根据目标位置的字与目标位置的字对应的召回候选字生成候选字集合;以及根据候选字集合和第二词向量表生成所述第二词向量数组表示。

作为另一种可能的实现方式,第一生成模块120,还可以具体用于:

根据候选字集合和第三词向量表生成第一级词向量数组表示;

根据目标位置生成字序列窗口,其中,字序列窗口为以目标位置为中心的固定长度的窗口;

根据字序列窗口获取上下文字序列;

根据上下文字序列和第三词向量表生成第二级词向量数组表示;

第一级词向量数组表示和第二级词向量数组表示构成第三词向量数组表示。

作为另一种可能的实现方式,PT字典通过用户点击搜索日志挖掘获得。

作为另一种可能的实现方式,第三生成模块140,包括:

输入单元,用于将第一词向量数组表示输入基于候选排序的语言模型的双向循环神经网络RNN网络生成第一上下文编码向量。

第一生成单元,用于根据第二词向量数组表示和N-gram统计特征生成第一候选字特征向量。

第二生成单元,用于根据第一上下文编码向量和第一候选字特征向量生成语言模型的相似度特征矩阵Sim。

第三生成单元,用于根据语言模型的相似度特征矩阵Sim生成候选字集合的语言模型打分lm_probs;相似度特征矩阵Sim和候选字集合的语言模型打分lm_probs构成候选字集合的语言模型特征。

作为另一种可能的实现方式,输入单元,具体用于:将第一词向量数组表示输入正序循环神经网络RNN网络进行编码以生成当前位置的前一个位置的输出并作为正序编码向量;将第一词向量数组表示输入逆序循环神经网络RNN网络进行编码以生成当前位置的后一个位置的输出并作为逆序编码向量;将正序编码向量和逆序编码向量拼接形成第一上下文编码向量。

作为另一种可能的实现方式,第四生成模块150,具体用于:

根据所述第一词向量数组表示生成第一上下文编码向量;

根据所述第三词向量数组表示中的第一级词向量数组表示和所述N-gram统计特征和所述PT特征生成的第二候选字特征向量;

将第一上下文编码向量、第二候选字特征向量和第三词向量数组表示中的第二级词向量数组表示,按位置进行对齐和横向拼接,生成所述文法错误特征信息。

作为另一种可能的实现方式,第五生成模块160,具体用于:

根据所述文法错误特征信息,直接生成错误输出几率的第一次打分;

根据所述错误输出几率的第一次打分,利用所述候选字集合的语言模型特征中的相似度特征矩阵Sim,进行第一级校对,生成错误输出几率的第二次打分;

根据所述错误输出几率的第二次打分,利用所述候选字集合的语言模型特征中的候选字集合语言模型打分,进行第二级校对,生成最终的错误输出几率打分。

需要说明的是,前述对文法错误识别方法实施例的解释说明也适用于该实施例的文法错误识别装置,其实现原理类似,此处不再赘述。

本申请实施例的文法错误识别装置,通过获取文本序列和候选字集合,根据文本序列和候选字集合生成第一词向量数组表示、第二词向量数组表示和第三词向量数组表示,根据文本序列和候选字集合生成N-gram统计特征和PT特征,根据第一词向量数组表示和第二词向量数组表示和N-gram统计特征通过基于候选排序的语言模型生成候选字集合的语言模型特征,根据第一词向量数组表示、第三词向量数组表示、N-gram统计特征和PT特征通过文法特征提取模块生成文法错误特征信息,最终根据候选字集合的语言模型特征和文法错误特征信息通过排序校对模型生成错误输出几率打分。该方法根据基于候选排序的语言模型生成候选字集合的语言模型特征和文法特征提取模块生成文法错误特征信息,最终排序校对模型生成错误输出几率打分,能够准确识别出文本序列中的错误序列,从而提高了文法错误识别的准确率。

为了实现上述实施例,本申请还提出一种计算机设备,包括:包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如本申请上述实施例提出的文法错误识别方法。

为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现如本申请上述实施例提出的文法错误识别方法。

图6示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图6显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry Standard Architecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association;以下简称:VESA)局域总线以及外围组件互连(Peripheral Component Interconnection;以下简称:PCI)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read Only Memory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read Only Memory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图6中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的文法错误识别方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1