CN105468719A - 一种查询纠错方法、装置和计算设备 - Google Patents

一种查询纠错方法、装置和计算设备 Download PDF

Info

Publication number
CN105468719A
CN105468719A CN201510811761.XA CN201510811761A CN105468719A CN 105468719 A CN105468719 A CN 105468719A CN 201510811761 A CN201510811761 A CN 201510811761A CN 105468719 A CN105468719 A CN 105468719A
Authority
CN
China
Prior art keywords
dictionary
entry
query word
length
error correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510811761.XA
Other languages
English (en)
Other versions
CN105468719B (zh
Inventor
张平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Cheerbright Technologies Co Ltd
Original Assignee
Beijing Cheerbright Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Cheerbright Technologies Co Ltd filed Critical Beijing Cheerbright Technologies Co Ltd
Priority to CN201510811761.XA priority Critical patent/CN105468719B/zh
Publication of CN105468719A publication Critical patent/CN105468719A/zh
Application granted granted Critical
Publication of CN105468719B publication Critical patent/CN105468719B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/374Thesaurus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种查询纠错方法,在计算设备中执行,该方法包括以下步骤:获取用户输入的查询词Q;根据查询词Q的长度|Q|确定索引元的长度N1,将所有由查询词Q中的连续N1个字符组成的字符串作为索引元,并将背景词典的上述索引元的倒排索引链中的词条加入第一匹配集合,其中背景词典中存有用户的历史查询词;分别计算查询词Q与第一匹配集合中的每一个词条的编辑距离,将第一匹配集合中与查询词Q的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合;输出第二匹配集合中的词条,作为查询词Q的纠错结果。本发明还公开了采用上述查询纠错方法的查询纠错装置以及包含上述查询纠错装置的计算设备。

Description

一种查询纠错方法、装置和计算设备
技术领域
本发明涉及网络文本信息的智能处理领域,尤其涉及一种查询纠错方法、装置和计算设备。
背景技术
在用户使用搜索引擎进行查询时,由于用户本身知识的限制或者误操作等原因,造成输入的查询词错误,通过错误的查询词得到的查询结果往往较差,这就需要一种能够自动纠正用户错误输入的技术来解决这一难题。现在比较常用的方法是计算查询词与背景词典中的词条的编辑距离,将背景词典中与查询词的编辑距离最小的词条作为纠错结果推送给用户。但是,由于背景词典一般都比较大,计算查询词与背景词典中每一个词条的编辑距离将耗费大量时间,很不现实。
发明内容
为此,本发明提供一种查询纠错方法、装置和计算设备,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种查询纠错方法,在计算设备中执行,该方法包括以下步骤:根据查询词Q的长度|Q|确定索引元的长度N1,将所有由查询词Q中的连续N1个字符组成的字符串作为索引元,并将背景词典的上述索引元的倒排索引链中的词条加入第一匹配集合,其中背景词典中存有用户的历史查询词;分别计算查询词Q与第一匹配集合中的每一个词条的编辑距离,将第一匹配集合中与查询词Q的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合;输出第二匹配集合中的词条,作为查询词Q的纠错结果。
可选地,在根据本发明的查询纠错方法中,索引元的长度N1按如下公式确定:
可选地,在根据本发明的查询纠错方法中,将背景词典的上述索引元的倒排索引链中的词条加入第一匹配集合为:将背景词典的上述索引元的倒排索引链中长度大于等于(|Q|-k)且小于等于(|Q|+k)的词条加入第一匹配集合。
可选地,在根据本发明的查询纠错方法中,在根据查询词Q的长度|Q|确定索引元的长度N1之前,还包括:判断查询词Q的长度|Q|是否小于等于编辑距离阈值k,若是,则将背景词典中长度小于等于k的词条加入第二匹配集合。
可选地,在根据本发明的查询纠错方法中,还包括对背景词典建立多重索引,具体包括以下步骤:将背景词典D划分为若干个子词典,D={D1,D2,…,Di,…,Dn},子词典Di中的词条长度均为i,1≤i≤n,n为背景词典D中最长的词条的长度;对每一个子词典Di,根据i的值确定子词典Di的最小索引元长度N2;对Di中的每一个词条w,将由w中的连续x个字符组成的字符串作为索引元,N2≤x≤N3,N3为最大索引元长度,并在该索引元的倒排索引链追加词条w。
可选地,在根据本发明的查询纠错方法中,子词典Di的最小索引元长度N2按如下公式确定:
可选地,在根据本发明的查询纠错方法中,最大索引元长度N3取值为4。
可选地,在根据本发明的查询纠错方法中,背景词典中还存有查询词的查询频次;在输出第二匹配集合中的词条之前,还包括步骤:获取第二匹配集合中的每一个词条的查询频次,将查询频次小于查询频次阈值的词条从第二匹配集合中删除。
可选地,在根据本发明的查询纠错方法中,背景词典包括中文全拼音词典、英文词典和中文词典;对背景词典建立多重索引包括,对中文全拼音词典、英文词典和中文词典分别建立多重索引。
可选地,在根据本发明的查询纠错方法中,在根据查询词Q的长度|Q|确定索引元的长度N1之前,还包括:删除查询词Q中的空格;若查询词Q是中文词条,则选择中文词典作为背景词典;若查询词Q不是中文词条,则对查询词Q进行拼音切分,若切分成功,则选择中文全拼音词典作为背景词典;若切分不成功,则选择英文词典作为背景词典。
根据本发明的一个方面,提供一种查询纠错装置,驻留在计算设备中,该装置包括:输入模块,适于获取用户输入的查询词Q;存储模块,适于存储背景词典,背景词典中包括用户的历史查询词;第一匹配模块,适于根据查询词Q的长度|Q|确定索引元的长度N1,将所有由查询词Q中的连续N1个字符组成的字符串作为索引元,并将背景词典的上述索引元的倒排索引链中的词条加入第一匹配集合;第二匹配模块,适于分别计算查询词Q与第一匹配集合中的每一个词条的编辑距离,将第一匹配集合中与查询词Q的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合;和输出模块,适于输出第二匹配集合中的词条,作为查询词Q的纠错结果。
可选地,在根据本发明的查询纠错装置中,第一匹配模块还适于按公式确定索引元的长度N1。
可选地,在根据本发明的查询纠错装置中,第一匹配模块进一步适于将背景词典的上述索引元的倒排索引链中长度大于等于(|Q|-k)且小于等于(|Q|+k)的词条加入第一匹配集合。
可选地,在根据本发明的查询纠错装置中,第一匹配模块在根据查询词Q的长度|Q|确定索引元的长度N1之前,还适于:判断查询词Q的长度|Q|是否小于等于编辑距离阈值k,若是,则将背景词典中长度小于等于k的词条加入第二匹配集合。
可选地,在根据本发明的查询纠错装置中,还包括索引模块,索引模块适于对存储模块中的背景词典按照如下方式建立多重索引:将背景词典D划分为若干个子词典,D={D1,D2,…,Di,…,Dn},子词典Di中的词条长度均为i,1≤i≤n,n为背景词典D中最长的词条的长度;对每一个子词典Di,根据i的值确定子词典Di的最小索引元长度N2;对Di中的每一个词条w,将由w中的连续x个字符组成的字符串作为索引元,N2≤x≤N3,N3为最大索引元长度,并在该索引元的倒排索引链追加词条w。
可选地,在根据本发明的查询纠错装置中,索引模块还适于按公式确定子词典Di的最小索引元长度N2。
可选地,在根据本发明的查询纠错装置中,最大索引元长度N3取值为4。
可选地,在根据本发明的查询纠错装置中,存储模块存储的背景词典中还存有查询词的查询频次;第二匹配模块还适于,在输出模块输出第二匹配集合中的词条之前,获取第二匹配集合中的每一个词条的查询频次,将查询频次小于查询频次阈值的词条从第二匹配集合中删除。
可选地,在根据本发明的查询纠错装置中,存储模块中存储的背景词典包括中文全拼音词典、英文词典和中文词典;索引模块进一步适于对上述中文全拼音词典、英文词典和中文词典分别建立多重索引。
可选地,在根据本发明的查询纠错装置中,第一匹配模块在根据查询词Q的长度|Q|确定索引元的长度N1之前,还适于:删除查询词Q中的空格;若查询词Q是中文词条,则选择中文词典作为背景词典;若查询词Q不是中文词条,则对查询词Q进行拼音切分,若切分成功,则选择中文全拼音词典作为背景词典;若切分不成功,则选择英文词典作为背景词典。
根据本发明的一个方面,提供一种计算设备,包括如上查询纠错装置。
根据本发明提供的技术方案,对查询词的纠错过程主要分为两个阶段,在第一阶段,根据用户输入的查询词的长度确定索引元的长度,并将背景词典的上述索引元的倒排索引链中的词条加入第一匹配集合;在第二阶段,分别计算用户输入的查询词与第一匹配集合中的每一个词条的编辑距离,将第一匹配集合中与查询词的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合,第二匹配集合中的词条即为查询词的纠错结果。通过第一阶段,从背景词典中过滤掉了大部分不可能成为匹配结果的词条,仅保留与查询词相关的词条,极大地减少了后续第二阶段中编辑距离的计算次数,从而提高了整个查询纠错过程的运行速度。
此外,由于对背景词典建立了多重索引,通过索引元的倒排索引链即可获取包含该索引元的词条,使得第一阶段背景词典的选择过滤过程更加方便、快捷,提高了第一阶段的运行速度。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了为实现根据本发明的查询纠错装置的示例计算设备100的框图;
图2示出了根据本发明一个实施例的查询纠错装置200的结构图;
图3A示出了根据本发明一个实施例中的中文词典的数据存储结构的示意图,图3B示出了根据本发明一个实施例中的中文全拼音词典的数据存储结构的示意图,图3C示出了根据本发明一个实施例中的英文词典的数据存储结构的示意图;
图4示出了根据本发明一个实施例中的中文全拼音词典构建多重索引的示意图;
图5示出了根据本发明一个实施例中的中文全拼音词典的倒排索引链的示意图;以及
图6示出了根据本发明一个实施例的查询纠错方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的查询纠错装置驻留在计算设备中,图1布置为实现根据本发明的查询纠错装置的示例计算设备100的框图。在基本配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器((μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据126。应用122可以包括被配置为查询纠错装置200和其他应用124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据126进行操作。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。
图2示出了根据本发明一个实施例的查询纠错装置200的示意图,查询纠错装置200驻留在计算设备中,例如,驻留在计算设备的浏览器中,作为为搜索引擎的一个插件。
如图2所示,根据本发明的一个实施例的查询纠错装置200包括:输入模块210、第一匹配模块220、第二匹配模块230、存储模块240、索引模块250和输出模块260。
存储模块240用于存储背景词典,背景词典可以进一步划分为中文词典、中文全拼音词典和英文词典等,其中,上述三个词典之间相互独立。当然,背景词典还可以有其他的划分方式,例如,将背景词典划分为中文词典、英文词典、中文与数字共现词典、中文与英文共现词典等等,上述各词典之间可以相互独立,也可以有部分重叠,本发明对背景词典的划分方式不做限制。
背景词典由用户的历史查询词进行筛选、转换而成。首先,获取用户的历史查询词,并去掉没有得到查询结果的查询词。历史查询词存放于历史查询词库中,每一个历史查询词记录包括查询词的名称和该查询词的历史查询频次。然后,对历史查询词中的热门查询词进行分类,所谓“热门查询词”,指的是历史查询频次高于某一热门查询阈值的查询词。例如,可以将上述热门查询阈值设定为100,即:将历史查询词中的长度不小于两个汉字且历史查询频次不小于100的中文词条加入中文词典;将上述中文词典中的中文查询词转换为拼音,加入中文全拼音词典;将历史查询词中长度大于1且历史查询频次不小于100的英文词条加入英文词典。当然,热门查询阈值也可以设为其他数值,各背景词典的热门查询阈值也可以不相同,本发明对热门查询阈值的设置并无限制。
通过对背景词典的进一步划分,在查询纠错中可以通过用户输入的查询词的特征选择合适的词典,从而缩小使用的背景词典的范围,提高纠错速度。
图3A示出了中文词典的数据存储结构的示意图,图3B示出了中文全拼音词典的数据存储结构的示意图,图3C示出了英文词典的数据存储结构的示意图。数据存储均采用ID-key-value对应的方式,其中,ID为词条编号,key为词条,ID和key是一对一的关系,每一个ID对应唯一的key,每一个key也对应唯一的ID。value为该词条的查询频次。在用户数量庞大、查询服务频繁的实际情况下,某些词条的查询频次可能很大,为了节约内存和计算方便,value中也可以存储词条的相对查询频次,即用各词条的查询频次均除以一个相同的数,使value项中存储的数值变小。
当然,背景词典中的数据还可以采取其他存储结构,或存储其他附加信息,本发明对此不作限制。
索引模块250分别对上述中文词典、中文全拼音词典和英文词典建立多重索引。在图2所示的实施例中,索引模块250设置在存储模块240的外部。在另外的实施例中,索引模块250也可以设置在存储模块240的内部。索引模块250对中文词典、中文全拼音词典和英文词典建立多重索引的步骤如下:首先,获取词典D,并设置编辑距离阈值k,k为整数,例如k=2。编辑距离,又称Levenshtein距离,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。然后,将词典D划分为若干个子词典,D={D1,D2,…,Di,…,Dn},子词典Di中的词条长度均为i,1≤i≤n,n为词典D中最长的词条的长度;第三,对每一个子词典Di,根据i的值确定子词典Di的最小索引元长度N2,其中,为向下取整。将N2的值按上述公式设定可以确保后续查询纠错过程中进行近似匹配时不会遗漏词条。最后,对Di中的每一个词条w,将由w中的连续x个字符组成的字符串作为索引元,N2≤x≤N3,N3为最大索引元长度,并在该索引元的倒排索引链追加词条w。在一个实施例中,N3取4。若N3过大,则有某些索引元长度过长,而这些过长的索引元对应的倒排索引项却很少,会造成存储资源浪费,并降低匹配速度。将N3设为4是一种比较好的选择。
由于各词典的数据结构及索引构建过程均相同,下面以中文全拼音词典为例展示索引的构建过程:
步骤1:背景词典D={…,aodi,aotuo,baoma,qiya,…},编辑距离阈值k设置为2;
步骤2:将词典D划分为若干个子词典,D={…,D4,D5,…},D4={aodi,qiya,…},D5={aotuo,baoma,…};
步骤3:计算各子词典Di的最小索引元长度N2,D4的最小索引元长度D5的最小索引元长度
步骤4:对D4、D5中的每一个词条w,对每一个整数N2≤x≤4,将由w中的连续x个字符组成的字符串作为索引元,并在该索引元的倒排索引链追加词条w。
图4示出了根据本发明一个实施例中的中文全拼音词典构建多重索引的示意图。图4以背景词典中的aodi,qiya,aotuo,baoma四个词条为例,示出了多重索引的构建过程。aodi和qiya词长为4,其相应的最小索引元长度为aotuo和baoma词长为5,其相应的最小索引元长度为对于上述4各词条中的每一个词条,将由该词条的连续1、2、3、4个字符组成的字符串为索引元,并建立上述索引元的倒排索引,将该词条作为倒排索引项,加入上述索引元的倒排索引链中。
图4中示出的倒排索引链中,索引元对应的倒排索引项的长度不一。为了检索方便,可以进一步按照倒排索引项的长度对索引元进行细分,如图5所示。
图5示出了根据本发明一个实施例中的中文全拼音词典的倒排索引链的示意图。在图4示出的倒排索引链的基础上,将索引元按照倒排索引项的长度进行细分,具体的实施方式为在原索引元后加上数字,该数字用于表示索引元对应的倒排索引项的长度。例如,将索引元a进一步细分为索引元a4和a5,a4对应的倒排索引项的长度均为4,即a4对应的倒排索引项为aodi和qiya;a5对应的倒排索引项的长度均为5,即a5对应的倒排索引项为aotuo和baoma。按照图5的方式将索引元进行细分之后,不仅可以检索出包含某个特定索引元的词条,还可以直接检索出特定长度的包含某个特定索引元的词条。这种索引方式使检索更加方便,从而节约了查询纠错过程的运行时间。
输入模块210获取用户输入的查询词Q。
第一匹配模块220根据用户输入的查询词Q对背景词典进行选择、过滤。
首先,对查询词Q作初步处理,例如,删除查询词Q中的空格,并根据处理后的查询词Q的特点选择合适的背景词典,若查询词Q是中文词条,则选择中文词典作为背景词典;若查询词Q不是中文词条,则对查询词Q进行拼音切分,若切分成功,则选择中文全拼音词典作为背景词典;若切分不成功,则选择英文词典作为背景词典。例如,对于查询词“保时捷”,选择中文词典作为背景词典;对于查询词“benchi”,选择中文全拼音词典作为背景词典;对于查询词“bwm”,选择英文词典作为背景词典。通过对背景词典的选择,可以缩小使用的背景词典的范围,提高纠错速度。
然后,对查询词Q的长度|Q|进行判断。若|Q|小于等于编辑距离阈值k,则将背景词典中长度小于等于k的词条直接加入第二匹配集合,第二匹配集合即为纠错结果集合。
若|Q|大于编辑距离阈值k,则根据查询词Q的长度|Q|确定索引元的长度N1,将所有由查询词Q中的连续N1个字符组成的字符串作为索引元,并将背景词典的上述索引元的倒排索引链中的词条加入第一匹配集合。其中,索引元的长度为向上取整。为了进一步缩小第一匹配集合的范围,可以对背景词典的所述索引元的倒排索引链中的词条加以限制,例如,将背景词典的上述索引元的倒排索引链中长度大于等于(|Q|-k)且小于等于(|Q|+k)的词条加入第一匹配集合。例如,对于用户输入的查询词“bao”,编辑距离阈值为2,确定索引元的长度将查询词“bao”中的1个字符作为索引元,即索引元为b,a,o。分别将b,a,o对应的倒排索引链中长度大于等于1且小于等于5的词条加入第一匹配集合。按照图5所示的倒排索引链,b对应的倒排索引链中长度大于等于1且小于等于5的词条为baoma,a对应的倒排索引链中长度大于等于1且小于等于5的词条为aodi,qiya,aotuo,baoma,o对应的倒排索引链中长度大于等于1且小于等于5的词条为aodi,aotuo,baoma,因此,第一匹配集合为{aodi,qiya,aotuo,baoma}。
第一匹配模块220选择合适的背景词典并从背景词典中过滤掉了大部分不可能成为匹配结果的词条,仅保留与查询词相关的词条,极大地减少了后续第二阶段中编辑距离的计算次数,从而提高了整个查询纠错过程的运行速度。
第二匹配模块230分别计算用户输入的查询词Q与第一匹配集合中的每一个词条的编辑距离,并将第一匹配集合中与所述查询词Q的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合。例如,分别计算用户输入的查询词“bao”与第一匹配集合{aodi,qiya,aotuo,baoma}中的词条的编辑距离。查询词“bao”与aodi的编辑距离为3,与qiya的编辑距离为4,与aotuo的编辑距离为4,与baoma的编辑距离为2。因此,将baoma加入第二匹配集合,作为最终的纠错结果。
根据一种实施方式,第二匹配模块230还进一步获取第二匹配集合中的每一个词条的查询频次,将查询频次小于查询频次阈值的词条从第二匹配集合中删除。例如,若将查询频次阈值设为800000,第二匹配集合为{baoma,aodi,aotuo},以图3B中的查询频次信息为例,baoma,aodi,aotuo的查询频次分别为12928461,3415614和762936。其中,aotuo的查询频次小于800000,将aotuo从第二匹配集合中删除。第二匹配集合变为{baoma,aodi}。当然,查询频次阈值也可以设为除800000之外的其他数值。或者,也可以将第二匹配集合中的每一个词条的相对查询频次与相对查询频次阈值作比较,将相对查询频次小于相对查询频次阈值的词条从第二匹配集合中删除。
输出模块260输出第二匹配集合中的词条,作为查询词Q的纠错结果。
在输出模块260输出第二匹配集合中的词条后,用户可以自行选择是否接受纠错,即,用户可以从第二匹配集合中选择一个词条作为新的查询词Q’,或者仍以原查询词Q继续进行查询。若用户从第二匹配集合中选择了新的查询词Q’进行查询,则将历史查询词库和背景词典中Q’的查询频次均加1;若用户仍以原查询词Q继续进行查询,则将历史查询词库中Q的查询频次加1,并判断加1之后的查询频次是否达到热门查询阈值,若达到,则将查询词Q加入到背景词典中,若未达到,则不做进一步操作。在另一种实施方式中,若背景词典中存储的是相对查询频次,则先将历史查询词库中Q’(接受纠错时)或Q(不接收纠错时)的查询频次加1,再采取相应计算得出背景词典中存储的相对查询频次。
图6示出了根据本发明一个实施例的查询纠错方法300的流程图。该方法在计算设备中执行,如图6所示,该方法始于步骤S310。
在步骤S310中,获取用户输入的查询词Q。
根据一种实施方式,判断查询词Q的长度|Q|是否小于等于编辑距离阈值k,若是,则直接将背景词典中长度小于等于k的词条加入第二匹配集合并输出,跳过步骤S320和步骤S330。
根据一种实施方式,进一步对查询词Q作处理,例如,删除查询词Q中的空格,并根据处理后的查询词Q的特点选择合适的背景词典,例如,若查询词Q是中文词条,则选择中文词典作为背景词典;若查询词Q不是中文词条,则对查询词Q进行拼音切分,若切分成功,则选择中文全拼音词典作为背景词典;若切分不成功,则选择英文词典作为背景词典。
随后,在步骤S320中,确定第一匹配集合,具体过程为:根据查询词Q的长度|Q|确定索引元的长度N1,将所有由查询词Q中的连续N1个字符组成的字符串作为索引元,并将背景词典的索引元的倒排索引链中的词条加入第一匹配集合,其中背景词典中存有用户的历史查询词。
根据一种实施方式,索引元的长度N1按如下公式确定:其中,k为编辑距离阈值。
根据一种实施方式,为了进一步缩小第一匹配集合的范围,可以对背景词典的所述索引元的倒排索引链中的词条加以限制,例如,将背景词典的上述索引元的倒排索引链中长度大于等于(|Q|-k)且小于等于(|Q|+k)的词条加入第一匹配集合。
根据一种实施方式,对背景词典建立多重索引,具体包括以下步骤:将背景词典D划分为若干个子词典,D={D1,D2,…,Di,…,Dn},子词典Di中的词条长度均为i,1≤i≤n,n为背景词典D中最长的词条的长度;对每一个子词典Di,根据i的值确定子词典Di的最小索引元长度N2;对Di中的每一个词条w,将由w中的连续x个字符组成的字符串作为索引元,N2≤x≤N3,N3为最大索引元长度,并在该索引元的倒排索引链追加词条w。其中,最小索引元长度N2可按公式确定,最大索引元长度N3可以取值为4。背景词典的多重索引使检索更加方便,从而节约了查询纠错过程的运行时间。
随后,在步骤S330中,确定第二匹配集合,具体过程为:分别计算查询词Q与第一匹配集合中的每一个词条的编辑距离,将第一匹配集合中与查询词Q的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合。
根据一种实施方式,进一步获取第二匹配集合中的每一个词条的查询频次,将查询频次小于查询频次阈值的词条从第二匹配集合中删除。
最后,在步骤S340中,输出第二匹配集合中的词条,作为查询词Q的纠错结果。
根据本发明提供的技术方案,对查询词的纠错过程主要分为两个阶段,在第一阶段,根据用户输入的查询词的长度确定索引元的长度,并将背景词典的上述索引元的倒排索引链中的词条加入第一匹配集合;在第二阶段,分别计算用户输入的查询词与第一匹配集合中的每一个词条的编辑距离,将第一匹配集合中与查询词的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合,第二匹配集合中的词条即为查询词的纠错结果。通过第一阶段,从背景词典中过滤掉了大部分不可能成为匹配结果的词条,仅保留与查询词相关的词条,极大地减少了后续第二阶段中编辑距离的计算次数,从而提高了整个查询纠错过程的运行速度。
此外,由于对背景词典建立了多重索引,通过索引元的倒排索引链即可获取包含该索引元的词条,使得第一阶段背景词典的选择过滤过程更加方便、快捷,提高了第一阶段的运行速度。
A1:背景词典中还存有查询词的查询频次;在输出第二匹配集合中的词条之前,还包括步骤:获取第二匹配集合中的每一个词条的查询频次,将查询频次小于查询频次阈值的词条从第二匹配集合中删除。A2:所述背景词典包括中文词典、中文全拼音词典和英文词典;所述对背景词典建立多重索引包括,对所述中文词典、中文全拼音词典和英文词典分别建立多重索引。A3:在根据所述查询词Q的长度|Q|确定索引元的长度N1之前,还包括:删除查询词Q中的空格;若查询词Q是中文词条,则选择中文词典作为背景词典;若查询词Q不是中文词条,则对查询词Q进行拼音切分,若切分成功,则选择中文全拼音词典作为背景词典;若切分不成功,则选择英文词典作为背景词典。
B1:所述第一匹配模块进一步适于将背景词典的所述索引元的倒排索引链中长度大于等于(|Q|-k)且小于等于(|Q|+k)的词条加入第一匹配集合。B2:所述第一匹配模块在根据所述查询词Q的长度|Q|确定索引元的长度N1之前,还适于:判断所述查询词Q的长度|Q|是否小于等于编辑距离阈值k,若是,则将背景词典中长度小于等于k的词条加入第二匹配集合。B3:还包括索引模块,所述索引模块适于对所述存储模块中的背景词典按照如下方式建立多重索引:将背景词典D划分为若干个子词典,D={D1,D2,…,Di,…,Dn},子词典Di中的词条长度均为i,1≤i≤n,n为背景词典D中最长的词条的长度;对每一个子词典Di,根据i的值确定子词典Di的最小索引元长度N2;对Di中的每一个词条w,将由w中的连续x个字符组成的字符串作为索引元,N2≤x≤N3,N3为最大索引元长度,并在该索引元的倒排索引链追加词条w。B4:所述索引模块还适于按公式确定子词典Di的最小索引元长度N2。B5:所述最大索引元长度N3的取值为4。B6:所述存储模块存储的背景词典中还存有查询词的查询频次;所述第二匹配模块还适于,在所述输出模块输出第二匹配集合中的词条之前,获取第二匹配集合中的每一个词条的查询频次,将查询频次小于查询频次阈值的词条从第二匹配集合中删除。B7:所述存储模块中存储的背景词典包括中文词典、中文全拼音词典和英文词典;所述索引模块进一步适于对所述中文词典、中文全拼音词典和英文词典分别建立多重索引。B8:所述第一匹配模块在根据所述查询词Q的长度|Q|确定索引元的长度N1之前,还适于:删除查询词Q中的空格;若查询词Q是中文词条,则选择中文词典作为背景词典;若查询词Q不是中文词条,则对查询词Q进行拼音切分,若切分成功,则选择中文全拼音词典作为背景词典;若切分不成功,则选择英文词典作为背景词典。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.一种查询纠错方法,在计算设备中执行,该方法包括以下步骤:
获取用户输入的查询词Q;
根据所述查询词Q的长度|Q|确定索引元的长度N1,将所有由所述查询词Q中的连续N1个字符组成的字符串作为索引元,并将背景词典的所述索引元的倒排索引链中的词条加入第一匹配集合,其中背景词典中存有用户的历史查询词;
分别计算所述查询词Q与第一匹配集合中的每一个词条的编辑距离,将第一匹配集合中与所述查询词Q的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合;
输出第二匹配集合中的词条,作为查询词Q的纠错结果。
2.如权利要求1所述的查询纠错方法,其中,所述索引元的长度N1按如下公式确定:
3.如权利要求2所述的查询纠错方法,其中,所述将背景词典的所述索引元的倒排索引链中的词条加入第一匹配集合为:将背景词典的所述索引元的倒排索引链中长度大于等于(|Q|-k)且小于等于(|Q|+k)的词条加入第一匹配集合。
4.如权利要求3所述的查询纠错方法,其中,在根据所述查询词Q的长度|Q|确定索引元的长度N1之前,还包括:
判断所述查询词Q的长度|Q|是否小于等于编辑距离阈值k,若是,则将背景词典中长度小于等于k的词条加入第二匹配集合。
5.如权利要求1所述的查询纠错方法,其中,还包括对背景词典建立多重索引,具体包括以下步骤:
将背景词典D划分为若干个子词典,D={D1,D2,…,Di,…,Dn},子词典Di中的词条长度均为i,1≤i≤n,n为背景词典D中最长的词条的长度;
对每一个子词典Di,根据i的值确定子词典Di的最小索引元长度N2;
对Di中的每一个词条w,将由w中的连续x个字符组成的字符串作为索引元,N2≤x≤N3,N3为最大索引元长度,并在该索引元的倒排索引链追加词条w。
6.如权利要求5所述的查询纠错方法,其中,子词典Di的最小索引元长度N2按如下公式确定:
7.如权利要求5所述的查询纠错方法,其中,最大索引元长度N3的取值为4。
8.一种查询纠错装置,驻留在计算设备中,该装置包括:
输入模块,适于获取用户输入的查询词Q;
存储模块,适于存储背景词典,所述背景词典中包括用户的历史查询词;
第一匹配模块,适于根据所述查询词Q的长度|Q|确定索引元的长度N1,将所有由所述查询词Q中的连续N1个字符组成的字符串作为索引元,并将背景词典的所述索引元的倒排索引链中的词条加入第一匹配集合;
第二匹配模块,适于分别计算所述查询词Q与第一匹配集合中的每一个词条的编辑距离,将第一匹配集合中与所述查询词Q的编辑距离小于等于编辑距离阈值k的词条加入第二匹配集合;和
输出模块,适于输出第二匹配集合中的词条,作为查询词Q的纠错结果。
9.如权利要求8所述的查询纠错装置,其中,所述第一匹配模块还适于按公式确定所述索引元的长度N1。
10.一种计算设备,包括如权利要求8-9中任一项所述的查询纠错装置。
CN201510811761.XA 2015-11-20 2015-11-20 一种查询纠错方法、装置和计算设备 Active CN105468719B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510811761.XA CN105468719B (zh) 2015-11-20 2015-11-20 一种查询纠错方法、装置和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510811761.XA CN105468719B (zh) 2015-11-20 2015-11-20 一种查询纠错方法、装置和计算设备

Publications (2)

Publication Number Publication Date
CN105468719A true CN105468719A (zh) 2016-04-06
CN105468719B CN105468719B (zh) 2018-11-23

Family

ID=55606420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510811761.XA Active CN105468719B (zh) 2015-11-20 2015-11-20 一种查询纠错方法、装置和计算设备

Country Status (1)

Country Link
CN (1) CN105468719B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469097A (zh) * 2016-09-02 2017-03-01 北京百度网讯科技有限公司 一种基于人工智能的召回纠错候选的方法和装置
CN107193921A (zh) * 2017-05-15 2017-09-22 中山大学 面向搜索引擎的中英混合查询纠错的方法及系统
CN107427732A (zh) * 2016-12-09 2017-12-01 香港应用科技研究院有限公司 用于组织和处理基于特征的数据结构的系统和方法
CN107679202A (zh) * 2017-09-30 2018-02-09 北京银通易汇科技有限公司 一种设置倒排索引的方法及装置
WO2018103128A1 (en) * 2016-12-09 2018-06-14 Hong Kong Applied Science and Technology Research Institute Company Limited System and method for organizing and processing feature based data structures
CN110674262A (zh) * 2019-10-16 2020-01-10 北京百度网讯科技有限公司 词语识别方法、装置、电子设备和介质
CN110738042A (zh) * 2019-09-12 2020-01-31 腾讯音乐娱乐科技(深圳)有限公司 纠错词典创建方法、装置、终端及计算机存储介质
CN111783433A (zh) * 2019-12-26 2020-10-16 北京沃东天骏信息技术有限公司 一种文本检索纠错方法和装置
CN113420219A (zh) * 2021-06-30 2021-09-21 北京明略昭辉科技有限公司 用于查询信息纠错的方法、装置、电子设备及可读存储介质
WO2021258853A1 (zh) * 2020-06-24 2021-12-30 平安科技(深圳)有限公司 词汇纠错方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144958A (en) * 1998-07-15 2000-11-07 Amazon.Com, Inc. System and method for correcting spelling errors in search queries
CN1755671A (zh) * 2004-09-30 2006-04-05 北京大学 搜索引擎中的查询词自动纠错方法
CN103198149A (zh) * 2013-04-23 2013-07-10 中国科学院计算技术研究所 一种查询纠错方法和系统
CN104462085A (zh) * 2013-09-12 2015-03-25 腾讯科技(深圳)有限公司 检索关键词纠错方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144958A (en) * 1998-07-15 2000-11-07 Amazon.Com, Inc. System and method for correcting spelling errors in search queries
CN1755671A (zh) * 2004-09-30 2006-04-05 北京大学 搜索引擎中的查询词自动纠错方法
CN103198149A (zh) * 2013-04-23 2013-07-10 中国科学院计算技术研究所 一种查询纠错方法和系统
CN104462085A (zh) * 2013-09-12 2015-03-25 腾讯科技(深圳)有限公司 检索关键词纠错方法及装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469097B (zh) * 2016-09-02 2019-08-27 北京百度网讯科技有限公司 一种基于人工智能的召回纠错候选的方法和装置
CN106469097A (zh) * 2016-09-02 2017-03-01 北京百度网讯科技有限公司 一种基于人工智能的召回纠错候选的方法和装置
CN107427732B (zh) * 2016-12-09 2021-01-29 香港应用科技研究院有限公司 用于组织和处理基于特征的数据结构的系统和方法
CN107427732A (zh) * 2016-12-09 2017-12-01 香港应用科技研究院有限公司 用于组织和处理基于特征的数据结构的系统和方法
WO2018103128A1 (en) * 2016-12-09 2018-06-14 Hong Kong Applied Science and Technology Research Institute Company Limited System and method for organizing and processing feature based data structures
US10127219B2 (en) 2016-12-09 2018-11-13 Hong Kong Applied Science and Technoloy Research Institute Company Limited System and method for organizing and processing feature based data structures
CN107193921B (zh) * 2017-05-15 2020-02-07 中山大学 面向搜索引擎的中英混合查询纠错的方法及系统
CN107193921A (zh) * 2017-05-15 2017-09-22 中山大学 面向搜索引擎的中英混合查询纠错的方法及系统
CN107679202A (zh) * 2017-09-30 2018-02-09 北京银通易汇科技有限公司 一种设置倒排索引的方法及装置
CN110738042A (zh) * 2019-09-12 2020-01-31 腾讯音乐娱乐科技(深圳)有限公司 纠错词典创建方法、装置、终端及计算机存储介质
CN110738042B (zh) * 2019-09-12 2024-01-05 腾讯音乐娱乐科技(深圳)有限公司 纠错词典创建方法、装置、终端及计算机存储介质
CN110674262A (zh) * 2019-10-16 2020-01-10 北京百度网讯科技有限公司 词语识别方法、装置、电子设备和介质
CN111783433A (zh) * 2019-12-26 2020-10-16 北京沃东天骏信息技术有限公司 一种文本检索纠错方法和装置
WO2021258853A1 (zh) * 2020-06-24 2021-12-30 平安科技(深圳)有限公司 词汇纠错方法、装置、计算机设备及存储介质
CN113420219A (zh) * 2021-06-30 2021-09-21 北京明略昭辉科技有限公司 用于查询信息纠错的方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN105468719B (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN105468719A (zh) 一种查询纠错方法、装置和计算设备
JP6553649B2 (ja) クラスタリング記憶方法および装置
US10242071B2 (en) Preliminary ranker for scoring matching documents
CN105893349B (zh) 类目标签匹配映射方法及装置
JP4672418B2 (ja) ユーザモデリングによる効率のよい大文字化
CN107220384B (zh) 一种基于相关性的搜索词处理方法、装置及计算设备
CN104199965B (zh) 一种语义信息检索方法
CN105917327A (zh) 用于将文本输入到电子设备中的系统和方法
US20120259615A1 (en) Text prediction
CN1703692A (zh) 创建和使用紧凑语言数据的系统和方法
CN102866782A (zh) 一种提高整句生成效率的输入法和输入法系统
CN108228571B (zh) 对联的生成方法、装置、存储介质及终端设备
CN103514236A (zh) 检索应用中基于拼音的检索条件纠错提示处理方法
WO2021139268A1 (zh) 敏感词检测方法、装置、计算机设备及存储介质
EP3314464A2 (en) Storage and retrieval of data from a bit vector search index
CN104268157A (zh) 一种数据搜索中的纠错装置及其方法
WO2016209964A1 (en) Bit vector search index using shards
WO2016209952A1 (en) Reducing matching documents for a search query
CN104899214A (zh) 一种建立输入建议的数据处理方法和系统
CN104281275A (zh) 一种英文的输入方法和装置
CN103942226A (zh) 获取热点内容的方法和装置
US20150160921A1 (en) Parallel Sorting Key Generation
WO2016209968A2 (en) Updating a bit vector search index
US8682644B1 (en) Multi-language sorting index
JP2006040081A (ja) 情報検索装置及びデータベース検索前処理回路及び情報検索方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant