WO2017084506A1 - 搜索查询词纠错方法和装置 - Google Patents
搜索查询词纠错方法和装置 Download PDFInfo
- Publication number
- WO2017084506A1 WO2017084506A1 PCT/CN2016/104843 CN2016104843W WO2017084506A1 WO 2017084506 A1 WO2017084506 A1 WO 2017084506A1 CN 2016104843 W CN2016104843 W CN 2016104843W WO 2017084506 A1 WO2017084506 A1 WO 2017084506A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- error correction
- word
- list
- subword
- candidate
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/374—Thesaurus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Abstract
一种搜索查询词纠错方法和装置,搜索查询词纠错装置接收到搜索请求中的查询词后(S201),首先获取查询词中各子词的纠错候选子词列表(S202);然后再根据预先建立的N-Gram语言模型,对各纠错候选子词列表拼接成的各纠错候选词语进行实时在线评分,获取纠错目标词列表(S203);最后再根据纠错目标词列表中各纠错目标词的评分输出最终的纠错结果(S204),其基于在先的分析计算,实时对用户输入的搜索查询词进行纠错,无需离线海量数据处理和历史纠错数据库,且不依赖于大规模的搜索日志和用户反馈,对于移动应用市场等应用场景,能够有效的提高纠错能力。
Description
本发明涉及信息技术领域,尤其涉及一种搜索查询词纠错方法和装置。
搜索功能是任何信息或内容检索系统(如互联网搜索引擎、商品搜索引擎、图书检索系统、HR员工检索系统)的基础和核心功能。用户输入非结构化的文本查询词,然后信息系统通过索引、全文检索、分布式计算等技术,返回匹配查询词的、用户想要查找的内容项列表,并按一定的算法规则排序。而由于用户操作失误、认知所限、特殊输入习惯等原因,信息检索系统中搜索查询词的错误非常普遍。查询词错误会导致搜索结果质量和用户体验明显下降,为了提高用户体验,目前查询词纠错已经成为搜索优化的一个非常重要的维度。
目前,传统互联网搜索引擎以及有搜索引擎支撑的移动应用市场产品,其查询词纠错主要采用离线分析、生成纠错源词与目标词对的方法。具体是通过各种人工和自动相结合的离线数据处理和分析,基于一些预定义的规则和阀值,从大规模的用户搜索和点击日志中,统计输出若干查询词对并存入历史纠错数据库中。其中,每个查询词对包括一个错误的源查询词和一个纠错后的目标查询词,如(“中信证卷”,“中信证券”)。当搜索引擎接收到一个查询词时,它只需要去历史纠错数据库中查找,如果能找到匹配的源词,则将查询词修改为对应的目标词,再去索引输出检索结果;如果没有匹配,则使用原本的查询词去检索结果。
上述这种离线判错纠错、后续在线匹配的方法需要大规模的搜索日志和用户反馈,基本上是为搜索引擎应用场景定制的。对于移动应用市场,其搜索日志和用户反馈规模相比搜索引擎,小了若干个数量级,当搜索查询词有错误时,纠错能力明显下降,从而导致经常搜索不出正确
的应用。
发明内容
针对现有技术的上述缺陷,本发明提供一种搜索查询词纠错方法和装置,用于提高纠错能力。
第一方面,本发明实施例提供一种搜索查询词纠错方法,包括:
接收搜索请求中的查询词;
根据预先建立的词语纠错映射表,获取查询词中各子词的纠错候选子词列表;
根据各纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表;
根据纠错目标词列表输出纠错结果。
结合第一方面,在第一方面的第一种可能的实施方式中,根据各纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表,具体包括:对各纠错候选子词列表进行字符串拼接处理,获取纠错候选词列表;
根据预先建立的N-Gram语言模型,计算纠错候选词列表中各纠错候选词的词语评分,并根据各纠错候选词的词语评分对各纠错候选词进行排序,获取纠错目标词列表。
结合第一方面,在第一方面的第二种可能的实施方式中,根据各纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表,具体包括:
将查询词中第一子词的纠错候选子词列表作为第一中间结果,对第一中间结果执行纠错目标词查找操作,其中,纠错目标词查找操作包括:
根据N-Gram语言模型,获取第一中间结果中各候选词的N-Gram评分;
根据N-Gram评分对第一中间结果进行排序,并在中间结果中候选词的个数超出预设阈值L时,截取中间结果中前L个候选词作为第二中间结果;
将查询词中第二子词的纠错候选子词列表与第二中间结果进行词语拼接后作为新的第一中间结果,返回执行纠错目标词查找操作,直至获取子词列表中最后一个子词对应的第二中间结果,并将第二中间结果作为纠错目标词列表。
结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,该方法还包括:
将各中间结果中N-Gram评分小于或等于对应的查询词的N-Gram评分的候选词删除。
结合第一方面的第二或第三种可能的实施方式,在第一方面的第四种可能的实施方式中,该方法还包括:
若根据各纠错候选子词列表和预先建立的N-Gram语言模型获取纠错目标词列表的当前耗时超出预设时间,则将当前的中间结果与未进行词语拼接的纠错候选子词列表对应的子词进行词语拼接后作为纠错目标词列表。
结合第一方面、第一方面的第二至第四种任一种可能的实施方式,在第一方面的第五种可能的实施方式中,在根据纠错目标词列表输出纠错结果之前,该方法还包括:
对纠错目标词列表进行结果过滤。
结合第一方面的第五种可能的实施方式,在第一方面的第六种可能的实施方式中,对纠错目标词列表进行结果过滤,具体包括下列方法中的至少一种:
根据N-Gram语言模型,计算纠错目标词列表中各纠错目标词的语句评分,并根据语句评分对纠错目标词列表进行排序;
检查纠错目标词列表中各纠错目标词的所有子词,对包含近似拼音子词的纠错目标词,将其评分乘以一个惩罚因子,然后根据评分对纠错目标词列表进行排序,其中近似拼音子词的拼音与对应的查询词的子词拼音为近似拼音;
将纠错目标词列表中评分低于期望阈值的纠错目标词删除,其中,期望阈值根据查询词的子词个数确定。
结合第一方面、第一方面的第二至第六种任一种可能的实施方式,
在第一方面的第七种可能的实施方式中,根据预先建立的词语纠错映射表,获取查询词中各子词的纠错候选子词列表,具体包括:
对查询词进行分词处理,获取查询词的子词列表;
根据预先建立的词语纠错映射表,获取子词列表中各子词的纠错候选子词列表。
结合第一方面的第七种可能的实施方式,在第一方面的第八种可能的实施方式中,词语纠错映射表包括:拼音汉字映射表、英文单词索引表和同形异义词典中的至少一种;
根据预先建立的词语纠错映射表,获取子词列表中各子词的纠错候选子词列表,具体包括下列方法中的至少一种:
根据拼音汉字映射表获取子词列表中各中文或拼音子词的同音或近音纠错候选词;
根据英文单词索引表获取子词列表中各英文子词的纠错候选词;
根据同形异义词典获取子词列表中各中文子词的同形异义纠错候选词。
结合第一方面的第八种可能的实施方式,在第一方面的第九种可能的实施方式中,根据英文单词索引表获取子词列表中各英文子词的纠错候选词,具体包括:
对于子词列表中每个英文子词,根据英文单词索引表获取按照与英文子词编辑距离从小到大排序的前M个单词以及各单词的语料集出现次数;
根据M个单词的编辑距离和语料集出现次数,对单词进行评分排序,并选取排序结果中的前N个单词作为英文子词的纠错候选词,其中,M和N为正整数,且M大于N。
第二方面,本发明实施例提供一种搜索查询词纠错装置,包括:
接收模块,用于接收搜索请求中的查询词;
纠错预处理模块,用于根据预先建立的词语纠错映射表,获取查询词中各子词的纠错候选子词列表;
纠错处理模块,用于根据各纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表;
输出模块,根据纠错目标词列表输出纠错结果。
结合第二方面,在第二方面的第一种可能的实施方式中,纠错处理模块,具体用于:
对各纠错候选子词列表进行字符串拼接处理,获取纠错候选词列表;
根据预先建立的N-Gram语言模型,计算纠错候选词列表中各纠错候选词的词语评分,并根据各纠错候选词的词语评分对各纠错候选词进行排序,获取纠错目标词列表。
结合第二方面,在第二方面的第二种可能的实施方式中,纠错处理模块,具体用于:
将查询词中第一子词的纠错候选子词列表作为第一中间结果,对第一中间结果执行纠错目标词查找操作,其中,纠错目标词查找操作包括:
根据N-Gram语言模型,获取第一中间结果中各候选词的N-Gram评分;
根据N-Gram评分对第一中间结果进行排序,并在中间结果中候选词的个数超出预设阈值L时,截取中间结果中前L个候选词作为第二中间结果;
将查询词中第二子词的纠错候选子词列表与第二中间结果进行词语拼接后作为新的第一中间结果,返回执行纠错目标词查找操作,直至获取子词列表中最后一个子词对应的第二中间结果,并将第二中间结果作为纠错目标词列表。
结合第二方面的第二种可能的实施方式,在第二方面的第三种可能的实施方式中,纠错处理模块还用于:
将各中间结果中N-Gram评分小于或等于对应的查询词的N-Gram评分的候选词删除。
结合第二方面的第二或第三种可能的实施方式,在第二方面的第四种可能的实施方式中,纠错处理模块还用于:
若根据各纠错候选子词列表和预先建立的N-Gram语言模型获取纠错目标词列表的当前耗时超出预设时间,则将当前的中间结果与未进行词
语拼接的纠错候选子词列表对应的子词进行词语拼接后作为纠错目标词列表。
结合第二方面、第二方面的第二至第四种任一种可能的实施方式,在第二方面的第五种可能的实施方式中,装置还包括:
纠错结果过滤模块,用于对纠错目标词列表进行结果过滤。
结合第二方面的第五种可能的实施方式,在第二方面的第六种可能的实施方式中,纠错结果过滤模块具体用于:
根据N-Gram语言模型,计算纠错目标词列表中各纠错目标词的语句评分,并根据语句评分对纠错目标词列表进行排序;
检查纠错目标词列表中各纠错目标词的所有子词,对包含近似拼音子词的纠错目标词,将其评分乘以一个惩罚因子,然后根据评分对纠错目标词列表进行排序,其中近似拼音子词的拼音与对应的查询词的子词拼音为近似拼音;
将纠错目标词列表中评分低于期望阈值的纠错目标词删除,其中,期望阈值根据查询词的子词个数确定。
结合第二方面、第二方面的第二至第六种任一种可能的实施方式,在第二方面的第七种可能的实施方式中,纠错预处理模块,具体用于:
对查询词进行分词处理,获取查询词的子词列表;
根据预先建立的词语纠错映射表,获取子词列表中各子词的纠错候选子词列表。
结合第二方面的第七种可能的实施方式,在第二方面的第八种可能的实施方式中,词语纠错映射表包括:拼音汉字映射表、英文单词索引表和同形异义词典中的至少一种;
纠错预处理模块,具体用于:
根据拼音汉字映射表获取子词列表中各中文或拼音子词的同音或近音纠错候选词;
根据英文单词索引表获取子词列表中各英文子词的纠错候选词;
根据同形异义词典获取子词列表中各中文子词的同形异义纠错候选词。
结合第二方面的第八种可能的实施方式,在第二方面的第九种可能
的实施方式中,纠错预处理模块,具体用于:
对于子词列表中每个英文子词,根据英文单词索引表获取按照与英文子词编辑距离从小到大排序的前M个单词以及各单词的语料集出现次数;
根据M个单词的编辑距离和语料集出现次数,对单词进行评分排序,并选取排序结果中的前N个单词作为英文子词的纠错候选词,其中,M和N为正整数,且M大于N。
本发明实施例提供的搜索查询词纠错方法和装置,搜索查询词纠错装置接收到搜索请求中的查询词后,首先获取查询词中各子词的纠错候选子词列表;然后再根据预先建立的N-Gram语言模型,对各纠错候选子词列表拼接成的各纠错候选词语进行实时在线评分,获取纠错目标词列表;最后再根据纠错目标词列表中各纠错目标词的评分输出最终的纠错结果,其基于在线的分析计算,实时对用户输入的搜索查询词进行纠错,无需离线海量数据处理和历史纠错数据库,且不依赖于大规模的搜索日志和用户反馈,对于移动应用市场等应用场景,能够有效的提高纠错能力。
图1为搜索纠错系统的系统架构示意图;
图2为本发明提供的搜索查询词纠错方法实施例一的流程示意图;
图3为本发明提供的搜索查询词纠错方法实施例二的流程示意图;
图4为本发明提供的一种字符串切分方法的流程示意图;
图5为本发明提供的搜索查询词纠错方法实施例三的流程示意图;
图6为本发明提供的搜索查询词纠错方法实施例四的流程示意图;
图7(a)-图7(d)为本发明提供的贪婪算法的算法流程示意图;
图8为本发明提供的搜索查询词纠错装置实施例一的结构示意图;
图9为本发明提供的搜索查询词纠错装置实施例二的结构示意图。
本发明实施例涉及的方法和装置可以应用于搜索规模较小的移动应
用市场、员工检索系统、图书检索系统等,还可以应用于搜索规模较大的互联网搜索引擎。
本发明实施例提供的方法和装置,旨在解决现有技术中对于搜索规模较小的移动应用市场等应用场景,采用离线判错纠错、后续在线匹配的方法出现的纠错能力低的技术问题。
图1为搜索纠错系统的系统架构示意图,如图1所示,搜索纠错系统包括用户终端和内容检索系统,其中,内容检索系统包括:搜索子系统、纠错子系统、索引文件和内容数据库。用户可以通过用户终端的图形界面或编程接口,提交搜索查询词到内容检索系统的搜索子系统;搜索子系统在调用其自身算法查找相关内容前,先将接收到的查询词发给纠错子系统,以判断是否包含拼写错误。其中,两个子系统间的通信,可以使用任意标准协议(如TCP、HTTP)和数据交换格式(如JSON、XML)。
如果纠错子系统判断查询词有误,则返回m个纠错建议(即纠错目标词),并按对应评分排序;否则提示查询词无误。其中,m的数值可作为接口参数,表示纠错子系统对一个查询词最多可返回的纠错目标词数目,可由搜索子系统在调用纠错子系统接口时动态指定;为了避免用户选择性困难,可只返回一个纠错建议,即m的默认值可设置为1。除了指定最大纠错目标词数目外,另一种设置接口参数的方式,是由搜索子系统指定一个评分阀值Г,纠错子系统只返回评分高于此阀值的纠错目标词。上述两种参数交互方式可以同时使用。
搜索子系统收到纠错子系统返回的纠错目标词后,使用一个或多个纠错目标词去查找其索引,检索其内容数据库,最终返回查询词对应的搜索结果列表给用户。
本发明提供的搜索查询词纠错装置是对上述系统架构图中纠错子系统的进一步改进,其可以集成在纠错子系统中或者替代上述纠错子系统。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本发明提供的搜索查询词纠错方法实施例一的流程示意图,该方法的执行主体可以是搜索查询词纠错装置。如图2所示,本实施例的方法包括:
步骤S201、接收搜索请求中的查询词。
具体的,搜索查询词纠错装置接收到搜索子系统发送的查询词后,可以采用现有的纠错判断方法判断该查询词是否有误,若无,则提示查询词无误;若有,则执行下述步骤S202,对查询词进行纠错处理。
步骤S202、根据预先建立的词语纠错映射表,获取查询词中各子词的纠错候选子词列表。
具体的,搜索查询词纠错装置包含用于纠错处理的数据文件,其中包括训练语料集,通过训练语料集,可以创建出词语纠错映射表。一个查询词可以拆分为若干个子词,这些子词可能是中文、拼音或英文,根据该词语纠错映射表,可以获取这些子词的纠错候选子词列表。
举例来说,查询词为“qbpinyin书入法”可以拆分为[“qb”,“pin”,“yin”,“输”,“入”,“法”];根据该词语纠错映射表可以获取这些子词的纠错候选子词列表,英文“qb”-“qq”,拼音“pin”-[“拼”、“品”……],“yin”-[“音”、“因”……],中文“书”-[“输”、“数”……],子词“入”和“法”类似,不再举例。
步骤S203、根据各纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表。
具体的,N-Gram语言模型可以通过训练语料集创建,通过N-Gram语言模型可以计算出某个文本词句基于训练语料集的概率。该模型基于这样一种假设,语句中第N个词的出现,只与前面N-1个词相关,而与其它任何词都不相关。一个短语或句子的N-gram概率(评分),就是其中各个词出现概率的乘积,这些概率可以通过最大似然估计法,直接从语料中统计N个词同时出现的次数得到。假设一个短语依次包含N个词W1、W2…Wn,则前N-1个词出现后,第N个词的出现概率为:P(Wn|W1W2…Wn-1)=C(W1W2…Wn)/C(W1W2…Wn-1)。由于当N值很大时,训练N-gram模型需要庞大的语料且数据稀疏严重,时间复杂度高,目前常用的是二元的Bi-gram(N=2)和三元的Tri-gram(N=3),本实施
例中优选N=3。此外,为了解决数据稀疏问题,在实现N-gram语言模型时可以采用一定的平滑策略以使语料集中所有出现过的词句的N-gram概率之和为1,且任意词句的N-gram概率均不为0。
本实施例中,对于各纠错候选子词列表,可以进行字符串拼接处理,然后再根据N-Gram语言模型计算出根据纠错候选子词列表拼接出的纠错候选词语的N-Gram概率(即评分),根据各词语的评分可以对这些词语进行排序或筛选处理,最终获取一个纠错目标词列表。在该纠错目标词列表,纠错目标词的评分越高表示该纠错目标词是正确查询词的可能性越高,例如P(“爱奇艺”)=0.853,而P(“爱奇异”)=0.012,“爱奇艺”的正确率高于“爱奇异”。
步骤S204、根据纠错目标词列表输出纠错结果。
根据上述步骤中获取的纠错目标词列表中各纠错目标词的评分,即可选择评分较高的一个或多个纠错目标词作为纠错结果输出给搜索系统。当然,最终的纠错结果也可能是0个,搜索查询词纠错装置可以返回0个纠错结果,或者直接返回错误的查询词等。
本实施例提供的搜索查询词纠错方法,搜索查询词纠错装置接收到搜索请求中的查询词后,首先获取查询词中各子词的纠错候选子词列表;然后再根据预先建立的N-Gram语言模型,对各纠错候选子词列表拼接成的各纠错候选词语进行实时在线评分,获取纠错目标词列表;最后再根据纠错目标词列表中各纠错目标词的评分输出最终的纠错结果,其基于在线的分析计算,实时对用户输入的搜索查询词进行纠错,无需离线海量数据处理和历史纠错数据库,且不依赖于大规模的搜索日志和用户反馈,对于移动应用市场等应用场景,能够有效的提高纠错能力。
图3为本发明提供的搜索查询词纠错方法实施例二的流程示意图,本实施例是对上述图2所示实施例中步骤S202的进一步说明,在上述图2所示实施例的基础上,如图3所示,本实施例中,步骤S202根据预先建立的词语纠错映射表,获取查询词中各子词的纠错候选子词列表,具体包括:
步骤S301、对查询词进行分词处理,获取查询词的子词列表。
具体的,查询词可能包括中文、拼音和英文,对查询词处理包括:中文分词、拼音切分和英文切分。其中,对于中文分词,在进行分词处理时,可以基于单字模式进行切分,例如“天天酷跑”分词为“天天酷跑”;也可以基于词语模型进行切分,例如“天天酷跑”分词为“天天酷跑”,其中,单字模式中,若拆分后的子词总数超过预设阈值(例如8),则可以不进行后续纠错处理,直接返回0个纠错结果。拼音切分和英文切分可以统称为字符串切分,具体可以采用逆向最大匹配、正向最大匹配、双向最大匹配、最少切分等切分算法进行字符串切分,下面以切分算法采用逆向最大匹配算法为例说明字符串切分的具体方案。
图4为本发明提供的一种字符串切分方法的流程示意图,如图4所示,切分算法采用逆向最大匹配算法,输入字符串为“facebookweibo”。采用逆向匹配,可以优先输出总词数少但单个词较长的切分。算法从后往前扫描字符串,检测当前前缀子串是否为拼音或英文,具体可通过检测该子串是否存在于词语纠错映射表中来判断其是否为合法拼音或英文。如果算法可以找到第一个切分点,如“facebook”,则递归检查后缀子串(“weibo”),直到成功输出一个切分,或者切分失败。
本实施例中,可以通过系统配置参数,来设定对一个字符串是进行单切分(只获取第一个切分结果)、多切分(获取前预设数量个切分结果)还是全切分(获取所有可能的切分结果)。若非单切分(即为多切分或全切分),算法在找到一个切分点后,还需要继续往前扫描,寻找下一个合法的前缀,如“face”和“fa”。每一个新的切分点,都对应一个后缀递归过程。若字符串串较长且全切分候选过多,算法耗时可能很长,则可以设定一个阀值,算法切分时间超过该阀值后则自动终止(如图4中右侧一列所示),合并输出当前获得的部分切分结果列表(如图4中左侧一列所示)。
此外,本实施例中,还可以通过系统配置参数,设定是否对字符串(拼音和英文)进行独立或混合切分。如果设置为独立切分,拼音字符串“weibo”可以切分为“wei bo”,英文字符串“angrybirds”可以切分为“angry birds”,但“facebookweibo”就不会被切分,因为切分结果里面混合了拼音和英文。混合切分比较耗时,但应用范围更广,具体可根据
不同应用场景设置。
步骤S302、根据预先建立的词语纠错映射表,获取子词列表中各子词的纠错候选子词列表。
在上述实施例中提到,通过训练语料集,可以创建出词语纠错映射表,根据该词语纠错映射表,则可以获取子词列表中各子词的纠错候选子词列表。
本实施例中,词语纠错映射表在成功创建后,可以序列化后以二进制文件的格式存储在搜索查询词纠错装置外部的存储设备上,当训练语料集改变时随之更新,装置在每次启动时将它们快速加载到内存中使用。
另外,本实施例中,训练语料集与应用场景密切相关,其选用应用场景中要搜索的内容项(如应用、网页、人员、图书等)的所有可索引字段的文本值集合作为训练语料。例如,移动应用市场中,可索引字段为上线应用的名称和描述;员工检索系统中,可索引字段为职工姓名、部门、地址、项目简历等;图书检索系统,可索引字段为图书标题、作者、全文文本等。
作为一种可选的实施方式,可以使用近一段时期(如1个月)的查询词日志(去除错误查询词后)来扩充训练语料集。此外,可以不使用与应用场景无关的通用语料集(如新闻文章)来做训练语料集,以减少出现纠错目标词不匹配任何内容项可索引字段值的“无效纠错”(即在训练语料集中出现次数为0)问题。当然,也可以按特定系统实现或业务需求,加入部分通用语料集做训练语料集。
此外,搜索查询词纠错装置适用的训练语料集会随时间不断发生变化,例如移动应用市场场景,新应用不断上线、旧应用部分下线、查询词日志持续增长。搜索查询词纠错装置可以根据训练语料集的变化程度,定期更新词语纠错映射表。具体可以是装置每天定时(如凌晨)基于最新的训练语料集,自动更新外置的词语纠错映射表并重载到内存;也可以是装置提供管理员用户界面和接口,让系统管理员在任何时刻,都可以手动操作更新重载数据结构文件,这两种实施方式可以结合使用。
可选的,词语纠错映射表包括:拼音汉字映射表、英文单词索引表
和同形异义词典中的至少一种;则步骤S302具体可以包括下列实施方式中的至少一种:
第一种实施方式:根据拼音汉字映射表获取子词列表中各中文或拼音子词的同音或近音纠错候选词,例如“墨迹”-[“默记”、“莫急”……],“明”-[“民”、“名”……]。
第二种实施方式:根据英文单词索引表获取子词列表中各英文子词的纠错候选词,例如“twiter”-[“twitter”]。
第三种实施方式:根据同形异义词典获取子词列表中各中文子词的同形异义纠错候选词,例如“曰”-[“日”]。
进一步的,上述实施方式中,根据英文单词索引表获取子词列表中各英文子词的纠错候选词,具体可以包括:
对于子词列表中每个英文子词,根据英文单词索引表获取按照与英文子词编辑距离从小到大排序的前M个单词以及各单词的语料集出现次数;
根据M个单词的编辑距离和语料集出现次数,对单词进行评分排序,并选取排序结果中的前N个单词作为英文子词的纠错候选词,其中,M和N为正整数,且M大于N。
具体的,当一个英文单词需要纠错时,可以通过英文单词索引表快速定位出与该英文单词编辑距离相近的前M个单词,然后对每一个单词,将其编辑距离与语料集出现次数加权结合评分,输出评分高的N个纠错候选词。具体在进行加权评分时,可以基于优先考虑与原词拼写近似、并且在语料中出现频繁的合法英文单词作为纠错候选词来设置加权评分方法,例如:评分=语料集出现次数/编辑距离。
另外,在判断一个英文单词是否需要纠错时,可以通过英文单词索引表来确定。具体可以是确定只有不在英文单词索引表中的英文单词才需要查找纠错候选词;也可以是确定在英文单词索引表中出现次数低于预设阀值的,需要查找纠错候选词。
本实施例提供的搜索查询词纠错方法,分词处理灵活,适应性强,且词语纠错映射表根据特定应用场景建立,全面可靠,从而采用根据词语纠错映射表获取的纠错候选子词列表来获取纠错结果置信度高,纠错
性能力强。
图5为本发明提供的搜索查询词纠错方法实施例三的流程示意图,本实施例是上述图2所示实施例中步骤S203的一种具体的实现方式,在上述实施例的基础上,如图5所示,本实施例中,步骤S203根据各纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表,具体包括:
步骤S501、对各纠错候选子词列表进行字符串拼接处理,获取纠错候选词列表。
具体的,查询词的各子词对应有纠错候选子词列表,将各纠错候选子词列表按顺序进行字符串拼接处理,即可获取一个纠错候选词列表,该列表中的纠错候选词作为整个查询词的纠错候选项,每个纠错候选词的子词个数与查询词子词个数一致。
步骤S502、根据预先建立的N-Gram语言模型,计算纠错候选词列表中各纠错候选词的词语评分,并根据各纠错候选词的词语评分对各纠错候选词进行排序,获取纠错目标词列表。
根据N-Gram语言模型计算出纠错候选词列表中各纠错候选词的词语概率后,可以将词语概率作为纠错候选词的词语评分,或者将各纠错候选词的词语概率归一化后作为各纠错候选词的词语评分;根据评分可以对这些纠错候选词进行排序处理,获取按纠错候选词词语评分从高到低顺序排列的纠错目标词列表,其中,评分越高表示该纠错目标词是正确查询词的可能性越高,在输出纠错结果时可以选取纠错目标词列表中第一个或前几个纠错目标词输出。
本实施例提供的搜索查询词纠错方法,算法简单,可以适用于查询词子词较少的情景。
图6为本发明提供的搜索查询词纠错方法实施例四的流程示意图,本实施例是上述图2所示实施例中步骤S203的另一种具体的实现方式,在上述实施例的基础上,如图6所示,本实施例中,步骤S203根据各纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表,具
体包括:
将查询词中第一子词的纠错候选子词列表作为第一中间结果,对第一中间结果执行纠错目标词查找操作,其中,纠错目标词查找操作包括:
步骤S601、根据N-Gram语言模型,获取第一中间结果中各候选词的N-Gram评分。
步骤S602、根据N-Gram评分对第一中间结果进行排序,并在中间结果中候选词的个数超出预设阈值L时,截取中间结果中前L个候选词作为第二中间结果。
步骤S603、将查询词中第二子词的纠错候选子词列表与第二中间结果进行词语拼接后作为新的第一中间结果,返回执行步骤S601,直至获取子词列表中最后一个子词对应的第二中间结果,并将第二中间结果作为纠错目标词列表。
本实施例的方法是基于启发式、贪婪原理的查找算法,图7(a)-图7(d)为本发明提供的贪婪算法的算法流程示意图,如图7(a)-图7(d)所示,该图是对一个样例查询词“全明抢战辟纸”的处理流程。这个查询词有三处错误,分别为拼音同音字(“抢”-“枪”)、近似拼音(“明”-“民”)和同形异义字(“辟”-“壁”),正确纠错结果应该是“全民枪战壁纸”。实际应用场景中,一个用户查询词一般不会有这么多种错误同时出现,这里只是为了更好地说明算法流程而举例。
假设对查询词进行中文分词后,得到长度为N的一个子词列表。本举例中采用单字分词模式(即每个汉字都是一个子词),子词列表为[“全”,“明”,“抢”,“战”,“辟”,“纸”],即N=6。对每一个子词,基于拼音汉字映射表、近似拼音转换规则和同形异义词典,可以确定该子词的纠错候选子词列表,即其所有同音、近音、同形异义词的并集,如图7(a)所示,对于每个子词,用CL1表示该子词的拼音同音子词列表,CL2表示该子词的拼音近音子词列表,CL3表示该子词的同形异义子词列表,则该词的纠错候选子词列表CL=CL1∪CL2∪CL3。
贪婪算法的计算处理是一个多轮的过程,轮数为子词列表的长度N。算法首先将查询词中第一个子词(即第一子词)的纠错候选子词列表作为
第一中间结果,对第一中间结果执行纠错目标词查找操作,具体包括:计算第一中间结果中各个候选词的N-gram评分(即词语概率),然后按照N-gram评分对各候选词进行排序,例如P(“全”)>P(“权”)>…P(“圈”),得到排序后的第一中间结果。若第一中间结果的长度超过一个系统预设阀值L(如30),则超出L的列表后部截去,只保留前L个候选词,得到第二中间结果TR1。这是第一轮处理Round1,参见图7(a)。
第二轮处理Round2,算法将第二个子词(即第二子词)的纠错候选子词列表与TR1做两两词语拼接,得到新的第一中间结果,对新的第一中间结果执行纠错目标词查找操作,即计算新的第一中间结果中每个词的N-gram评分,然后同样按评分和阀值L做排序截枝,得到列表如P(“全民”)>P(“全明”)>…P(“圈名”),即新的第二中间结果TR2,参见图7(b)。第三轮处理Round3,算法将第三个子词的纠错候选子词列表与TR2两两拼接,得到TR3,参见图7(c)。
算法持续循环,最后第N轮(即第六轮)处理RoundN中,第N个子词的候选列表与TRN-1中间结果两两拼接,得到TRN,即纠错目标词列表R=TRN,参见图7(d)。
本实施例中,可选的,在获取纠错目标词列表过程中,还可以将各中间结果中N-Gram评分小于或等于对应的查询词的N-Gram评分的候选词删除。
具体的,针对每一轮处理的中间结果,列表中评分小于或等于原查询词的候选词去掉。例如,假设P(“圈明”)<P(“全明抢战辟纸”),则TR2中候选词“圈明”去掉。
该方法基于N-gram的评分公式,如P(“全民枪战”)=P(“全”)*P(“民”|“全”)*P(“枪”|“全民”)*P(“战”|“全民枪”)。由公式可见,一个词的N-gram评分一定比它的任意前缀词低,即P(“圈明枪战壁纸”)<P(“圈明”),前缀词的评分都低于原查询词的话,无需再考虑基于该前缀的所有候选词了。该方法能够尽早过滤不合条件的候选词,减少算法的搜索空间,降低时间复杂度。
另外,对于中间结果,还可以将中间结果中不匹配N-gram语言模型和原查询词的候选词去掉,例如:假设“圈明”不是N-gram语言模型中
存在的N-gram,N-gram语言模型采用平滑策略会输出一个很低的概率,同时也会提示该词语不匹配N-gram语言模型,而该词语也不匹配原查询词,此时可将该词语去掉。
本实施例中,可选的,在获取纠错目标词列表过程中,若根据各纠错候选子词列表和预先建立的N-Gram语言模型获取纠错目标词列表的当前耗时超出预设时间,则可以将当前的中间结果与未进行词语拼接的纠错候选子词列表对应的子词进行词语拼接后作为纠错目标词列表。
具体的,在算法执行第一轮处理时开始计时,运行过程中不断监测,如果在第i轮处理中(i<N),发现累计耗时已超过一个系统预设时间(如100毫秒),则算法提前终止,返回当前的局部纠错结果,以避免因某些子词的候选列表过长,导致算法长期无法结束。
以图7(a)-图7(d)所示例子为例,假设第三轮处理中算法超时,则将TR3作为局部纠错结果,后续子词用原查询词中的子词“战辟纸”直接拼接,得到的纠错目标词列表作为输出结果,如[“全民抢战辟纸”,“全民枪战辟纸”,…]。
另外,上述实施例中提到,中文分词可以采用单字模式或词语模式,对于词语模式,在采用上述贪婪算法时,可能存在查询词与正确纠错结果不匹配的现象,例如:错误查询词“默迹天气”分词后为“默迹天气”,而纠错目标词分词后为“墨迹天气”,两者不匹配;此时,可以将查询词拼音全切分后得到多种拼音分词串,如“moji tianqi”、“mo ji tianqi”、“mo ji tian qi”等,依次对各个拼音串调用贪婪纠错结果查找算法,合并结果即可。
本实施例提供的搜索查询词纠错方法,采用贪婪算法处理各纠错候选子词列表,获取最终的纠错目标词列表,有效的提高了系统运行效率。
在上述实施例的基础上,在本发明的一实施例中,在步骤S204根据纠错目标词列表输出纠错结果之前,该方法还包括:对纠错目标词列表进行结果过滤,以确保输出置信度高的纠错结果,降低误纠比率,提升用户体验。
本实施例中,可以采用下列实施方式中的至少一种进行结果过滤:
第一种实施方式:根据N-Gram语言模型,计算纠错目标词列表中各纠错目标词的语句评分,并根据语句评分对纠错目标词列表进行排序。
具体的,词语概率在纠错查找过滤中间结果时效果较好,因为涉及不完整子词的评分。而语句概率在过滤最终结果时可能效果更好,因为大部分应用场景中,查询词都是完整的一个子句(如移动应用名称、员工全名、图书标题)。
本实施例中,对纠错结果查找模块输出的每个目标词,重新计算其N-gram句子概率而非词语概率作为评分。对每个纠错目标词重新评分后,将结果列表按新的评分排序。N-gram句子概率的计算公式为:P(<s>W1W2…Wn</s>)=P(W1|<s>)*P(W2|<s>W1)…*P(</s>|<s>W1W2…Wn)。<s>与</s>为N-gram语言模型定义的句子开始和结束符。
第二种实施方式:检查纠错目标词列表中各纠错目标词的所有子词,对包含近似拼音子词的纠错目标词,将其评分乘以一个惩罚因子,然后根据评分对纠错目标词列表进行排序,其中近似拼音子词的拼音与对应的查询词的子词拼音为近似拼音。
具体的,近似拼音字作为纠错目标的概率相比同音字要低,因为通常情况下用户将查询词中某个字输错为近似拼音字的可能性要比输错为同音字的可能性低。对包含近似拼音子词的纠错目标词,可以将其评分乘以一个惩罚因子,纠错目标词中越多近似拼音子词,惩罚程度越大。
假设查询词分词后,子词总数为N,纠错目标词列表中每个纠错目标词分词后子词数也是N。检查各个纠错目标词的所有子词,统计拼音与原查询词对应子词的拼音为近似拼音而非同音的子词总数,记为M。例如,原查询词为“全名枪战”,纠错目标词为“全民枪战”,则N=4,M=1。对包含近似拼音子词的纠错目标词,其评分将乘以一个值为(0,1)之间惩罚因子p,例如p=(1+N–M)/(1+N)。对部分纠错目标词的评分加入惩罚因子后,对列表重新排序。公式中的分子分母均加上1,是为了使得N=M时,p的值不为0。
第三种实施方式:将纠错目标词列表中评分低于期望阈值的纠错目
标词删除,其中,期望阈值根据查询词的子词个数确定。
具体的,可以设定系统参数α,取值范围为(0,1)。假设查询词分词后子词数为n,则其句子概率为n+1个概率的乘积。则可将期望阈值设置αn+1,即对于各个纠错目标词,其评分须高于α的n+1次方否则被过滤掉。另外,为了避免期望值过高而过滤掉正确的纠错目标词,可以设定另一系统参数β,将αn+1修改为αβ*(n+1),其中β可取任意实数值(如1.5、2或3)。
可选的,为确保纠错的实时性能,降低单个纠错请求的平均响应时间,提升系统的整体吞吐量,本实施例的方法可以还可以包括以下四种缓存机制,其均可用哈希表来实现:
第一种、纠错结果缓存:哈希表的键为查询词(大小写不敏感),值为纠错结果。
本实施例中,可以将已进行纠错处理后的查询词与纠错结果的映射关系存储在表中,后续在进行纠错处理时,可以首先查询该表,若查询词匹配某缓存项的键值,则直接返回对应的结果,无需再经上述纠错处理。
第二种、N-gram评分缓存:哈希表的键为N元词组,如“音乐”、“爱奇艺”,值为该词组的N-gram语言模型评分。
具体的,对词语进行评分时,N-gram语言模型需要实时计算后返回概率,对于已计算过的词语,可以将词语与评分的映射关系存储在表中,后续在进行评分计算时,可首先查询该表,若查询词匹配某缓存项的键值,则直接返回对应的结果,无需再经N-gram语言模型进行计算。
第三种、N-gram状态缓存:哈希表的键为N元词组,值为一个布尔值,表示该词组是否在训练语料中出现过,即是否匹配N-gram语言模型,也即是否为一个合法的N-gram。
在采用N-gram语言模型计算词语概率的过程中,有些词组可能不匹配N-gram语言模型(即该词组没有在训练语料中出现过),对于N-gram语言模型中不存在的N-gram,N-gram语言模型采用平滑策略会输出一个很低的概率,同时也会提示该词组不匹配N-gram语言模型,此时可将该词组存储在表中,将其对应的布尔值设置为假,从而后续遇到相同词组
在进行评分计算时,可直接通过该表确定该词组不合法。
第四种、中间结果缓存:哈希表的键为一个拼音串,如“ai”、“tiantian”,值为贪婪算法中,该拼音串对应的排序截枝后的中间结果,即第二中间结果。
在纠错目标词查找过程中,如果前后多个不同查询词有相同拼音的前缀子串,则可通过该表直接采用该子串对应的中间结果,无需重新计算。
对于中文分词中的词语模式,通过该方法可以有效的减小计算量,提高系统运行效率。
本实施例提供的搜索查询词纠错方法,对纠错目标词列表进行结果过滤后再输出纠错结果,能够有效的降低误纠比率,提升用户体验。
图8为本发明提供的搜索查询词纠错装置实施例一的结构示意图,本实施例的装置可以为单独的设备,也可以集成在纠错子系统中,如图8所示,本实施例的装置包括:接收模块10、纠错预处理模块20、纠错处理模块30和输出模块40,其中,
接收模块10,用于接收搜索请求中的查询词;
纠错预处理模块20,用于根据预先建立的词语纠错映射表,获取查询词中各子词的纠错候选子词列表;
纠错处理模块30,用于根据各纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表;
输出模块40,根据纠错目标词列表输出纠错结果。
本发明实施例提供的搜索查询词纠错装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。
在本发明的一实施例中,纠错处理模块30,具体用于:
对各纠错候选子词列表进行字符串拼接处理,获取纠错候选词列表;
根据预先建立的N-Gram语言模型,计算纠错候选词列表中各纠错候选词的词语评分,并根据各纠错候选词的词语评分对各纠错候选词进行
排序,获取纠错目标词列表。
在本发明的另一实施例中,纠错处理模块30,具体用于:
将查询词中第一子词的纠错候选子词列表作为第一中间结果,对第一中间结果执行纠错目标词查找操作,其中,纠错目标词查找操作包括:
根据N-Gram语言模型,获取第一中间结果中各候选词的N-Gram评分;
根据N-Gram评分对第一中间结果进行排序,并在中间结果中候选词的个数超出预设阈值L时,截取中间结果中前L个候选词作为第二中间结果;
将查询词中第二子词的纠错候选子词列表与第二中间结果进行词语拼接后作为新的第一中间结果,返回执行纠错目标词查找操作,直至获取子词列表中最后一个子词对应的第二中间结果,并将第二中间结果作为纠错目标词列表。
本实施例中,作为一种可选的实施方式,纠错处理模块30还用于:将各中间结果中N-Gram评分小于或等于对应的查询词的N-Gram评分的候选词删除。
作为另一种可选的实施方式,纠错处理模块30还用于:若根据各纠错候选子词列表和预先建立的N-Gram语言模型获取纠错目标词列表的当前耗时超出预设时间,则将当前的中间结果与未进行词语拼接的纠错候选子词列表对应的子词进行词语拼接后作为纠错目标词列表。
本发明实施例提供的搜索查询词纠错装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。
图9为本发明提供的搜索查询词纠错装置实施例二的结构示意图,本实施例是对上述图8所示实施例的进一步优化,如图9所示,在上述图8所示实施例的基础上,本实施例的装置还包括:
纠错结果过滤模块50,用于对纠错目标词列表进行结果过滤。
作为本发明具体的实施方式,纠错结果过滤模块50具体用于:
根据N-Gram语言模型,计算纠错目标词列表中各纠错目标词的语句
评分,并根据语句评分对纠错目标词列表进行排序;
检查纠错目标词列表中各纠错目标词的所有子词,对包含近似拼音子词的纠错目标词,将其评分乘以一个惩罚因子,然后根据评分对纠错目标词列表进行排序,其中近似拼音子词的拼音与对应的查询词的子词拼音为近似拼音;
将纠错目标词列表中评分低于期望阈值的纠错目标词删除,其中,期望阈值根据查询词的子词个数确定。
本实施中,可选的,纠错预处理模块20,具体用于:
对查询词进行分词处理,获取查询词的子词列表;
根据预先建立的词语纠错映射表,获取子词列表中各子词的纠错候选子词列表。
进一步的,词语纠错映射表包括:拼音汉字映射表、英文单词索引表和同形异义词典中的至少一种;
则纠错预处理模块20,具体用于:
根据拼音汉字映射表获取子词列表中各中文或拼音子词的同音或近音纠错候选词;
根据英文单词索引表获取子词列表中各英文子词的纠错候选词;
根据同形异义词典获取子词列表中各中文子词的同形异义纠错候选词。
作为本发明一种具体的实施方式,纠错预处理模块20,具体用于:
对于子词列表中每个英文子词,根据英文单词索引表获取按照与英文子词编辑距离从小到大排序的前M个单词以及各单词的语料集出现次数;
根据M个单词的编辑距离和语料集出现次数,对单词进行评分排序,并选取排序结果中的前N个单词作为英文子词的纠错候选词,其中,M和N为正整数,且M大于N。
本发明实施例提供的搜索查询词纠错装置,可以执行上述方法实施例,其实现原理和技术效果类似,此处不再赘述。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通
技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (20)
- 一种搜索查询词纠错方法,其特征在于,包括:接收搜索请求中的查询词;根据预先建立的词语纠错映射表,获取所述查询词中各子词的纠错候选子词列表;根据各所述纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表;根据所述纠错目标词列表输出纠错结果。
- 根据权利要求1所述的方法,其特征在于,所述根据各所述纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表,具体包括:对各所述纠错候选子词列表进行字符串拼接处理,获取纠错候选词列表;根据预先建立的N-Gram语言模型,计算所述纠错候选词列表中各纠错候选词的词语评分,并根据各所述纠错候选词的词语评分对各所述纠错候选词进行排序,获取纠错目标词列表。
- 根据权利要求1所述的方法,其特征在于,所述根据各所述纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表,具体包括:将所述查询词中第一子词的纠错候选子词列表作为第一中间结果,对所述第一中间结果执行纠错目标词查找操作,其中,所述纠错目标词查找操作包括:根据所述N-Gram语言模型,获取所述第一中间结果中各候选词的N-Gram评分;根据所述N-Gram评分对所述第一中间结果进行排序,并在所述中间结果中候选词的个数超出预设阈值L时,截取所述中间结果中前L个候选词作为第二中间结果;将所述查询词中第二子词的纠错候选子词列表与所述第二中间结果进行词语拼接后作为新的第一中间结果,返回执行所述纠错目标词查找操作,直至获取所述子词列表中最后一个子词对应的第二中间结果,并 将所述第二中间结果作为所述纠错目标词列表。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:将各中间结果中N-Gram评分小于或等于对应的查询词的N-Gram评分的候选词删除。
- 根据权利要求3或4所述的方法,其特征在于,所述方法还包括:若根据各所述纠错候选子词列表和预先建立的N-Gram语言模型获取纠错目标词列表的当前耗时超出预设时间,则将当前的中间结果与未进行词语拼接的纠错候选子词列表对应的子词进行词语拼接后作为纠错目标词列表。
- 根据权利要求1-5任一项所述的方法,其特征在于,在所述根据所述纠错目标词列表输出纠错结果之前,所述方法还包括:对所述纠错目标词列表进行结果过滤。
- 根据权利要求6所述的方法,其特征在于,所述对所述纠错目标词列表进行结果过滤,具体包括下列方法中的至少一种:根据所述N-Gram语言模型,计算所述纠错目标词列表中各纠错目标词的语句评分,并根据语句评分对所述纠错目标词列表进行排序;检查所述纠错目标词列表中各纠错目标词的所有子词,对包含近似拼音子词的纠错目标词,将其评分乘以一个惩罚因子,然后根据评分对所述纠错目标词列表进行排序,其中所述近似拼音子词的拼音与对应的查询词的子词拼音为近似拼音;将所述纠错目标词列表中评分低于期望阈值的纠错目标词删除,其中,所述期望阈值根据查询词的子词个数确定。
- 根据权利要求1-7任一项所述的方法,其特征在于,所述根据预先建立的词语纠错映射表,获取所述查询词中各子词的纠错候选子词列表,具体包括:对所述查询词进行分词处理,获取所述查询词的子词列表;根据预先建立的词语纠错映射表,获取所述子词列表中各子词的纠错候选子词列表。
- 根据权利要求8所述的方法,其特征在于,所述词语纠错映射表 包括:拼音汉字映射表、英文单词索引表和同形异义词典中的至少一种;所述根据预先建立的词语纠错映射表,获取所述子词列表中各子词的纠错候选子词列表,具体包括下列方法中的至少一种:根据所述拼音汉字映射表获取所述子词列表中各中文或拼音子词的同音或近音纠错候选词;根据所述英文单词索引表获取所述子词列表中各英文子词的纠错候选词;根据所述同形异义词典获取所述子词列表中各中文子词的同形异义纠错候选词。
- 根据权利要求9所述的方法,其特征在于,所述根据所述英文单词索引表获取所述子词列表中各英文子词的纠错候选词,具体包括:对于所述子词列表中每个英文子词,根据所述英文单词索引表获取按照与所述英文子词编辑距离从小到大排序的前M个单词以及各所述单词的语料集出现次数;根据所述M个单词的编辑距离和语料集出现次数,对所述单词进行评分排序,并选取排序结果中的前N个单词作为所述英文子词的纠错候选词,其中,M和N为正整数,且M大于N。
- 一种搜索查询词纠错装置,其特征在于,包括:接收模块,用于接收搜索请求中的查询词;纠错预处理模块,用于根据预先建立的词语纠错映射表,获取所述查询词中各子词的纠错候选子词列表;纠错处理模块,用于根据各所述纠错候选子词列表和预先建立的N-Gram语言模型,获取纠错目标词列表;输出模块,根据所述纠错目标词列表输出纠错结果。
- 根据权利要求11所述的装置,其特征在于,所述纠错处理模块,具体用于:对各所述纠错候选子词列表进行字符串拼接处理,获取纠错候选词列表;根据预先建立的N-Gram语言模型,计算所述纠错候选词列表中各纠 错候选词的词语评分,并根据各所述纠错候选词的词语评分对各所述纠错候选词进行排序,获取纠错目标词列表。
- 根据权利要求11所述的装置,其特征在于,所述纠错处理模块,具体用于:将所述查询词中第一子词的纠错候选子词列表作为第一中间结果,对所述第一中间结果执行纠错目标词查找操作,其中,所述纠错目标词查找操作包括:根据所述N-Gram语言模型,获取所述第一中间结果中各候选词的N-Gram评分;根据所述N-Gram评分对所述第一中间结果进行排序,并在所述中间结果中候选词的个数超出预设阈值L时,截取所述中间结果中前L个候选词作为第二中间结果;将所述查询词中第二子词的纠错候选子词列表与所述第二中间结果进行词语拼接后作为新的第一中间结果,返回执行所述纠错目标词查找操作,直至获取所述子词列表中最后一个子词对应的第二中间结果,并将所述第二中间结果作为所述纠错目标词列表。
- 根据权利要求13所述的装置,其特征在于,所述纠错处理模块还用于:将各中间结果中N-Gram评分小于或等于对应的查询词的N-Gram评分的候选词删除。
- 根据权利要求13或14所述的装置,其特征在于,所述纠错处理模块还用于:若根据各所述纠错候选子词列表和预先建立的N-Gram语言模型获取纠错目标词列表的当前耗时超出预设时间,则将当前的中间结果与未进行词语拼接的纠错候选子词列表对应的子词进行词语拼接后作为纠错目标词列表。
- 根据权利要求11-15任一项所述的装置,其特征在于,所述装置还包括:纠错结果过滤模块,用于对所述纠错目标词列表进行结果过滤。
- 根据权利要求16所述的装置,其特征在于,所述纠错结果过滤 模块具体用于:根据所述N-Gram语言模型,计算所述纠错目标词列表中各纠错目标词的语句评分,并根据语句评分对所述纠错目标词列表进行排序;检查所述纠错目标词列表中各纠错目标词的所有子词,对包含近似拼音子词的纠错目标词,将其评分乘以一个惩罚因子,然后根据评分对所述纠错目标词列表进行排序,其中所述近似拼音子词的拼音与对应的查询词的子词拼音为近似拼音;将所述纠错目标词列表中评分低于期望阈值的纠错目标词删除,其中,所述期望阈值根据查询词的子词个数确定。
- 根据权利要求11-17任一项所述的装置,其特征在于,所述纠错预处理模块,具体用于:对所述查询词进行分词处理,获取所述查询词的子词列表;根据预先建立的词语纠错映射表,获取所述子词列表中各子词的纠错候选子词列表。
- 根据权利要求18所述的装置,其特征在于,所述词语纠错映射表包括:拼音汉字映射表、英文单词索引表和同形异义词典中的至少一种;所述纠错预处理模块,具体用于:根据所述拼音汉字映射表获取所述子词列表中各中文或拼音子词的同音或近音纠错候选词;根据所述英文单词索引表获取所述子词列表中各英文子词的纠错候选词;根据所述同形异义词典获取所述子词列表中各中文子词的同形异义纠错候选词。
- 根据权利要求19所述的装置,其特征在于,所述纠错预处理模块,具体用于:对于所述子词列表中每个英文子词,根据所述英文单词索引表获取按照与所述英文子词编辑距离从小到大排序的前M个单词以及各所述单词的语料集出现次数;根据所述M个单词的编辑距离和语料集出现次数,对所述单词进行 评分排序,并选取排序结果中的前N个单词作为所述英文子词的纠错候选词,其中,M和N为正整数,且M大于N。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510791328.4 | 2015-11-17 | ||
CN201510791328.4A CN106708893B (zh) | 2015-11-17 | 2015-11-17 | 搜索查询词纠错方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017084506A1 true WO2017084506A1 (zh) | 2017-05-26 |
Family
ID=58717333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2016/104843 WO2017084506A1 (zh) | 2015-11-17 | 2016-11-07 | 搜索查询词纠错方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106708893B (zh) |
WO (1) | WO2017084506A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828981A (zh) * | 2017-11-22 | 2019-05-31 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及计算设备 |
CN110600005A (zh) * | 2018-06-13 | 2019-12-20 | 蔚来汽车有限公司 | 语音识别纠错方法及装置、计算机设备和记录介质 |
CN111369996A (zh) * | 2020-02-24 | 2020-07-03 | 网经科技(苏州)有限公司 | 一种特定领域的语音识别文本纠错方法 |
CN111694985A (zh) * | 2020-06-17 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 搜索方法、装置、电子设备及计算机可读存储介质 |
CN113012705A (zh) * | 2021-02-24 | 2021-06-22 | 海信视像科技股份有限公司 | 一种语音文本的纠错方法及装置 |
US20210192138A1 (en) * | 2018-09-14 | 2021-06-24 | Beijing Bytedance Network Technology Co., Ltd. | Method and device for generating modified statement |
CN116028700A (zh) * | 2023-03-29 | 2023-04-28 | 小米汽车科技有限公司 | 车辆的离线查询方法及其装置 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107221328B (zh) * | 2017-05-25 | 2021-02-19 | 百度在线网络技术(北京)有限公司 | 修改源的定位方法及装置、计算机设备及可读介质 |
CN107357778B (zh) * | 2017-06-22 | 2020-10-30 | 达而观信息科技(上海)有限公司 | 一种变形词的识别验证方法及系统 |
CN107301241B (zh) * | 2017-07-03 | 2020-06-05 | 北京奇艺世纪科技有限公司 | 一种视频搜索中的查询词纠错方法和装置 |
CN107544726B (zh) * | 2017-07-04 | 2021-04-16 | 百度在线网络技术(北京)有限公司 | 基于人工智能的语音识别结果纠错方法、装置及存储介质 |
CN107832439B (zh) * | 2017-11-16 | 2019-03-08 | 百度在线网络技术(北京)有限公司 | 多轮状态追踪的方法、系统及终端设备 |
CN107958039A (zh) * | 2017-11-21 | 2018-04-24 | 北京百度网讯科技有限公司 | 一种检索词纠错方法、装置及服务器 |
CN108062373A (zh) * | 2017-12-12 | 2018-05-22 | 焦点科技股份有限公司 | 一种具有纠错功能的关键词下拉联想的方法 |
CN110032722A (zh) * | 2018-01-12 | 2019-07-19 | 北京京东尚科信息技术有限公司 | 文本纠错方法和装置 |
CN110069143A (zh) * | 2018-01-22 | 2019-07-30 | 北京搜狗科技发展有限公司 | 一种信息防误纠方法、装置和电子设备 |
CN108647202B (zh) * | 2018-04-11 | 2022-09-06 | 广州视源电子科技股份有限公司 | 候选词评估方法、装置、计算机设备和存储介质 |
CN108664467B (zh) * | 2018-04-11 | 2022-09-06 | 广州视源电子科技股份有限公司 | 候选词评估方法、装置、计算机设备和存储介质 |
CN108694167B (zh) * | 2018-04-11 | 2022-09-06 | 广州视源电子科技股份有限公司 | 候选词评估方法、候选词排序方法及装置 |
CN108628826B (zh) * | 2018-04-11 | 2022-09-06 | 广州视源电子科技股份有限公司 | 候选词评估方法、装置、计算机设备和存储介质 |
CN108595419B (zh) * | 2018-04-11 | 2022-05-03 | 广州视源电子科技股份有限公司 | 候选词评估方法、候选词排序方法及装置 |
CN108664466B (zh) * | 2018-04-11 | 2022-07-08 | 广州视源电子科技股份有限公司 | 候选词评估方法、装置、计算机设备和存储介质 |
CN108733646B (zh) * | 2018-04-11 | 2022-09-06 | 广州视源电子科技股份有限公司 | 候选词评估方法、装置、计算机设备和存储介质 |
CN110717010B (zh) * | 2018-06-27 | 2023-01-13 | 北京嘀嘀无限科技发展有限公司 | 一种文本处理方法及系统 |
WO2019228065A1 (en) * | 2018-06-01 | 2019-12-05 | Beijing Didi Infinity Technology And Development Co., Ltd. | Systems and methods for processing queries |
CN110162681B (zh) * | 2018-10-08 | 2023-04-18 | 腾讯科技(深圳)有限公司 | 文本识别、文本处理方法、装置、计算机设备和存储介质 |
CN111310440B (zh) * | 2018-11-27 | 2023-05-30 | 阿里巴巴集团控股有限公司 | 文本的纠错方法、装置和系统 |
CN109543022B (zh) | 2018-12-17 | 2020-10-13 | 北京百度网讯科技有限公司 | 文本纠错方法和装置 |
CN111797614A (zh) * | 2019-04-03 | 2020-10-20 | 阿里巴巴集团控股有限公司 | 文本处理方法及装置 |
CN110046350B (zh) * | 2019-04-12 | 2023-04-07 | 百度在线网络技术(北京)有限公司 | 文法错误识别方法、装置、计算机设备及存储介质 |
CN110188274B (zh) * | 2019-05-30 | 2021-06-08 | 口口相传(北京)网络技术有限公司 | 搜索纠错方法及装置 |
CN110532572A (zh) * | 2019-09-12 | 2019-12-03 | 四川长虹电器股份有限公司 | 基于tan树形朴素贝叶斯的拼写检查方法 |
CN112989148A (zh) * | 2019-12-13 | 2021-06-18 | 华为技术有限公司 | 纠错词排序方法、装置、终端设备和存储介质 |
CN111639495A (zh) * | 2020-04-28 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 平行语料生成方法、装置、设备及存储介质 |
CN112182353B (zh) * | 2020-12-01 | 2021-02-26 | 震坤行网络技术(南京)有限公司 | 用于信息搜索的方法、电子设备和存储介质 |
CN112905026B (zh) * | 2021-03-30 | 2024-04-16 | 完美世界控股集团有限公司 | 展示单词建议的方法、装置、存储介质及计算机设备 |
CN113220860A (zh) * | 2021-06-02 | 2021-08-06 | 中国农业银行股份有限公司 | 搜索方法和装置 |
CN113553398B (zh) * | 2021-07-15 | 2024-01-26 | 杭州网易云音乐科技有限公司 | 搜索词纠正方法、装置、电子设备及计算机存储介质 |
CN116821395B (zh) * | 2023-08-31 | 2023-11-03 | 简单汇信息科技(广州)有限公司 | 基于全文检索的贸易数据疑似命中检索方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080221863A1 (en) * | 2007-03-07 | 2008-09-11 | International Business Machines Corporation | Search-based word segmentation method and device for language without word boundary tag |
CN102193639A (zh) * | 2010-03-04 | 2011-09-21 | 阿里巴巴集团控股有限公司 | 一种语句生成方法及装置 |
CN103885938A (zh) * | 2014-04-14 | 2014-06-25 | 东南大学 | 基于用户反馈的行业拼写错误检查方法 |
CN104156454A (zh) * | 2014-08-18 | 2014-11-19 | 腾讯科技(深圳)有限公司 | 搜索词的纠错方法和装置 |
CN104298672A (zh) * | 2013-07-16 | 2015-01-21 | 北京搜狗科技发展有限公司 | 一种输入的纠错方法和装置 |
-
2015
- 2015-11-17 CN CN201510791328.4A patent/CN106708893B/zh active Active
-
2016
- 2016-11-07 WO PCT/CN2016/104843 patent/WO2017084506A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080221863A1 (en) * | 2007-03-07 | 2008-09-11 | International Business Machines Corporation | Search-based word segmentation method and device for language without word boundary tag |
CN102193639A (zh) * | 2010-03-04 | 2011-09-21 | 阿里巴巴集团控股有限公司 | 一种语句生成方法及装置 |
CN104298672A (zh) * | 2013-07-16 | 2015-01-21 | 北京搜狗科技发展有限公司 | 一种输入的纠错方法和装置 |
CN103885938A (zh) * | 2014-04-14 | 2014-06-25 | 东南大学 | 基于用户反馈的行业拼写错误检查方法 |
CN104156454A (zh) * | 2014-08-18 | 2014-11-19 | 腾讯科技(深圳)有限公司 | 搜索词的纠错方法和装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109828981B (zh) * | 2017-11-22 | 2023-05-23 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及计算设备 |
CN109828981A (zh) * | 2017-11-22 | 2019-05-31 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及计算设备 |
CN110600005A (zh) * | 2018-06-13 | 2019-12-20 | 蔚来汽车有限公司 | 语音识别纠错方法及装置、计算机设备和记录介质 |
CN110600005B (zh) * | 2018-06-13 | 2023-09-19 | 蔚来(安徽)控股有限公司 | 语音识别纠错方法及装置、计算机设备和记录介质 |
US20210192138A1 (en) * | 2018-09-14 | 2021-06-24 | Beijing Bytedance Network Technology Co., Ltd. | Method and device for generating modified statement |
US11531814B2 (en) * | 2018-09-14 | 2022-12-20 | Beijing Bytedance Network Technology Co., Ltd. | Method and device for generating modified statement |
CN111369996A (zh) * | 2020-02-24 | 2020-07-03 | 网经科技(苏州)有限公司 | 一种特定领域的语音识别文本纠错方法 |
CN111369996B (zh) * | 2020-02-24 | 2023-08-18 | 网经科技(苏州)有限公司 | 一种特定领域的语音识别文本纠错方法 |
CN111694985A (zh) * | 2020-06-17 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 搜索方法、装置、电子设备及计算机可读存储介质 |
CN113012705B (zh) * | 2021-02-24 | 2022-12-09 | 海信视像科技股份有限公司 | 一种语音文本的纠错方法及装置 |
CN113012705A (zh) * | 2021-02-24 | 2021-06-22 | 海信视像科技股份有限公司 | 一种语音文本的纠错方法及装置 |
CN116028700A (zh) * | 2023-03-29 | 2023-04-28 | 小米汽车科技有限公司 | 车辆的离线查询方法及其装置 |
CN116028700B (zh) * | 2023-03-29 | 2023-07-04 | 小米汽车科技有限公司 | 车辆的离线查询方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106708893A (zh) | 2017-05-24 |
CN106708893B (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017084506A1 (zh) | 搜索查询词纠错方法和装置 | |
CN106202153B (zh) | 一种es搜索引擎的拼写纠错方法及系统 | |
US9594850B2 (en) | Method and system utilizing a personalized user model to develop a search request | |
CN109670163B (zh) | 信息识别方法、信息推荐方法、模板构建方法及计算设备 | |
US9069753B2 (en) | Determining proximity measurements indicating respective intended inputs | |
CN109582972B (zh) | 一种基于自然语言识别的光学字符识别纠错方法 | |
CN103136352B (zh) | 基于双层语义分析的全文检索系统 | |
US7478033B2 (en) | Systems and methods for translating Chinese pinyin to Chinese characters | |
KR101389148B1 (ko) | 오리지널 유저 입력에 기초한 유저 입력의 제안 및 정제 | |
US7584093B2 (en) | Method and system for generating spelling suggestions | |
US8335787B2 (en) | Topic word generation method and system | |
EP3345118B1 (en) | Identifying query patterns and associated aggregate statistics among search queries | |
CN112287670A (zh) | 文本纠错方法、系统、计算机设备及可读存储介质 | |
US20140298168A1 (en) | System and method for spelling correction of misspelled keyword | |
US20110282858A1 (en) | Hierarchical Content Classification Into Deep Taxonomies | |
US9298693B2 (en) | Rule-based generation of candidate string transformations | |
US10552398B2 (en) | Database records associated with a tire | |
CN111832299A (zh) | 一种中文分词系统 | |
CN109918664B (zh) | 分词方法和装置 | |
CN114154487A (zh) | 文本自动纠错方法、装置、电子设备及存储介质 | |
US11151317B1 (en) | Contextual spelling correction system | |
CN110705285B (zh) | 一种政务文本主题词库构建方法、装置、服务器及可读存储介质 | |
KR101694179B1 (ko) | 모음 제거 기반 인덱스 생성 방법 및 장치 | |
CN113420219A (zh) | 用于查询信息纠错的方法、装置、电子设备及可读存储介质 | |
Liang | Spell checkers and correctors: A unified treatment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16865683 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16865683 Country of ref document: EP Kind code of ref document: A1 |