首页 / 专利库 / 电脑编程 / 临时别名 / 一种检索的方法和系统

一种检索的方法和系统

阅读:434发布:2020-05-16

专利汇可以提供一种检索的方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种检索的方法和系统。该方法包括:A)根据用户在终端上所输入检索词查询检索词目录表,获取包含所述输入检索词的第一数据项集合;B)根据与所述输入检索词相关联的第一数据项集合的各个数据项,查询信息索引数据表,获取第二数据项集合;C)组合并发送所述第一数据项集合给所述终端;其中,所述第一数据项集合以递归方式组合;以及向所述终端发送所述第二数据项集合。该方案由检索字符串的形式化过程去提炼语义、引导和返回检索信息,因此能够提升检索的确定性、逻辑性、效率和用户感受。,下面是一种检索的方法和系统专利的具体信息内容。

1.一种检索的方法,其特征在于,包括步骤:
A.根据用户在终端上所输入检索词查询检索词目录表,获取包含所述输入检索词的第一数据项集合;其中,所述第一数据项集合的各个数据项之间存在亲属关系;
B.根据与所述输入检索词相关联的第一数据项集合的各个数据项,查询信息索引数据表,获取第二数据项集合;
C.组合并发送所述第一数据项集合给所述终端;其中,所述第一数据项集合以递归方式组合;以及
向所述终端发送所述第二数据项集合;
所述步骤A中,还包括下列步骤:A1.生成所述检索词目录表;
所述步骤A1中,生成所述检索词目录表,包括如下步骤:
Al1.将原始检索词数据表中的各个原始字符串两两互相匹配,确定相互之间的包含关系;
A12.根据所述包含关系,确定所述两两互相匹配的所述原始字符串之间的父子关系;
A13.根据所述两两互相匹配的具有父子关系的所述原始字符串,分别生成数据项集合Dl、D2……Dn,其中,n大于等于1;所述数据项集合Dl、D2……Dn组成检索词目录表;其中,所述数据项集合Dn的各个数据项的所述原始字符串之间具有亲属关系。
2.如权利要求1所述的检索的方法,其特征在于,所述步骤B中,所述获取第二数据项集合,包括下列步骤:
由第一数据项集合的各个数据项,查询信息索引数据表,进行简单匹配获取第二数据项集合;或
由第一数据项集合的各个数据项,查询信息索引数据表,进行递归组合匹配获取第二数据项集合。
3.如权利要求1所述的检索的方法,其特征在于,所述包含关系包括:
左包含、右包含、居中包含或不包含。
4.如权利要求1所述的检索的方法,特征在于,所述步骤A12包括下列步骤:如果至少两个原始字符串之间构成左包含或右包含关系,则将所述两个原始字符串设置为父子关系,被包含的原始字符串为父;及
如果至少两个原始字符串集合之间构成包含关系,则将所述两个原始字符串集合设置为父子关系,被包含的原始字符串集合为父。
5.如权利要求4所述的检索的方法,其特征在于,所述步骤A13中,所述包含关系为右包含关系时,则所述数据项集合组成检索词目录表,还包括对数据项组合在字符串逆向后排序的基础上组成检索词目录表;
所述字符串逆向后排序,包括如下步骤:
A131.根据检索词字段逆向后生成逆向检索词字段;
A132.初始化继承直系树堆栈为空;
A133.以逆向检索词字段排序得到全部[编号,逆向检索词]数据;
A134.读取当前[编号,逆向检索词]数据到继承直系树堆栈;如果没有数据,即当前[编号,逆向检索词]数据为空,跳转到步骤A1310;否则,进入步骤A135;
A135.初始化临时直系树堆栈为空;
A136.如果继承直系树堆栈为空,则跳转到步骤A138;
A137.如果继承直系树堆栈不为空,则从继承直系树堆栈中,查找当前[编号,逆向检索词]数据的长辈结点;
如果有长辈结点,则将所述长辈结点入栈到临时直系树堆栈,所述长辈结点中的最后一个结点是该长辈结点的父结点,修改当前堆栈游标值为父结点的编号;
如果从继承直系树堆栈中找不到长辈结点,则设置堆栈游标值为0;并将临时直系树堆栈的值赋予给继承直系树堆栈,并将当前的[编号,逆向检索词]数据压入继承直系树堆栈,然后跳转到步骤A139;
步骤A138.将当前的[编号,逆向检索词]数据压入继承直系树堆栈,并更新当前堆栈游标值为0;
步骤A139.当前堆栈游标值加1,跳转到步骤A134,读取下一条[编号,逆向检索词]数据,执行循环;
步骤A1310.结束。
6.如权利要求1所述的检索的方法,其特征在于,所述步骤All中,还包括原始检索词数据表生成的步骤;所述原始检索词数据表生成的步骤包括下列步骤:
根据所述信息索引数据表的信息索引数据,去重复后生成原始字符串集,得到原始检索词数据表。
7.如权利要求6所述的检索的方法,其特征在于,还包括信息索引数据表生成的步骤;
所述信息索引数据表生成的步骤,包括下列步骤:
从信息数据表获取索引词;
使用索引词或索引词集合建立倒排数据表,根据倒排数据表生成信息索引数据表。
8.如权利要求1所述的检索的方法,其特征在于,还包括如下步骤:
根据所述输入检索词,查询别名数据表,获取与所述输入检索词对应的别名检索词;以所述别名检索词作为新的输入检索词,重复执行步骤A-C。
9.一种信息检索的处理系统,其特征在于,包括:
信息数据表模,用于存储所有的信息内容;
信息索引数据表模块,用于根据所述信息数据表模块的所述所有的信息内容生成并存储为信息索引数据表;
原始检索词数据表模块,用于将所述信息索引数据表去重复后得到原始字符串,所述原始字符串构成原始字符串集,全部所述原始字符串集组成并存储为原始检索词数据表;
检索词目录表模块,用于根据每个所述原始字符串与所述原始检索词数据表中其他原始字符串的亲属关系,进行相互匹配生成数据项集合,所述数据项集合组成并存储为检索词目录表;
搜索引擎模块,用于根据用户在终端上所输入检索词,查询所述检索词目录表,获取包含所述输入检索词的第一数据项集合;其中,所述第一数据项集合的各个数据项之间存在亲属关系;根据与所述输入检索词相关联的第一数据项集合的各个数据项,查询信息索引数据表,获取第二数据项集合;组合并发送第一数据项集合,以及发送第二数据项集合到所述终端。
10.如权利要求9所述的处理系统,其特征在于,所述包含包括不包含、左包含、右包含、居中包含;
所述检索词目录表模块中的相互匹配,是指对每一原始字符串与其他原始字符串进行包含关系匹配,将与每个所述原始字符串具有左包含和/或右包含关系的其他原始字符串一起生成所述数据项集合。
11.如权利要求9所述的处理系统,其特征在于,所述检索词目录表的数据项集合构成一排序多叉的检索树。
12.如权利要求11所述的处理系统,其特征在于,所述搜索引擎模块,还用于按照所述检索树的递归关系呈现与所述输入检索词相关的第一数据项集合。
13.如权利要求9所述的处理系统,其特征在于,所述第二数据项集合与所述第一数据项集合关联。
14.如权利要求9所述的处理系统,其特征在于,还包括别名数据表模块,用于存储所述原始字符串的别名字符串;所述别名字符串用于进行所述原始字符串的别名查询;所述第二数据项集合还通过别名数据表与所述第一数据项集合关联。

说明书全文

一种检索的方法和系统

技术领域

[0001] 本发明涉及计算机信息处理领域,特别是一种检索的方法和系统。

背景技术

[0002] 现有信息检索技术中,处理检索字符串的方法有很多,最常见的是基于统计方法提出的技术方案,也有专根据特定语义规则构造专用信息检索方法。在不处理语义即不针对语义处理的一般信息检索与完全特定定义的语义规则的特定语义规则检索之间,成熟方案目前只有用前述的统计方法去归纳、猜测语义。此外,现在知道的就只有利用互联网络海量信息链接特性、基于引用(链接指向)的google page rank(Google网页级别)方法。
[0003] 综上可知,现有信息检索处理技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
[0004] 同时关于检索提示。搜索引擎的用途是提供用户所关心的信息的引导,用户利用搜索引擎,根据其已知信息来获得所关心的、未知的信息。但用户对未知信息未必能够找到恰当和准确的文字描述,另外即使用户知道主要的关键字,也希望与此关键词有关的信息都有良好、充分的提示。现有技术包括:1、中国专利申请号为200610112822.4,名称为"基于倒排表进行检索提示的方法"。2、百度相关搜索和google的关键字工具、等。这些技术都是基于对用户输入的查询词统计而生成检索提示的。其缺点在于:首先,这些提示的内容都是经过筛选后的排名靠前的数据。这些数据仅仅是一个列表,在内容上是不完备的。其次,这些以列表的形式展现给用户的数据,由于相互之间互相独立,各条信息都独立存在,而且包含了与检索词有关的提示信息,这就造成其数据量常常会非常大,用户从中查找有用信息的工作量会显著加大。再次,这些信息之间没有逻辑结构与语义特征,给出的检索提示让用户无所适从。百度相关搜索只给出了10个相关检索提示。Google关键字工具虽然可以给你最多150条的相关检索提示,但这些提示是无组织的,没有逻辑相关性。另如,这些检索提示多基于对海量用户的行为进行建模,认为多数人的行为就是检索用户所需要的。比如在2008年,北京与奥运之间,经过统计海量用户,证明两者之间具备关联性;而在2009年春天的北京与甲流,2010年元旦的北京与暴之间,都具有关联性。一旦海量用户的搜索点击具有突然性、预设性,那么检索提示就会受到这种海量搜索点击的直接影响。有鉴于此,也需要找到更好的检索提示和展示检索信息的方法。

发明内容

[0005] 有鉴于此,本发明的主要目的在于提供一种信息检索的处理方法及其系统,本发明由检索字符串的形式化过程去提炼语义、引导和返回检索信息。附加地使得检索提示更加简洁清晰、逻辑完备。
[0006] 为实现本发明目的而提供的一种检索的方法,包括步骤:
[0007] A.根据用户在终端上所输入检索词查询检索词目录表,获取包含所述输入检索词的第一数据项集合;其中,所述第一数据项集合的各个数据项之间存在亲属关系;
[0008] B.根据与所述输入检索词相关联的第一数据项集合的各个数据项,查询信息索引数据表,获取第二数据项集合;
[0009] C.组合并发送所述第一数据项集合给所述终端;其中,所述第一数据项集合以递归方式组合;以及
[0010] 向所述终端发送所述第二数据项集合。
[0011] 较优地,所述步骤A中,还包括下列步骤:
[0012] A1.生成所述检索词目录表。
[0013] 较优地,所述步骤B中,所述获取第二数据项集合,包括下列步骤:
[0014] 由第一数据项集合的各个数据项,查询信息索引表,进行简单匹配获取第二数据项集合;或
[0015] 由第一数据项集合的各个数据项,查询信息索引表,进行递归组合匹配获取第二数据项集合。
[0016] 较优地,所述步骤A1中,生成检索词目录表,包括如下步骤:
[0017] Al1.将原始检索词数据表中的各个原始字符串两两互相匹配,确定相互之间的包含关系;
[0018] A12.根据所述包含关系,确定所述两两互相匹配的所述原始字符串之间的父子关系;
[0019] A13.根据所述两两互相匹配的具有父子关系的所述原始字符串,分别生成数据项集合
[0020] Dl、D2……Dn,其中,n大于等于1;所述数据项集合Dl、D2……Dn组成检索词目录表;其中,所述数据项集合Dn的各个数据项的所述原始字符串之间具有亲属关系。
[0021] 较优地,所述包含关系包括:
[0022] 左包含、右包含、居中包含或不包含。
[0023] 较优地,所述步骤A12包括下列步骤:
[0024] 如果所述至少两个原始字符串之间构成左包含或右包含关系,则将所述两个原始字符串设置为父子关系,所述被包含的原始字符串为父;及
[0025] 如果所述至少两个原始字符串集合之间构成包含关系,则将所述两个原始字符串集合设置为父子关系,所述被包含的原始字符串集合为父。
[0026] 较优地,所述步骤A13中,所述包含关系为右包含关系时,则所述数据项集合组成检索词目录表,还包括对数据项组合在字符串逆向后排序的基础上组成检索词目录表;所述字符串逆向后排序,包括如下步骤:
[0027] A131.根据检索词字段逆向后生成逆向检索词字段;
[0028] A132.初始化继承直系树堆栈为空;
[0029] A133.以逆向检索词字段排序得到全部[编号,逆向检索词]数据;
[0030] A134.读取当前[编号,逆向检索词]数据到继承直系树堆栈;如果没有数据,即当前[编号,逆向检索词]数据为空,跳转到步骤A1310;否则,进入步骤A135;
[0031] A135.初始化临时直系树堆栈为空;
[0032] A136.如果继承直系树堆栈为空,则跳转到步骤A138;
[0033] A137.如果继承直系树堆栈不为空,则从继承直系树堆栈中,查找当前[编号,逆向检索词]数据的长辈结点;
[0034] 如果有长辈结点,则将所述长辈结点入栈到临时直系树堆栈,所述长辈结点中的最后一个结点是该长辈结点的父结点,修改当前堆栈游标值为父结点的编号;
[0035] 如果从继承直系树堆栈中找不到长辈结点,则设置堆栈游标值为0;并将临时直系树堆栈的值赋予给继承直系树堆栈,并将当前的[编号,逆向检索词]数据压入继承直系树堆栈,然后跳转到步骤A139;
[0036] 步骤A138.将当前的[编号,逆向检索词]数据压入继承直系树堆栈,并更新当前堆栈游标值为0;
[0037] 步骤A139.当前堆栈游标值加1,跳转到步骤A134,读取下一条[编号,逆向检索词]数据,执行循环;
[0038] 步骤A1310.结束。
[0039] 较优地,所述步骤All中,还包括原始检索词数据表生成的步骤;所述原始检索词数据表生成的步骤包括下列步骤:
[0040] 根据所述信息索引数据表的信息索引数据,去重复后生成原始字符串集,得到原始检索词数据表。
[0041] 较优地,所述的检索的方法,还包括信息索引数据表生成的步骤;所述信息索引数据表生成的步骤,包括下列步骤:
[0042] 从信息数据表获取索引词;
[0043] 使用索引词或索引词集合建立倒排数据表,根据倒排数据表生成信息索引数据表。较优地,所述的检索的方法,还包括如下步骤:
[0044] 根据所述输入检索词,查询别名数据表,获取与所述输入检索词对应的别名检索词;以所述别名检索词作为新的输入检索词,重复执行步骤A-C。
[0045] 为实现本发明目的,还提供一种信息检索的处理系统,包括:
[0046] -信息数据表模,用于存储所有的信息内容;
[0047] -信息索引数据表模块,用于根据所述信息数据表模块的所述所有的信息内容生成并存储为信息索引数据表;
[0048] -原始检索词数据表模块,用于将所述信息索引数据表去重复后得到原始字符串,所述原始字符串构成原始字符串集,全部所述原始字符串集组成并存储为原始检索词数据表;
[0049] -检索词目录表模块,用于根据所述每个原始字符串与所述原始检索词数据表中其他原始字符串的亲属关系,进行相互匹配生成数据项集合,所述数据项集合组成并存储为检索词目录表;
[0050] -搜索引擎模块,用于根据用户在终端上所输入检索词,查询所述检索词目录表,获取包含所述输入检索词的第一数据项集合;其中,所述第一数据项集合的各个数据项之间存在亲属关系;根据与所述输入检索词相关联的第一数据项集合的各个数据项,查询信息索引数据表,获取第二数据项集合;组合并发送第一数据项集合,以及发送第二数据项集合到所述终端。
[0051] 较优地,所述包含包括不包含、左包含、右包含、居中包含;
[0052] 所述检索词目录表模块中的相互匹配,是指对每一原始字符串与其他原始字符串进行包含关系匹配,将与所述每个原始字符串具有左包含和/或右包含关系的其他原始字符串一起生成所述数据项。
[0053] 较优地,所述检索词目录表的数据项集合构成一排序多叉的检索树。
[0054] 较优地,所述搜索引擎模块,还用于按照所述检索树的递归关系呈现与所述输入检索词相关的第一数据项集合。
[0055] 较优地,所述第二数据项集合与所述第一数据项集合关联。
[0056] 较优地,所述处理系统还包括别名数据表模块,用于存储所述原始字符串的别名字符串;所述别名字符串用于进行所述原始字符串的别名查询;
[0057] 所述第二数据项集合还通过别名数据表与所述第一数据项集合关联。
[0058] 与现有技术相比,本发明至少具有以下优点:
[0059] 首先,本发明所提供的检索结果具有很强的确定性,只依赖于检索字符串是否存在于检索词目录表中,以及对应的信息索引数据表,其结果不依赖于其他用户的搜索行为,也不受信息内容提供者的行为影响;
[0060] 其次,本发明所提供的检索或搜索结果是准确的,用户的检索字符串如果存在于检索词目录表和信息索引数据表中,就能得到准确的反馈;如果不存在,也不会返回语义上无关的结果。
[0061] 再次,本发明的技术方案具有逻辑演绎可能性,能够获得与检索字符串有逻辑关联的其他未知信息。
[0062] 再其次,本发明的技术方案所提供的检索结果形式直观,以递归目录树的形式显示出用户所输入的检索字符串,以及所述检索字符串以及具有语义相关性的其他检索字符串。
[0063] 最后,本发明中以递归方式目录树形式显示的检索词目录表与信息索引数据表的内容相互对应,使得查找信息索引数据表中目标信息内容更加快捷、准确。
[0064] 综上,本发明不需要海量数据、也不需要统计。本发明可大大压缩冗余的检索提示内容,其穷举度高,提升了查全率;一致性强,又有利于提高查准率。而且,本发明具有良好的通用性和可移植性。附图说明
[0065] 下列是实施例或现有技术描述中使用的附图。附图仅仅是本发明的一些实施例;显然对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0066] 图1所示,是本发明实施例中检索词目录表的一种结构示例;
[0067] 图2所示,是本发明实施例中左包含与右包含检索字符串同时存在的情况下,将检索词目录表混合显示的结果;
[0068] 图3所示,是本发明实施例的一个系统原型截图;
[0069] 图4所示,是使用谷歌关键字工具(google key word tool)返回的数据;
[0070] 图5所示,是使用百度即时提醒返回的数据;
[0071] 图6所示,是从海关总署进行检索的结果;
[0072] 图7所示,是使用本发明实施例所构造的检索词目录表示例;
[0073] 图8所示,是本发明实施例对CDMA产品处理后所显示的检索词目录表;图9所示,是本发明实施例中对保险构造概念树的示例图;
[0074] 图10所示,是本发明实施例的一种系统结构图;
[0075] 图10-1所示,是本发明实施例所提供的递归目录树结构的另一种显示方式;
[0076] 图10-2所示,是本发明实施例所提供的一种搜索结果示意图;
[0077] 图11所示,是本发明实施例所提供的一种检索的方法的流程图
[0078] 图12所示,是本发明实施例所提供的一种获得检索结果的流程图。

具体实施方式

[0079] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0080] 本发明的基本原理在于:通过业已存在的检索字符串与用户所需要搜索的目标信息之间的客观联系,向用户提示所述检索字符串与目标信息之间的形式联系,从而提高检索结果的客观性。而不是依赖于现有技术中的基于海量用户的搜索行为的建模——因为这种建模行为容易受到人为的干扰,从而破坏检索字符串与目标信息之间的关联关系的客观性,损害检索的准确率,降低了用户体验。而且,本发明实施例中的检索字符串与目标信息之间的客观联系是以检索字符串为结点的检索词目录表的形式向用户反馈的,其显示方式形象、直观、准确。
[0081] 发明人通过长期的探索,发现:目标信息本身是可形式化的。例如,大衣-羊毛大衣-女士羊毛大衣-男士羊毛大衣-进口女士羊毛大衣。而且,这些目标信息之间的关联性也是蕴藏在类似形式化中的。例如"大衣、羊毛大衣、女士羊毛大衣、男士羊毛大衣、进口女士羊毛大衣"之间的逻辑包含关系:"大衣"是各种大衣的上位概念,"羊毛大衣"又是其它羊毛大衣的上位概念。类似地,电脑、台式电脑、笔记本电脑液晶笔记本电脑之间的关联性也是与其信息描述形式密切相关的。类似的目标信息之间形式与内容的关联性是大量而普遍存在的。
[0082] 这种目标信息的形式与内容关联性,对于提高客户体验具有重要的作用。如果能够在用户输入检索字符串之后,向用户提供与检索字符串有关的目标信息之间的关联性,就使得用户不仅仅得到了通常的检索结果,同时也可以得到与检索字符串具有关联性的其他目标信息,而且这种检索结果是检索字符串自身在语义和分类上的客观性所决定的,不会受到其他用户的带有主观性的行为的干扰。
[0083] 有效利用这一特性,将能够帮助用户迅速定位目标信息,最大化地贴近用户的搜索需要,显著地提高检索效率以及检索提示的信息容量和速率。
[0084] 基于上述原理,如图10所示,本发明实施例提供一种信息检索的处理系统,包括:•信息数据表模块1004,用于存储所有的信息内容;
[0085] •信息索引数据表模块1003,用于根据所述信息数据表模块1004的所述所有的信息内容生成并存储为信息索引数据表;
[0086] -原始检索词数据表模块1005,用于将所述信息索引数据表去重复后得到原始字符串,所述原始字符串构成原始字符串集,全部所述原始字符串集组成并存储为原始检索词数据表;
[0087] -检索词目录表模块1006,用于根据所述每个原始字符串与所述原始检索词数据表中其他原始字符串的亲属关系,进行相互匹配生成数据项集合,所述数据项集合组成并存储为检索词目录表;
[0088] -别名数据表模块1007,用于存储所述原始字符串的别名字符串;所述别名字符串用于进行所述原始字符串的别名查询;
[0089] -搜索引擎模块1002,用于根据用户在终端1001上所输入检索词,查询所述检索词目录表,获取包含所述输入检索词的第一数据项集合;其中,所述第一数据项集合的各个数据项之间存在亲属关系;根据与所述输入检索词相关联的第一数据项集合的各个数据项,查询信息索引数据表,获取第二数据项集合;组合并发送第一数据项集合,以及发送第二数据项集合到所述终端1001。
[0090] 本发明实施例的信息检索的处理系统,工作过程如下:
[0091] (1)生成信息索引数据表。信息索引数据表模块1003将所有的存储的信息内容作为待查询信息的全部数据,进行全文或者摘要标引(中文需要分词)后,提取原始字符串,建立一个倒排数据表,这个数据表作为信息索引数据表。
[0092] 对信息内容进行全文或者摘要标引,提取原始字符串,是一种现有技术,因此,在本发明实施例中,不再——进行详细描述。
[0093] 全文或者摘要标引后提取的原始字符串,是系统处理的检索字符串关键字,这些检索关键词,是由待查询信息自身的客观性所决定的;每条待查询信息对应的检索关键词,可能是1到多个。
[0094] (2)生成原始检索词数据表。原始检索词数据表模块1005对信息索引数据表中的原始字符串进行唯一性选择,生成原始检索词数据表,原始检索词数据表由具有唯一性的原始字符串组成,原始检索词数据表中所包含的具有唯一性的原始字符串是检索提示数据的来源。
[0095] (3)生成检索词目录表。检索词目录表模块1006对原始检索词数据表中所包含的任一原始字符串,与原始检索词数据表中其它原始字符串匹配,确定这些原始字符串或原始字符串集合之间的包含关系。
[0096] 匹配的结果只有4种:不包含、左包含、右包含或居中包含。原始字符串之间的包含关系反映了语义关系。根据包含关系,为两个直接相关原始字符串生成父子关系,从而构造出检索词目录表。
[0097] (4)根据用户从终端1001上所输入检索词,进行查询,得到与输入检索词相匹配的数据。搜索引擎模块1002查询所述检索词目录表,获取包含所述输入检索词的第一数据项集合;其中,所述第一数据项集合的各个数据项之间存在亲属关系;根据与所述输入检索词相关联的第一数据项集合的各个数据项,查询信息索引数据表,获取第二数据项集合;组合并发送第一数据项集合,以及发送第二数据项集合到所述终端1001。
[0098] 搜索引擎模块1002根据用户从终端1001上所输入检索词,进行查询,得到递归目录树状检索提示和与输入检索词相匹配的数据。在接收到检索请求后,搜索引擎模块1002一方面根据输入检索词查询检索词目录表,返回包含该输入检索词的目录表状检索词结构,从而提示了与搜索请求中所包含的输入检索词相关的待查询信息相关的信息;另一方面根据前述结果查询信息索引数据表,得到与检索请求所包含的输入检索词关联的信息数据。而且,所提示出来的信息是以检索词目录表的形式出现的,清晰地呈现出各个相关的检索信息之间的递归层次。
[0099] 作为另一种可实施方式,检索词目录表模块1006的检索词目录表的原始字符串除了来源于如标引或分词所得的原始检索词数据表外,也可以来源于人工整理的数据。
[0100] 作为一种可实施方式,原始检索词数据表模块1005对原始检索词数据表进行筛选,以去除不必要的或者无意义的原始字符串。
[0101] 人工整理是对标引或分词的一种补充和再编辑。在目标信息落后或滞后于新出现的检索字符串的时候,能够将新出现的检索字符串补充或编辑到检索词目录表中。
[0102] 较佳地,所述检索词目录表的生成釆用一种基于栈的非递归的方法,其能在较短的线性的时间内处理海量数据。
[0103] 较佳地,别名数据表模块1007在生成递归目录树状检索提示时,将同时查询别名数据表,返回用户输入的检索字符串的别名的检索提示,从而能够提高用户体验。
[0104] 所以,本发明实施例所提供的信息检索的处理系统是一种基于检索词目录表进行检索提示的系统。相对于现有技术,它有如下优点:
[0105] (1)将检索字符串以检索词目录表结构展现出来,由于使用了层次结构,缺省情况下只需要显示检索词目录表第一层,而不是显示所有数据。如果用户需要,还可以将所有的数据都显示出来,使得本发明实施例的穷举度高,提升了查全率。
[0106] (2)在本发明实施例中,由于在检索词目录表的生成过程应用了检索词之间的包含关系,这使得同一棵检索词目录表上的检索字符串具有语义相关性以及单向性,用户关心的问题要么不存在,要么就一定存在于这个检索词目录表中,这将极大的改善用户体验。由于检索词目录表上各个检索字符串之间的语义单向性,使得本发明实施例单向一致性强,有利于提高查准率。
[0107] (3)检索词目录表的生成方法釆用的是线性的非递归的算法,处理速度快,实现起来比较方便,增强了本发明的可实施性。
[0108] 如图11所示,是本发明实施例所提供的一种检索的方法,包括步骤:
[0109] 1101)接收用户在终端1001上所输入检索词;
[0110] 1102)使用所述输入检索词查询检索词目录表,获取包含所述输入检索词的第一数据项集合,所述第一数据项集合的各个数据项之间存在亲属关系;
[0111] 1103)根据与所述输入检索词相关联的第一数据项集合的各个数据项,查询信息索引数据表,获取第二数据项集合;
[0112] 1104)向所述用户的终端1001组合并发送包含所述检索字符串的第一数据项集合,所述第一数据项集合的各个数据项之间以亲属关系进行递归目录树组合所述第一数据项集合,以及
[0113] 向所述用户的终端1001发送所述信息索引数据表中与所述输入检索词匹配的第二数据项集合。
[0114] 较佳地,所述接收用户输入的检索字符串之后,还可以包括:
[0115] 根据用户在终端1001上所输入检索词,查询别数据表,获取与所述输入检索词相对应的联想词(即别名检索词),然后以所述别名检索词作为新的输入检索词,重复执行步骤1102-1104。
[0116] 较佳地,所述接收用户输入的检索字符串之后,还可以包括:
[0117] 如果所述输入检索词没有命中所述信息索引数据表或检索词目录表,则提示用户重新输入。
[0118] 较佳地,所述一种检索的方法,还包括生成所述检索词目录表的步骤。
[0119] 较佳地,所述获取第二数据项集合,包括下列步骤:
[0120] 由第一数据项集合的各个数据项,查询信息索引表,进行简单匹配获取第二数据项集合;或
[0121] 由第一数据项集合的各个数据项,查询信息索引表,进行递归组合匹配获取第二数据项集合。
[0122] 较佳地,所述生成所述检索词目录表包括如下步骤:
[0123] 将原始检索词数据表中的各个原始字符串两两互相匹配,确定相互之间的包含关系;根据所述包含关系,确定所述两两互相匹配的原始字符串之间的父子关系;根据所述父子关系,生成所述检索词目录表,所述检索词目录表包括数据项集合
[0124] Dl、D2......Dn,n大于等于1,组成数据项集合Dn的各个数据项之间具有亲属关系。
[0125] 较佳地,所述包含关系包括:左包含、右包含、居中包含或不包含。
[0126] 较佳地,根据所述父子关系,生成所述检索词目录表还可以包括:
[0127] 如果所述至少两个字符串之间构成左包含或右包含关系,则将所述两个字符串设置为父子关系,所述被包含的字符串为父。
[0128] 由信息索引数据表信息索引数据去重复后生成原始检索字符串集,作为原始检索词数据表。
[0129] 信息索引数据表的生成是由被查询信息获取索引词;使用索引词集合名称或建立倒排数据表,作为信息索引数据表。
[0130] 下面,分别结合附图说明本发明的检索的方法和系统的实施例。
[0131] 本发明实施例中所使用的概念及其含义如下:
[0132] 检索词目录表:是指将所有的检索字符串按照相互之间的包含关系排列成一个递归目录树状的结构,其中,直接相关的检索字符串构成父子关系,多层的父子关系的叠加构成一个递归目录的树结构。检索字符串的来源主要是原始检索词数据表,也可以是在此基础上人工补充、编辑后的数据。
[0133] 用户:是能够发出信息查询请求的人或终端1001,可以包括分布在各地的使用本系统进行信息查询的人员或者查询终端1001。
[0134] 检索字符串:指用户查询时输入的字符串,检索词目录表是由检索词组成的。
[0135] 搜索引擎:搜索引擎根据用户输入的检索字符串,返回与检索字符串相关的内容数据。
[0136] 信息数据表模块1004:用于存放具体内容的数据表,具体内容可以用多个字段进行存放。以存储商品信息的商品信息数据表为例,其所包含的内容可以包括商品类型、品牌、价格、厂家等数据。
[0137] 信息索引数据表模块1003:将信息数据表的全部内容或者部分内容进行自动标引或分词后生成的倒排数据表。比如上述存放商品信息的数据库只对商品类型生成倒排数据表。
[0138] 原始检索词数据表模块1005:将信息索引数据表的索引去除重复后得到的数据。别名数据表模块1007:用于存储关键字的别名数据信息。可以使用各种方式如同义词或者近义词来构建别名数据表。比如铃薯又名土豆、洋芋。这个表主要用于进行检索字符串的查询扩展,使得用户查询别名或者本名时,同时显示出与别名对应的本名,或者与本名对应的别名,从而能够完善搜索的范围,提升用户体验。
[0139] 下面以具体的步骤详细介绍本发明实施例的各个步骤:
[0140] 1、信息索引数据表的生成
[0141] 倒排表是搜索引擎中一种常用的数据结构,倒排表以词为索引,以包含这些词的文档集合为项,可以快速找到包含某个词或者某些词的文档集合。
[0142] 当需要根据记录中的一些非关键码的数据项来进行查找,也就是根据属性的值来查找记录时,需要对属性值建立索引,即索引表中的每一项均由一个具体可能出现的属性值,和出现给该值的记录的地址两部分组成。这样,我们可以通过记录的某一项属性值反过来查找到这个记录的存放地址,或者记录对应的关键码。我们称这种索引为倒排索引(inverted index)。
[0143] 信息索引数据表就是倒排表,用作索引的词可以通过将信息表的主要数据进行全文或者摘要自动标引或分词后获取。这些索引词是系统处理的检索字符串。信息表是目标信息的载体,通常可以包括商业信息表、法律信息表、公共资源信息表等等。
[0144] 下面用表格的方式表示信息数据表所包含的示例数据,数据库字段为简化后的字段。表1为信息数据表的表结构,表3为信息索引数据表的表结构。表2-1、2-2与表4-1、4-2为具体的示例数据。从表2-1、2-2到表4-1、4-2说明了信息索引数据表的生成过程。本领域技术人员可以根据本发明实施例所述的信息索引数据表的生成过程,生成其他各种形式的信息索引数据表。
[0145] 1.1信息数据表
[0146] 信息数据表用于存放具体的信息数据,表名xinxi。
[0147]
[0148] 表1:信息数据表
[0149]
[0150] 表2-2:信息数据表集合数据示例
[0151] 1.2、信息索引数据表
[0152] 信息索引数据表用于存放信息的索引数据,表名xinxiindex。
[0153]
[0154] 表3:信息索引数据表
[0155] 示例数据
[0156]
[0157] 表4-1:信息索引数据表数据示例
[0158]
[0159] 表4-2:信息索引数据表集合数据示例
[0160] 在本例中,信息索引数据表包括Indexed(信息索引的编号的编号)、Xinxiid(信息索引所标记的信息的编号)和Tmsp(索引)三个字段。其中索引字段来源于信息数据表中content字段的全文自动标引或分词。比如,表2-1中第一条数据"大衣,羊毛大衣",在表4-1中变成了两行索引。索引项除了标记了该索引的关键词外,还记录了索引所标记的信息项的xinxiid,以便于数据的查找。
[0161] 表4-2索引词集合名称与索引词集合的关系是:
[0162] 用户界面X{配置用户界面、升级}
[0163] 用户界面Y{打印、安装、配置用户界面、升级、迁移、通用串行总线}
[0164] 用户界面Z{打印、安装、配置用户界面、升级、迁移、通用串行总线、使用向导、安装}
[0165] 所属领域的技术人员知道,通过增加、删除或变更信息索引数据表的字段,可以相应地编辑信息索引数据表的功能,这没有超出本发明实施例的核心思想,是属于显而易见的。
[0166] 2、原始检索词数据表的生成
[0167] 原始检索词数据表的生成,可以通过对信息索引数据表的索引字段进行唯一性选择来实现。原始检索词数据表是生成检索词目录表的原始数据。原始检索词数据表可以根据需要进行更新,更新方式是更新其中的检索字符串。如果有需要,原始检索词数据表会不停的更新。例如,当信息索引数据表的数据发生变化时,相应地可能会引起索引字段发生变化,如果在对索引字段的唯一性选择时产生了新的检索字符串,原始检索词数据表就会进行更新。
[0168] 原始检索词数据表用于存放最初的检索字符串集合,其中的一种可能的实现方式如下:在表5中原始检索词数据表包括检索词编号和检索词两个字段,表名可以示例为[0169] tmsporiginal。
[0170] Tmsporiginal:
[0171]
[0172] 表6:原始检索词数据表数据示例
[0173] 以表4-1所示信息索引数据表为例,可以知道其中包括:棉大衣、羊毛大衣、女式羊毛大衣、羊绒大衣4个检索字符串,对这些检索字符串相应地分别赋予编号,就可以得到表6所示的原始检索词数据表。
[0174] 当原始检索字符串需要增加时,可以釆用追加的方式,在表6后面直接追加新检索字符串并赋予编号,这样可以不破坏原有的检索字符串编号顺序。
[0175] 当原始检索字符串需要删除时,可以删除相应检索字符串及其编号;当原始检索字符串需要替换时,可以釆用增加原始检索字符串的方式,也可以釆用替换原始检索词表中的相应检索词及其编号即可。
[0176] 所属领域的技术人员知道,对于不同的目标信息类型,其所应当关注的重点是不同的,对于商品数据库而言,可能其产品名称、类型、价格、厂家和产地是消费者通常所关注的。而对于法律数据库的使用者而言,其可能更特定法律制度中所规定的主体、客体、条件、时限等等。这并没有超出本发明实施例的保护范围,也都同样可以运用本发明实施例的技术方案进行处理。
[0177] 3、检索词目录表的生成
[0178] 检索词目录表的生成主要是通过包含关系的匹配来实现的。对原始检索词数据表中的任一检索字符串,将其与原始检索词数据表中的其它检索字符串相匹配,确定与其它检索字符串之间的包含关系。根据不同的包含关系进行处理后,就得到了检索词目录表。
[0179] 在本发明实施例中,默认认为词语字符的包含关系即表明了词语语义上的包含关系。如"羊毛大衣"是"女式羊毛大衣"的上位概念,"羊毛大衣"在语义上包含了"女式羊毛大衣"。根据语法分析可知,当两个词构成包含关系时,包含词往往是被包含词的类型细分,或下位概念。包含词去除被包含词后,剩余的部分与被包含词之间一般是修饰关系或补充关系等,比如"笔"与"笔"、"笔"与"笔芯"。根据两个词语字符串的是否包含、以及包含者与被包含者所在的位置,将词语之间的包含关系分为4种:不包含、左包含、右包含与居中包含。
[0180] 将检索字符串按照字符串之间的前述4种包含关系,就可以构造成树形的检索词目录表。该检索词目录表是一个排序多叉树,在同一棵树枝上的两个相邻节点之间,父节点子节点的最大长度包含字符串。树的根节点是一个虚拟节点,去掉该虚拟节点,就可以得到一个字符串森林。
[0181] 如图1所示,是本发明实施例中检索词目录表的一种结构示例。其中包括的字符串有:大衣、棉大衣、羊绒大衣、羊毛大衣、女士羊毛大衣、被罩、茶、茶、果茶、花茶、茉莉花茶。以上的示例显示的是右包含关系,比如:"棉大衣"右包含"大衣"。
[0182] 在包含关系的处理中,不包含关系是被舍弃的,只需要识别另外三种包含关系即可。另外,居中包含关系可以通过"左包含"于"右包含"的复合来实现,比如"女士羊毛大衣"居中包含"羊毛",可以拆分为"女士羊毛大衣"右包含"羊毛大衣","羊毛大衣"左包含"羊毛"。本发明实施例中,包含关系的匹配包含两次处理,一次左包含关系处理,一次右包含关系处理。两次处理的流程是相似的,并且经过这两次的处理流程,能够将两个检索字符串之间的包含关系标识出来。在下面的具体实施过程的描述中,主要以右包含匹配进行说明,对于左包含以及居中包含后面将给出示例说明。本发明实施例能够在线性的时间内,根据检索字符串之间的包含关系,将所有的检索字符串构成一个检索词目录表。
[0183] 3.1检索词目录表中所使用的概念
[0184] 父子关系与结点
[0185] 在检索词目录树中,位于不同结点上的字符之间存在着父子关系。父子关系定义如下:
[0186] 字符串是若干字符组成的,字符串=(字符n,...,字符3,字符2,字符1)。
[0187] 当字符串2以字符串1的所有字符串为结束符时,即字符串2右包含字符串1,则认为字符串1是字符串2的长辈节点,比如"大衣"是"羊毛大衣"与"女士羊毛大衣"的长辈结点,"羊毛大衣"也是"女士羊毛大衣"的长辈结点;
[0188] 一个结点可以有若干个长辈结点,这些长辈结点的长度可能会不相同,如"羊毛大衣"与"大衣"都是"女士羊毛大衣"的长辈结点。
[0189] 父结点:如果字符串1是字符串2长度最长(或者说符合度最大)的长辈结点,则将字符串1作为字符串2的父结点,即"羊毛大衣"是"女士羊毛大衣"的父结点,"大衣"是"羊毛大衣"的父结点。
[0190] 当某字符串有父结点时,则该字符串由两部分组成父结点字符串和附前缀字符串,其中,父结点字符串,在整个字符串的后面,称为主后缀字符串,如"大衣"之于"羊毛大衣";另一部分是前面的字符串称为附前缀字符串,如"羊毛大衣"之于"羊毛"。
[0191] 兄弟关系:兄弟关系是指同一父结点下两个及两个以上相互并列的结点。如"羊毛大衣"之下的"女式羊毛大衣"和"男式羊毛大衣"。
[0192] 亲属关系:亲属关系是同一根结点下所有结点间关系的总称,包括:父子关系、兄弟关系,以及由互相关联的父子兄弟关系构成的结点之间的关系。就像一个家族基于一个祖先下的所有后代一样,这些具有共同祖先的后代成员之间,都具有亲属关系;尽管有的是父子关系,有的是兄弟关系,有的是叔俚关系等等。对于包含"大衣"的检索词目录树而言,其下面的其他结点都与其存在直接或间接的父子结点关系,包括"大衣"在内的该目录树上的所有结点之间都构成亲属关系,除"大衣"外的其他检索字符串都是"大衣"的直接子串或间接子串。没有直接父子关系或兄弟关系的结点之间是基于这种亲属关系而属于同一目录树的。这种亲属关系,如父子、兄弟、直系、旁系等等,是向用户提示递归目录树的依据所在。检索词目录树就像一个以递归目录树形式显示的家族的谱系一样。
[0193] 3.2检索词目录表
[0194] 在本发明实施中,检索词目录表可以使用数据表的形式进行存储,下面,以最简单的模型为例进行说明,在此核心的基础上可以改进优化。本发明实施例中的检索词目录表数据表模型主要包含四个字段:
[0195] 编号字段id,用于存放字符串的编号;
[0196] 检索词字段tmsp,用于存储检索字符串的具体内容;
[0197] 逆向检索词字段untmsp,用于存储检索词字段tms逆向后的逆向检索词;
[0198] 父结点字段bplus,用于存放检索词的父结点,没有父节点时为0。
[0199] 检索词目录表是一个排序多叉树。经发明人研究发现,索引名称字符串逆向后的按字符排序正好是检索词目录表的深度遍历。因为索引名称字符串先进行逆向,再进行排序后,构成父子关系的字符串因为具有相同的右包含串,必然相邻。下面,参照表8来进行说明。具体数据为"大衣"所在的子树。比如"棉大衣"、"羊毛大衣"、"女士羊毛大衣"与"羊绒大衣"都是"大衣"右包含关系的子结点或子结点的子结点。将这些字符串逆向后,"衣大"、"衣大棉"、"衣大毛羊"、"衣大毛羊式女"、"衣大绒羊"具有相同的左字符串"衣大",这样排序的时候,必然相邻。
[0200] 例如,"女士羊毛大衣"是"羊毛大衣"右包含的子结点,对其进行字符串逆向后,变成"衣大毛羊"与"衣大毛羊式女",这两个字符串在排序的时候,也必然相邻。
[0201] 就"大衣"而言,"大衣"的子结点及子结点的子结点,逆向排序后为"衣大、衣大毛羊、衣大毛羊士女、衣大棉、衣大绒羊",从中可以看出,子结点及子结点的子结点会排列在一起,而子结点会紧挨着父结点先出现,然后才是与子结点拥有相同父结点的其他子结点,这个排列关系正好是树的深度遍历。
[0202] 因此,在上述逻辑关系的基础上,可以对数据项组合在字符串逆向后排序的基础上组成检索词目录表。
[0203] 在本发明实施例中,使用堆栈进行处理,不使用递归方法进行处理,使计算的时间为线性时间。在计算机中使用已有的数据结构来实现堆栈。在存储过程中,堆栈可以使用字符串实现,例如:1,大衣;2,羊毛大衣;3,女士羊毛大衣。这个堆栈称为继承直系树堆栈,分号前面的单元内容是分号后面的单元内容的父节点。堆栈单元内容包含两个部分,字段id与字段tmsp,这两个部分之间使用"逗号"分隔。堆栈单元之间使用"分号"分隔。入栈、出栈操作都通过字符串的相关函数实现,入栈操作转化为将单元内容附加到堆栈字符串上,出栈操作转化为返回倒数第二个分号之前的字符串。
[0204] 本发明实施例中,设置临时直系树堆栈字符串tmpstackstring,进行堆栈处理,本实施例中,示例数据为:1、大衣,2、羊绒大衣,3、羊毛大衣,4、女士羊毛大衣,5、棉大衣,6、被罩。具体步骤如下:
[0205] 步骤1),根据tmsp字段逆向后生成untmsp字段,比如"棉大衣"逆向后变成"衣大棉";
[0206] 步骤2),初始化继承直系树堆栈字符串stackstring为空(此处只有父子关系,没有兄弟关系。所谓兄弟关系是指同一父结点下并列两个以上的结点,如羊毛大衣和羊绒大衣相对大衣而言,属于兄弟关系)。堆栈内容为目前继承的长辈结点的id与untmsp数据;步骤3),以untmsp排序得到全部[id,untmsp]数据。例如依次返回的数据:"1,衣大;3,衣大毛羊;4,衣大毛羊士女;5,衣大棉;2,衣大绒羊;6,罩被";
[0207] 步骤4),读取当前数据[id,untmsp]到继承直系树堆栈stackstring;如果没有数据,即当前数据[id,untmsp]为空,跳转到步骤10)。对示例数据而言,第一次读入数据为tmpid=1,tmpuntmsp='衣大';第二次读入的数据为tmpid=3.tmpuntmsp='衣大毛羊';第三次读入的数据为tmpid=4.tmpuntmsp='衣大毛羊士女';其它数据依次类推。如果没有数据,跳转到步骤10);
[0208] 步骤5),初始化临时直系树堆栈字符串tmpstackstring为空(只有父子关系,没有兄弟关系);
[0209] 步骤6),如果继承直系树堆栈stackstring为空跳转到步骤8);
[0210] 步骤7),如果继承直系树堆栈stackstring不为空,则从继承直系树堆栈stackstring中,查找当前数据[id,untmsp]的长辈结点;
[0211] 则将所述长辈结点入栈到临时直系树堆栈tmpstackstring,所述长辈结点中的最后一个
[0212] 结点是该长辈结点的父结点,修改当前堆栈游标bplus值为父结点的id;
[0213] 如果从继承直系树堆栈stackstring中找不到长辈结点,则设置堆栈游标bplus值为0;并将临时直系树堆栈tmpstackstring的值赋予给继承直系树堆栈stackstring,并将当前的数据[id,untmsp]压入继承直系树堆栈,然后跳转到步骤A139;
[0214] 例如当游标读到第二条数据"3,衣大毛羊"时,stackstring="l,衣大;"。经过判断"衣大"是"衣大毛羊"的父节点,则修改当前游标所在的Bplus值为1,临时直系树堆栈[0215] tmpstackstring="l,衣大;"。将临时直系树堆栈赋值给继承直系树堆栈,然后再将当前"3,衣大毛羊"压入栈,得到stackstring="l,衣大;3,衣大毛羊";
[0216] 步骤8),将当前的数据[id,untmsp]压入继承直系树堆栈stackstring,比如第一次入栈操作时,stackstring="l,衣大;"。并更新当前游标的Bplus字段为0;
[0217] 步骤9),当前堆栈游标Bplus值加1,跳转到步骤4),读取下一条数据[id,untmsp],执行循环操作;
[0218] 步骤10),结束。
[0219] 示例数据经过字符串逆向处理后的数据样式如表7所示。其中Bplus父结点都初始化为0。
[0220]
[0221] 表7
[0222] 将表7对untmsp字段排序后输出得到表8。在表8中已经根据本算法进行了Bplus赋值。在本表中,另外增加了id为28,29的项,并对Bplus的赋值进行补充说明。
[0223]
[0224]
[0225] 表8
[0226] 在表8中,Bplus值表明了对表7中的数据处理后的父子关系。例如:大衣的Bplus为0,表明是根节点,没有父结点,羊毛大衣的Bplus值为1,表明其为大衣(ID值为1)的子结点,女士羊毛大衣的Bplus值为3,表明其为羊毛大衣(ID值为3)的子结点。同理,被罩(ID值为6)的子结点为棉被罩(ID值为28,Bplus为6),依次类推。
[0227] 根据生成的父子关系(id,bplus),构造的树状结构如附图1所示,图1中还包括了茶、水茶、果茶和花茶等内容,这部分树状结构的生成过程与"大衣"相关的树状结构相同,不再重复。
[0228] 图2所示,是本发明实施例中左包含与右包含检索字符串同时存在的情况下,将检索词目录表混合显示的结果。"棉大衣","羊毛大衣"与"大衣"之间是右包含关系;"大衣紐扣"与"大衣"之间是左包含关系,"金属大衣紐扣"与"大衣紐扣"之间是右包含关系。"金属大衣紐扣"与"大衣"构成了居中包含关系。此处的居中包含关系通过一次右包含关系和一次左包含关系就可以完成处理。
[0229] 在上述处理过程的基础上,还可以进行改进优化。优化的方法包括:
[0230] (1)同一父字符串下的两个字符串子串包含关系的处理。例如"大型物件运输"与"大型物件起重运输"没有构成左包含、右包含或者居中包含关系,但他们拥有同一个父串"运输"。如果去掉父串后,"大型物件起重"左包含"大型物件",这种情况下可以进行二次处理,将"大型物件起重运输"归为"大型物件运输"的子串。经过这种处理,能够减少同一节点下所包含的子节点的数目。
[0231] (2)增加各种辅助字段加快检索词目录表信息数据的显示,比如增加当前节点所在目录的层数目、当前节点所在根节点中多子节点的序号等等。
[0232] 4、向用户返回目录树状检索提示和与检索字符串相匹配的数据
[0233] 搜索引擎接收用户输入的检索字符串后,会查询两个表。一个表是检索词目录表,通过查询检索词目录表,得到包含所述检索词的第一数据项集合,并以递归目录树的形式向用户显示所述数据项集合。另一个表是信息索引数据表,通过查询这个表,得到与检索词相关的第二数据项集合,即信息索引数据表中与第一数据项集合关联的数据,然后向用户返回该数据。
[0234] 本领域技术人员明白,检索词目录表可以包含所有的检索字符串,也可以包含部分检索字符串。例如,可以将衣服、电子产品、法律库等检索字符串都列入一个检索词目录表中,也可以分别放在三个检索词目录表中。同样是衣服类,也可以分成多个检索词目录表,无论是哪种方式,都没有超出本发明的保护范围。无论是哪种方式,其向用户返回的都是只包含用户所输入的检索字符串的检索词目录表,而不会将不包含用户所输入的检索字符串的检索词目录表向用户返回。从这个度讲,可以将检索词目录表理解为由复数个根结点组合成的复数个检索词目录表,其中每个根结点单独组成一个检索词目录表。每一个检索字符串都隶属于一个根结点下的检索词目录表。
[0235] 如图3所示,是本发明实施例的一个系统原型截图。用户输入的检索字符串是"大衣"。在完成检索字符串输入后,本例中以输入的检索字符串为"大衣"为例,向用户返回的内容主要包括两部分:第一部分是从检索词目录表所获得的部分,第二部分是从信息索引数据表返回的内容。
[0236] 第一部分是使用所述检索字符串查询检索词目录表后,得到该检索字符串的相关检索字符串集合。正如图3左侧所显示的那样,显示了相关检索字符串所在的检索词目录表,其中父串"大衣"与其子串"半大衣"、"棉大衣"、"羊毛大衣"、"羊绒大衣"、"各式大衣"、"各种T-恤大衣"、“毛呢大衣”以及这些子串的子串都以层次分明的检索词目录表的形式排列,以包含检索字符串的检索词递归目录树的形式向用户呈现。由于检索字符串相互之间的父子关系,使得用户可以看到该检索字符串所属的父串以及它的子串,如图3中提示的与"大衣"有关的"羊毛大衣,羊绒大衣"等。
[0237] 第二部分是在系统中检索所述检索字符串,从信息索引数据表中获取与所述检索字符串相关的数据,也就是与所述检索相关的信息概要内容,即如图3右侧所显示的那样,是包含检索字符串的信息索引数据表中的相关信息,对于商品信息数据库而言,通常可以包括如厂家名称、品牌、价格、商品名称等。而对于法律信息数据库而言,通常可以包括各种法律主体、法律责任类别等,如果是保险有关的,就会显示各种险种等。
[0238] 通过在信息索引数据表中对检索字符串进行完全匹配查询,将查询的结果联合信息数据表输出作搜索返回的内容。在本发明实施例中,可以使用以下的联合查询SQL语句返回结果"select * from xinxi,xinxiindex where xinxi.xinxiid=xinxiindex.xinxiid and xinxiindex.tmsp='keyword'"。查询可以根据信息数据表的附加字段进行排序,比如时间权重等。完全匹配能够得到比较准确的搜索结果,模糊匹配得到的搜索结果比较广泛,两者都有自己的用处,可以通过功能按钮来实现功能选择。
[0239] 由于父串与子串相互之间的父子关系,能够以检索词目录表的形式排列显示出相互之间的父子关系。就图3的显示结果而言,用户不仅仅从右侧的内容中得到了相关的检索结果,而且还从图3的左侧得到了包含检索字符串的字符串之间父子关系,使得这些检索结果在逻辑上的关联性也得到了显示。
[0240] 而在现有技术中,各个检索结果之间单纯通过用户点击数量所形成的倒排关系,搜索引擎并没有将这些检索结果的检索字符串的父子关系显示出来。现有技术的检索结果之间的排列关系依赖于用户的点击或链接数量的多少,而不是检索字符串之间逻辑上的关系联,更不是包含检索字符串的字符串之间的父子关系。所以,两者之间具有本质的不同。
[0241] 检索词目录表的查询过程可以如下。在检索词目录表查询检索字符串是否存在。如果检索字符串存在,则将检索字符串作为树根,并从检索词目录表中查询该检索字符串的子结点,查询条件是子结点的父结点编号bplus等于当前检索字符串的编号id。比如算法示例中"大衣"的编号为1,他的子节点为"棉大衣"、"羊绒大衣"与"羊毛大衣",他们的bplus值均为1。相应的可以使用递归的方法返回子结点的子结点,也可以使用Ajax技术在点击节点的时候自动生成该结点的子结点。同一父结点下的子结点可以按照结点字符顺序进行排序,以方便查找,也可以按照其他的顺序进行排列,取决于用户的具体需求。
[0242] 包含检索字符串的检索词目录表结构通过两种关系生成:一种是左包含关系生成的,另一种是右包含关系生成的,根据左包含关系和右包含关系能够分别生成两个子检索词目录表,这两个子检索词目录表可以从形式上合并成为一个检索词目录表。
[0243] 作为一种优化处理,考虑到用户的检索字符串会存在别名,为了提高检索的准确性和覆盖面,可以将别名也作为检索字符串,在信息索引数据表和检索词目录表进行查询,返回相应的结果。在本发明实施例中,通过要查询别名数据表,找到与当前检索字符串相对应的别名,同时将别名作为检索字符串,在信息索引数据表和检索词目录表进行查询,返[0244] 回相应的结果。例如,如果当前用户的检索字符串是"土豆"时,通过查询别名数据表,得知其存在"马铃薯"这个别名,那么系统就将马铃薯作为新的检索字符串,进行检索,即在信息索引数据表和检索词目录表中查询与其匹配的信息后,向用户返回。别名数据表的数据通常可以人工建立。
[0245] 为了更直观地显示出本发明实施例的检索效果与现有技术的区别,下面使用附图进行比较说明。如附图4、附图5所给出的2个具体的例子。
[0246] 附图4所示,是使用谷歌关键字工具(google keyword tool)返回的数据,在谷歌关键字工具中,使用"大衣"进行搜索,能最多返回150条数据。其所返回的数据包括"大衣","大衣围巾","大衣男","大衣女","大衣淘宝","VEROMODA大衣","JACKJONES大衣","时尚大衣","外套大衣","流行大衣","男装大衣","女装大衣","流行大衣","大衣批发"等等,这些返回的数据之间是各自独立的,没有相互之间在逻辑包含关系,更没有显示这些逻辑包含关系的检索词目录表。
[0247] 附图5所示,是使用百度即时提醒返回的数据。当输入"大衣"后,其所提示的数据是"大衣柜","大衣柜图片","大衣柜内部结构图","大衣搭配","大衣款式","大衣蝴蝶结的打法","大衣图片"等等,这些数据之间除了包含检索字符串大衣之外,没有显示出相互之间在逻辑上的包含关系,更没有显示这些反映这些数据之间逻辑关系的检索词目录表。
[0248] 综合图3与图4和图5的差别可知,无论是百度或者是谷歌,其所返回的检索提示信息均不全面,这些检索提示信息之间不带有语义特征。比如从语义上,图4中"男装大衣"应该是"大衣"的一种,图5中"大衣柜"是"大衣柜图片"和"大衣柜内部结构图"的上位概念。但是这些逻辑联系并没有为图4和图5以检索词目录表的形式直观地显示出来。
[0249] 本发明实施例所提供的技术方案除了能够应用于生成检索提示外,还可以用于商品目录的自动生成,专业技术领域的概念树生成。
[0250] 应用举例一:海关税则的海关编码(HS编码)查询。如图6所示,是从海关总署进行检索的结果。当从海关总署的官方网站中"首页>首页>商品查询"使用检索字符串"大衣"进行查询时,网站模糊查询引擎将返回8页共158条记录,这些记录以包含商品编码和商品名称的列表的形式呈现给检索者。但是,却没有显示出这些商品名称之间的内存逻辑联系,如"大衣"是"男装大衣"、"纯毛机织男大衣"、"棉制梭织女大衣"等商品的上位概念。如果应用本发明实施例所提供的方法,将商品名称作为检索词目录表中的父串或子串,生成检索词目录表后向检索者显示,正如本发明图3所显示的那样,将极大的提升用户体验,缩小用户查询的范围。
[0251] 应用举例二:商标注册用产品服务分类表。注册商标时需要进行同行业产品类似商标查询。通过使用本发明实施例所提供的方法,能更方便的查找已注册的商标的产品类别,为用户的选择提供参考。如图7所示,是使用本发明实施例所构造的检索词目录表示例,关键字分别是"帘子布"与"布"。图有两部分组成,左侧是"帘子布"目录树的部分截图,右侧是"布"目录树的部分截图。左侧能看出帘子布相关的种类或者服务,种类如"膨体帘子布"、"涤纶帘子布"、"锦纶帘子布"、"浸胶帘子布"等,服务如"加工帘子布"。右侧是与检索字符串"布"有关的商品,如"里子布"、"里布"。同时从中可以的发现与"里布"有关的几个不同的但同义的描述:里子布和里料布等。如果再釆用别名数据表的话,将更有助于用户准确地找到目标信息。
[0252] 应用举例三:对《国民经济行业分类》中具体行业的产品进行自动分类。比如纺织业、服装业、皮革业、电子产品行业等等,这些《国民经济行业分类》中只是简单的行业描述。而这些行业的产品一般情况下没有更具体详细的分类,而且产品类型更新一般较快。使用本发明实施例所提供的方式,可以使得分类自动化,每当增加新的产品类型时,仅仅按本发明实施例所提供的技术方案,对相关产品信息进行自动标引或分词,提取出检索字符串,生成检索词目录表和信息索引数据表,就能够将新产品接纳到已有的检索词目录表和信息索引数据表中,使得本发明实施例广泛接纳新的产品类型的能很强。以CDMA产品为例,已知的产品类型包括:CDMA手机、黑莓CDMA手机、豪华型
[0253] CDMA手机、双SIM卡CDMA手机、CDMA手机充电器、CDMA天线、CDMA无线天线、CDMA上网卡、CDMA无线上网卡、CDMA电话机、CDMA固定无线电话机、CDMA投币电话机、户外CDMA投币电话机。如图8所示,就是本发明实施例对CDMA产品处理后所显示的检索词目录表。本发明实施例通过对CDMA产品进行自动标引或分词、生成检索词目录表后所显示的检索词目录表,所有的CDMA产品都可以在图中所示的检索词目录表上找到合适的位置,而且很适合新产品的增加。
[0254] 应用举例四:法律专业领域构造概念树。如图9所示,是本发明实施例中对"保险"构造概念树的示例图。使用本发明实施例所构造的检索词目录表构成了树状网络语义,根结点为该特定领域概念集合的上位概念,子结点为下位概念。上位概念是对其所有下位概念属性的概括,下位概念是从不同的角度对上位概念的细化。本发明实施例的实施方式是:
[0255] 1、将法律条文自动标引或分词后,取其中的概念短语建立倒排索引,将保险、财产保险、车辆保险、当地保险、出口信息保险、行业保险、第三者责任法定保险、对前款保险标的的保险、工伤保险、国家法定保险、货物运输保险、人身保险、劳动保险、养老保险、旅游意外保险等建立倒排索引,建立的方式可以是现有技术中的各种方式;
[0256] 2、然后使用这些概念短语作为检索字符串,生成原始检索词数据表;将倒排索引表中的保险、财产保险、车辆保险、当地保险、出口信息保险、行业保险、第三者责任法定保险、对前款保险标的的保险、工伤保险、国家法定保险、货物运输保险、人身保险、劳动保险、养老保险、旅游意外保险等进行唯一性选择后,建立以这些词为检索字符串的原始检索词数据表;
[0257] 3、根据原始检索词数据表生成检索词目录表。如图9所示,以保险、财产保险、车辆保险、当地保险、出口信息保险、行业保险、第三者责任法定保险、对前款保险标的的保险、工伤保险、国家法定保险、货物运输保险、人身保险、劳动保险、养老保险、旅游意外保险等生成检索词目录表后,以递归目录树的形式显示出来,该检索词目录表以法律概念为结点。
[0258] 4、当收到用户的检索请求后,返回包含该检索字符串的概念树结构。图9所示,本例中向用户返回的是保险有关的概念树结构。
[0259] 通过使用检索词目录表可以将相关的法律词条进行分类,在这个基础上进行检索,能清楚的看到相关的检索字符串及其相互之间的逻辑联系,使得查准率更高。
[0260] 图9所示的应用实例中,概念树的表现形式与递归目录树相同。其实在本发明的各个实施例中,递归目录树的表现形式是多种多样的,不限于附图中的各种方式,其核心在于各个检索字符串所存在的亲属关系。
[0261] 如图10所示,是本发明的实施例的结构时一种数据流向示意图。
[0262] 当搜索引擎收到用户输入的检索字符串后,在检索词目录表检索字符串和信息索引数据表中查询,信息索引数据表是由信息数据表生成的,信息索引数据表再生成原始检索词数据表,原始检索词数据表生成检索词目录表。搜索引擎还将检索别名数据表,来查询检索字符串对应的别名。
[0263] 本发明实施例中,可以根据检索词目录表中同一目录树数据项集合内的数据项与数据项之间的父子关系(可以使用bplus字段或其他方式确定)可以构造成目录树。目录树的显示可以根据具体情况选择合适的技术方式实现,包括单机软件、客户机服务器模式与浏览器服务器模式。比如:通过编程用定制的客户端来实现树形结构;使用html语言封装结果在浏览器中显示为树形结构;使用wml语言封装结果在手机浏览器上显示为树形结构。具体的显示方式没有超出本发明实施例的保护范围。
[0264] 递归目录树有助于显示各个检索字符串之间的层次结构。目录树是最常用、最直观的方式。但具体的显示可能不尽相同,并有多种变形显示方式。比如具有目录功能的多级菜单,就是一种目录树的变形,下一级菜单是上级菜单的子项。尽管表现形式多样,但它表现出的上下级的父子关系与层次结构是不变的。
[0265] 如图10-1所示,是本发明实施例所提供的具有目录功能的多级菜单图形示例。目录树结构中同一节点下的子节点,变形为下一级菜单。下级菜单会在光标移过时,动态显示。例如,当用户关注羊毛大衣时,将光标移动到其上,相应地就会显示出其下一级节点男士羊毛大衣和女士羊毛大衣。此时,递归目录树结构的本质没有改变,这些子节点都具有共同的父节点"大衣",仅仅是其显示的方式发生了变化。这里向用户提供了目录树结构的另一种显示方式。
[0266] 如图10-2所示,是本发明实施例所提供的具有目录功能的多级菜单图形及商品信息结果示例,在本实施例中,当光标选中羊绒大衣时,相应地在目录表检索字符串和信息索引数据表中查询。检索词目录表返回有关的检索字符串,如棉大衣,羊绒大衣,羊毛大衣和大衣钮扣。信息索引数据表中返回与当前选中的检索字符串有关的商品信息,如各种品牌的羊绒大衣。
[0267] 在本发明各实施例中,向用户发送的第二数据项集合可以包括以下步骤:
[0268] 1.信息索引数据表中与所述检索字符串通过第一数据项集合简单匹配获得的第二数据项集合,具体包括以下2种方式:
[0269] 1.1当输入的检索字符串是第一数据项集合的某节点时,直接显示检索字符串精确匹配的信息,可以如图3那样,直接显示检索字符串"大衣"对应的商品信息;
[0270] 1.2当输入的检索字符串是第一数据项集合的某节点,可以通过第一数据项集合提示、引导、链接,间接显示与检索字符串精确匹配的信息,如图10-2那样,显示与检索字符串"大衣"匹配但间接相关的"羊绒大衣"的商品信息。
[0271] 2.与所述检索字符串通过第一数据项集合递归组合匹配获得的第二数据项集合,具体包括:
[0272] 2.1用户的检索字符串与在信息索引数据表无检索结果时,返回递归匹配结果;如用
[0273] 户输入的检索字符串是"兔毛大衣"若在信息索引数据表无检索结果时,可以返回检索字符串的上位节点,即具有包含关系的如"大衣"的有关检索结果;
[0274] 2.2无论用户输入的检索字符串命中第一数据项集合的哪个节点,都显示与第一数据项各节点对应的全部或部分信息。如图12无论输入"保险"下哪个节点,如输入"工伤社会保险",就可以显示"保险"、"社会保险"、"工伤社会保险"等递归匹配出来的节点在信息索引数据表中对应的信息;也可以显示"城镇社会保险"、"当地社会保险"等亲属组合,在信息索引数据表中对应的信息。
[0275] 当然对于2.1进一步地,当返回检索字符串的上位概念有关的信息时,如果用户点击具体下位概念时,再显示下位概念有关的信息。其过程举例,即是无论输入的是"大衣"还是"羊绒大衣",都直接返回"大衣"有关的商品信息,当用户进一步选择"羊绒大衣"或其他下位概念时,再返回"羊绒大衣"或其他下位概念对应的信息。或者对于2.2进一步地,递归匹配的组合的信息可以有任意多种显示排列方式。这些显示方式的变化没有超出本发明的保护范围。
[0276] 本发明通过对原始数据信息进行自动标引或分词,获取检索字符串后,生成检索词目录表,向用户返回以检索字符串为结点的检索词目录表。使得用户有很好的检索体验。本发明适用于高密度大数据、智能、移动、回忆等语义分析场景。本发明实施例很好地解决了检索词目录表的数据来源、构造方式、以及显示方式等方面的技术问题,具有很好的市场应用前景。
[0277] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈