CN104268157A - 一种数据搜索中的纠错装置及其方法 - Google Patents
一种数据搜索中的纠错装置及其方法 Download PDFInfo
- Publication number
- CN104268157A CN104268157A CN201410447009.7A CN201410447009A CN104268157A CN 104268157 A CN104268157 A CN 104268157A CN 201410447009 A CN201410447009 A CN 201410447009A CN 104268157 A CN104268157 A CN 104268157A
- Authority
- CN
- China
- Prior art keywords
- search keyword
- search
- keyword
- error correction
- key
- 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.)
- Pending
Links
Classifications
-
- 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/332—Query formulation
- G06F16/3322—Query formulation using system suggestions
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
-
- 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/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据搜索中的纠错装置及其方法,包括:关键词统计模块,用于对所有搜索关键词进行统计,获得所述搜索关键词的第一特征;关键词插入模块,用于将所述搜索关键词根据其第一特征插入到构建的分类数据结构中,所述分类数据结构的每个节点存放N个搜索关键词,所述N为大于或者等于1的自然数;键值对应模块,用于分别对每个节点所存放的搜索关键词进行两两比较,根据所述比较结果,确定所述比较的两个搜索关键词中的错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对;纠错操作模块,用于对接收的搜索关键词根据所述键值对进行纠错操作处理。本发明对搜索关键词进行纠错的方式计算量小,计算效率高。
Description
技术领域
本发明涉及数据搜索技术领域,尤其涉及一种数据搜索中的纠错装置及其方法。
背景技术
随着互联网技术的发展,网络信息数据量也越来越大,比如视频网站中大量的视频信息,网站论坛中大量用户的发布信息,以及用户的历史海量日志。为了实现某一操作目的,需要在大数据量的网络信息中获得满足需求的数据。
现有的数据搜索技术多采用基于搜索关键词(query)进行搜索,由搜索引擎服务器根据输入的搜索关键词,在预先建立的数据索引中进行搜索,然后将该索引数据呈现给用户。但是,搜索关键词由于输入的随意性和不规范性,很容易发生错误。而错误的搜素关键词会导致无法搜索到相应的搜索结果或者搜索到错误的搜索结果。
为了区分搜索关键词中的错误的搜索关键词,现有技术通常将所有搜索关键词进行两两比较,计算所有搜索关键词的两两相似度,即可找出哪些是错误的搜索关键词,以及对应的正确搜索关键词。通过这样的方式实现搜索关键词的纠错,保证搜索的准确性,但是对所有搜索关键词两两比较的搜索关键词纠错方式计算量庞大,计算效率低下。
因此,如何提高对搜索关键词进行纠错的效率成为数据搜索技术中亟待解决的技术问题。
发明内容
有鉴于此,本发明提供一种数据搜索中的纠错装置及其方法,其对搜索关键词进行纠错的方式计算量小,计算效率高。
本发明提供一种数据搜索中的纠错装置,包括:
关键词统计模块,用于对所有搜索关键词进行统计,获得所述搜索关键词的第一特征;
关键词插入模块,用于将所述搜索关键词根据其第一特征插入到预先构建的分类数据结构中,所述分类数据结构的每个节点存放N个搜索关键词,所述N为大于或者等于1的自然数;
键值对应模块,用于分别对每个节点所存放的搜索关键词进行两两比较,根据比较结果,确定进行比较的两个搜索关键词中的错误的搜索关键词与对应的用于纠错的搜索关键词,并将所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对;
纠错操作模块,用于对接收的搜索关键词根据所述键值对进行纠错操作处理。
本发明还提供一种数据搜索中的纠错方法,包括:
对所有搜索关键词进行统计,获得所述搜索关键词的第一特征;
将所述搜索关键词根据其第一特征插入到预先构建的分类数据结构中,所述分类数据结构的每个节点存放N个搜索关键词,所述N为大于或者等于1的自然数;
分别对每个节点所存放的搜索关键词进行两两比较,根据比较结果,确定所述比较的两个搜索关键词中的错误的搜索关键词与对应的用于纠错的搜索关键词,并将所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对;
对接收的搜索关键词根据所述键值对进行纠错操作处理。
由以上技术方案可见,本发明通过对所有搜索关键词进行统计,并根据所述搜索关键词的第一特征将所述搜索关键词插入到建立的分类数据结构中。进而实现分别对分类数据结构中每个节点所存放的搜索关键词进行两两比较,根据比较结果确定错误的搜索关键词与对应的用于纠错的搜索关键词,并将两者组成键值对。本发明根据该键值对对接收的搜索关键词进行纠错。因此,本发明仅需要对分类数据结构中每个节点所存放的搜索关键词进行两两比较,无需对全部搜索关键词进行两两比较,大大减少了对搜索关键词进行纠错的计算量,提高了计算效率。
附图说明
图1是本发明数据搜索中的纠错装置的结构图;
图2是本发明字典树的示意图;
图3是将拼音字母插入字典树的示意图;
图4是本发明键值对应模块的结构图;
图5是本发明数据搜索中的纠错方法的流程图;
图6是本发明步骤S4的流程图。
具体实施方式
通常的数据搜索技术为了避免由于搜索关键词输入的随意性和不规范性造成的搜索错误,通常利用与搜索关键词具有一定相关关系,比如同义词或者更加规范的用词对搜索关键词进行纠错。但是在对搜索关键词进行纠错前,往往需要先建立纠错文件,该纠错文件包括错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。该键值对的建立需要对所有搜索关键词进行两两比较,计算所有搜索关键词的两两相似度,这样庞大的计算量造成纠错文件建立的计算效率低下。
本发明通过对所有搜索关键词进行统计,并根据所述搜索关键词的第一特征将所述搜索关键词插入到建立的分类数据结构中。进而实现分别对分类数据结构中每个节点所存放的搜索关键词进行两两比较,根据比较结果确定错误的搜索关键词与对应的用于纠错的搜索关键词,并将两者组成键值对。本发明根据该键值对对接收的搜索关键词进行纠错。因此,本发明仅需要对分类数据结构中每个节点所存放的搜索关键词进行两两比较,无需对全部搜索关键词进行两两比较,大大减少了对搜索关键词进行纠错的计算量,提高了计算效率。
下面结合本发明附图进一步说明本发明具体实现。
参见图1,本发明提供一种数据搜索中的纠错装置,应用于计算机、手机、平板等设备,所述硬件设备通常包括CPU、输入输出模块、内存以及其他硬件模块。本发明可以用来搜索网站论坛中大量用户的发布信息,服务器中的视频文件以及用户的历史海量日志等大数据量信息。
本发明装置包括:
关键词统计模块11,用于对所有搜索关键词进行统计,获得所述搜索关键词的第一特征。
关键词插入模块12,用于将所述搜索关键词根据其第一特征插入到预先构建的分类数据结构,所述分类数据结构的每个节点存放N个搜索关键词,所述N为大于或者等于1的自然数。
键值对应模块13,用于分别对每个节点所存放的搜索关键词进行两两比较,根据比较结果,确定进行比较的两个搜索关键词中的错误的搜索关键词与对应的用于纠错的搜索关键词,并将所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。
纠错操作模块14,用于对接收的搜索关键词根据所述键值对进行纠错操作处理。
本发明仅需要对分类数据结构中每个节点所存放的搜索关键词进行两两比较,无需对所有搜索关键词进行两两比较,大大减少了对搜索关键词进行纠错的计算量,提高了计算效率。
由于关键词输入通常是通过拼音或者五笔输入法输出,所以搜索关键词输入的随意性和不规范性也通常是由于输入法造成的。为了能够获知所述搜索关键词是错误的搜索关键词还是用于纠错的搜索关键词,更好的对搜索关键词进行纠错,所述关键词统计模块11对所述搜索关键词进行统计,获得所述搜索关键词的拼音或者汉字笔画作为搜索关键词的第一特征。
在本发明的具体实现中,本发明预先建立的分类数据结构为字典树。
参见图2,字典树(Trie树),又称单词查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。图2中根节点不保存字符,所述字典树各子节点依序分别存储字符串的一个字符,字典树中所保存的字符串为ab、abc、bd、dda,字符串结尾用黑色表示该字符串结束。
本申请的一个实施例中在字典树每个节点都建立一个搜索关键词表,搜索关键词表的大小为N(比如,N=100),这个搜索关键词表能存放N个搜索关键词。本发明关键词插入模块12将所述搜索关键词根据其拼音或者汉字笔画插入到字典树中。
本申请的一个实施例仅以根据拼音将搜索关键词插入到字典树中某一节点对应的搜索关键词表为例进行说明。
在本发明一种具体实现方式中,首先,将任一搜索关键词的中每个字符的首拼音标识按照字符的顺序进行排列。当然,如果搜索关键词较长,也可以取预设长度(比如,前四个)的部分搜索关键词中每个字符的首拼音标识按照字符的顺序进行排列。其次,将所述首拼音标识按照排列的顺序设置在同一个子树中级别的逐级加深的相应结点上。比如,将第一字符的首拼音标识设置在根节点的子节点上,将第二字符的首拼音标识设置在第一字符的首拼音标识设置的节点的子节点上,依次类推进行设置。因此,完成上述设置后,所述搜索关键词(或者预设长度的部分搜索关键词)中依次排列的字符的首拼音标识可以通过从同一个子树的根结点依级别遍历到后续结点获得。再次,将所述搜索关键词插入到所述遍历的最后一个节点中。例如,参见图3,本发明统计得到的搜索关键词为:“婚里婚外那些事儿”、“婚礼婚外那些事儿”、“环里环外那些事儿”、“婚礼”、“婚里”、“狄仁杰”、“敌人姐”、“低热界”。获得上述搜索关键词的拼音,分别为:“hunlihunwainaxieshier”、“hunlihunwainaxieshier”、“huanlihuanwainaxieshier”、“hunli”、“hunli”、“direnjie”、“direnjie”、“direjie”。具体地,本发明根据拼音将搜索关键词“婚里婚外那些事儿”插入到字典树中为:1)将搜索关键词“婚里婚外那些事儿”取前四个字中每个字的首拼音标识的排列顺序为“h”、“l”、“h”、“w”。2)将每个字符的首拼音标识“h”、“l”、“h”、“w”依次设置在同一个子树的相应结点上。即,将拼音标识“h”设置在根节点的子节点上,将拼音标识“l”设置在拼音标识“h”所设置的节点的子节点上,将拼音标识“h”设置在拼音标识“l”所设置的节点的子节点上,将拼音标识“w”设置在拼音标识“h”所设置的节点的子节点上。3)将搜索关键词“婚里婚外那些事儿”插入到拼音标识“w”设置的节点中。依此步骤将搜索关键词“婚礼婚外那些事儿”、“环里环外那些事儿”、“婚礼”、“婚里”、“狄仁杰”、“敌人姐”、“低热界”插入到字典树中相应的节点对应的搜索关键词表中。由上述论述可知,搜索关键词“婚里婚外那些事儿”、“婚礼婚外那些事儿”以及“环里环外那些事儿”会被插入到同一节点中,搜索关键词“婚礼”、“婚里”插入到同一节点中,搜索关键词“狄仁杰”、“敌人姐”、“低热界”插入到同一节点中。分别将“婚里婚外那些事儿”、“婚礼婚外那些事儿”以及“环里环外那些事儿”进行两两比较(3次);“婚礼”、“婚里”进行两两比较(1次);“狄仁杰”、“敌人姐”、“低热界”进行两两比较(3次)。而无需如现有技术般,将“婚里婚外那些事儿”、“婚礼婚外那些事儿”、“环里环外那些事儿”、“婚礼”、“婚里”、“狄仁杰”、“敌人姐”、“低热界”全部进行两两比较(56次),大大减少了对搜索关键词进行纠错的计算量,大大提高了计算效率。
上述实施例建立含有多个子树的字典树,每个子树中不同的子结点(下一级节点)共用相同的父节点(下一级节点),同一个父节点的子节点各不相同,结尾用黑色表示该字符串结束,每个子节点对应的搜索关键词表中的搜索词的拼音首字母构成的字符串中的各字母依序存储在字典树相应分支的各节点。
由于根据笔画将搜索关键词插入到字典树中同根据拼音将搜索关键词插入到字典树中类似,如:可以取搜索关键词的每个字的首笔画作为其第一特征,按照设定的笔画顺序建立字典树。故在此不再赘述。
当然本发明亦可采用字典树以外的其他分类数据结构来实现本发明,比如二叉搜索树、三叉搜索树、链表等,本申请对此不作限定。本领域技术人员亦可根据上述根据拼音将搜索关键词插入到字典树中操作完成将所述搜索关键词根据其拼音或者汉字笔画插入到二叉搜索树、三叉搜索树、链表等其他分类数据结构中。
进一步,本发明所述关键词统计模块11还用于获得所述搜索关键词的搜索历史。具体地,所述搜索历史包括搜索次数和/或在原有键值对(原纠错文件所保存键值对)中作为错误的搜索关键词和作为用于纠错的搜索关键词的历史。
所述关键词插入模块12根据所述搜索关键词的第一特征及搜索历史将其插入到所述分类数据结构中。
在本发明的优选实施例中,将所述搜索关键词按照其搜索次数进行排序,然后按照其排序,依据第一特征将所述搜索关键词插入到字典树中。由于搜索关键词被搜索的次数越多,其成为用于纠错的搜索关键词的概率越高。而且,字典树每个节点建立的搜索关键词表的大小固定为N,将搜索关键词按照其搜索次数进行排序后,依据第一特征插入到字典树中,能够保证搜索次数高的搜索关键词先被插入,搜索次数低的搜索关键词后被插入或者无法被插入。因此,在本实施例中建立的字典树搜索效率更高,减少了纠错计算量,提高了纠错效果。
同理,参考所述搜索关键词在原键值对中作为错误的搜索关键词和作为用于纠错的搜索关键词的历史,将在原有键值对中作为用于纠错的搜索关键词的搜索关键词先插入到字典树中,亦保证了建立的字典树搜索效率更高,减少了纠错计算量,提高了纠错效果。
参见图4,在本发明一示例性实施例中,所述键值对应模块13包括:
相似度计算单元131,用于两两计算每个节点所存放的搜索关键词的相似度,将相似度低于第一预设阈值的两个关键词设置为第一关键词对。
键值确定单元132,用于根据所述搜索关键词的搜索历史,确定所述第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词,并令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。
本发明相似度计算单元131获得的第一关键词对的相似度低于第一预设阈值,则表明第一关键词对中的两个搜索关键词中的一个搜索关键词可能属于由于输入的随意性和不规范性造成的错误的搜索关键词。因而采用键值确定单元132结合搜索历史确定第一关键词对中的两个搜索关键词中的哪个搜索关键词属于错误的搜索关键词,哪个属于用于纠错的搜索关键词。所述第一预设阈值由本领域技术人员根据需要及经验设置。
具体地,所述两两计算每个节点所存放的搜索关键词的相似度(相近程度)的计算可以使用编辑距离计算。编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。假设计算搜索关键词q1和搜索关键词q2的相似度S:
S=D/L,其中D为搜索关键词q1与搜索关键词q2之间的的编辑距离,L为搜索关键词q1与搜索关键词q2两者的最长距离(搜索关键词的最大字数)。
例如,搜索关键词“婚礼婚外那些事”和搜索关键词“婚里婚外那些事”的编辑距离为1,即将“礼”转换成“里”,转换一次。搜索关键词“婚礼婚外那些事”和搜索关键词“婚里婚外那些事”的最长距离为7。则搜索关键词“婚礼婚外那些事”和搜索关键词“婚里婚外那些事”的相似度则等于1/7。
此处搜索关键词q1与搜索关键词q2之间的编辑距离为两个搜索关键词字符之间的转换次数,当然亦可以考量两个搜索关键词拼音之间的转换次数,例如“direnjie”与“direjie”之间的编辑距离为1。优选地,将两个搜索关键词q1与q2之间的字符编辑距离乘以一个加权值和两个搜索关键词q1与q2之间的拼音编辑距离乘以另一个加权值后相加作为两个搜索关键词q1与q2之间的编辑距离。所述加权值由本领域技术人员根据系统需求进行设定。
另外,值得说明的是,本发明的具体实现中,通常还包括一正确搜索关键词数据库,用于存放预先保存的正确的搜索关键词。如所述第一关键词对中的一个搜索关键词命中所述正确搜索关键词数据库中的正确的搜索关键词,则将该搜索关键词确定为用于纠错的搜索关键词,另一搜索关键词确定为错误的搜索关键词。如所述第一关键词对中的任何一个搜索关键词都未命中所述正确搜索关键词数据库中的正确的搜索关键词,则继续采用键值确定单元132结合搜索历史确定第一关键词对中的两个搜索关键词中的哪个搜索关键词属于错误的搜索关键词,哪个属于用于纠错的搜索关键词。
进一步,所述键值确定单元132根据搜索次数和/或在原有键值对中作为错误的搜索关键词与纠错搜索关键词的历史确定第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词。例如,所述键值确定单元132根据第一关键词对中的两个搜索关键词的搜索次数进行比较,将搜索次数少的搜素关键词的搜索次数/搜索次数多的搜索关键词的搜索次数,以获得两者的检索比。当所述检索比低于第三预设阈值,则搜索次数少的搜素关键词为错误的搜索关键词,搜索次数多的搜索关键词即为用于纠错的搜索关键词。所述第三预设阈值由本领域技术人员根据需要及经验设置。又例如,所述键值确定单元132参考第一关键词对中的两个搜索关键词的在原有键值对中作为错误的搜索关键词与用于纠错的搜索关键词的历史,如一个搜索关键词在原有键值对中作为错误的搜索关键词,那仍认定此搜索关键词为错误的搜索关键词,而认定另一搜索关键词即为用于纠错的搜索关键词。
本发明可以单独依据搜索次数或者在原有键值对中作为错误的搜索关键词与纠错搜索关键词的历史确定第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词。本发明亦可结合搜索次数以及在原有键值对中作为错误的搜索关键词与纠错搜索关键词的历史,综合确定第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词。比如,先根据在原有键值对中作为错误的搜索关键词与纠错搜索关键词的历史将第一关键词对中一个搜索关键词设置为错误的搜索关键词,另一个搜索关键词设置为用于纠错的搜索关键词。然后将第三预设阈值设置为一个很小的值,只有搜索次数少的搜素关键词的搜索次数/搜索次数多的搜索关键词的搜索次数小于该第三预设阈值时,才改变原来的设置。将原设置为错误的搜索关键词修改为用于纠错的搜索关键词,将原设置为用于纠错的搜索关键词修改为错误的搜索关键词。这样,避免了单独考量搜索次数或者原键值对时造成的误判,提高了确定第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词的准确性。
更进一步地,本发明键值确定单元132在根据所述搜索关键词的搜索历史,确定所述第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词后仍需要计算所述错误的搜索关键词与对应的用于纠错的搜索关键词之间的错误度(差异度)。如果所述错误度大于第二预设阈值,则令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。所述第二预设阈值由本领域技术人员根据需要及经验设置。
错误的搜索关键词与对应的用于纠错的搜索关键词之间的错误度,具体指的是错误的搜索关键词与对应的用于纠错的搜索关键词相比的错误概率。首先,错误的搜索关键词与对应的用于纠错的搜索关键词相比的错误度和错误的搜索关键词与对应的用于纠错的搜索关键词之间的相似度成正比,相似度越高,错误度越高。
例如:错误的搜索关键词=“婚礼婚外那些事”,用于纠错的搜索关键词=“婚里婚外那些事”,这两个搜索关键词相似度很高,因此,其错误度就很高,(注:“婚里婚外那些事”是一部电视剧)。
再例如,错误的搜索关键词为“婚礼”,用于纠错的搜索关键词为“婚里婚外那些事”,这两个搜索关键词相似度很低,因此,其错误度就很低。显然“婚礼”也是词汇,不应当识别成错误的搜索关键词,“婚礼”不能与“婚里婚外那些事”组成键值对。
其次,错误的搜索关键词与对应的用于纠错的搜索关键词相比的错误度与错误的搜索关键词与对应的用于纠错的搜索关键词的检索比成反比,检索比越高,错误度越低。
例如:错误的搜索关键词为“天下第一丑”,被检索了9000次;用于纠错的搜索关键词为“天下第一刀”,被检索了10000次,两者的检索比高达0.9。这种情况下,可以认为错误的搜索关键词与对应的用于纠错的搜索关键词相比的错误度很低,“天下第一丑”和“天下第一刀”不能组成键值对。实际上“天下第一丑”和“天下第一刀”分别是电视剧的名称和综艺的名称。
又例如:错误的搜索关键词为“狄人杰”,被检索了100次,用于纠错的搜索关键词为“狄仁杰”,被检索了10000次,两者的检索比为0.01,这种情况下,可以认为错误的搜索关键词与对应的用于纠错的搜索关键词相比的错误度很高,“狄人杰”和“狄仁杰”应当被组成键值对。
基于上述的原因,所述错误度和相似度成正比,和检索比成反比。具体地,其公式可以设置为:错误度=相似度k*(1-检索比),其中k表是相似度的权重,若k=1,表示相似度与检索比共同看重,k>1表示更加看重相似度,k<1表示看重检索比。
所述错误度的计算公式也可以设置为:错误度=相似度k/检索比,仅需所述错误度和相似度成正比,和检索比成反比。
如果每个节点中的键值对中的一个键值对的纠错搜索关键词是另一键值对中错误的搜索关键词,则表明这个键值对中的错误的搜索关键词是实际上并不需要进行纠错的搜索关键词。因此,本发明还包括过滤处理模块,用于将所有键值对中纠错搜索关键词为另一键值对中错误的搜索关键词的键值对滤除,并将滤除后的剩余键值对进行保存。
具体地,本发明纠错操作模块14在内存中加载键值对组成的纠错文件,构建哈希表(hashmap),设定主键(key)为错误的搜索关键词,值(value)为用于纠错的搜索关键词。对输入的搜索关键词进行判别,如果哈希表中存在与输入搜索关键词相同的主键,直接对输入的搜索关键词进行纠错,将主键对应的值作为纠错后的搜索关键词。根据纠错后的搜索关键词进行数据搜索,获得相应的搜索结果。
对应于本发明装置,本发明还提供一种数据搜索中的纠错方法,参看图5,所述方法包括:
S1、对所有搜索关键词进行统计,获得所述搜索关键词的第一特征;
S2、将所述搜索关键词根据其第一特征插入到预先构建的分类数据结构中,所述分类数据结构的每个节点存放N个搜索关键词,所述N为大于或者等于1的自然数;
S3、分别对每个节点所存放的搜索关键词进行两两比较,根据比较结果,确定进行比较的两个搜索关键词中的错误的搜索关键词与对应的用于纠错的搜索关键词,并将所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对;
S4、对接收的搜索关键词根据所述键值对进行纠错操作处理。
本发明仅需要对分类数据结构中每个节点所存放的搜索关键词进行两两比较,无需对所有搜索关键词进行两两比较,大大减少了对搜索关键词进行纠错的计算量,提高了计算效率。
由于关键词输入通常是通过拼音或者五笔输入法输出,所以搜索关键词输入的随意性和不规范性也通常是由于输入法造成的。为了能够获知所述搜索关键词是错误的搜索关键词还是用于纠错的搜索关键词,更好的对搜索关键词进行纠错,对所述搜索关键词进行统计,获得所述搜索关键词的拼音或者汉字笔画作为搜索关键词的第一特征。
在本发明的具体实现中,本发明建立的分类数据结构为字典树。构建字典树后,在字典树每个节点都建立一个搜索关键词表,搜索关键词表的大小为N(比如N=100),这个搜索关键词表能存放N个搜索关键词。
所述步骤S1还包括获得所述搜索关键词的搜索历史。具体地,所述搜索历史包括搜索次数和/或在原有键值对中作为错误的搜索关键词与作为用于纠错的搜索关键词的历史。
所述步骤S2为根据所述搜索关键词的第一特征及搜索历史将其插入到所述分类数据结构中。
在本发明的优选实施例中,将所述搜索关键词按照其搜索次数进行排序,然后按照其排序将所述搜索关键词插入到字典树中。由于搜索关键词被搜索的次数越多,其成为用于纠错的搜索关键词的概率越高。而且,字典树每个节点建立的搜索关键词表的大小固定为N,将搜索关键词按照其搜索次数进行排序后插入到字典树中,能够保证搜索次数高的搜索关键词先被插入,搜索次数低的搜索关键词后被插入或者无法被插入。因此,在本实施例中建立的字典树搜索效率更高,减少了纠错计算量,提高了纠错效果。
同理,参考所述搜索关键词在原有键值对中作为错误的搜索关键词与用于纠错的搜索关键词的历史,将在原有键值对中作为纠错的搜索关键词的搜索关键词先插入到字典树中,亦保证了建立的字典树搜索效率更高,减少了纠错计算量,提高了纠错效果。
参见图6,所述步骤S3包括:
S31、两两计算每个节点所存放的搜索关键词的相似度,将相似度低于第一预设阈值的两个关键词设置为第一关键词对;
S32、根据所述搜索关键词的搜索历史,确定所述第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词,并令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。
本发明步骤S31获得的第一关键词对的相似度低于第一预设阈值,则表明第一关键词对中的两个搜索关键词中的一个搜索关键词可能属于由于输入的随意性和不规范性造成的错误的搜索关键词。因而步骤S2结合搜索历史确定第一关键词对中的两个搜索关键词中的哪个搜索关键词属于错误的搜索关键词,哪个属于用于纠错的搜索关键词。所述第一预设阈值由本领域技术人员根据需要及经验设置。
进一步,根据搜索次数和/或在原有键值对中作为错误的搜索关键词与纠错搜索关键词的历史确定第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词。例如,根据第一关键词对中的两个搜索关键词的搜索次数进行比较,将搜索次数少的搜素关键词的搜索次数/搜索次数多的搜索关键词的搜索次数,以获得两者的检索比。当所述检索比低于第三预设阈值,则此搜索关键词为错误的搜索关键词,另一搜索关键词即为用于纠错的搜索关键词。所述第三预设阈值由本领域技术人员根据需要及经验设置。又例如,参考第一关键词对中的两个搜索关键词的在原有键值对中作为错误的搜索关键词与纠错搜索关键词的历史,如一个搜索关键词在原有键值对中作为错误的搜索关键词,那仍认定此搜索关键词为错误的搜索关键词,而认定另一搜索关键词即为纠错搜索关键词。
本发明在根据所述搜索关键词的搜索历史,确定所述第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词后仍需要计算所述错误的搜索关键词与对应的用于纠错的搜索关键词之间的错误度(相似度)。只有在所述错误度大于第二预设阈值,则令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。所述第二预设阈值由本领域技术人员根据需要及经验设置。
本发明方法还包括:将所有键值对中纠错搜索关键词为另一键值对中错误的搜索关键词的键值对滤除,并将滤除后的剩余键值对进行保存。
如果每个节点中的键值对中的一个键值对的纠错搜索关键词是另一键值对中错误的搜索关键词,则表明这个键值对中的错误的搜索关键词是实际上并不需要进行纠错的搜索关键词。
具体地,本发明步骤S4在内存中加载键值对组成的纠错文件,构建哈希表(hashmap),设定主键(key)为错误的搜索关键词,值(value)为纠错搜索关键词。对输入的搜索关键词进行判别,如果哈希表中存在与输入搜索关键词相同的主键,直接对输入的搜索关键词进行纠错,将主键对应的值作为纠错后的搜索关键词。根据纠错后的搜索关键词进行数据搜索,获得相应的搜索结果。
下面以一具体实现来进一步说明本发明原理。
统计所有搜索关键词的拼音以及搜索次数,并建立一个具有26个节点的字典树。该字典树每个节点的搜索关键词表的大小为100,即每个节点能存放100个搜索关键词。将所有搜索关键词按照搜索次数进行排序后根据拼音插入到该字典树中。
两两计算每个节点所存放的搜索关键词的相似度,将相似度低于第一预设阈值的两个关键词设置为第一关键词对。
比较所述搜索关键词的搜索次数,搜索次数低的搜索关键词的搜索次数/搜索次数高的搜索关键词的搜索次数获得两者的检索比,所述检索比低于第三预设阈值,则搜索次数低的搜索关键词为错误的搜索关键词,另一搜索关键词即为用于纠错的搜索关键词。
计算所述错误的搜索关键词与对应的用于纠错的搜索关键词之间的错误度。在所述错误度大于第二预设阈值,则令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。
将所有键值对中纠错搜索关键词为另一键值对中错误的搜索关键词的键值对滤除,并将滤除后的剩余键值对进行保存。
因此,本发明仅需分别对26个节点中每个节点所存放的100个搜索关键词进行两两比较,找出所有错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。而无需如现有技术一般将26*100个搜索关键词进行两两比较,计算所有搜索关键词的两两相似度。本发明减少了对搜索关键词进行纠错的计算量,提高了计算效率。
本发明在内存中加载所获得的键值对组成的纠错文件,构建哈希表(hashmap),设定主键(key)为错误的搜索关键词,值(value)为用于纠错的搜索关键词。对输入的搜索关键词进行判别,如果哈希表中存在与输入搜索关键词相同的主键,直接对输入的搜索关键词进行纠错,将主键对应的值作为纠错后的搜索关键词。根据纠错后的搜索关键词进行数据搜索,获得相应的搜索结果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (12)
1.一种数据搜索中的纠错装置,其特征在于,包括:
关键词统计模块,用于对所有搜索关键词进行统计,获得所述搜索关键词的第一特征;
关键词插入模块,用于将所述搜索关键词根据其第一特征插入到预先构建的分类数据结构中,所述分类数据结构的每个节点存放N个搜索关键词,所述N为大于或者等于1的自然数;
键值对应模块,用于分别对每个节点所存放的搜索关键词进行两两比较,根据比较结果,确定进行比较的两个搜索关键词中的错误的搜索关键词与对应的用于纠错的搜索关键词,并将所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对;
纠错操作模块,用于对接收的搜索关键词根据所述键值对进行纠错操作处理。
2.根据权利要求1所述的装置,其特征在于,所述关键词统计模块还用于获得所述搜索关键词的搜索历史,所述搜索历史包括搜索次数和/或在原有键值对中作为错误的搜索关键词和作为用于纠错的搜索关键词的历史;
所述关键词插入模块根据所述搜索关键词的第一特征及搜索历史将其插入到所述分类数据结构中。
3.根据权利要求1或2所述的装置,其特征在于,所述分类数据结构为字典树。
4.根据权利要求3所述的装置,其特征在于,所述键值对应模块包括:
相似度计算单元,用于两两计算每个节点所存放的搜索关键词的相似度,将相似度低于第一预设阈值的两个关键词设置为第一关键词对;
键值确定单元,用于根据所述搜索关键词的搜索历史,确定所述第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词,并令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。
5.根据权利要求4所述的装置,其特征在于,所述键值确定单元还用于计算所述错误的搜索关键词与对应的用于纠错的搜索关键词之间的错误度,如果所述错误度大于第二预设阈值,则令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。
6.根据权利要求1所述的装置,其特征在于,还包括过滤处理模块,用于将所有键值对中用于纠错的搜索关键词为另一键值对中错误的搜索关键词的键值对滤除,并将滤除后的剩余键值对进行保存。
7.一种数据搜索中的纠错方法,其特征在于,包括:
对所有搜索关键词进行统计,获得所述搜索关键词的第一特征;
将所述搜索关键词根据其第一特征插入到预先构建的分类数据结构中,所述分类数据结构的每个节点存放N个搜索关键词,所述N为大于或者等于1的自然数;
分别对每个节点所存放的搜索关键词进行两两比较,根据比较结果,确定所述比较的两个搜索关键词中的错误的搜索关键词与对应的用于纠错的搜索关键词,并将所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对;
对接收的搜索关键词根据所述键值对进行纠错操作处理。
8.根据权利要求7所述的方法,其特征在于,所述对所有搜索关键词进行统计,获得所述搜索关键词的第一特征还包括:获得所述搜索关键词的搜索历史,所述搜索历史包括搜索次数和/或在原有键值对中作为错误的搜索关键词和作为用于纠错的搜索关键词的历史;
所述将所述搜索关键词根据其第一特征插入到所述分类数据结构中为:根据所述搜索关键词的第一特征及搜索历史将其插入到所述分类数据结构中。
9.根据权利要求7或8所述的方法,其特征在于,所述分类数据结构为字典树。
10.根据权利要求9所述的方法,其特征在于,所述分别对每个节点所存放的搜索关键词进行两两比较,根据比较结果,确定所述比较的两个搜索关键词中的错误的搜索关键词与对应的用于纠错的搜索关键词,并将所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对包括:
两两计算每个节点所存放的搜索关键词的相似度,将相似度低于第一预设阈值的两个关键词设置为第一关键词对;
根据所述搜索关键词的搜索历史,确定所述第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词,并令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。
11.根据权利要求10所述的方法,其特征在于,所述根据所述搜索关键词的搜索历史,确定所述第一关键词对中的错误的搜索关键词与对应的用于纠错的搜索关键词,并令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对还包括:计算所述错误的搜索关键词与对应的用于纠错的搜索关键词之间的错误度,如果所述错误度大于第二预设阈值,则令所述错误的搜索关键词与对应的用于纠错的搜索关键词组成键值对。
12.根据权利要求7所述的方法,其特征在于,还包括将所有键值对中用于纠错的搜索关键词为另一键值对中错误的搜索关键词的键值对滤除,并将滤除后的剩余键值对进行保存。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410447009.7A CN104268157A (zh) | 2014-09-03 | 2014-09-03 | 一种数据搜索中的纠错装置及其方法 |
PCT/CN2015/087971 WO2016034052A1 (zh) | 2014-09-03 | 2015-08-25 | 一种数据搜索中的纠错装置及其方法 |
JP2016563112A JP2017526021A (ja) | 2014-09-03 | 2015-08-25 | データ検索におけるエラー修正装置及びその方法 |
EP15837832.3A EP3179383A4 (en) | 2014-09-03 | 2015-08-25 | Device and method for error correction in data search |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410447009.7A CN104268157A (zh) | 2014-09-03 | 2014-09-03 | 一种数据搜索中的纠错装置及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104268157A true CN104268157A (zh) | 2015-01-07 |
Family
ID=52159679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410447009.7A Pending CN104268157A (zh) | 2014-09-03 | 2014-09-03 | 一种数据搜索中的纠错装置及其方法 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3179383A4 (zh) |
JP (1) | JP2017526021A (zh) |
CN (1) | CN104268157A (zh) |
WO (1) | WO2016034052A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951508A (zh) * | 2015-05-21 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 时间信息识别方法和装置 |
WO2016034052A1 (zh) * | 2014-09-03 | 2016-03-10 | 乐视网信息技术(北京)股份有限公司 | 一种数据搜索中的纠错装置及其方法 |
CN105955986A (zh) * | 2016-04-18 | 2016-09-21 | 乐视控股(北京)有限公司 | 一种字符的转换方法及装置 |
CN106339418A (zh) * | 2016-08-15 | 2017-01-18 | 乐视控股(北京)有限公司 | 一种分类纠错方法及装置 |
CN106850572A (zh) * | 2016-12-29 | 2017-06-13 | 网宿科技股份有限公司 | 目标资源的访问方法和装置 |
CN109522550A (zh) * | 2018-11-08 | 2019-03-26 | 和美(深圳)信息技术股份有限公司 | 文本信息纠错方法、装置、计算机设备和存储介质 |
CN109657044A (zh) * | 2018-12-14 | 2019-04-19 | 北京向上心科技有限公司 | 数据检索方法、数据排序方法、装置、终端以及存储介质 |
CN110597800A (zh) * | 2018-05-23 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种注释信息确定、前缀树构建方法及装置 |
CN111310473A (zh) * | 2020-02-04 | 2020-06-19 | 四川无声信息技术有限公司 | 文本纠错方法及其模型训练的方法、装置 |
CN112131461A (zh) * | 2020-09-09 | 2020-12-25 | 重庆易宠科技有限公司 | 一种商品搜索方法、系统、终端及计算机可读存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609859A (zh) * | 2019-09-19 | 2019-12-24 | 惠州市中心人民医院 | 一种基于词组库的智能精准检索方法 |
CN111814455B (zh) * | 2020-06-29 | 2022-08-26 | 平安国际智慧城市科技股份有限公司 | 搜索词纠错对构建方法、终端及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755671A (zh) * | 2004-09-30 | 2006-04-05 | 北京大学 | 搜索引擎中的查询词自动纠错方法 |
CN101206673A (zh) * | 2007-12-25 | 2008-06-25 | 北京科文书业信息技术有限公司 | 网络搜索过程中关键词的智能纠错系统及方法 |
CN101989282A (zh) * | 2009-07-31 | 2011-03-23 | 中国移动通信集团公司 | 对中文查询词进行纠错的方法及其装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2509496A1 (en) * | 2005-06-06 | 2006-12-06 | 3618633 Canada Inc. | Search-enhanced trie-based syntactic pattern recognition of sequences |
CN103514236B (zh) * | 2012-06-30 | 2017-06-09 | 重庆新媒农信科技有限公司 | 检索应用中基于拼音的检索条件纠错提示处理方法 |
CN103678674A (zh) * | 2013-12-25 | 2014-03-26 | 乐视网信息技术(北京)股份有限公司 | 通过拼音进行纠错搜索的方法、装置及系统 |
CN104268157A (zh) * | 2014-09-03 | 2015-01-07 | 乐视网信息技术(北京)股份有限公司 | 一种数据搜索中的纠错装置及其方法 |
-
2014
- 2014-09-03 CN CN201410447009.7A patent/CN104268157A/zh active Pending
-
2015
- 2015-08-25 WO PCT/CN2015/087971 patent/WO2016034052A1/zh active Application Filing
- 2015-08-25 JP JP2016563112A patent/JP2017526021A/ja active Pending
- 2015-08-25 EP EP15837832.3A patent/EP3179383A4/en not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1755671A (zh) * | 2004-09-30 | 2006-04-05 | 北京大学 | 搜索引擎中的查询词自动纠错方法 |
CN101206673A (zh) * | 2007-12-25 | 2008-06-25 | 北京科文书业信息技术有限公司 | 网络搜索过程中关键词的智能纠错系统及方法 |
CN101989282A (zh) * | 2009-07-31 | 2011-03-23 | 中国移动通信集团公司 | 对中文查询词进行纠错的方法及其装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016034052A1 (zh) * | 2014-09-03 | 2016-03-10 | 乐视网信息技术(北京)股份有限公司 | 一种数据搜索中的纠错装置及其方法 |
CN104951508A (zh) * | 2015-05-21 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 时间信息识别方法和装置 |
CN105955986A (zh) * | 2016-04-18 | 2016-09-21 | 乐视控股(北京)有限公司 | 一种字符的转换方法及装置 |
CN106339418A (zh) * | 2016-08-15 | 2017-01-18 | 乐视控股(北京)有限公司 | 一种分类纠错方法及装置 |
CN106850572A (zh) * | 2016-12-29 | 2017-06-13 | 网宿科技股份有限公司 | 目标资源的访问方法和装置 |
CN110597800A (zh) * | 2018-05-23 | 2019-12-20 | 杭州海康威视数字技术股份有限公司 | 一种注释信息确定、前缀树构建方法及装置 |
CN109522550A (zh) * | 2018-11-08 | 2019-03-26 | 和美(深圳)信息技术股份有限公司 | 文本信息纠错方法、装置、计算机设备和存储介质 |
CN109522550B (zh) * | 2018-11-08 | 2023-04-07 | 和美(深圳)信息技术股份有限公司 | 文本信息纠错方法、装置、计算机设备和存储介质 |
CN109657044A (zh) * | 2018-12-14 | 2019-04-19 | 北京向上心科技有限公司 | 数据检索方法、数据排序方法、装置、终端以及存储介质 |
CN111310473A (zh) * | 2020-02-04 | 2020-06-19 | 四川无声信息技术有限公司 | 文本纠错方法及其模型训练的方法、装置 |
CN112131461A (zh) * | 2020-09-09 | 2020-12-25 | 重庆易宠科技有限公司 | 一种商品搜索方法、系统、终端及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3179383A1 (en) | 2017-06-14 |
WO2016034052A1 (zh) | 2016-03-10 |
JP2017526021A (ja) | 2017-09-07 |
EP3179383A4 (en) | 2017-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104268157A (zh) | 一种数据搜索中的纠错装置及其方法 | |
CN101398820B (zh) | 一种大规模关键词匹配方法 | |
CN111868710B (zh) | 搜索大规模非结构化数据的随机提取森林索引结构 | |
US7080091B2 (en) | Inverted index system and method for numeric attributes | |
CN107153647B (zh) | 进行数据压缩的方法、装置、系统和计算机程序产品 | |
Koppula et al. | Learning url patterns for webpage de-duplication | |
CN103514236A (zh) | 检索应用中基于拼音的检索条件纠错提示处理方法 | |
US9251289B2 (en) | Matching target strings to known strings | |
CN108197313B (zh) | 通过16位Trie树实现空间优化的词典索引方法 | |
CN108304409B (zh) | 一种基于进位的Sketch数据结构的数据频度估计方法 | |
CN108846016A (zh) | 一种面向中文分词的搜索算法 | |
US8140546B2 (en) | Computer system for performing aggregation of tree-structured data, and method and computer program product therefor | |
CN108628907A (zh) | 一种用于基于Aho-Corasick的Trie树多关键词匹配的方法 | |
CN104281275A (zh) | 一种英文的输入方法和装置 | |
CN105404677A (zh) | 一种基于树形结构的检索方法 | |
CN104965903A (zh) | 一种资源的推荐方法和装置 | |
CN112182021B (zh) | 一种用户数据查询方法、装置和系统 | |
CN105354283A (zh) | 一种资源的搜索方法和装置 | |
US10235432B1 (en) | Document retrieval using multiple sort orders | |
CN110909214A (zh) | 基于kmp匹配算法的字符串快速匹配方法 | |
CN105426490A (zh) | 一种基于树形结构的索引方法 | |
CN109657108B (zh) | 一种域名资产数据存储和查询方法和系统 | |
CN113065419B (zh) | 一种基于流量高频内容的模式匹配算法及系统 | |
CN103902687A (zh) | 一种搜索结果的生成方法及装置 | |
US10275399B2 (en) | Faster main memory scans in unsorted dictionary-encoded vectors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150107 |