专利名称:一种查询纠错方法和系统的制作方法
技术领域:
本发明涉及自然语言处理技术,尤其涉及一种查询纠错方法和系统。
背景技术:
查询纠错通常指搜索引擎后台对用户提交的原始查询进行正确性识别,并且对用户提交的原始查询中可能出现的拼写错误、歧义或多义进行纠正,以得到尽量正确的查询呈现给用户,从而提升用户的搜索体验。据统计,在输入英文搜索引擎的查询中大约有10%-15%的查询有拼写错误,而在中文搜索引擎中的中文拼写错误更多,种类也更多。在整个信息检索系统中,查询中出现拼写错误的数量可能会更庞大。由于查询语句会直接影响信息检索系统返回结果的可靠性与准确性(例如在问答系统中,用户输入的提问语句会直接影响问答系统的效果),所以现有的很多信息检索系统都会对在查询前对查询语句进行纠错处理,以确保返回的检索信息能够真正满足用户需要,从而提高用户的检索效率和检索结果命中率,进而提升用户的体验。现有的中文信息检索系统的查询语言类型一般包括:中文查询、英文查询、拼音查询和混杂查询等形式。其中,混杂查询包括中文和英文查询,对于混杂查询的处理,传统的查询纠错方法往往在查询的预处理阶段,把中文和英文字母拆开,中文交给中文查询纠错处理,英文字母交给拼音纠错处理。然而,由于常常会把中文拼音与英文单词混淆,因而不能对混合查询进行统一处理。一些传统的查询纠错方法,如噪声信道模型或隐马尔科夫模型,采用如下方案:首先对于每个词语在一定编辑距离范围内产生候选词语;然后利用概率模型对候选词条的最佳组合进行筛选和评估,在噪声信道模型中该概率模型是候选词条的文本概率和编辑距离的综合,在隐马尔科夫模型中该概率模型是状态转移概率和符号发射概率的综合。在上述方法中,由于需要对每种可能的组合进行计算,故计算复杂度较高。另外,在搜索引擎中也经常出现一些中文长查询语句(例如,问答系统这一类的信息检索系统中,查询语句往往很长),然而现有的检索系统往往为了减少纠错时间而限定进行查询纠错的查询语句长度,对于过长的语句不进行纠错,或者仅仅处理简单的情况。
发明内容
根据本发明的一个实施例,提供一种查询纠错方法。所述方法包括:步骤I)、将查询语句转换为字符序列,判断字符序列的长度是否大于预定阈值6,其中5是正整数;步骤2)、对长度大于S的字符序列同时进行正向和反向查询纠错处理,直到重合处理的字符个数达到阈值M,得到正向和反向的候选语句项集合,其中M是正整数;步骤3)、将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的候选语句项进行拼接,拼接后的候选语句项构成纠错候选项集合。在进一步的实施例中,步骤2)还包括:对长度小于等于5的字符序列进行正向或反向查询纠错处理,直到处理完所述字符序列的所有字符,将得到的正向或反向的候选语句项集合作为纠错候选项集合。在一个实施例中,步骤I)中将查询语句转换为字符序列包括:将中文转换为对应的汉语拼音。在一个实施例中,所述预定阈值δ可通过训练得到。在一个实施例中,步骤2)中进行正向查询纠错处理包括以从左到右的顺序对所述字符序列中的字符执行以下步骤:步骤2a)、连接正向的候选语句项集合中的候选语句项与当前字符,并且进行编辑距离操作,得到新的候选语句项;步骤2b)、判断该新的候选语句项是否构成词库中的一个词语或多个连续词语,如果构成词库中的一个词语或多个连续词语,则将新的候选语句项的状态设置为完成状态,否则设置为未完成状态;以及,根据正向语言模型和编辑距离操作计算新的候选语句项的权重。在一个实施例中,步骤2a)中进行编辑距离操作包括插入、删除、交换和替代操作。在一个实施例中,步骤2b)中判断新的候选语句项是否构成词库中的一个词语或多个连续词语包括:从正向词典树的根节点开始匹配新的候选语句项中从左到右的每一个字符,如果新的候选语句项中的一个字符与正向词典树中的完成节点成功匹配并且其后一个字符不能与该完成节点的子节点成功匹配,则将从该后一个字符开始的剩余字符序列从根节点开始匹配;如果所有字符均与正向词典树中的节点成功匹配,且最后一个字节成功匹配正向词典树的完成节点,则新的候选语句项构成词库中的一个词语或多个连续词语;其中,正向词典树的完成节点表示从根节点到该完成节点的路径上的所有节点构成词库中的词语。在一个实施例中,步骤2b)中采用下式计算新的候选语句项的权重:w=a.E+b.P其中,E表示编辑距离代价,P表示正向语言模型概率,a和b为常量且a+b=l。在进一步的实施例中,采用下式计算正向语言模型概率:P (S) =P (Wl) P (W2 | Wl) P (W3 | W1W2)…P (ffn | ffl —ffn-1)其中,P(S)表示字符序列S作为一个句子出现的概率,Wl-Wn表示以从左到右顺序在字符序列S中依次出现的中文字、英文单词或符号。在一个实施例中,在步骤2b)后还包括:保留正向语言模型概率高于预定阈值的候选语句项。在一个实施例中,步骤3)中将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的候选语句项进行拼接包括:将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的、状态为完成状态且权重大于预定阈值的候选语句项进行拼接。在一个实施例中,步骤3 )后还包括:
步骤4)、输出纠错候选项集合中满足预定限定条件的候选语句项,如果没有满足预定限定条件的候选语句项则输出原始查询语句。在进一步的实施例中,步骤4)中输出纠错候选项集合中满足预定的限定条件的候选语句项包括:使用分类器对纠错候选项集合中的候选语句项分类,输出一种或多种类别的候选语句项。根据本发明的一个实施例,提供一种查询纠错系统,所述系统包括:纠错处理模块和候选拼接模块。其中纠错处理模块用于将查询语句转换为字符序列,判断字符序列的长度是否大于预定阈值S ;以及,用于对长度大于8的字符序列同时进行正向和反向查询纠错处理,直到重合处理的字符个数达到阈值M,得到正向和反向的候选语句项集合;其中8和M是正整数;候选拼接模块用于将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的候选语句项进行拼接,拼接后的候选语句项构成纠错候选项集
入
口 o根据本发明的一个实施例,还提供一种查询方法,包括使用上述查询纠错方法对查询语句进行查询纠错。本发明的有益效果包括:I)、该方法可对中文、英文和符号等进行统一编码,把查询语句转换成字符序列的类拼音的中间处理形式,因而能够对混杂查询语句进行统一建模,支持中、英文混杂的查询语句。2)、对长查询采用正反向并行的查询纠错处理,并行的处理方式节省了查询纠错的处理时间,在保证正确率的同时,可使`得纠错速度提高接近50%,能够满足搜索引擎等应用中对长查询的快速纠错的需求。
图1是根据本发明一个实施例的查询纠错方法的流程图;图2是根据本发明一个实施例的单向查询纠错处理的流程图;图3是根据本发明一个实施例的查询纠错系统的框图。
具体实施例方式下面结合附图和具体实施方式
对本发明加以说明。图1示出了一种查询纠错方法的实施例,包括步骤100-106 (106’)。该实施例假设已具备构建好的正、反向词典树以及正、反向两个语言模型。而在另一个实施例中,方法还包括预处理步骤:构建包含中文、英文和符号(本文中指标点符号)的正向、反向两个词典树;以及构建包含中文、英文和符号的正向、反向两个语目模型。要构建词典树,首先需获得词库文件。其中,词库文件可以由大量的中文词语、中英文混杂词语以及英文单词组成。在一个实施例中,通过将中文词语转化为拼音序列,可将中文、英文以及中英文混杂词语统一为罗马字符,例如,一个词语W可对应着一系列完整的罗马字符序列(简称字符序列)Cl,C2, C3…Cn。通过这种方式,对中文词语、英文单词和符号构建了统一的编码模型,模糊了中文、英文及符号之间的差异,因而在查询纠错的过程中无需再对中文以及英文或符号分别进行处理。
接着,根据该词库构建包含中文、英文和符号的正、反向两个词典树。对于正向的词典树,可从词典树的根节点开始构造该词典树。继续参考上述示例,按从左到右的顺序依次读取词语W中的字符序列Cl,C2,C3…Cn,其中每个字母(罗马字符)对应词典树中的一个节点,直到最后一个节点Cn。每个节点附带关于根节点到当前节点的存储信息,如果从根节点到当前节点能构成词库中的一个词语,则在当前节点处存储所构成的词语(又称存储词)的信息并将该节点标记为完成节点,否则将该节点标记为未完成节点。在该实施例中,节点Cn存储了词语W (或称存储词W)的信息,且为完成节点。对于反向的词典树,可从词典树的根节点开始构造该词典树,按从右到左的顺序依次读取词语W的字符序列Cn,Cn-1, Cn-2…Cl。与正向词典树一样,每个字母对应词典树中的一个节点,直到最后一个节点Cl。每个节点附带着关于根节点到当前节点的存储信息,如果从当前节点到根节点能够构成词库中的词语,则在当前节点处存储所构成词语(存储词)的信息并将该节点标记为完成节点,否则将该节点标记为非完成节点。例如,节点Cl存储了词语W的信息,且为完成节点。要构建包含中文、英文和符号的正向、反向两个语言模型。在一个实施例中,首先通过分析网络数据得到查询文本,然后根据所得到的查询文本来构建这两个语言模型。其中网络数据也可以称作语料库,包括用户查询日志、用户点击日志,以及网页链接文本等。在一个实施例中,可通过筛选(例如选择PageRank值相对较高的网页)网页获取对应的日志进行分析,在此基础上进行抽样统计,从而获得查询文本,包括用户搜索词语和热门点击词
;五坐L 口寸o对查询文本中的词进行编码处理,即将查询文本中的中文词语、英文单词和符号统一编码并训练语言模型。在一个示例中,如果用字符串S表示一连串以特定顺序排列的词W1,W2…Wn (其中Wl-Wn表示中文字、英文单词或符号),通常将语言模型构建为字符串S的概率分布P (S),该 概率分布P (S)反映字符串S作为一个句子出现的概率。在一个实施例中,对于正向的语言模型:P (S) =P (Wl) P (W2 |W1) P (W3 IW1W2)…P (Wn I Wl...Wn-1);而对于反向的语言模型:P (S) =P (Wn) P (Wn-11 ffn) P (ffn-2 | Wnffn-1)…P (ffl | ffn—W2)。步骤100、获取用户查询语句并且对该查询语句进行预处理。其中,查询语句可能是来自于问答系统或者搜索引擎的查询语句。如同上文描述的构建词典树,预处理步骤对查询语句中的中文、英文或符号进行统一编码,将查询语句中的中文、英文或者符号转换为字符序列。例如,对于查询语句S,把S中的中文转换为对应的汉语拼音,得到字符序列S’。步骤101、根据查询语句S的长度(或者字符序列S’的长度)判断是否需要对该查询语句进行双向查询纠错处理,对长度大于预定阈值的查询语句进行双向并行的查询纠错处理。具体来说,根据预先设定的阈值5 (其中5为正整数),判断字符序列S’的长度length(S^ )是否大于该阈值S。如果length(S’ )小于等于阈值S,如图1所示,则进入单向查询纠错处理模式(步骤102’),因为在这种情况下采用单向的查询纠错就可以满足性能需求,并且如果采用双向的查询纠错处理,可能会在处理重合部分(在下文中将详细描述)时增加系统开销。如果length (S’ )大于该阈值5,则进入双向查询纠错处理模式(步骤102),在双向查询纠错处理模式下对字符序列S’并行地进行正向和反向的查询纠错处理(单向查询纠错处理)。在一个实施例中,可以根据重合处理策略、估算重合计算时间以及抽样统计历史数据等方式来设置阈值S的值,可通过训练或根据经验值来设置阈值8的值。步骤102、进入双向查询纠错模式,构建正向、反向两个候选语句项集合。如果进入双向查询纠错模式,则需要为正向查询纠错处理和反向查询纠错处理分别建立两个候选语句项集合Rl和R2,在一个实施例中,候选语句项集合Rl和R2可表示为如下的三元组:R={(r, W,s) |r为候选项,w为r的权重,s为r的状态}其中,R表示(正向或反向的)候选语句项集合,候选项(或称候选语句项)r是对字符序列S’进行编辑距离操作后,通过查找正向或反向词典树得到的候选语句项;w是该候选项r的权重,在一个实施例中,可以根据(正向或反向)语言模型、编辑距离权重,以及编辑距离概率等因素计算得到该权重;r的状态s可以表示为完成状态和未完成状态。在完成正向和反向的并行查询纠错处理后,合并这两个候选语句项集合得到最终的纠错候选项集合,在下面的步骤中将详细描述该过程。可以通过两个游标Il和12来跟踪并行的正向查询纠错处理和反向查询纠错处理。例如,游标Il可用于跟踪正向查询纠错的执行进度(即记录处理完的字符数),而游标12可用于跟踪反向查询纠错的执行进度。在图2所示的实施例中描述了单向查询纠错处理过程(包括正向和反向查询纠错处理)中构建候选语句项集合的过程,以正向的查询纠错处理过程进行说明:步骤200、以从左到右的顺序读取统一编码的查询语句的字符序列S’中的一个字符,例如以(Cl,C2,C3…Cn)表示字符序列S’,则第一次读取的字符为Cl步骤201、将字符序列S’中已处理过的字符(已存储在正向的候选语句项中的候选项)连接当前读取的字符,进行插入、删除、替代和交换操作,即编辑距离操作,以生成可能的候选语句项。其中,当读取第一个字符Cl时,则不进行交换操作。在一些实施例中,对于字符序列的处理规则不限于编辑距离的操作,还可以基于一些统计规则,针对输入法的特点、键盘中字母排列等因素来对字符序列进行相应的操作。例如,在美式键盘布局中,字符m与字符n相邻,则把m写成n的可能性要比把m写成q的可能性高得多,则可以根据键盘布局构建字符替换表,根据字符替换表对查询的字符序列进行替换,从而生成相应的候选语句项。步骤202、对操作后得到的候选语句项查找所构造的正向词典树T,判断步骤201中生成的候选语句项的状态。
其中,沿着正向词典树T的路径查找到该候选语句项,当候选语句项能够与词典树T中的一条路径上的节点匹配且最后一个匹配的节点是完成节点时,即该节点含有存储词时,则将该候选项的状态设置为完成状态。如果在匹配过程中,候选语句项的一个中间字符(非最后一个字符)匹配正向词典树中的一个完成节点且其后一个字符不匹配该完成节点的任何子节点时,将从该后一个字符开始的字符序列重新从词典树的根节点开始匹配。
步骤203、根据正向语言模型和编辑距离操作计算候选语句项的权重。上述编辑距离操作包括插入、删除、替换以及交换相邻字符,在一个实施例中,可将插入和删除的代价设置为1,替换的代价设置为2,交换相邻字符的代价设置为4,如果通过I次插入操作和I次替换操作得到候选语句项r,则该候选语句项r的编辑距离权重为1+2=3。如果当前候选项r的语言模型概率为P,则r的权重w=a*3+b*p,其中a与b可以是常量,且a+b=l,a、b分别表示编辑距离权重和语言模型的贡献率。此外,可能出现这样的情况,即候选语句项中的最后一个字符既不是中文字的拼音的最后一个字符,也不是英文单词的最后一个字符,则可以根据该候选语句项中包含了最多的中文字、英文单词的子序列来计算语言模型概率P。应理解,步骤202和步骤203也可以反过来执行。步骤204、可根据所 计算的语言模型概率来确定是否保留该候选语句项。例如,当候选语句项集合被预先设定为仅保留K个候选语句项时,可保留语言模型概率较大的前K个候选语句项。或者,也可以将候选语句项集合设置为仅保留概率大于某个阈值的候选语句项,以节约存储空间。步骤205、如果正向和反向的查询纠错处理不满足重合条件(在步骤105中将详细描述),则返回步骤200继续读取下一字符进行处理。对于反向的查询纠错处理,处理过程与正向处理过程仅在字符序列的读取顺序、查找的词典树和使用的语言模型等方面存在区别。反向的查询纠错处理按从右到左的顺序依次读取Cn,Cn-1, Cn-2…CI字符,查找对应的反向词典树,并根据反向的语言模型来计算候选项的概率。通过正向和反向并行的查询纠错处理可得到正向和反向两个候选语句项集合。步骤102’、进入单向查询纠错模式,得到纠错候选项集合。与步骤102类似,可以在单向查询纠错模式下为序列S’建立相应的候选集合R:R={(r, W,s) r为候选项,w为r的权重,s为r的状态}。对字符序列中的所有字符进行单向的查询纠错过程(正向和负向均可),如上文结合图2所述的步骤200-步骤204。所得的候选语句项集合即为最终的纠错候选项集合,可跳过下述步骤103和104,进入步骤105。步骤103、判断双向查询纠错处理中正向查询纠错处理和反向查询纠错处理的重合度(重合处理的字符数)。如果重合度满足阈值M,则进行步骤104的正向和反向的候选语句项集合的拼接处理,否则继续步骤102的双向查询纠错处理。其中,根据游标Il和12分别记录的正向查询纠错和反向查询纠错当前处理的字符串长度,可得到正向和反向查询纠错处理重合的字符数。当正向查询纠错和反向查询纠错当前处理的字符串长度之和大于字符序列的长度时,即IJI2Men (S’),则表示进入重合部分的处理。在进入重合部分处理后,正向和反向查询纠错处理继续进行查询纠错处理,直到重合窗口大小为M(即重合处理的字符数)。其中,重合窗口 M是根据一定的策略确定的,例如可考虑查询词的长度以及拼接速度等因素来确定M的大小,可通过训练得到M的大小。在一个实施例中,可以根据重合窗口内两个候选语句项集合Rl与R2能够拼接的路径数量来动态确定M的大小。当Rl中候选语句项的M个字符的后缀与R2中候选语句项的M个字符前缀相同,则Rl与R2能够拼接。步骤104、对正、反向两个查询纠错处理对应的候选语句项集合Rl、R2进行拼接,得到整个查询语句的纠错候选项集合。由于正向词典树和逆向词典树是根据相同的词库构造的,并且正向语言模型和逆向语言模型又是基于同一语料库(如用户查询日志、用户点击日志,以及网页链接文本等)构造的,所以重合窗口中一定存在相同的词语,即存在Rl中候选项rl的后缀与R2中候选项r2的前缀相同,因而rl与r2能够拼接成功。在一个实施例中,两个候选语句项集合的拼接是对两个集合进行处理,其中集合Rl=Kr, W,s) |r为候选项,w为r对应的权重,s为r的当前状态},集合R2={(r, w, s) |r为候选项,w为r对应的权重,s为r的当前状态}。如上文所述,由于低权重的候选语句项对最终候选集合没有太大贡献,可以设定严格的筛选条件,保证候选集合不至于太庞大(即排除权重较低的候选项),以减少计算时间。在一个实施例中,对s为完成状态的候选项r进行拼接。例如,Rl中有一个完成状态的候选项rl,rl为abcde,R2中有一个完成状态的候选项r2, r2为defg,且设置当前的重合窗口为2,则rl与r2可以拼接,拼接的结果为abcdefg。步骤105、根据步骤104的拼接结果或者步骤102’的单向查询纠错处理的结果得到的整个查询语句的纠错候选项集合,判断纠错候选项集合中的候选项是否满足限定条件,如果满足限定条件则进入步骤106,否则进入步骤106’。在一个实施例中,可制定候选集合的规则集合,根据规则集合训练分类器,通过分类器进行判断。在进一步的实施例中,可以依据编辑距离操作的次数、编辑距离操作的类型、语言模型的概率、字符之间的出错统计概率、键盘属性信息等因素构建分类器。例如,可分为保留与舍弃两个类别,当候选项的编辑距离操作次数大于3,编辑距离操作的类型为插入和删除,语言模型概率大于0.7时,候选项进入保留类,其他则进入舍弃类别中,这样筛选后的结果候选语句项集合为保留类中的候选语句项集合。但本方法不局限于上述示例,分类器可以有很多种,并且可以根据结果进行调整。步骤106、输出满足限定条件的候选语句项,整个查询纠错过程结束步骤106’、输出原始查询语句,整个查询纠错过程结束。根据本发明一个实施例,还提供一种查询纠错系统,如图3所示,该系统包括以下几个模块:词典树存储模块S100、训练语言模型模块S200、纠错处理模块S300、重合处理模块S400、候选拼接模块S500,以及候选集合筛选模块S600。下面分别对每个模块进行说明。一.词典树存储模块SlOO词典树存储模块SlOO用于存储包含了中文、英文和符号的混杂词库来的正向和反向词典树,在一个实施例中,词典树存储模块SlOO还包含语言处理子模块、构建正向词典树子模块和构建反向词典树子模块。其中,语言处理子模块用于将中文、英文和符号统一编码。在一个实施例中,语言处理子模块把中文字符转换为对应的拼音字符序列,从而把中文、英文和符号统一为字符序列。构建正向词典树子模块用于从左到右读取字符序列,构建以字符为节点的词典树,当读取到最后一个字符时,标记该节点为完成状态(即该节点为完成节点),并存储从根节点到该节点路径上的所有字符形成的词语。类似地,构建反向词典树子模块用于从右到左读取字符序列,构建以字符为节点的词典树,当读取最后一个字符时,标记该节点为完成状态(即该节点为完成节点),并存储从根节点到该节点的路径上的所有字符形成的词语。二.训练语言模型模块S200训练语言模型模块S200用于对高频查询词语和高点击词语统一编码,并且训练正向查询语言模型和反向查询语言模型。在一个实施例中,训练语言模型模块S200包括统一编码子模块、训练正向语言模型子模块和训练反向语言模型子模块。其中,统一编码子模块用于把中文、英文和符号进行统一编码处理。训练正向语言模型子模块用于从左到右读取字符串,并建立n元语言模型(n为字符串中的词数量,包括中文字、英文单词和符号)。训练反向语言模型子模块用于从右向左读取字符串,并建立n元语言模型。三.纠错处理模块S300纠错处理模块S300用于判断输入的查询语句的长度是否大于预定阈值8,当大于该预定阈值S时,启用双向查询纠错处理模式,进行双向的查询纠错处理;否则,启用单向查询纠错模式。在一个实施例中,纠错处理模块S300还包括:获取查询序列子模块,用于把用户输入的查询语句转换为字符序列;单向纠错子模块,用于建立对应的单向候选语句项集合,例如从左到右读取查询语句的字符序列,对该字符序列进行编辑距离操作,例如,字符的插入,删除,替换和交换,查找词典树,并根据相应的语言模型以及编辑距离等,计算候选项的权重,和当前候选语句项的状态。纠错处理模块S300还包括双向纠错子模块,在正向和反向的单向纠错的基础上,建立两个候选语句项集合Rl和R2,分别以从左到右和从右到左的顺序来读取字符序列,对于从右向左的处理模块,查找的是反向的词典树且应用反向的语言模型。四、重合处理模块S400重合处理模块S400用于在正向和反向纠错子模块相遇(处理到同一字符)后,进行重合处理。其中,当重合窗口不大于阈值M时,继续进行正向和反向的查询纠错处理,而当重合窗口为M时,停止双向查询处理模块的处理。五、候选拼接模块S500对于单向的查询纠错处理,可在获得纠错候选项集合直接进入候选集合筛选模块S600进行处理;但对于双向查询纠错处理,则需要候选拼接模块S500根据正、反两个纠错子模块得到的候选语句项集合Rl和R2,来进行拼接处理,得到整个查询语句的纠错候选项集合R。六、候选集筛选模块S600候选集筛选模块S600用于根据一定的筛选条件(或称限定条件),进行筛选,对纠错候选项集合中的侯选语句项进行判断,如结果符合对应的筛选条件,则返回该候选语句项;否则返回原始查询。在一个实施例中,候选筛选模块S600还包括分类器训练子模块和候选集合分类子模块。其中分类器训练子模块用于根据候选语句项集合中候选语句项的各种特征信息,包括候选项的编辑代价、查询长度、语言模型概率等特征来训练候选项分类器,从而可以筛选出需要输出的结果。
候选集合分类子模块用于使用上述训练的选项分类器对候选语句项集合分类,得到前η个(例如权重最大的η个)候选推荐结果进行输出,根据应用类型的不同或者是查询本身模糊程度,可输出不同个数的候选纠错结果。在一个实施例中,该η可以依据候选语句项集合中候选语句项的权重或者系统需求进行设置。根据本发明的一个实施例,还提供一种查询方法,该查询方法支持中英文混杂的查询语句。该查询方法在进行查询之前,还采用上文中描述的查询纠错方法对查询语句进行查询纠错。本发明提供一种查询纠错方法及系统,但本发明并不限于信息检索中的查询,本发明提出的查询纠错方法及系统可以应用在其他需要快速进行混合查询纠错处理的场景,如问答系统等。同时,本发明提到的并行处理方式,根据应用场合还可以扩展到多路并行方式,例如可以首先将长查询分段,再对每个分段进行正反向查询纠错处理。应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
权利要求
1.一种查询纠错方法,所述方法包括: 步骤I)、将查询语句转换为字符序列,判断字符序列的长度是否大于预定阈值8,其中S是正整数; 步骤2)、对长度大于5的字符序列同时进行正向和反向查询纠错处理,直到重合处理的字符个数达到阈值M,得到正向和反向的候选语句项集合,其中M是正整数; 步骤3)、将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的候选语句项进行拼接,拼接后的候选语句项构成纠错候选项集合。
2.根据权利要求1所述的方法,步骤2)还包括: 对长度小于等于S的字符序列进行正向或反向查询纠错处理,直到处理完所述字符序列的所有字符,将得到的正向或反向的候选语句项集合作为纠错候选项集合。
3.根据权利要求1或2所述的方法,步骤I)中将查询语句转换为字符序列包括:将中文转换为对应的汉语拼音。
4.根据权利要求1或2所述的方法,其中,所述预定阈值8可通过训练得到。
5.根据权利要求1或2所述的方法,步骤2)中进行正向查询纠错处理包括以从左到右的顺序对所述字符序列中的字符执行以下步骤: 步骤2a)、连接正向的候选语句项集合中的候选语句项与当前字符,并且进行编辑距离操作,得到新的候选语句项; 步骤2b)、判断该新的候选语句项是否构成词库中的一个词语或多个连续词语,如果构成词库中的一个词语或多个连续词语,则将新的候选语句项的状态设置为完成状态,否则设置为未完成状态;以及,根据正向语言模型和编辑距离操作计算新的候选语句项的权重。
6.根据权利要求5所述的方法,步骤2a)中进行编辑距离操作包括插入、删除、交换和替代操作。
7.根据权利要求5所述的方法,步骤2b)中判断新的候选语句项是否构成词库中的一个词语或多个连续词语包括: 从正向词典树的根节点开始匹配新的候选语句项中从左到右的每一个字符,如果新的候选语句项中的一个字符与正向词典树中的完成节点成功匹配并且其后一个字符不能与该完成节点的子节点成功匹配,则将从该后一个字符开始的剩余字符序列从根节点开始匹配; 如果所有字符均与正向词典树中的节点成功匹配,且最后一个字节成功匹配正向词典树的完成节点,则新的候选语句项构成词库中的一个词语或多个连续词语; 其中,正向词典树的完成节点表示从根节点到该完成节点的路径上的所有节点构成词库中的词语。
8.根据权利要求5所述的方法,步骤2b)中采用下式计算新的候选语句项的权重: w=a E+b P 其中,E表示编辑距离代价,P表示正向语言模型概率,a和b为常量且a+b=l。
9.根据权利要求8所述 的方法,其中采用下式计算正向语言模型概率: P (S) =P (Wl) P (W2 I Wl) P (W3 IW1W2)...P (ffn | ffl —ffn-1) 其中,P (S)表示字符序列S作为一个句子出现的概率,Wl-Wn表示以从左到右顺序在字符序列S中依次出现的中文字、英文单词或符号。
10.根据权利要求5所述的方法,在步骤2b)后还包括:保留正向语言模型概率高于预定阈值的候选语句项。
11.根据权利要求5所述的方法,步骤3)中将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的候选语句项进行拼接包括: 将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的、状态为完成状态且权重大于预定阈值的候选语句项进行拼接。
12.根据权利要求1或2所述的方法,步骤2)中进行反向查询纠错处理包括以从右到左的顺序对所述字符序列中的字符执行以下步骤: 步骤2a’)、连接当前字符与反向的候选语句项集合中的候选语句项,并且进行编辑距离操作,得到新的候选语句项; 步骤2b’)、判断该新的候选语句项是否构成词库中的一个词语或多个连续词语,如果构成词库中的一个词语或多个连续词语,则将新的候选语句项的状态设置为完成状态,否则设置为未完成状态;以及,根据反向语言模型和编辑距离操作计算新的候选语句项的权重。
13.根据权利要求12所述的方法,步骤2b’)中判断新的候选语句项是否构成词库中的一个词语或多个连续词语包括, 从反向词典树的根节点开始匹配新的候选语句项中从右到左的每一个字符,如果新的候选语句项中的一个字符与反向词典树中的完成节点成功匹配并且其前一个字符不能与该完成节点的子节点成功匹配 ,则将从该前一个字符开始的剩余字符序列从根节点开始匹配; 如果所有字符均与反向词典树中的节点成功匹配,且最后一个字节成功匹配正向词典树的完成节点,则新的候选语句项构成词库中的一个词语或多个连续词语; 其中,反向词典树的完成节点表示从该完成节点到根节点的路径上的所有节点构成词库中的词语。
14.根据权利要求12所述的方法,步骤2b’)中采用下式计算新的候选语句项的权重: w=a.E+b.P 其中,E表示编辑距离代价,P表示反向语言模型概率,a和b为常量且a+b=l。
15.根据权利要求14所述的方法,其中采用下式计算反向语言模型概率: P (S) =P (Wn) P (Wn-11 Wn) P (ffn-2 | WnWn-1)...P (W11 Wn...W2) 其中,P (S)表示字符序列S作为一个句子出现的概率,Wl-Wn表示以从左到右顺序在字符序列S中依次出现的中文字、英文单词或符号。
16.根据权利要求1或2所述的方法,步骤3)后还包括: 步骤4)、输出纠错候选项集合中满足预定限定条件的候选语句项,如果没有满足预定限定条件的候选语句项则输出原始查询语句。
17.根据权利要求16所述的方法,步骤4)中输出纠错候选项集合中满足预定的限定条件的候选语句项包括: 使用分类器对纠错候选项集合中的候选语句项分类,输出一种或多种类别的候选语句项。
18.一种查询纠错系统,所述系统包括:纠错处理模块,用于将查询语句转换为字符序列,判断字符序列的长度是否大于预定阈值S ;以及,用于对长度大于8的字符序列同时进行正向和反向查询纠错处理,直到重合处理的字符个数达到阈值M,得到正向和反向的候选语句项集合;其中8和M是正整数;候选拼接模块,用于将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的候选语句项进行拼接,拼接后的候选语句项构成纠错候选项集合。
19.一种查询方法,包括使用如权利要求1-17中任何一个所述的查询纠错方法对查询语句进行查 询纠错。
全文摘要
本发明提供一种查询纠错方法和系统。所述方法包括将查询语句转换为字符序列,判断字符序列的长度是否大于预定阈值δ;对长度大于δ的字符序列同时进行正向和反向查询纠错处理,直到重合处理的字符个数达到阈值M,得到正向和反向的候选语句项集合。所述方法还包括将正向的候选语句项集合中后M个字符与反向候选语句项集合中前M个字符相同的候选语句项进行拼接,拼接后的候选语句项构成纠错候选项集合。所述方法支持中、英文混杂的查询语句,并且可对长查询采用正反向并行的查询纠错处理,这种并行的处理方式在保证正确率的同时节省了查询纠错的处理时间。
文档编号G06F17/30GK103198149SQ20131014207
公开日2013年7月10日 申请日期2013年4月23日 优先权日2013年4月23日
发明者程学旗, 熊锦华, 颛悦, 程舒扬, 廖华明, 王元卓 申请人:中国科学院计算技术研究所