本发明涉及语音语义
技术领域:
,尤其涉及一种错句检测方法、装置及计算机可读存储介质。
背景技术:
:随着技术的发展,自动语音识别(AutomaticSpeechRecognition,ASR)技术的应用越来越广泛,ASR技术是一种将人的语音转换为文本的技术。ASR技术应用过程中,由于背景噪声的影响,或者说话人发音的影响,例如方言、口音、说话较快、用词用语习惯等,ASR识别结果中不可避免的会出现替换、插入或删除错误。这些识别错误会导致识别语句有可能存在词序不当、搭配不当、语义不明、语句不合逻辑等问题,形成错句。这些错句不仅理解和分析困难,而且给后续的自然语言处理(NaturalLanguageProcessing,NLP)应用带来了极大的困难。除了ASR技术得到的语句,手动在计算机中输入的语句也可能存在错误。因此,对语句的正确与否进行识别具有一定的现实意义和必要性。技术实现要素:本发明提供一种错句检测方法、装置及计算机可读存储介质,其主要目的在于能够对语句是否为错句进行识别。为实现上述目的,本发明还提供一种错句检测方法,该方法包括:获取通过自动语音识别技术得到的目标语句;获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成;将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率;当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句。可选地,所述将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型包括:判断所述i个词语中是否存在预设关键词;若所述i个词语中存在预设关键词,将所述i个词语中所述预设关键词以外的词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型。可选地,所述当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句之前,还包括:确定所述预设困惑度和/或确定所述预设对数似然概率;所述确定所述预设困惑度和/或确定所述预设对数似然概率具体包括:确定所述预设困惑度和/或确定所述预设对数似然概率,包括:获取用于训练所述语言模型的训练样本,所述训练样本包括正样本以及负样本;获取所述正样本的困惑度以及所述正样本的对数似然概率;以及获取所述负样本的困惑度以及所述负样本的对数似然概率;根据所述正样本的困惑度以及所述负样本的困惑度获取困惑度直方图,通过所述困惑度直方图获取所述预设困惑度;以及根据所述正样本的对数似然概率以及所述负样本的对数似然概率获取对数似然概率直方图,通过所述对数似然概率直方图获取所述预设对数似然概率。可选地,所述语言模型为深度学习语言模型或基于统计的语言模型。可选地,所述方法还包括:若所述目标语句为错句,发送错句提醒消息。此外,为实现上述目的,本发明还提供一种错句检测装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的错句检测程序,所述错句检测程序被所述处理器执行时实现如下步骤:获取通过自动语音识别技术得到的目标语句;获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成;将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率;当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句。可选地,所述将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型包括:判断所述i个词语中是否存在预设关键词;若所述i个词语中存在预设关键词,将所述i个词语中所述预设关键词以外的词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型。可选地,所述错句检测程序被所述处理器执行,还实现如下步骤:当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句之前,确定所述预设困惑度和/或确定所述预设对数似然概率;所述确定所述预设困惑度和/或确定所述预设对数似然概率具体包括:获取用于训练所述语言模型的训练样本,所述训练样本包括正样本以及负样本;获取所述正样本的困惑度以及所述正样本的对数似然概率;以及获取所述负样本的困惑度以及所述负样本的对数似然概率;根据所述正样本的困惑度以及所述负样本的困惑度获取困惑度直方图,通过所述困惑度直方图获取所述预设困惑度;以及根据所述正样本的对数似然概率以及所述负样本的对数似然概率获取对数似然概率直方图,通过所述对数似然概率直方图获取所述预设对数似然概率。可选地,所述语言模型为深度学习语言模型或基于统计的语言模型。可选地,所述错句检测程序可被所述处理器执行,还实现如下步骤:若所述目标语句为错句,发送错句提醒消息。此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有错句检测程序,所述错句检测程序可被一个或者多个处理器执行,以实现如上所述的错句检测方法的步骤。本发明提出的错句检测方法、装置及计算机可读存储介质,获取通过自动语音识别技术得到的目标语句;获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成;将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率;当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句,从而实现了对语句是否为错句进行识别的目的。附图说明图1为本发明一实施例提供的错句检测方法的流程示意图;图2为本发明一实施例提供的错句检测装置的内部结构示意图;图3为本发明一实施例提供的错句检测装置中错句检测程序的模块示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明提供一种错句检测方法。参照图1所示,为本发明一实施例提供的错句检测方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。在本实施例中,错句检测方法包括:步骤S10,获取通过自动语音识别技术得到的目标语句。在本实施例中,所述自动语音识别(automaticspeechrecognition,ASR)技术得到的目标语句可以为一个句子或者多个句子,每个句子可以为长句或者是短句。在其他实施例中,目标语句也可以是通过其他途径输入的语句。步骤S20,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数。在获取目标语句包含的第i段文字时,可以依据从左到右的顺序(即从前至后)依次获取,也可以依据从右到左的顺序(即从后至前)依次获取。所获取的每段文字的字数可以相同或不同。优选的,获取的第i段文字的字数与所述预设词典中最长文字的字数相同。步骤S30,若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语。步骤S40,若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语。步骤S50,当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成。例如,对于一句话“我喜爱秋天”。若词典中最长词语的字数为3,则获取“我喜爱秋天”中前3个字“我喜爱”为第一段,将第一段“我喜爱”与词典中的词语进行匹配;若匹配不成功,将“我喜爱”减少一个字,得到“我喜”,将“我喜”与词典中的词语进行匹配,若匹配不成功,可以直接确定“我”为单独的一个词;然后,选取“喜爱秋”与词典中的词语进行匹配,若匹配不成功,将“喜爱秋”减少一个字进行匹配,即将“喜爱”与词典中的词语进行匹配,若匹配成功,确定喜爱为一个词,同样的,将“秋天”与词典中的词语进行匹配,若匹配成功,确定“秋天”为一个词。则对该句话进行分词处理之后,得到该句话分别由“我”、“喜爱”、“秋天”三个词语组成。通过上述步骤可以快速的识别目标语句中包含的词语,有利于快速的进行错句检测。步骤S60,将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率。语言模型可以是深度学习语言模型,例如,前馈神经网络(feedforwardneutralnetwork),递归神经网络(recurrentneutralnetwork,RNN),语言模型还可以是基于统计的语言模型,例如N-gram(N元模型)。在本实施例中,可以获取正确的词语序列(即正确的句子)组成训练集(该训练集中都为正样本),然后通过训练集中的句子对选择的语言模型进行训练,得到语言模型的各参数,训练完毕的语言模型可以识别一个词语序列出现的概率。从统计的角度来看,自然语言中的一个句子s可以由任何词串(由若干词语按一定的词序所组成)构成,不过该句子的出现概率P(s)有大有小。例如,假设有以下句子s1与s2:s1:我刚吃过晚饭s2:刚我过吃晚饭显然,对于中文而言上述s1是一个正确的句子,而s2则是一个错句,所以对于中文来说,句子s1出现的概率要大于句子s2出现的概率,即P(s1)>P(s2)。如果存在一个由m个词语组成的句子s,则句子s的概率P(W1,W2,…,Wm)为:P(W1,W2,…,Wm)=P(W1)P(W1|W2)P(W3|W1,W2)…P(Wm|W1,W2,…Wm-1)上述公式中P(W1)、P(W1|W2)、P(W3|W1,W2)等可以利用预先训练的语言模型计算得到,分别计算得到上述值后,就可以计算得到句子s的概率P(W1,W2,…,Wm)。由于概率是一个[0,1]范围内的一个小数值,多个概率值累乘以后可能得到一个非常小的小数,有可能会产生误差,因而我们计算其对数值,得到对数似然概率logprob:logprob=log(P(W1,W2,…,Wm))logprob象征一个句子出现的可能性。若logprob越大,则该句子出现的可能性大,若logprob越小,则该句子出现的可能性越小。另一个象征句子出现可能性大小的参数为ppl(perplexity,困惑度),其意义为句子出现概率倒数的几何平均,其定义为:ppl=10^(-logprob/(-logprob-OOVs+1))上述公式中OOVs为句子中域外词的个数(域外词是指词典以外的词)。并且,若ppl越小,则该句子出现的可能性大,若ppl越大,则该句子出现的可能性越小。进一步的,在本发明其他实施例中,所述将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型包括:判断所述i个词语中是否存在预设关键词;若所述i个词语中存在预设关键词,将所述i个词语中所述预设关键词以外的词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型。在本实施例中,预设关键词可以是停用词,例如:“喂”、“嗯”、“您好”、“谢谢”、“哦”等词。预设关键词还可以是感叹词,例如:“啊”、“呀”、“哇”等词。预设关键词还可以是不对句子的语义产生影响的其他类型的词,可以根据实际需求预先设定。在本实施例中,去除预设关键字,既不影响检测结果的准确性,又可以精简所得到的目标语句,从而提高检测的速度。步骤S70,当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句。在本实施例中,错句即错误的句子,包括病句或非句子的词串。其中,预设对数似然概率可以是预先设置的区分目标语句的对数似然概率高或低的值,当目标语句的对数似然概率高于预设对数似然概率时,表示目标语句的对数似然概率高,判断目标语句为正确的句子;当目标语句的对数似然概率低于预设对数似然概率时,表示目标语句的对数似然概率低,判断目标语句为错误的句子。同样的,预设困惑度可以是预先设置的区分待检测语句的困惑度高或低的值,当目标语句的困惑度高于预设困惑度时,表示目标语句的困惑度高,判断目标语句为错误的句子,当目标语句的困惑度低于预设困惑度时,表示待检测语句的困惑度低,判断目标语句为正确的句子。一种可能的实施例中,所述当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句之前,还包括:确定所述预设困惑度和/或确定所述预设对数似然概率。所述确定所述预设困惑度和/或确定所述预设对数似然概率具体包括:获取用于训练所述语言模型的训练样本,所述训练样本包括正样本以及负样本;获取所述正样本的困惑度以及所述正样本的对数似然概率;以及获取所述负样本的困惑度以及所述负样本的对数似然概率;根据所述正样本的困惑度以及所述负样本的困惑度获取困惑度直方图,通过所述困惑度直方图获取所述预设困惑度;以及根据所述正样本的对数似然概率以及所述负样本的对数似然概率获取对数似然概率直方图,通过所述对数似然概率直方图获取所述预设对数似然概率。本实施例中,所述预设困惑度通过训练样本的困惑度直方图确定,所述预设对数似然概率通过所述训练样本的对数似然概率直方图确定。其中,训练样本的困惑度直方图包括根据训练样本(即通过ASR识别到的句子所组成的训练集)计算得到的正确句子和错误句子困惑度直方图,它们反映了正确句子的困惑度分布以及错误句子的困惑度分布。在本实施例中,预设困惑度可以根据正确句子的困惑度分布,以及错误句子的困惑度分布来确定。然后确定目标语句的困惑度是在正确句子的困惑度范围内,还是在错误句子的困惑度范围内,从而判断目标语句为正确句子还是错误句子。具体的,在训练样本中,可以计算正确句子的困惑度以及错误句子的困惑度。然后确定正确句子的困惑度分布,以及错误句子的困惑度分布,从而确定区分正确句子与错误句子的困惑度阈值,即预设困惑度。例如,正确句子的困惑度(ppl)分布为:ppl区间个数百分比[2000,+∞]50.125%[1500,2000]10.025%[1000,1500]50.125%[750,1000]110.276%[500,750]280.702%[250,500]2175.441%[100,250]124131.18%[0,100]248062.187%错误句子的困惑度(ppl)分布为:ppl区间个数百分比[2000,+∞]865.923%[1500,2000]432.961%[1000,1500]1117.645%[750,1000]1077.369%[500,750]20414.05%[250,500]50134.504%[100,250]34523.76%[0,100]553.788%从以上直方图可以看出,对于正确的句子,当ppl小于250时,正确句子的占比为93.367%。对于错误的句子,当ppl大于250时,错误句子的占比为72.425%。因此,当ppl为250时,可以较好的区分一个句子,则确定预设困惑度(预设ppl)为250。在本实施例中,目标语句的ppl大于预设ppl时,确定目标语句为错误句子。同样的,预设对数似然概率(logprob)的获取方法与预设困惑度的获取方法类似。训练样本的logprob直方图包括根据训练样本计算得到的正确句子和错误句子logprob直方图。它们反映了正确句子的对数似然概率分布以及错误句子的对数似然概率分布。例如,正确句子的对数似然概率(logprob)分布为:logprob区间个数百分比[-∞,-4.0]10.0251%[-4.0,-3.5]00[-3.5,-3.0]140.351%[-3.0,-2.5]1223.0591%[-2.5,-2.0]137134.378%[-2.0,-1.5]174043.631%[-1.5,-1.0]67316.876%[-1.0,0]671.68%错误句子的对数似然概率(logprob)分布为:logprob区间个数百分比[-∞,-4.0]80.551%[-4.0,-3.5]312.135%[-3.5,-3.0]20013.774%[-3.0,-2.5]65645.179%[-2.5,-2.0]50234.573%[-2.0,-1.5]523.581%[-1.5,-1.0]30.207%[-1.0,0]00从以上直方图可以看出,对于正确的句子,当logprob大于-2.5时,正确句子的占比为96.566%,对于错误的句子,当logprob小于-2.5时,错误句子的占比为61.639%。因此,当logprob为-2.5时,可以较好的区分一个句子,则确定预设logprob为-2.5。在本实施例中,目标的logprob小于logprob阈值时,确定目标语句为错误句子。本实施例提出的错句检测方法,获取通过自动语音识别技术得到的目标语句;获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成;将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率;当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句,从而实现了对语句是否为错句进行识别的目的。进一步地,在本发明方法的另一实施例中,该方法还包括如下步骤:若所述目标语句为错句,发送错句提醒消息。当判断该目标语句为错句时,可以向用户发出提醒。例如,当语音转化的句子要进一步进行自然语言处理时,若判断该语句错误可以通过在显示设备上弹出窗口报错的方式提醒用户该目标语句为错句。在本实施例中,通过发送提醒可以使用户快速的了解是否存在错误句子以及存在哪些错误句子,进而执行后续操作。本发明还提供一种错句检测装置。参照图2所示,为本发明一实施例提供的错句检测装置的内部结构示意图。在本实施例中,错句检测装置1可以是PC(PersonalComputer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该错句检测装置1至少包括存储器11、处理器12,通信总线13,以及网络接口14。其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是错句检测装置1的内部存储单元,例如该错句检测装置1的硬盘。存储器11在另一些实施例中也可以是错句检测装置1的外部存储设备,例如错句检测装置1上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括错句检测装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于错句检测装置1的应用软件及各类数据,例如错句检测程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。处理器12在一些实施例中可以是一中央处理器(CentralProcessingUnit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行错句检测程序01等。通信总线13用于实现这些组件之间的连接通信。网络接口14可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置1与其他电子设备之间建立通信连接。可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(OrganicLight-EmittingDiode,OLED)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在错句检测装置1中处理的信息以及用于显示可视化的用户界面。图2仅示出了具有组件11-14以及错句检测程序01的错句检测装置1,本领域技术人员可以理解的是,图2示出的结构并不构成对错句检测装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。在图2所示的装置1实施例中,存储器11中存储有错句检测程序01;处理器12执行存储器11中存储的错句检测程序01时实现如下步骤:获取通过自动语音识别技术得到的目标语句。在本实施例中,所述自动语音识别(automaticspeechrecognition,ASR)技术得到的目标语句可以为一个句子或者多个句子,每个句子可以为长句或者是短句。在其他实施例中,目标语句也可以是通过其他途径输入的语句。获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数。在获取目标语句包含的第i段文字时,可以依据从左到右的顺序(即从前至后)依次获取,也可以依据从右到左的顺序(即从后至前)依次获取。所获取的每段文字的字数可以相同或不同。优选的,获取的第i段文字的字数与所述预设词典中最长文字的字数相同。若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语。若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语。当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成。例如,对于一句话“我喜爱秋天”。若词典中最长词语的字数为3,则获取“我喜爱秋天”中前3个字“我喜爱”为第一段,将第一段“我喜爱”与词典中的词语进行匹配;若匹配不成功,将“我喜爱”减少一个字,得到“我喜”,将“我喜”与词典中的词语进行匹配,若匹配不成功,可以直接确定“我”为单独的一个词;然后,选取“喜爱秋”与词典中的词语进行匹配,若匹配不成功,将“喜爱秋”减少一个字进行匹配,即将“喜爱”与词典中的词语进行匹配,若匹配成功,确定喜爱为一个词,同样的,将“秋天”与词典中的词语进行匹配,若匹配成功,确定“秋天”为一个词。则对该句话进行分词处理之后,得到该句话分别由“我”、“喜爱”、“秋天”三个词语组成。通过上述步骤可以快速的识别目标语句中包含的词语,有利于快速的进行错句检测。将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率。语言模型可以是深度学习语言模型,例如,前馈神经网络(feedforwardneutralnetwork),递归神经网络(recurrentneutralnetwork,RNN),语言模型还可以是基于统计的语言模型,例如N-gram(N元模型)。在本实施例中,可以获取正确的词语序列(即正确的句子)组成训练集(该训练集中都为正样本),然后通过训练集中的句子对选择的语言模型进行训练,得到语言模型的各参数,训练完毕的语言模型可以识别一个词语序列出现的概率。从统计的角度来看,自然语言中的一个句子s可以由任何词串(由若干词语按一定的词序所组成)构成,不过该句子的出现概率P(s)有大有小。例如,假设有以下句子s1与s2:s1:我刚吃过晚饭s2:刚我过吃晚饭显然,对于中文而言上述s1是一个正确的句子,而s2则是一个错句,所以对于中文来说,句子s1出现的概率要大于句子s2出现的概率,即P(s1)>P(s2)。如果存在一个由m个词语组成的句子s,则句子s的概率P(W1,W2,…,Wm)为:P(W1,W2,…,Wm)=P(W1)P(W1|W2)P(W3|W1,W2)…P(Wm|W1,W2,…Wm-1)上述公式中P(W1)、P(W1|W2)、P(W3|W1,W2)等可以利用预先训练的语言模型计算得到,分别计算得到上述值后,就可以计算得到句子s的概率P(W1,W2,…,Wm)。由于概率是一个[0,1]范围内的一个小数值,多个概率值累乘以后可能得到一个非常小的小数,有可能会产生误差,因而我们计算其对数值,得到对数似然概率logprob:logprob=log(P(W1,W2,…,Wm))logprob象征一个句子出现的可能性大小。若logprob越大,则该句子出现的可能性大,若logprob越小,则该句子出现的可能性越小。另一个象征句子出现可能性大小的参数为ppl(perplexity,困惑度),其意义为句子出现概率倒数的几何平均,其定义为:ppl=10^(-logprob/(-logprob-OOVs+1))上述公式中OOVs为句子中域外词的个数(域外词是指词典以外的词)。并且,若ppl越小,则该句子出现的可能性大,若ppl越大,则该句子出现的可能性越小。进一步的,在本发明其他实施例中,所述将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型包括:判断所述i个词语中是否存在预设关键词;若所述i个词语中存在预设关键词,将所述i个词语中所述预设关键词以外的词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型。在本实施例中,预设关键词可以是停用词,例如:“喂”、“嗯”、“您好”、“谢谢”、“哦”等词。预设关键词还可以是感叹词,例如:“啊”、“呀”、“哇”等词。预设关键词还可以是不对句子的语义产生影响的其他类型的词,可以根据实际需求预先设定。在本实施例中,去除预设关键字,既不影响检测结果的准确性,又可以精简所得到的目标语句,从而提高检测的速度。当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句。在本实施例中,错句即错误的句子,包括病句或非句子的词串。其中,预设对数似然概率可以是预先设置的区分目标语句的对数似然概率高或低的值,当目标语句的对数似然概率高于预设对数似然概率时,表示目标语句的对数似然概率高,判断目标语句为正确的句子;当目标语句的对数似然概率低于预设对数似然概率时,表示目标语句的对数似然概率低,判断目标语句为错误的句子。同样的,预设困惑度可以是预先设置的区分待检测语句的困惑度高或低的值,当目标语句的困惑度高于预设困惑度时,表示目标语句的困惑度高,判断目标语句为错误的句子,当目标语句的困惑度低于预设困惑度时,表示待检测语句的困惑度低,判断目标语句为正确的句子。一种可能的实施例中,所述当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句之前,还实现如下步骤:确定所述预设困惑度和/或确定所述预设对数似然概率。所述确定所述预设困惑度和/或确定所述预设对数似然概率具体包括:获取用于训练所述语言模型的训练样本,所述训练样本包括正样本以及负样本;获取所述正样本的困惑度以及所述正样本的对数似然概率;以及获取所述负样本的困惑度以及所述负样本的对数似然概率;根据所述正样本的困惑度以及所述负样本的困惑度获取困惑度直方图,通过所述困惑度直方图获取所述预设困惑度;以及根据所述正样本的对数似然概率以及所述负样本的对数似然概率获取对数似然概率直方图,通过所述对数似然概率直方图获取所述预设对数似然概率。本实施例中,所述预设困惑度通过训练样本的困惑度直方图确定,所述预设对数似然概率通过所述训练样本的对数似然概率直方图确定。其中,训练样本的困惑度直方图包括根据训练样本(即通过ASR识别到的句子所组成的训练集)计算得到的正确句子和错误句子困惑度直方图,它们反映了正确句子的困惑度分布以及错误句子的困惑度分布。在本实施例中,预设困惑度可以根据正确句子的困惑度分布,以及错误句子的困惑度分布来确定。然后确定目标语句的困惑度是在正确句子的困惑度范围内,还是在错误句子的困惑度范围内,从而判断目标语句为正确句子还是错误句子。具体的,在训练样本中,可以计算正确句子的困惑度以及错误句子的困惑度。然后确定正确句子的困惑度分布,以及错误句子的困惑度分布,从而确定区分正确句子与错误句子的困惑度阈值,即预设困惑度。例如,正确句子的困惑度(ppl)分布为:ppl区间个数百分比[2000,+∞]50.125%[1500,2000]10.025%[1000,1500]50.125%[750,1000]110.276%[500,750]280.702%[250,500]2175.441%[100,250]124131.18%[0,100]248062.187%错误句子的困惑度(ppl)分布为:ppl区间个数百分比[2000,+∞]865.923%[1500,2000]432.961%[1000,1500]1117.645%[750,1000]1077.369%[500,750]20414.05%[250,500]50134.504%[100,250]34523.76%[0,100]553.788%从以上直方图可以看出,对于正确的句子,当ppl小于250时,正确句子的占比为93.367%对于错误的句子,当ppl大于250时,错误句子的占比为72.425%。因此,当ppl为250时,可以较好的区分一个句子,则确定预设困惑度(预设ppl)为250。在本实施例中,目标语句的ppl大于预设ppl时,确定目标语句为错误句子。同样的,预设对数似然概率(logprob)的获取方法与预设困惑度的获取方法类似。训练样本的logprob直方图包括根据训练样本计算得到的正确句子和错误句子logprob直方图。它们反映了正确句子的对数似然概率分布以及错误句子的对数似然概率分布。例如,正确句子的对数似然概率(logprob)分布为:logprob区间个数百分比[-∞,-4.0]10.0251%[-4.0,-3.5]00[-3.5,-3.0]140.351%[-3.0,-2.5]1223.0591%[-2.5,-2.0]137134.378%[-2.0,-1.5]174043.631%[-1.5,-1.0]67316.876%[-1.0,0]671.68%错误句子的对数似然概率(logprob)分布为:logprob区间个数百分比[-∞,-4.0]80.551%[-4.0,-3.5]312.135%[-3.5,-3.0]20013.774%[-3.0,-2.5]65645.179%[-2.5,-2.0]50234.573%[-2.0,-1.5]523.581%[-1.5,-1.0]30.207%[-1.0,0]00从以上直方图可以看出,对于正确的句子,当logprob大于-2.5时,正确句子的占比为96.566%,对于错误的句子,当logprob小于-2.5时,错误句子的占比为61.639%。因此,当logprob为-2.5时,可以较好的区分一个句子,则确定预设logprob为-2.5。在本实施例中,目标的logprob小于logprob阈值时,确定目标语句为错误句子。本实施例提出的错句检测装置,获取通过自动语音识别技术得到的目标语句;获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成;将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率;当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句,从而实现了对语句是否为错句进行识别的目的。进一步地,在本发明装置的另一实施例中,错句检测程序还可被处理器调用,以实现如下步骤:若所述目标语句为错句,发送错句提醒消息。当判断该目标语句为错句时,可以向用户发出提醒。例如,当语音转化的句子要进一步进行自然语言处理时,若判断该语句错误可以通过在显示设备上弹出窗口报错的方式提醒用户该目标语句为错句。在本实施例中,通过发送提醒可以使用户快速的了解是否存在错误句子以及存在哪些错误句子,进而执行后续操作。可选地,在其他实施例中,错句检测程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述错句检测程序在错句检测装置中的执行过程。例如,参照图3所示,为本发明错句检测装置一实施例中的错句检测程序的程序模块示意图,该实施例中,错句检测程序可以被分割为第一获取模块10、第二获取模块20、调整模块30、第一判断模块40、确定模块50、计算模块60和第二判断模块70,示例性地:第一获取模块10用于:获取通过自动语音识别技术得到的目标语句;第二获取模块20用于:获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;调整模块30用于:若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;第一判断模块40用于:若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;确定模块50用于:当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成。计算模块60用于:将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率。第二判断模块70用于:当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句。上述第一获取模块10、第二获取模块20、调整模块30、第一判断模块40、确定模块50、计算模块60和第二判断模块70等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有错句检测程序,所述错句检测程序可被一个或多个处理器执行,以实现如下操作:获取通过自动语音识别技术得到的目标语句;获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成;将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率;当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句。本发明计算机可读存储介质具体实施方式与上述错句检测装置和方法各实施例基本相同,在此不作累述。需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域:
,均同理包括在本发明的专利保护范围内。当前第1页1 2 3 
技术特征:
1.一种错句检测方法,其特征在于,所述方法包括:
获取通过自动语音识别技术得到的目标语句;
获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;
若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;
若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;
当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成;
将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率;
当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句。
2.如权利要求1所述的错句检测方法,其特征在于,所述将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型包括:
判断所述i个词语中是否存在预设关键词;
若所述i个词语中存在预设关键词,将所述i个词语中所述预设关键词以外的词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型。
3.如权利要求1或2所述的错句检测方法,其特征在于,所述当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句之前,还包括:
确定所述预设困惑度和/或确定所述预设对数似然概率;
所述确定所述预设困惑度和/或确定所述预设对数似然概率具体包括:
获取用于训练所述语言模型的训练样本,所述训练样本包括正样本以及负样本;
获取所述正样本的困惑度以及所述正样本的对数似然概率;以及
获取所述负样本的困惑度以及所述负样本的对数似然概率;
根据所述正样本的困惑度以及所述负样本的困惑度获取困惑度直方图,通过所述困惑度直方图获取所述预设困惑度;以及
根据所述正样本的对数似然概率以及所述负样本的对数似然概率获取对数似然概率直方图,通过所述对数似然概率直方图获取所述预设对数似然概率。
4.如权利要求2所述的错句检测方法,其特征在于,所述语言模型为深度学习语言模型或基于统计的语言模型。
5.如权利要求1或2所述的错句检测方法,其特征在于,所述方法还包括:
若所述目标语句为错句,发送错句提醒消息。
6.一种错句检测装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的错句检测程序,所述错句检测程序被所述处理器执行时实现如下步骤:
获取通过自动语音识别技术得到的目标语句;
获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语,其中,i的初始值为1,i为正整数;
若所述预设词典中不存在与所述第i段文字相匹配的词语,调整所述第i段文字的字数,判断所述预设词典中是否存在与所述第i段文字相匹配的词语;
若所述预设词典中存在与所述第i段文字相匹配的词语,确定所述第i段文字为所述目标语句的第i个词语,令i=i+1,获取所述目标语句包含的第i段文字,判断预设词典中是否存在与所述第i段文字相匹配的词语;
当i个词语的总字数与所述目标语句的总字数相同时,确定所述目标语句由所述i个词语组成;
将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型,通过所述语言模型计算所述目标语句的困惑度和/或对数似然概率;
当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句。
7.如权利要求6所述的错句检测装置,其特征在于,将所述i个词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型包括:
判断所述i个词语中是否存在预设关键词;
若所述i个词语中存在预设关键词,将所述i个词语中所述预设关键词以外的词语依据在所述目标语句中的顺序依次输入至预先训练的语言模型。
8.如权利要求6或7所述的错句检测装置,其特征在于,所述错句检测程序被所述处理器执行,还实现如下步骤:
当所述目标语句的困惑度大于预设困惑度和/或所述目标语句的对数似然概率小于预设对数似然概率时,判断所述目标语句为错句之前,确定所述预设困惑度和/或确定所述预设对数似然概率;
所述确定所述预设困惑度和/或确定所述预设对数似然概率具体包括:
获取用于训练所述语言模型的训练样本,所述训练样本包括正样本以及负样本;
获取所述正样本的困惑度以及所述正样本的对数似然概率;以及
获取所述负样本的困惑度以及所述负样本的对数似然概率;
根据所述正样本的困惑度以及所述负样本的困惑度获取困惑度直方图,通过所述困惑度直方图获取所述预设困惑度;以及
根据所述正样本的对数似然概率以及所述负样本的对数似然概率获取对数似然概率直方图,通过所述对数似然概率直方图获取所述预设对数似然概率。
9.如权利要求6或7所述的错句检测装置,其特征在于,所述错句检测程序可被所述处理器执行,还实现如下步骤:
若所述目标语句为错句,发送错句提醒消息。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有错句检测程序,所述错句检测程序可被一个或者多个处理器执行,以实现如权利要求1至5中任一项所述的错句检测方法的步骤。
技术总结
本发明涉及语音语义技术领域,公开了一种错句检测方法,该方法包括:获取目标语句;识别目标语句包含的i个词语组成;将i个词语依据在目标语句中的顺序依次输入至预先训练的语言模型,通过语言模型计算目标语句的困惑度和/或对数似然概率;当目标语句的困惑度大于预设困惑度和/或目标语句的对数似然概率小于预设对数似然概率时,判断目标语句为错句。本发明还提出一种错句检测装置以及一种计算机可读存储介质。本发明可以对语句是否为错句进行识别。
技术研发人员:张勇;马骏;王少军
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:.04.26
技术公布日:.09.06