搜索引擎的中文搜索词自动纠错方法

文档序号:10724907阅读:494来源:国知局
搜索引擎的中文搜索词自动纠错方法
【专利摘要】本发明涉及搜索引擎的中文搜索词自动纠错方法,属于计算机应用技术领域。本发明包括数据模块、离线建库端及在线检索端,数据模块的主要作用是为后面的离线建库端和在线检索端提供数据。本发明使用搜索日志,爬虫系统等模块挖掘丰富的离线数据,用于多种纠错策略使用。针对不同的领域,使用专有领域词典用于系统纠错。本发明使用多种独立纠错策略相结合的方式,面对复杂的query错误,多种策略相互补充相互比较,最终取得较好的结果。加上二次纠错的使用,使得纠错范围更加广泛,成功率更高。本发明纠错策略可灵活独立配置,纠错场景更加广泛,能更好适应各种不同的垂直搜索领域。
【专利说明】
搜索引擎的中文搜索词自动纠错方法
技术领域
[0001 ]本发明涉及搜索引擎的中文搜索词自动纠错方法,属于计算机应用技术领域。
【背景技术】
[0002]如今,搜索引擎是人们的获取信息最重要的方式之一。搜索引擎系统最基本最核心的功能是信息检索,找到含有关键字的网页或文档,然后按照一定排序将结果给出。在搜索引擎中,我们将用户输入的关键字信息叫做query,用户希望得到和输入query相关的质量较好的网页或文档,这个“好”字定义有多种衡量方式,最简单的标准就是那些对用户帮助最大最具吸引力的结果能够排到前列。但是往往出于各种原因,用户输入的query本身质量不高或是错误的,若搜索引擎不对这种错误进行修正弥补,会导致召回错误的结果,或者结果数少甚至没有结果。当用户看到搜索结果较差较少时,如果能意识到自己的query错误,对query进行修正再次检索,也许能找到想要的结果。为了提升用户体验,成熟的搜索引擎都会提出query拼写纠错(Error Correct1n,以下简称EC)功能,比如百度的纠错功能如图1所示。
[0003]但是存在问题如下两个方面的问题:
[0004]1.Query出错情况复杂:
[0005]Query错误原因主要是因为用户的拼写错误,错误情况多变。从语言上来划分,包括基础的英文纠错和复杂的中文纠错。对于英文,最基本的语义元素是单词,因此拼写错误主要分为两种,一种是Non-word Error,指单词本身就是拼错的,比如将“happy”拼成“hbppy”,“hbppy”本身不是一个词。另外一种是Real_word Error,指单词虽拼写正确但是结合上下文语境确是错误的,比如“two eyes”写成“too eyes”,“too”在这里是明显错误的拼与。
[0006]对于中文,最小的语义单元是字,因为现在每个汉字几乎都是通过输入法输入设备,不像手写汉字也许会出错,往往不会出现错字。虽然汉字可以单字成词,但是两个或以上的汉字组合成的词却是更常见的语义元素,这种组合带来了类似英文的Non-wordError,比如“洗衣机”写成“洗一鸡”,虽然每个字是对的,但是整体却不是一个词,也就是所谓的别字。汉字也有类似Rea 1-word Err or的问题,比如加薪圣旨,加薪和圣旨都是正确的词,但是两个连在一起确有问题,因此很多情况下汉语query纠错实际上是短语纠错问题。
[0007]2.Query纠错技术复杂:
[0008]因为query出错的情况有多种,对于每种情况往往需要使用不同的技术和策略,而单独使用每种技术和策略往往不能达到较好的结果。英文拼写纠错相对简单,但也要使用编辑距离,信道噪声模型等方式来纠错。而中文纠错更加复杂,面对的情况更多,除了类似英文中的Non-word Error和Real_word Error错误外,还包括中英文混拼,多音字模糊音等多种情况,需要不同的纠错策略。除此之外,由于中文词语往往较短,一字之差可能就会导致词语意思完全改变,因此单一使用编辑距离等纠错方式往往会导致较大的转义风险。

【发明内容】

[0009]为了克服上述的不足,本发明提供一种搜索引擎的中文搜索词自动纠错方法。
[0010]本发明采取的技术方案如下:
[0011]搜索引擎的中文搜索词自动纠错方法,包括数据模块、离线建库端及在线检索端,数据模块为后面的离线建库端和在线检索端提供数据;数据模块对搜索log定期进行抽取和统计,给出query频次信息,并对query尝试分词,统计每个词的df和idf信息,对数据库信息整理,通过爬虫系统爬取优质网站的词条、标签,整理已有nip数据相关的优质词典;query纠错离线数据的来源主要有4个部分:搜索日志、数据库数据、爬虫系统和语料库;对于这四种数据来源,有不同的离线数据生成过程,每个数据来源通过不同方式的处理,最终得到query纠错需要使用的各种离线数据;搜索日志首先从搜索日志中,通过文本匹配找到搜索的查询query,然后对query的频率信息进行统计,最终得到日志挖掘数据,通常是一个文本文件,每行的数据是:query空格频率;数据库数据:从数据库中读取要搜索的物品的各种字段信息,将各个字段的文本当做query,和搜索日志统计类似,统计各个字段文本的频率,分词后的词频信息作为数据库挖掘数据;爬虫系统:爬虫系统通过爬取百科网站的网页,经过网页内容抽取,得到百科词条,作为百科字典;除此之外,还可以爬取特定领域的网页,可以制作电商领域专业字典,类似的可以爬取文学网站,抽取网页中小说名称,得到文学领域专业字典;语料库:根据现有的语料库,统计语料库中所有词的tf,df,idf信息,得到语料库挖掘数据。
[0012]离线建库端使用数据模块准备好的query频次词典和数据库自定义词典信息merge后生成频次词典;接下来对频次词典中每个词进行归一化,去除标点符号,繁体中文转简体中文,去除头尾空格,大小写转换操作后,生成query的拼音频次词典信息;使用处理好的频次词典按照一定粒度term建立编辑距离倒排词典;使用query拼音频次词典,生成拼音间的编辑距离词典;调取sess1n分析模块得到sess1n词典;根据词频和其他方式生成错误query词典用于错误判断;对频次词典中词条文本长度超过10个字的词条不进行上述操作。
[0013]在线检索端检索主要分为以下步骤:
[0014]第一步:搜索query请求;
[0015]第二步:判断query是否出错:对于常见错误,使用事先挖掘好的错误query字典,当query在此字典中时纠错,若用户输入的query查询无结果或结果少于设置的阈值时,设置的阈值为3,尝试纠错;可以根据不同领域的策略和容忍度,配置最少结果数阈值用于纠错判断:电商网站一般最少结果数为I,文学网站最少结果数为3;在百科辞典、常用字典中及自定义词典中的词不纠错,对query分词后,若所有term在上述词典中不纠错,对在错误query集合中的查询纠错;若不出错进入第十一步,若出错进入第三步;
[0016]第三步:同音纠错,同音纠错为优先级I;所述同音纠错是用户输入query和候选纠错query有相同的拼音;根据对搜索日志的统计,几乎一半以上纠错使用了同音策略,这也和用户使用拼音输入法的实际情况相符;
[0017]第四步:纠错质量判断,如果合格进入第十步,如果不合格进入第五步;
[0018]第五步:形近字纠错和模糊音纠错,形近字纠错和模糊音纠错为优先级2,形近字纠错和模糊音纠错为并行处理;所述模糊音策略包括平舌翘舌,前鼻音后鼻音,使用拼音变换技术,将拼音转换成可能的模糊音拼音来纠错;所述形近字策略主要解决非拼音输入问题,在移动时代使用笔画输入的用户不少;
[0019]第六步:纠错质量判断,如果合格进入第十步,如果不合格进入第七步;
[°02°]第七步:关联query纠错,关联query纠错为优先级3;
[0021 ]第八步:纠错质量判断,如果合格进入第十步,如果不合格进入第九步;
[0022]第九步:二次纠错和片段纠错,二次纠错和片段纠错为并行处理,二次纠错和片段纠错为优先级4;所述二次纠错用于系统中没有的query拼音;所述片段纠错是对于整个query无结果的查询,可以尝试切分,并对片段进行纠错,可以充分利用query中每个词的上下文通过统计模型纠错,一般而言,错误片段只有一个;
[0023]第十步:纠错query;
[0024]第十一步:最终结果;
[0025]对于不同领域的搜索涉及的策略优先级和权重可配置。
[0026]对于不同领域的搜索涉及的策略优先级和权重可配置实现步骤如下:对于不同领域的搜索涉及的策略优先级和权重可配置实现步骤如下:首先,纠错质量判断的纠错结果好坏可以通过比较纠错后的query在之前离线模块挖掘出来的各种特征决定;策略略优先级指的是不同策略给出纠错结果后优先使用哪种策略的优先级;同音纠错的优先级为1,模糊拼音和形近字策略的优先级为2,关联query优先级为3,二次纠错和片段纠错的优先级为4;纠错时可以先使用优先级高的策略纠错,当结果不好或无纠错结果时使用下一级的各种纠错策略纠错;对于优先级相同的策略,则比较每种策略纠错后的query得分乘以每种策略的权重后的最终得分来选择。
[0027]本发明有益效果:
[0028]1.使用搜索日志,爬虫系统等模块挖掘丰富的离线数据,用于多种纠错策略使用。针对不同的领域,使用专有领域词典用于系统纠错。
[0029]2.使用多种独立纠错策略相结合的方式,面对复杂的query错误,多种策略相互补充相互比较,最终取得较好的结果。加上二次纠错的使用,使得纠错范围更加广泛,成功率更尚O
[0030]3.纠错策略可灵活独立配置,纠错场景更加广泛,能更好适应各种不同的垂直搜索领域。
【附图说明】
[0031 ]图1示例性地示出了百度的自动纠错功能截图;
[0032]图2示例性地示出了本发明EC系统模块构成;
[0033]图3示例性地示出了本发明数据模块构成及基本流程;
[0034]图4示例性地示出了本发明离线建库端模块构成及基本流程;
[0035]图5示例性地示出了本发明的在线检索端检索流程图。
【具体实施方式】
[0036]下面结合附图对本发明做进一步说明。
[0037]如图2所示:搜索引擎的中文搜索词自动纠错方法,包括数据模块、离线建库端及在线检索端,数据模块的主要作用是为后面的离线建库端和在线检索端提供数据。
[0038]搜索引擎的中文搜索词自动纠错方法如下:
[0039]如图3所示:数据模块对搜索log定期进行抽取和统计,给出query频次信息,并对query尝试分词,统计每个词的df和idf信息,对数据库信息整理,通过爬虫系统爬取优质网站的词条、标签等,整理已有nip数据相关的优质词典;query纠错离线数据的来源主要有4个部分:搜索日志、数据库数据、爬虫系统和语料库;对于这四种数据来源,有不同的离线数据生成过程,每个数据来源通过不同方式的处理,最终得到query纠错需要使用的各种离线数据;搜索日志首先从搜索日志中,通过文本匹配找到搜索的查询query,然后对query的频率信息进行统计,最终得到日志挖掘数据,通常是一个文本文件,每行的数据是:query空格频率;数据库数据:从数据库中读取要搜索的物品的各种字段信息,比如图书的标题,图书的作者或者商品的名称等。将各个字段的文本当做query,和搜索日志统计类似,统计各个字段文本的频率,分词后的词频等信息作为数据库挖掘数据;爬虫系统:爬虫系统通过爬取百科网站的网页,经过网页内容抽取,得到百科词条,作为百科字典;除此之外,还可以爬取特定领域的网页,比如电商网站,爬取网页后对网页进行抽取,得到商品名称等信息,可以制作电商领域专业字典,类似的可以爬取文学网站,抽取网页中小说名称,得到文学领域专业字典;语料库:根据现有的语料库,如人民日报切分语料库等,统计语料库中所有词的tf,df,idf等信息,得到语料库挖掘数据。
[0040]如图4所示:离线建库端使用数据模块准备好的query频次词典和数据库自定义词典信息merge后生成频次词典;接下来对频次词典中每个词进行归一化,去除标点符号,繁体中文转简体中文,去除头尾空格,大小写转换等操作后,生成query的拼音频次词典信息;使用处理好的频次词典按照一定粒度term建立编辑距离倒排词典;使用query拼音频次词典,生成拼音间的编辑距离词典;调取sess1n分析模块得到sess1n词典;根据词频和其他方式生成错误query词典用于错误判断;对频次词典中词条文本长度超过10个字的词条不进行上述操作。
[0041]如图5所示:在线检索端检索主要包括以下几个步骤:
[0042]第一步:搜索query请求;
[0043]第二步:判断query是否出错:对于常见错误,使用事先挖掘好的错误query字典,当query在此字典中时纠错,若用户输入的query查询无结果或结果少于设置的阈值时,设置的阈值为3,尝试纠错;可以根据不同领域的策略和容忍度,配置最少结果数阈值用于纠错判断:电商网站一般最少结果数为I,文学网站最少结果数为3;在百科辞典、常用字典中及自定义词典中的词不纠错,对query分词后,若所有term在上述词典中不纠错,对在错误query集合中的查询纠错;若不出错返回结果,若出错进入第三步;
[0044]第三步:同音纠错,同音纠错为优先级I;所述同音纠错是用户输入query和候选纠错query有相同的拼音;根据对搜索日志的统计,几乎一半以上纠错使用了同音策略,这也和用户使用拼音输入法的实际情况相符;
[0045]第四步:纠错质量判断,如果合格进入第十步,如果不合格进入第五步;
[0046]第五步:形近字纠错和模糊音纠错,形近字纠错和模糊音纠错为优先级2,形近字纠错和模糊音纠错为并行处理;所述模糊音策略包括平舌翘舌,前鼻音后鼻音,使用拼音变换技术,将拼音转换成可能的模糊音拼音来纠错;所述形近字策略主要解决非拼音输入问题,在移动时代使用笔画输入的用户不少;
[0047]第六步:纠错质量判断,如果合格进入第十步,如果不合格进入第七步;
[0048]第七步:关联query纠错,关联query纠错为优先级3;
[0049]第八步:纠错质量判断,如果合格进入第十步,如果不合格进入第九步;
[0050]第九步:二次纠错和片段纠错,二次纠错和片段纠错为并行处理,二次纠错和片段纠错为优先级4;所述二次纠错用于系统中没有的query拼音;所述片段纠错是对于整个query无结果的查询,可以尝试切分,并对片段进行纠错,可以充分利用query中每个词的上下文通过统计模型纠错,一般而言,错误片段只有一个;
[0051 ] 第十步:纠错query;
[0052]第十一步:最终结果;
[0053]因为每个策略比较独立,不同策略会给出不同的候选词,因此对于候选词的选取,可以使用概率公式解释。当用户输入一个错误query时,不同策略给出ec_query,达到的目标就是p(ec_query | query)最大。使用贝叶斯公式展开,p(ec_query | query) =p(query | ec_query)*p(ec_query)/p(query),去掉所有策相同的p(query),最终达到的目标是p(queryec_query) *p (ec_query)最大。其中p (ec_query)可以简单理解为ec_query的频次,可以使用一定的网页语料库或者搜索日志统计得到。
[0054]对于p(query | ec_query)的量化比较困难,可以参考英文Non-word纠错中转移矩阵的计算方式,通过大量的计算正确query和错误query统计到,但是p(query | ec_query)也可以简单理解为ec_query和query之间的关联度。对于不同的纠错策略,ec_query和query之间的关联度明显是不同的,其中同音策略P(query | ec_query)最大,因为转义风险小,关联度最高,而编辑距离P (query | ec_query)较小,因为转移风险大,关联度最小。
[0055]在不同策略内部候选ec_query的选择上,p(ec_query)是不同的。对于拼音纠错,因为P(query | ec_query)较大,p(ec_query)要求就会较低,即拼音纠错中对于ec_query的频次要求就不会太高。对于编辑距离来说,因为P(query I ec_query)较小,因此p(ec_query)要求较高,因此要选择频次尽量高的候选词。
[0056]本专利纠错系统包括上述多个策略,每个策略独立运行,针对不同的领域和业务情况,每个策略的优先级有所不同。在默认配置下同音策略为主,模糊音编辑距离策略为辅,并使用其他策略扩大召回,对于不同领域的搜索,策略优先级和权重可配置,纠错松紧度可调节。
[0057]对于不同领域的搜索涉及的策略优先级和权重可配置实现步骤如下:首先,纠错质量判断的纠错结果好坏可以通过比较纠错后的query在之前离线模块挖掘出来的各种特征决定;策略略优先级指的是不同策略给出纠错结果后优先使用哪种策略的优先级;同音纠错的优先级为I,模糊拼音和形近字策略(模糊音纠错和形近字纠错)的优先级为2,关联query优先级为3,二次纠错和片段纠错的优先级为4;纠错时可以先使用优先级高的策略纠错,当结果不好或无纠错结果时使用下一级的各种纠错策略纠错;对于优先级相同的策略,则比较每种策略纠错后的query得分乘以每种策略的权重后的最终得分来选择。
[0058]本发明使用搜索日志,爬虫系统等模块挖掘丰富的离线数据,用于多种纠错策略使用,针对不同的领域,使用专有领域词典用于系统纠错;使用多种独立纠错策略相结合的方式,面对复杂的query错误,多种策略相互补充相互比较,最终取得较好的结果。加上二次纠错的使用,使得纠错范围更加广泛,成功率更高。纠错策略可灵活独立配置,纠错场景更加广泛,能更好适应各种不同的垂直搜索领域。
[0059]对于本领域的普通技术人员而言,具体实施例只是对本发明进行了示例性描述,显然本发明具体实现并不受上述方式的限制,只要采用了本发明的方法构思和技术方案进行的各种非实质性的改进,或未经改进将本发明的构思和技术方案直接应用于其它场合的,均在本发明的保护范围之内。
【主权项】
1.搜索引擎的中文搜索词自动纠错方法,其特征在于:包括数据模块、离线建库端及在线检索端,数据模块为后面的离线建库端和在线检索端提供数据;数据模块对搜索log定期进行抽取和统计,给出query频次信息,并对query尝试分词,统计每个词的df和idf信息,对数据库信息整理,通过爬虫系统爬取优质网站的词条、标签,整理已有nip数据相关的优质词典;query纠错离线数据的来源主要有4个部分:搜索日志、数据库数据、爬虫系统和语料库;对于这四种数据来源,有不同的离线数据生成过程,每个数据来源通过不同方式的处理,最终得到query纠错需要使用的各种离线数据;搜索日志首先从搜索日志中,通过文本匹配找到搜索的查询query,然后对query的频率信息进行统计,最终得到日志挖掘数据,通常是一个文本文件,每行的数据是:query空格频率;数据库数据:从数据库中读取要搜索的物品的各种字段信息;将各个字段的文本当做query,和搜索日志统计类似,统计各个字段文本的频率,分词后的词频信息作为数据库挖掘数据;爬虫系统:爬虫系统通过爬取百科网站的网页,经过网页内容抽取,得到百科词条,作为百科字典;除此之外,还可以爬取特定领域的网页,可以制作电商领域专业字典,类似的可以爬取文学网站,抽取网页中小说名称,得到文学领域专业字典;语料库:根据现有的语料库,统计语料库中所有词的tf,df,idf信息,得到语料库挖掘数据。2.根据权利要求1所述的搜索引擎的中文搜索词自动纠错方法,其特征在于:离线建库端使用数据模块准备好的query频次词典和数据库自定义词典信息merge后生成频次词典;接下来对频次词典中每个词进行归一化,去除标点符号,繁体中文转简体中文,去除头尾空格,大小写转换操作后,生成query的拼音频次词典信息;使用处理好的频次词典按照一定粒度term建立编辑距离倒排词典;使用query拼音频次词典,生成拼音间的编辑距离词典;调取sess1n分析模块得到sess1n词典;根据词频和其他方式生成错误query词典用于错误判断;对频次词典中词条文本长度超过10个字的词条不进行上述操作。3.根据权利要求1所述的搜索引擎的中文搜索词自动纠错方法,其特征在于:在线检索端检索主要包括以下步骤; 第一步:搜索query请求; 第二步:判断query是否出错:对于常见错误,使用事先挖掘好的错误query字典,当query在此字典中时纠错,若用户输入的query查询无结果或结果少于设置的阈值时,设置的阈值为3,尝试纠错;可以根据不同领域的策略和容忍度,配置最少结果数阈值用于纠错判断:电商网站一般最少结果数为I,文学网站最少结果数为3;在百科辞典、常用字典中及自定义词典中的词不纠错,对query分词后,若所有term在上述词典中不纠错,对在错误query集合中的查询纠错;若不出错进入第十一步,若出错进入第三步; 第三步:同音纠错,同音纠错为优先级I;所述同音纠错是用户输入query和候选纠错query有相同的拼音;根据对搜索日志的统计,几乎一半以上纠错使用了同音策略,这也和用户使用拼音输入法的实际情况相符; 第四步:纠错质量判断,如果合格进入第十步,如果不合格进入第五步; 第五步:形近字纠错和模糊音纠错,形近字纠错和模糊音纠错为优先级2,形近字纠错和模糊音纠错为并行处理;所述模糊音策略包括平舌翘舌,前鼻音后鼻音,使用拼音变换技术,将拼音转换成可能的模糊音拼音来纠错;所述形近字策略主要解决非拼音输入问题,在移动时代使用笔画输入的用户不少; 第六步:纠错质量判断,如果合格进入第十步,如果不合格进入第七步; 第七步:关联query纠错,关联query纠错为优先级3 ; 第八步:纠错质量判断,如果合格进入第十步,如果不合格进入第九步; 第九步:二次纠错和片段纠错,二次纠错和片段纠错为并行处理,二次纠错和片段纠错为优先级4;所述二次纠错用于系统中没有的query拼音;所述片段纠错是对于整个query无结果的查询,可以尝试切分,并对片段进行纠错,可以充分利用query中每个词的上下文通过统计模型纠错,一般而言,错误片段只有一个; 第十步:纠错query; 第十一步:最终结果; 对于不同领域的搜索涉及的策略优先级和权重可配置。4.根据权利要求3所述的搜索引擎的中文搜索词自动纠错方法,其特征在于:对于不同领域的搜索涉及的策略优先级和权重可配置实现步骤如下: 首先,纠错质量判断的纠错结果好坏可以通过比较纠错后的query在之前离线模块挖掘出来的各种特征决定;策略略优先级指的是不同策略给出纠错结果后优先使用哪种策略的优先级;同音纠错的优先级为I,模糊拼音和形近字策略的优先级为2,关联query优先级为3,二次纠错和片段纠错的优先级为4;纠错时可以先使用优先级高的策略纠错,当结果不好或无纠错结果时使用下一级的各种纠错策略纠错;对于优先级相同的策略,则比较每种策略纠错后的query得分乘以每种策略的权重后的最终得分来选择。
【文档编号】G06F17/27GK106095778SQ201610361654
【公开日】2016年11月9日
【申请日】2016年5月26日
【发明人】高翔
【申请人】达而观信息科技(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1