专利名称:数据库搜索查询的扩展的制作方法
技术领域:
本申请一般地涉及数据库。更具体地,本申请涉及数据库搜索查询的 扩展。
背景技术:
搜索引擎是基于可能是由用户输入的数据搜索查询(search query)来 识别数据源中的数据项的工具。搜索引擎在搜索查询中使用不同的单词 (token)(例如字或短语)来识别用户感兴趣的数据项。有时,分别地, 因为数据搜索査询过于广泛或狭窄,所以搜索引擎返回包括过多或不够多 的数据项的搜索结果。
通过参考以下描述以及示出这样的实施例的附图,可以最佳地理解本 发明的实施例。在此包含的附图编号机制是这样的,示图中给定标号的第 一个数字与示图编号相关联。例如,系统100可以被定位在图1中。然 而,不同附图中那些相同元件的标号是相同的。在附图中
图1示出根据本发明某些实施例的用于数据库搜索扩展的系统。
图2示出根据本发明某些实施例的包括作为搜索查询的一部分的搜索 查询扩展的搜索査询的流程图。
图3示出根据本发明某些实施例的单个和复合语意单元的分词(tokenization )。
图4示出根据本发明某些实施例的用于存储数据库中的数据的树状分 级结构(tree hierarchy)。
图5示出根据本发明某些实施例的文脉(contextual)查询扩展的流程图。
图6示出根据本发明某些实施例的确定单词和数据库中的类别之一之 间的同义性关联的流程图。
图7示出根据本发明某些实施例的独立于搜索査询操作的搜索查询扩 展的流程图。
图8示出根据本发明某些实施例的使用之前经过扩展的单词的搜索査 询的流程图。
图9示出根据本发明某些实施例的计算机装置的部件。
具体实施例方式
将描述用于数据库搜索查询扩展的方法、装置和系统。在以下描述 中,给出了大量具体细节。然而,应理解,可以实践本发明的实施例而无 需这些具体细节。在其他情况下,为了使对本描述的理解清楚,没有详细 示出公知的电路、结构和技术。
对实施例的该描述分为四个部分。第一部分描述示例系统环境。第二 部分描述搜索查询扩展的操作。第三部分描述示例计算机装置。第四部分 提供某些通用的注解。
示例系统环境
图1示出根据本发明某些实施例的用于数据库搜索扩展的系统。图1 示出具有客户端一服务器体系结构的系统100。以信息存储和取回平台 102作为示例形式的平台,经由网络108 (例如,因特网)向一个或多个 客户端提供服务器一侧的功能。图1例如分别示出在客户端机器106和 104上运行的web客户端112 (例如,web浏览器)和程序化 (programmatic)客户端110。现具体地转至信息存储和取回平台102,应用程序接口 (API)服务器
114和web服务器116耦合到一个或多个应用服务器118,并且分别向其 提供程序化接口和web接口。应用服务器118可以承载查询控制模块124 和扩展模块120。应用服务器118被示出为接着耦合到一个或多个搜索后 端服务器126。搜索后端服务器126承载搜索引擎128并且辅助对数据存 储器130 (其可以存储一个或多个数据库)的访问。
査询控制模块124用作客户端机器104和106以及其他搜索模块(例 如,扩展模块120)之间的集线器。出于此目的,查询控制模块124分别 经由API服务器114和web服务器116与客户端机器104和106进行通 信,并且与其他搜索模块直接进行通信。
虽然在图1中示出的系统100采用客户端一服务器体系结构,但是实 施例并不局限于这样的体系结构,并且可能在分布式或者对等体系结构的 系统中很好地找到应用。扩展模块120、查询控制模块124和搜索引擎 128可以代表硬件、软件或其组合。在某些实施例中,扩展模块120、查 询控制模块124和搜索引擎128可以被实现为不一定具有联网能力的独立 程序。
web客户端112访问由搜索模块经由web服务器116所支持的web接 口而提供的各种服务和功能。类似地,程序化客户端iio访问由搜索模块 经由API服务器114所提供的程序化接口而提供的各种服务和功能。
搜索查询扩展的操作 该部分描述根据本发明某些实施例的搜索査询扩展的操作。在某些实 施例中,通过驻存在机器可读介质上的指令(例如,软件)来执行所述操 作,而在其他实施例中,通过硬件或其他逻辑(例如,数字逻辑)来执行 各种方法。
在某些实施例中,搜索査询扩展可以作为搜索査询的一部分或者在搜 索査询期间被执行。例如,在搜索査询被接收之后并且在数据库中执行搜 索査询之前,执行查询扩展。图2和图5示出根据本发明某些实施例的以 这样的顺序执行的操作的流程图。可替代地,搜索査询扩展可以独立于搜索査询被执行。换言之,搜索查询扩展被脱机执行(相对于搜索査询)。 在某些实施例中,可以基于在前的搜索査询执行扩展。图7到图8示出根 据本发明某些实施例的其中搜索査询扩展独立于搜索查询的操作的流程 图。
图2示出根据本发明某些实施例的包括作为搜索査询的一部分的搜索
査询扩展的搜索査询的流程图。图2示出可以由扩展模块120和搜索引擎 128 (在图l中示出)执行的操作。流程图200在块202处开始。
在块202处,接收到针对数据库中的数据的、具有单词的搜索査询。 参考图1,查询控制模块124可以接收搜索査询。例如,用户可以利用 web客户端112来输入搜索査询。Web客户端112可以将査询转发到web 服务器116, web服务器116将査询转发到査询控制模块124。搜索査询可 能具有一个或多个单词。因此,在某些实施例中,在此关于单词而描述的 操作可以针对搜索査询中的一个、多个或所有单词而执行。单词可以包括 查询中的不同的字或短语。
搜索査询可以包括句子、短语、单个字等。在某些实施例中,对搜索 查询进行分词(tokenize)。分词是指将文字串切分为语意上独立的单词的 工作。在某些实施例中,单词根据其语意值被定义并且可能或者是单个语 意单元(single-semantic-unit)或者是复合i吾意单元(compound-semantic— unit)。类似于字的语言学概念的单个语意单元,被定义为象征并传达不 可分为更小的、能够独立使用的单元的含义的字符序列。此外,类似于短 语的语言学概念的复合语意单元被定义为单个语意单元的序列,因此,最 终的单词承载独立的并且与个体语意单元不同的语意值。
在西方欧洲语言的情况下,单个语意单元边界通常由空格或标点符号 来标记。然而,这并不是诸如汉语、日文和泰国语之类的亚洲语言的情 况,在亚洲语言的情况下,并不存在诸如空格之类的语意单元分隔符,并 且标点符号很少被使用。图3示出根据本发明某些实施例的单个和复合语 意单元的分词。具体地,图3示出搜索查询302。查询控制模块124将搜 索查询302分为多个单片段单元304。例如,査询控制模块124可以用空 格替换所有的标点符号。查询控制模块124还可以在可适用的情况下将文字规范化为小写字母。査询控制模块124还可以将所有的空格序列合并到
一个单个空格中。査询控制模块124还可以生成多个复合语意单元306。
在某些实施例中,査询控制模块124可以利用基于词典的方法来生成 复合语意单元。基于词典的方法可以是从左开始向右进行匹配以匹配最长 可能字串的前向最大匹配,或者是从右向左针对最长可能字串进行匹配的 后向最大匹配。在某些实施例中,生成覆盖在给定数据库中所使用的单词 的最大词汇量的词典。在某些实施例中,使用这样的复合语意单元提取操 作,其使用用户査询流来产生一组最可能的复合语意单元。
在某些实施例中,査询控制模块124可以利用统计方法来生成复合语 意单元。统计方法基于统计模型,统计模型基于语意单元出现在另一个的 附近的频率而建立,所述方法公知为n-grams统计,其中n为2到N。在 存在两个语意单元彼此邻近的较低概率的点处可以确定单词切分,因此产 生最大语意单元。模型的准确性和复杂度随着字串大小的增大而增大。此 外,复合语意单元的最大持续长度可以基于语言被定义。该方法可以扩展 到处理亚洲语言。例如,现代汉语使用的复合语意单元通常由2到3个汉 字构成。在某些实施例中,可以将方法的不同组合用于生成复合语意单 元。现返回到流程图200,流程在块204处继续。
在块204处,确定单词的一个或多个同义候选词(synonym candidate)。参考图l,扩展模块120可以作出该确定。査询控制模块124 可以将特定单词转发到扩展模块120用于处理。流程图200中的后续操作 可以针对这些单词的一个或多个来执行。在某些实施例中,如果通过两个 单词的每个单词而返回的搜索结果集合指代物品集合中相同的对象、概念 或性质,那么这两个单词是同义词。
在某些实施例中,两个单词是基于语法规则的同义词。在某些实施例 中,语法规则呈正则表达式形式,以判断两个单词是否是同义词。语法规 则可能是基于语言的。例如,对于德语,用"ue"替换。为了说明 这一点,"fiir"是"flier"的同义候选词。德语语言的其他示例包括用 "ss"替换"13",用"oe"替换"6",用"ae"替换"r,,等等。
在某些实施例中,同义候选词包括单词的复数形式。例如,销售者在在线拍卖时可能一次仅列出一个物品。为了说明这一点,销售者可能在标
题中使用单词"bike"。另一方面,针对在线拍卖而搜索数据库的购买者 可能作为替代搜索"bikes"。在某些实施例中,同义候选词包括不同的时 态。例如,对于单词"buy",同义候选词包括buying禾n bought。在某些 实施例中,同义候选词包括性别。例如,单词waiter的同义候选词可以是 waitress。在某些实施例中,同义候选词包括单词的不同形式,所述形式依 赖于该词在句子中的成分。例如,德语中单词soldier的主格(主语)形式 是soldat。宾格(直接宾语)形式是soldaten。
在某些实施例中,同义候选词涉及单词的去复合(de-compound)。 例如,在诸如德语、荷兰语或瑞典语之类的语言中,单词可以被结合在一 起以形成复合词。为了说明这一点,在德语中,Blue Wale被写作
"Blauwal"。为了在搜索Wal时产生Blauwal作为搜索结果的一部分,单 词被去复合为Blue和Wale。为了说明这一点,在英语中,spiderman可以 被去复合为spider man。在某些实施例中,同义候选词涉及字符变换。在 欧洲语言中,重音标记和变音符(diacritical)被用于表示语调或者完全不 同的字符。这样的单词的示例包括西班牙语中的"cdmara"和法语中的
"fmnce'e"。某些用户可能不使用重音标记和变音符,因为这样的标记需 要多次键击以在美式国际英语键盘上进行输入。因此,当搜索查询中的单 词不包括标记时,同义候选词可以包括具有重音标记的单词,反之亦然。 在某些实施例中,文脉查询扩展被用于确定同义候选词。在以下对图5和 图6的描述中,给出对文脉查询扩展的更详细的描述。现返回流程图 200,流程在块206处继续。
在块206处,判断是否存在未经处理的同义候选词。参考图1,扩展 模块120可以作出该判断。例如,扩展模块120可能接收到单词的一个到 多个不同的同义候选词。如果不存在未经处理的同义候选词,那么流程在 块220处继续,这将在下文中更详细地描述。否则,流程在块208处继 续。
在块208处,判断同义候选词是否超出在表示数据库中的数据的多个 数据串和/或多个搜索査询中的最小频率阈值。参考图1,扩展模块120可以作出该判断。数据串可以是物品标题。例如,如果数据库用于存储被买 卖的物品,那么数据串可以是由销售者针对给定物品而输入的标题。因 此,扩展模块120可以判断在数据库中的至少阈值个物品标题中,同义候 选词是否被找到。此外,搜索査询历史可以被存储在机器可读介质(例如
数据存储器130)中。扩展模块120可以判断在至少阈值个这些搜索査询 中,同义候选词是否被找到。扩展模块120可以检查针对表示数据的数据 串和搜索查询二者的阈值。可替代地,扩展模块120可以检查针对表示数 据的数据串或者针对搜索查询的阈值。在某些实施例中,阈值是15、 20、 25、 30、 100等。利用该阈值可以消除并非真的在物品标题或查询中使用 的扩展。因此,更可能的是,同义候选词是实际用于搜索的。如果同义候 选词超出最小阈值频率,那么流程在块218处继续,这将在下文中更详细 地描述。否则,流程在块210中继续。
在块210处,判断单词和同义候选词是否处于数据库中树状分级结构 的某一级的相同类别中。参考图1,扩展模块120可以作出该判断。为了 说明这一点,图4是根据本发明某些实施例的用于存储数据库中数据的树 状分级结构。图4示出用于在线拍卖(online auction)的数据库的树状分 级结构400。树状分级结构包括根。根的孩子节点包括图书和玩具/爱好
(这是第一级)。图书的孩子节点包括儿童文学和小说(这是第二级)。 玩具/爱好的孩子节点包括活动人偶和字谜(这是第二级)。儿童文学的孩 子节点包括睡前读物和传记(这是第三级一树状分级结构的叶子类别)。 小说的孩子节点包括名著和恐怖小说(这是第三级一树状分级结构的叶子 类别)。活动人偶的孩子节点包括蝙蝠侠和美国步兵Joe (这是第三级一 树状分级结构的叶子类别)。字谜的孩子节点包括现代字谜和老式字谜
(这是第三级一树状分级结构的叶子类别)。数据项被存储在叶子类别之 一中。
在某些实施例中,扩展模块120基于第一级作出该判断。扩展模块 120可以根据单词的最大物品频率来确定第一级类别。扩展模块120也可 以根据同义候选词的最大物品频率来确定第一级类别。例如,如果单词是 "spiderman (蜘蛛人)",那么扩展模块120判断哪些第一级类别具有通过单词"spiderman"而存储于其下级中(在其叶子类别之一中)的最多的 物品。类似地,如果同义候选词是"spiderman",那么扩展模块120判断 哪些第一级类别具有通过单词"spider man"而存储于其下级中(在其叶 子类别之一中)的最多的物品。扩展模块120然后判断针对单词和同义候 选词的这些第一级类别是否相同。因此,如果单词和同义候选词具有相同 的第一级类别(如所描述的),那么同义候选词可以被认为是单词的同义 词。如果单词和同义候选词是树状分级结构中某一级的相同类别的一部 分,那么流程在块218处继续,这将在下文中更详细地描述。否则,流程 在块212处继续。
在块212处,确定单词在树状分级结构中的叶子类别上的概率分布。 参考图1,扩展模块120可以作出该确定。该操作可以识别单词对之间的 同义性,这说明单词在整个数据库上的使用。具体地,考虑单词在叶子类 别的整个集合上的使用分布。在某些实施例中,如果两个单词被用在相同 的情况下或者相同的情况集合中,那么这两个单词是语意上等价的。因 此,在某些实施例中,该操作识别其中单词作为该特定单词的不同意义出 现的、树状分级结构的类别结构中的每个叶子类别。因此,在某些实施例 中,扩展模块120可以基于概率分布来作出该判断。令LC =仏,12, . . ., ln} 作为叶子类别的集合。令单词(w)的概率(Av,/,)用于叶子类别/, 2,...,")中,其中w是叶子类别的个数。(Pw,/,)被估计如下
尸0,/0= 否则
尸—)、工
其中zy;,是单词w的物品频率,在类别/,中,^是数据库中单词w的
频率,是单词w的全局概率,并且w是词的完整词表。因此,概率
分布表示特定单词在叶子类别集合上的意义集合。该概率估计还包括滤波 成分,其将非零概率指定给单词类别组合。具体地,//被设定为1用于概率估计。流程在块214处继续。
在块214处,确定同义候选词在树状分级结构中的叶子类别上的概率
分布。参考图1,扩展模块120可以作出该确定。扩展模块120可以基于 以上在块212处所描述的公式来作出该确定。流程在块216处继续。
在块216处,判断单词和同义候选词的概率分布的交叉熵是否低于阈 值。参考图1,扩展模块120可以作出该判断。在某些实施例中,给定一
对单词^, v^在叶子类别集合丄c上的两个概率分布函数e^和ew2,那
么扩展模块120可以利用KL散度测度(如下式所示)来确定分布之间的 交叉熵
其中"l,2,.,.,w。该交叉熵是两个单词之间相似性的量度,并且因此
可以是两个单词^和W2之间同义性的量度。在某些实施例中,阈值是
1、 5、 10、 20等等。因此,如果KL散度低于阈值,那么同义候选词被认 为是单词的同义词。如果交叉熵不低于阈值,那么流程在块206处继续。 否则,流程在块218处继续。
在块218处,将同义候选词添加到搜索查询。参考图1,扩展模块 120将同义候选词添加到搜索查询。流程在块206处继续。
在块220处(如果不再存在未经处理的同义候选词),搜索查询被用 于执行针对数据库中数据的搜索。参考图1,搜索引擎128执行针对数据 存储器130中的数据的搜索。扩展模块120可以将搜索査询转发到搜索引 擎128。搜索引擎128可以将搜索查询的结果返回给查询控制模块124, 查询控制模块124通过API服务器114或web服务器116将结果分别返回 到程序化客户端IIO或web客户端112。流程图200的操作完成。
在某些实施例中,如果搜索查询被扩展,那么输入搜索查询的用户被 允许在执行搜索之前査看经扩展的搜索查询。虽然描述了在块208、 210 或216处的任一判断都可能导致同义候选词被添加到搜索查询,但是在某 些实施例中,在同义候选词被添加到搜索査询之前,需要针对所有这些判 断的"是"的结果。可替代地,需要针对少于所有的所述判断的"是"的 结果(例如206和208, 206和210,等等)。现更详细地描述可以执行用于确定同义候选词的操作。参考图2,现
在描述的操作可以是除步骤204的操作之外的操作或者是步骤204的操作
的替代操作。关于基于给定单词的不同复数形式、时态形式等来确定同义
候选词,描述了步骤204的操作。现在所描述的操作可以基于类别树中的 类别节点来确定单词的同义候选词。具体地,图5示出根据本发明某些实 施例的文脉査询扩展的流程图。图5示出可以由扩展模块120 (在图1中 示出)执行的操作。流程图500在块502处开始。
在块502处,接收到作为搜索查询的一部分的单词。参考图1,扩展 模块120可以接收经过处理的单词。例如,扩展模块120可以接收对搜索 查询进行了分词(如上所述)后的单词。流程在块504处继续。
在块504,判断在单词和数据库中的类别之一之间是否存在同义性关 联(synonymity association)。参考图1,扩展模块120可以作出该判断。 为了说明这一点,搜索査询可以是针对与在线拍卖(购买者和销售者)有 关的数据库中的数据的。在用户不熟悉在这样的数据库中的搜索的情况 下,购买者倾向于根据概念或想法而非感兴趣的具体物体来键入其查询。 例如,购买者可能键入诸如dvd,餐馆设备,二手车等之类的搜索査询。 在某些情况下,用户可能没有将这些具体的单词包括在其物品标题中。下 表1示出使单词与数据库中的类别相关的某些示例
单词类别扩展
DvdDVD&电影〉DVD
图书图书
汽车eBay机车 > 客车
餐馆设备商业&产业>食品服务零售
表l
如所示出的,单词"dvd"和类别"DVD"之间存在同义性关联。单 词"图书"和类别"图书"之间存在同义性关联。单词"餐馆设备"和类 别"食品服务零售"之间存在同义性关联。在以下图6的流程图600中,更详细地描述对单词和类别之一之间是否存在同义性关联的判断。如果不
存在同义性关联,那么流程图500的操作完成。否则,流程在块506处继续。
在块506处,作为具有与该单词的同义性关联的类别的一部分的物品 标题中的单词作为同义候选词被添加。参考图1,扩展模块120可以执行 该操作。这些同义候选词可以如以上在对图2的流程图200的描述中所描 述地那样被处理。
现更详细地描述可以被执行用于判断在单词和数据库中的类别之一之 间是否存在同义性关联的操作。参考图5,现在所描述的操作可以是在块 504处的操作的一部分。具体地,图6示出根据本发明某些实施例的用于 判断单词和数据库中的类别之一之间的同义性关联的流程图。图6示出可 以由扩展模块120 (在图1中示出)执行的操作。流程图600在块602处 开始。
在块602处,确定搜索査询中的单词在数据库中的类别上的分布。参 考图1,扩展模块120可以确定该分布。在某些实施例中,扩展模块120 可以确定之前用于搜索数据库的搜索査询(包括该单词)和基于被返回给 用户的结果而选出的物品之间的关系。具体地,用户可以输入可能返回多 个结果(该结果可以是在数据库中存储的各个物品)的搜索査询。用户可 以选择一个物品。査询控制模块124可以存储在之前的搜索査询中的单词 和所选出的各个物品之间的这种关系。扩展模块120可以取回该数据用于 正在被处理的特定单词。扩展模块120可以针对该单词确定数据库中叶子 类别的矩形统计图。现返回图4以辅助说明,对于叶子类别"睡前读 物",扩展模块120确定在该叶子类别中存储的、曾在用户的搜索查询 (具有该单词)之后被用户选出的物品的个数。例如,对于X个搜索查询 (包括该单词),用户可能选出了 "睡前读物"叶子类别下的第一物品。 对于Y个搜索査询(具有该单词),用户可能选择了 "睡前读物"叶子类 别下的第二物品。因此,"睡前读物"叶子类别针对该单词将具有X+Y 的值。扩展模块120可以针对数据库中每个叶子类别进行确定。
扩展模块120可以沿树状分级结构向上推进这些值。例如,如果"睡前读物"叶子类别具有值50并且"传记"叶子类别具有值100,那么"儿
童文学"类别具有值150。扩展模块120可以将这些值向上推进到树状分 级结构的第一级。现返回流程图600,流程在块604处继续。
在块604处,判断是否有类别(不包括根)在树状分级结构上具有大 于XQ/^的单词总分布。参考图1,扩展模块120可以作出该判断。值X可 以基于标准(例如存储于其中的数据类型,数据库大小,等等)个数而改 变。在某些实施例中,值X可以是70、 80、 90、 95等等。扩展模块120 可以选择树状分级结构中具有大于XX的单词总分布的最低类别。该类别 可能处于任一级中。如果没有类别具有大于XX的单词总分布,那么流程 图600的操作完成。否则,流程在块606处继续。换言之,如果没有类别 具有大于XX的单词总分布,那么没有同义候选词基于单词和类别之间的 关系(如上所述)被添加。
在块606处,确定清楚性评分(clarity score)、类别覆盖比禾Q/或益处 评分(benefit score)(针对从块604中选出的类别)。参考图1,扩展模 块120可以确定这些评分/比率。在某些实施例中,扩展模块120可以确定 这些评分/比率的一个、多个或全部。清楚性评分等于类别中包含该单词的 物品数除以整个数据库中包含该单词的物品总数。类别覆盖比等于在所选 出的类别中的搜索结果个数除以该类别中的物品总数。益处评分等于作为 可能的同义候选词被添加的物品(作为所选出的类别的一部分的那些物 品)个数除以数据库中搜索査询的个数。流程在块608处继续。
在块608处,判断清楚性评分、类别覆盖比和/或益处评分是否超出阈 值级别。在某些实施例中,扩展模块120可以作出该判断。针对清楚性评 分、类别覆盖比和益处评分的阈值级别可以基于标准(例如存储于其中的 数据类型,数据库大小,等等)个数而改变。扩展模块120可以针对清楚 性评分、类别覆盖比和益处评分的一个、多个或者全部来确定阈值等级。 因此,在某些实施例中,清楚性评分、类别覆盖比和/或益处评分需要超过 其关联的阈值等级。可替代地,评分/比例的一个或某些个需要超过其关联 的阈值等级。如果清楚性评分、类别覆盖比和/或益处评分未超过关联的阈 值水平,那么流程图600的操作完成。否则,流程在块610处继续。在块610处,所选出的类别被标记为与单词具有同义性关联。参考图
1,扩展模块120可以标记所选出的类别。
现描述根据本发明某些实施例的、其中搜索查询扩展独立于搜索查询
的操作的流程图。具体地,图7示出用于扩展的操作,而图8示出利用扩
展的操作。
图7示出根据本发明某些实施例的、独立于搜索査询操作的搜索査询 扩展的流程图。图7示出可以由扩展模块120和搜索引擎128 (在图1中 示出)来执行的操作。流程图700在块702处开始。
在块702处,接收到单词。参考图1,扩展模块120可以接收单词。 例如,扩展模块120可以从可能是之前的搜索査询的一部分的单词列表中 取回单词。例如,之前的搜索査询的历史可以被存储在数据存储器130 中。因此,扩展模块120可以在块702处的该操作之前,对搜索査询执行 分词(如以上在图2的块202处所描述的那样)。流程在块704处继续。
在块704处,确定单词的一个或多个同义候选词。参考图1,扩展模 块120可以作出该确定。以上在图2的块204处描述了扩展模块120的用 于作出该确定的操作。流程在块706处继续。
在块706处,判断是否存在未经处理的同义候选词。参考图1,扩展 模块120可以作出该判断。例如,扩展模块120可能接收到单词的一个到 多个同义候选词。如果不存在未经处理的同义候选词,那么流程图700的 操作完成。否则,流程在块708处继续。
在块708处,判断同义候选词是否超出在表示数据库中数据的多个数 据串和/或多个搜索查询中的最小频率阈值。参考图1,扩展模块120可以 作出该判断。以上在图2的块208处描述了扩展模块120的用于作出该判 断的操作。如果同义候选词超出最小频率阈值,那么流程在块718处继 续,这将在下文中更详细地描述。否则,流程在块710处继续。
在块710处,判断单词和同义候选词是否处于数据库中树状分级结构 的某一级的相同类别中。参考图1,扩展模块120可以作出该判断。以上 在图2的块210处描述了扩展模块120的用于作出该判断的操作。如果单 词和同义候选词是树状分级结构中某一级的相同类别的一部分,那么流程在块718处继续,这将在下文中更详细地描述。否则,流程在块712处继续。
在块712处,确定单词在树状分级结构中的叶子类别上的概率分布。 参考图1,扩展模块120可以作出该确定。以上在图2的块212处描述了 扩展模块120的用于作出该确定的操作。流程在块714处继续。
在块714处,确定同义候选词在树状分级结构中的叶子类别上的概率 分布。参考图1,扩展模块120可以作出该确定。扩展模块120可以基于 以上在图2的块212处描述的公式来作出该确定。流程在块716处继续。
在块716处,判断单词和同义候选词的概率分布的交叉熵是否低于阈 值。参考图1,扩展模块120可以作出该判断。以上在图2的块216处描 述了扩展模块120的用于作出该判断的操作。如果交叉熵不低于阈值,那 么流程在块706处继续。否则,流程在块718处继续。
在块718处,同义候选词被添加到单词的扩展词典中。参考图1,扩 展模块120可以将同义候选词添加到单词的扩展词典中。具体地,扩展模 块120可以更新数据存储器130中的数据结构(例如表格)以使同义候选 词与单词相关联。该同义候选词随后可以用于扩展具有该单词的搜索査询 (如以下将在图8的流程图800中所描述的那样)。流程在块706处继 续。流程图700的操作可以针对任何个数个单词被执行,并且可以独立于 搜索査询操作被执行。
图8示出根据本发明某些实施例的使用之前经过扩展的单词的搜索查 询的流程图。图8示出可以由査询控制模块124和搜索引擎128 (在图中 示出)来执行的操作。流程图800在块802处开始。
在块802处,针对数据库中数据的、具有单词的搜索查询被接收。参 考图1,扩展模块120可以接收搜索查询。例如,用户可以利用web客户 端112来输入搜索查询。Web客户端112可以将查询转发到web服务器 116, web服务器116将査询转发到査询控制模块124。搜索査询可能具有 一个或多个单词。因此,在某些实施例中,在此关于单词而描述的操作可 以针对搜索查询中的单词的一个、某些或者全部来执行。流程在块804处 继续。在块804处,定位搜索查询中的单词。参考图1,査询控制模块124 可以定位搜索查询中的单词。以上在图2的块202处描述了查询控制模块 124的用于定位搜索查询中的单词的操作。流程在块806处继续。
在块806处,判断是否任何单词均可扩展。参考图1,査询控制模块 124可以作出该判断。具体地,查询控制模块124可以基于扩展词典来判 断单词是否可扩展。查询控制模块124可以查询数据存储器130来判断是 否任何单词均包括相关联的同义词。如果是,那么单词可扩展。如果不对 单词进行扩展,那么流程在块810处继续(这将在下文中更详细地描 述)。否则,流程在块808处继续。
在块808处,搜索查询基于经扩展的单词被更新。参考图1,查询控 制模块124可以更新搜索查询。査询控制模块124可以将相关联的同义词 添加到搜索査询。在某些实施例中,相关联的同义词作为单词的替代物被 添加(利用OR运算)。流程在块810处继续。
在块810处,针对数据库中的数据执行搜索查询。参考图1,搜索引 擎128执行对数据存储器130中的数据的搜索。查询控制模块124可以将 搜索査询转发到搜索引擎128。搜索引擎128可以将搜索查询的结果返回 给査询控制模块124,查询控制模块124通过API服务器114或web服务 器116将所述结果分别返回到程序化客户端110和web客户端112。流程 图800的操作完成。在某些实施例中,如果搜索査询被扩展,那么输入搜 索査询的用户被允许在执行搜索之前査看经扩展的搜索查询。
示例计算机装置
图9示出根据本发明某些实施例的计算机装置的部件。具体地,在图 9中示出的计算机装置900可以代表客户端机器104/106、 API服务器、 web服务器116、(一个或多个)应用服务器118禾n (—个或多个)搜索 后端服务器126 (在图1中示出)内的体系结构。计算机装置900包括 (一个或多个)处理器902。
计算机装置900还包括易失性存储器930、处理器总线922和输入/输 出(I/O)控制器集线器(ICH) 924。(一个或多个)处理器902、易失性存储器930和ICH 924耦合到处理器总线922。(一个或多个)处理器902 可以包括任何适当的处理器体系结构。计算机装置900可以包括一个、两 个、三个或多个处理器,所述处理器的任一个都可以根据本发明的实施例 执行一组指令。(一个或多个)处理器902可以是不同类型的处理器。例 如,第一处理器可以是通用处理器,而第二处理器可以是用于解码和编码 音频数据、视频数据等的数字信号处理器。
存储器930可以代表存储数据和/或指令的易失性和/或非易失性存储 器,并且可以包括任何适当的存储器,例如动态随机存取存储器 (DRAM)等。非易失性存储器可以是静态随机存取存储器(SRAM)、 闪存等。非挥发性存储器也可以是可编程ROM (PROM)、可擦除 PROM (EPROM)、电可擦除PROM (EEPROM)等。
计算机装置900可以包括在图1中示出的模块(例如,(一个或多 个)应用服务器118的扩展模块120)。这些模块可以代表硬件、固件或 其组合。这些模块可以是驻存于存储器930和/或IDE/ATA驱动器908之 一中的软件指令,该软件指令可以由(一个或多个)处理器902来执行。
图形控制器904控制信息在显示设备906上的显示。ICH 924向计算 机装置900的I/O设备或外围组件提供接口。 ICH 924可以包括任何适当 的接口控制器以向(一个或多个)处理器902、非易失性存储器930和/或 向与ICH 924进行通信的任何适当的设备或组件提供任何适当的通信链 路。在某些实施例中,ICH 924提供适当的仲裁并且针对每一接口进行缓
对于本发明的某些实施例,ICH 924向诸如硬盘驱动器(HDD)或紧 致盘只读存储器(CD ROM)驱动器之类的次级存储器908 (其可以是任 何类型的非易失性数据存储器)提供接口,或者通过一个或多个USB端口 向适当的通用串行总线(USB)设备提供接口。次级存储器908可以是只 读存储器、读/写存储器等。
对于某些实施例,ICH 924还为不同的用户输入设备(麦克风911、 键盘912、按钮914等)提供接口。对于某些实施例,ICH924还提供网络 接口 920,通过该网络接口 920,计算机装置900可以与其他计算机和/或设备进行通信。ICH 924可以向任何数目个端口 910提供接口。端口 910 可以用于提供不同的输入/输出。例如, 一个或多个端口 910可以耦合到用 于音频输出的扬声器。
综述
在本说明书中,为了提供对本发明更全面的理解,提出了许多具体细 节,例如逻辑实现方式、操作码、用于指定操作数的装置、资源划分/共享 /复制实现方式、系统组件的类型和相互关系以及逻辑划分/集成选择。然 而,本领域中的普通技术人员应理解,本发明的这些实施例可以被实践而 无需这样的具体细节。在其他情况下,为了使本发明的实施例清楚,没有 详细示出控制结构、门级电路和完整的软件指令序列。通过所包括的描 述,本领域中的普通技术人员无需不适当的实验就能够实现适当的功能。
本说明书中提到的"一个实施例"、"实施例"、"示例实施例"等 指示所描述的实施例可能包括特定特征、结构或特性,然而可能不一定每 个实施例都包括所述特定特征、结构或特性。此外,这样的短语不一定指 代相同的实施例。此外,当与实施例结合起来描述特定特征、结构或特性 时,无论是否明确地描述,都认为本领域中的普通技术人员将理解可以将 这样的特征、结构或特性与其他实施例相结合。
多幅示图示出了根据本发明某些实施例的用于数据库搜索査询扩展的 系统和装置的框图。多幅示图示出了根据本发明某些实施例的说明数据库 搜索查询扩展的操作的流程图。通过参考在框图中示出的系统/装置而描述 了流程图的操作。然而,应理解,可以通过不同于参考框图而讨论的那些 系统和装置的、实施例的系统和装置来执行流程图的操作,并且通过参考 系统/装置而讨论的实施例可以执行不同于参考流程图而讨论的那些操作的 操作。
可以通过硬件、固件、软件或其组合来执行在此描述的某些或全部的 操作。例如,可以通过硬件、固件、软件或其组合来执行在此描述的不同 控制器的操作。 一旦阅读并理解了本公开的内容,本领域中的普通技术人 员将理解其中软件程序可以从机器可读介质被载入到基于计算机的系统中以执行在软件程序中所定义的功能的方式。本领域中的普通技术人员还应 理解,各种编程语言可以用于创建被设计用以实现并执行在此公开的方法
的一个或多个软件程序。可以利用诸如Java或0++之类的面向对象的语
言,以面向对象的格式来构造程序。可替代地,可以利用诸如汇编或c之
类的过程语言,以面向过程的格式来构造程序。软件组件可以利用任何数 目个为本领域中技术人员所熟知的机制来进行通信,所述机制例如是应用 程序接口或包括远程过程调用的中间过程通信技术。对各个实施例的教导 并不局限于任一特定的编程语言或环境。
考虑到对在此描述的实施例的较广范围的重新配置,这些详细的描述 意欲仅作为说明性的,并且不应被理解为限制了本发明的范围。因此,本 发明所主张的范围是所有的这样的修改,因为这些修改可以落入随附权利 要求书和其等价物的精神和范围之内。因此,本说明书及附图被视为说明 性的而非限制性的。
权利要求
1. 一种方法,包括接收可用在针对数据库中的数据的搜索查询中的单词,所述数据库包括由数据串表示的数据项;确定所述单词的同义候选词;并且响应于确定具有所述同义候选词的数据串的数目超过阈值,将所述同义候选词作为所述单词的同义词添加到扩展词典中。
2. 如权利要求1所述的方法,还包括从请求者接收针对所述数据库中的数据的、具有所述单词的搜索查询;将所述搜索査询扩展为包括所述同义词以形成经扩展的搜索査询; 利用所述经扩展的搜索査询来执行针对所述数据库中的数据的搜索;并且将所述搜索的结果返回给所述请求者。
3. 如权利要求2所述的方法,还包括 将所述经扩展的搜索査询返回给所述请求者;并且 在利用所述经扩展的搜索查询执行所述搜索之前,从所述请求者接收对所述经扩展的搜索査询的批准。
4. 如权利要求1所述的方法,其中,响应于确定具有所述同义候选词 的、针对所述数据库的搜索查询的数目超过阈值,将所述同义候选词作为 所述单词的所述同义词添加到所述扩展词典中。
5. 如权利要求1所述的方法,其中,确定所述单词的所述同义候选词 包括基于比较所述单词在句子中的角色和所述单次的不同形式在该句子中 的角色来确定所述单词的所述不同形式。
6. 如权利要求1所述的方法,其中确定所述单词的所述同义候选词包 括确定单数形式的所述单词的复数形式。
7. 如权利要求1所述的方法,其中所述阈值是15。
8. —种方法,包括接收可用在针对数据库中的数据的搜索查询中的单词,所述数据库包 括存储在树状分级结构的类别中的数据项;确定所述单词的同义候选词;并且响应于确定所述单词和所述同义候选词处于所述树状分级结构的某一 级的相同类别中,将所述同义候选词作为所述单词的同义词添加到扩展词典中o
9. 如权利要求8所述的方法,其中所述数据库包括由数据串表示的数 据项,并且其中将所述同义候选词作为所述单词的所述同义词添加到所述 扩展词典中包括响应于确定具有所述同义候选词的数据串的数目超过阈 值,将所述同义候选词作为所述单词的同义词添加到所述扩展词典中。
10. 如权利要求8所述的方法,还包括从请求者接收针对所述数据库中的数据的、具有所述单词的搜索査询;将所述搜索査询扩展为包括所述同义词以形成经扩展的搜索查询; 利用所述经扩展的搜索查询来执行针对所述数据库中的数据的搜索;并且将所述搜索的结果返回给所述请求者。
11. 如权利要求IO所述的方法,还包括 将所述经扩展的搜索査询返回给所述请求者;并且 在利用所述经扩展的搜索查询执行所述搜索之前,从所述请求者接收对所述经扩展的搜索查询的批准。
12. 如权利要求10所述的方法,其中所述数据库是在线拍卖中用于销 售的物品的数据库,其中所述请求者包括所述用于销售的物品的购买者或 销售者。
13. 如权利要求8所述的方法,其中所述某一级是在所述树状分级结 构的根之下的一个级。
14. 一种方法,包括接收可用在针对数据库中的数据的搜索查询中的单词,所述数据库包 括存储在树状分级结构的类别中的数据项;确定所述单词的同义候选词;确定所述单词在所述树状分级结构中的叶子类别上的概率分布; 确定所述同义候选词在所述树状分级结构中的叶子类别上的概率分布;并且响应于确定所述单词的所述概率分布和所述同义候选词的所述概率之 间的相似性超出预定等级,将所述同义候选词作为所述单词的同义词添加 到扩展词典中。
15. 如权利要求14所述的方法,其中所述数据库包括由数据串表示的 数据项,并且其中将所述同义候选词作为所述单词的所述同义词添加到所 述扩展词典中包括响应于确定具有所述同义候选词的数据串的数目超过阈 值,将所述同义候选词作为所述单词的同义词添加到所述扩展词典中。
16. 如权利要求15所述的方法,其中将所述同义候选词作为所述单词 的所述同义词添加到所述扩展词典中包括响应于确定所述单词和所述同义 候选词处于所述树状分级结构的某一级的相同类别中,将所述同义候选词 作为所述单词的同义词添加到所述扩展词典中。
17. 如权利要求14所述的方法,还包括从请求者接收针对所述数据库中的数据的、具有所述单词的搜索査询;将所述搜索查询扩展为包括所述同义词以形成经扩展的搜索査询; 利用所述经扩展的搜索查询来执行针对所述数据库中的数据的搜索;并且将所述搜索的结果返回给所述请求者。
18. 如权利要求17所述的方法,还包括将所述经扩展的搜索査询返回给所述请求者;并且 在利用所述经扩展的搜索査询执行所述搜索之前,从所述请求者接收 对所述经扩展的搜索查询的批准。
19. 如权利要求14所述的方法,其中所述数据库是在线拍卖中用于销 售的物品的数据库,其中所述请求者包括所述用于销售的物品的购买者或 销售者。
20. —种方法,包括接收可用在针对数据库中的数据的搜索査询中的单词,所述数据库包括存储在树状分级结构的类别中的数据项; 确定所述单词的同义候选词;确定所述单词在所述树状分级结构中的叶子类别上的概率分布; 确定所述同义候选词在所述树状分级结构中的叶子类别上的概率分布;确定所述单词的所述概率分布和所述同义候选词的所述概率的交叉 熵;并且响应于确定交叉熵超出预定等级,将所述同义候选词作为所述单词的 同义词添加到扩展词典中。
21. 如权利要求20所述的方法,其中所述数据库包括由数据串表示的 数据项,并且其中将所述同义候选词作为所述单词的所述同义词添加到所 述扩展词典中包括响应于确定具有所述同义候选词的数据串的数目超过阈 值,将所述同义候选词作为所述单词的同义词添加到所述扩展词典中。
22. 如权利要求21所述的方法,其中将所述同义候选词作为所述单词 的所述同义词添加到所述扩展词典中包括响应于确定所述单词和所述同义 候选词处于所述树状分级结构的某一级的相同类别中,将所述同义候选词 作为所述单词的同义词添加到所述扩展词典中。
23. 如权利要求20所述的方法,还包括从请求者接收封对所述数据库中的数据的、具有所述单词的搜索查询;将所述搜索査询扩展为包括所述同义词以形成经扩展的搜索査询; 利用所述经扩展的搜索查询来执行针对所述数据库中的数据的搜索;并且将所述搜索的结果返回给所述请求者。
24. 如权利要求23所述的方法,还包括 将所述经扩展的搜索查询返回给所述请求者;并且 在利用所述经扩展的搜索查询执行所述搜索之前,从所述请求者接收对所述经扩展的搜索查询的批准。
25. —种方法,包括接收可用在针对数据库中的数据的搜索查询中的单词,所述数据库包括存储在树状分级结构的类别中的数据项;确定所述单词的同义候选词;确定所述单词在所述树状分级结构中的叶子类别上的概率分布; 确定所述同义候选词在所述树状分级结构中的叶子类别上的概率分布;确定所述单词的所述概率分布和所述同义候选词的所述概率的KL散 度测度;并且确定所述单词的所述概率分布和所述同义候选词的所述概率的交叉 熵;并且响应于确定KL散度测度低于阈值,将所述同义候选词作为所述单词 的同义词添加到扩展词典中。
26. 如权利要求25所述的方法,其中所述阈值是5。
27. 如权利要求25所述的方法,其中所述数据库包括由数据串表示的 数据项,并且其中将所述同义候选词作为所述单词的所述同义词添加到所 述扩展词典中包括响应于确定具有所述同义候选词的数据串的数目超过阈 值,将所述同义候选词作为所述单词的同义词添加到所述扩展词典中。
28. 如权利要求27所述的方法,其中将所述同义候选词作为所述单词 的所述同义词添加到所述扩展词典中包括响应于确定所述单词和所述同义 候选词处于所述树状分级结构的某一级的相同类别中,将所述同义候选词 作为所述单词的同义词添加到所述扩展词典中。
29. 如权利要求25所述的方法,还包括从请求者接收针对所述数据库中的数据的、具有所述单词的搜索査询;将所述搜索查询扩展为包括所述同义词以形成经扩展的搜索査询; 利用所述经扩展的搜索査询来执行针对所述数据库中的数据的所述搜 索;并且将所述搜索的结果返回给所述请求者。
30. 如权利要求29所述的方法,还包括 将所述经扩展的搜索查询返回给所述请求者;并且 在利用所述经扩展的搜索查询执行所述搜索之前,从所述请求者接收对所述经扩展的搜索査询的批准。
31. —种系统,包括数据存储器,用于存储在线拍卖数据库的拍卖物品,其中所述拍卖物品由数据串表示;以及扩展模块,用于确定可用在针对所述在线拍卖数据库中的所述拍卖物 品的搜索査询中的单词的同义候选词,其中所述扩展模块用于响应于确定 具有所述同义候选词的数据串的数目超过阈值,将所述同义候选词作为所 述单词的同义词添加到扩展词典中。
32. 如权利要求31所述的系统,还包括査询控制模块,其用于从请求者接收针对所述在线拍卖数据库中的拍 卖物品的、具有所述单词的搜索査询,其中所述查询控制模块用于将所述搜索查询扩展为包括所述同义词以形成经扩展的搜索查询;以及搜索引擎,其用于利用所述经扩展的搜索查询来执行针对所述在线拍 卖数据库中的在线拍卖物品的所述搜索,其中所述査询控制模块用于将所 述搜索的结果返回给所述请求者。
33. 如权利要求31所述的系统,其中,响应于确定具有所述同义候选 词的、针对所述在线拍卖数据库的搜索査询的数目超过阈值,所述扩展模 块将所述同义候选词作为所述单词的所述同义词添加到所述扩展词典中。
34. 如权利要求33所述的系统,其中所述在线拍卖数据库包括存储在 树状分级结构的类别中的拍卖物品,其中所述扩展模块用于响应于确定所 述单词和所述同义候选词处于所述树状分级结构的某一级的相同类别中, 将所述同义候选词作为所述单词的同义词添加到扩展词典中。
35. 如权利要求34所述的系统,其中所述扩展模块用于确定所述单词 在所述树状分级结构中的叶子类别上的概率分布,所述扩展模块用于确定 所述同义候选词在所述树状分级结构中的叶子类别上的概率分布,并且其中所述扩展模块用于响应于确定所述单词的所述概率分布和所述同义候选 词的所述概率之间的相似性超出预定等级,将所述同义候选词作为所述单 词的同义词添加到扩展词典中。
36. —种提供指令的机器可读介质,所述指令在被机器执行时导致所 述机器执行如权利要求1所述的操作。
37. —种提供指令的机器可读介质,所述指令在被机器执行时导致所 述机器执行如权利要求8所述的操作。
38. —种提供指令的机器可读介质,所述指令在被机器执行时导致所 述机器执行如权利要求14所述的操作。
39. —种提供指令的机器可读介质,所述指令在被机器执行时导致所 述机器执行如权利要求20所述的操作。
40. —种提供指令的机器可读介质,所述指令在被机器执行时导致所 述机器执行如权利要求25所述的操作。
全文摘要
在某些实施例中,一种方法包括接收可用在针对数据库中的数据的搜索查询中的单词。数据库包括由数据串表示的数据项。该方法还包括确定单词的同义候选词。该方法包括响应于确定具有该同义候选词的数据串的数目超过阈值,将该同义候选词作为单词的同义词添加到扩展词典中。
文档编号G06F7/00GK101432685SQ200780015514
公开日2009年5月13日 申请日期2007年2月26日 优先权日2006年2月28日
发明者阿尔瓦罗·布里瓦尔 申请人:电子湾有限公司