用于响应于对信息的查询的计算机和方法

文档序号:6609131阅读:122来源:国知局
专利名称:用于响应于对信息的查询的计算机和方法
技术领域
本发明一般涉及创建、表示和递送关于例如万维网的文档资料库(corpus)中的实体的实体共现信息。
背景技术
因特网是无所不在的信息源。尽管有大量搜索引擎的出现,然而,所有的搜索引擎都被设计为通过返回希望是相关查询的响应来响应于对信息的查询,过滤整个搜索结果以找到对特定类型查询的答案仍然是个问题,这是现有搜索引擎未有效解决的。当前搜索引擎未充分解决的查询类型是一般涉及不仅单一实体(例如单个人、公司或产品)而还涉及由实体之间的共现准则所约束的实体组合的那些查询类型。这是因为通常的情况是,在特定共现为什么存在的原因可能不显而易见的意义上,所述共现准则可以是未命名的。
例如,考虑句子“in their speech Sam Palmisano and Steve Millsannounced a new version of IBM’s database product DB2 will ship by theend of third quarter.”该句子包含以下的示例性的未命名共现Sam Palmisano和Steve Miles,Sam Palmisano和IBM,SamPalmisano和DB2,Steve Mills和IBM,Steve Mills和DB2。
某人可能希望查询例如Web的大型文档资料库“哪个人最经常与IBM共现”,但当前的搜索引擎基本不能响应于甚至例如所述这个的简单共现查询。存在具有重要含义但当前没有有效答案的其它共现问题,例如哪些医疗状况被最经常地与一种药品一起提及,哪些技术被最经常地与一个公司一起提及等。在想到这些关键性观察的情况下,本发明在这里被提供。

发明内容
一种计算机被编程为执行这样的逻辑,所述逻辑包括接收查询;以及响应于该查询,访问包含代表文档资料库中实体的共现的信息的稀疏矩阵。在所述访问动作中获得的信息作为对所述查询的响应被返回。
在非限制性实现中,所述稀疏矩阵具有子行的分组,以及,每个分组对应于文档资料库中的一个实体。所述分组在稀疏矩阵中从最多出现实体到最少出现实体进行排序,其中,分组的每个子行在至少一个共现准则内对应于与由该分组代表的实体在所述文档资料库中共现的实体。分组中的所述子行从最多出现共现到最少出现共现进行排序。
在优选的非限制性实现中,所述逻辑还可以包括响应于所述查询,访问指向所述稀疏矩阵中的子行的分组的开始位置的行索引。所述逻辑可以还包括响应于所述查询,访问包括至少两字节的头部,其中第一字节指示文件版本,以及其中第二字节指示用于代表对应的实体共现数量的至少一个基数(cardinality)的字节数。所述基数可以被准确地或使用两字节近似来表述。
如果希望,所述逻辑还可以包括访问包括索引和对应的数据串的串表。所述索引可以是代表所述数据串中的代表实体的串的偏移的整数的连结列表,以及,所述数据串中的代表实体的串可以按照在文档资料库中出现频率的降序列出。
在另一方面中,一种服务包括接收对包含在万维网中的信息的查询,以及,至少部分地通过访问包括稀疏矩阵的数据结构来返回对所述查询的响应。
在又另一方面中,一种用于响应于对文档资料库中的信息的查询的方法包括接收所述查询,以及使用所述查询的至少一部分作为访问稀疏矩阵的输入参数。对所述查询的响应基于对稀疏矩阵的访问被返回。


通过参考附图,关于本发明结构和操作的本发明的细节可以被最好地理解,在附图中相同标号指代相同部分,以及在附图中图1是可以被用于创建和使用这里所示的数据结构来返回对用户查询的响应的非限制性计算机系统的示意图;图2是具有行索引的本稀疏矩阵的示意表示,以及仅出于说明目的被示出的对应的稠密矩阵表示;图3是用于建立稀疏矩阵的逻辑的流程图;以及图4和5示出了可以被用作图3的逻辑的一部分的各种数据结构。
具体实施例方式
首先参考图1,一般被指定为10的系统被示出,其包括可以与文档的资料库14通信的一个或更多计算机12(出于公开的清晰性目的,仅单一计算机12被示在图1中)。所述资料库14可以是具有计算机实现的Web站点的万维网,以及所述计算机12可以借助于软件实现的浏览器15与所述Web通信。所述计算机12包括例如键盘16和/或鼠标18的输入设备或其它输入设备,其中,所述输入设备用于输入编程数据用以建立本数据结构和/或用于输入之后的用户查询以及访问所述数据结构以返回对该查询的响应。所述计算机12可以使用例如计算机监视器的一个或更多输出设备20来显示查询结果。
应当理解,下面的有利于共现查询的数据结构可以被提供给计算机12,以进行由该计算机的用户对其的执行,使得用户可以输入查询,并且计算机可以返回响应。还应当理解,在其它方面中,用户可以访问Web或其它网络、输入对Web服务器或其它网络服务器的查询,以及所述服务器可以访问这里的数据结构以作为付费服务返回对该查询的响应。再一次,所述数据结构由于其紧凑的大小可以被提供在下面描述的可移除便携式数据存储媒体上并且出售给用户,所述用户可以购买所述便携式数据存储媒体,并且将其与其自己的个人计算机接合以查询共现。
计算机12可以是但不限于由Armonk,N.Y.的国际商业机器公司(IBM)制造的个人计算机或其等价品。然而,其它数字处理器可以被使用,例如膝上型计算机、大型计算机、掌上计算机、个人助理或任意其它合适的处理装置。同样地,包括袖珍键盘、跟踪球和语音识别设备的其它输入设备可以被使用,同样,例如打印机的其它输出设备、其它计算机或数据存储设备和计算机网络可以被使用。
在任一情况下,计算机12具有执行这里所示的逻辑的处理器22。所述逻辑可以作为一系列计算机可执行的指令用软件实现。所述指令可以被包含在具有计算机可读媒体(例如计算机磁盘)的数据存储设备上。或者,所述指令可以被存储在计算机的随机存取存储器(RAM)、硬盘驱动器、电只读存储器、光存储设备或其它合适的数据存储设备上。在本发明的说明性实施例中,所述计算机可执行指令可以是JAVA代码行。
实际上,这里的流程图示出了用计算机程序软件实现的本发明的逻辑的结构。本领域的技术人员将理解,该流程图示出了根据本发明运行的、包括集成电路上的逻辑电路的计算机程序代码单元的结构。显然,本发明经由这样的机器部件被实现在其基本实施例中,其中,所述机器部件呈现出以指示数字处理装置(即计算机)实施对应于所示程序代码单元的功能步骤序列的形式的程序代码单元。
完成对图1的描述后,由于稀疏矩阵的相对高效、紧凑的大小(在某些实施例中小于2千兆字节),以及这里所描述的可以被用于响应于用户查询的伴随串表,所述稀疏矩阵和串表可以被存储在例如DVD、CD、拇指大小的驱动器、固态便携式存储设备等的可移除数据存储媒体24上。
现在参考图2,所生成的用于搜索文档资料库14中的实体共现的数据结构被示出,并且在这里被称为“s-web”。实质上,在优选实现中,s-web包括头部(未示出)、列出了将被考虑的实体的名字的串表、以及具有行索引32的共现的稀疏矩阵30。如可以看到的,通过将所述稀疏矩阵30与对应的稠密矩阵表示34比较,所述稀疏矩阵的表示丢弃了所述稠密矩阵中的零以使得出的数据结构尽可能紧凑。然而,所述稀疏矩阵30不仅仅是把零丢弃的稠密矩阵34,而是把零丢弃并且把数据重排的稠密矩阵的表示。所述稀疏矩阵的细节将在下面进一步讨论,但首先所述头部和串表将被描述。
首先考虑头部,在优选的非限制性实现中,所述头部包括两个字节,其中第一字节指示文件版本,而其中第二字节指示用于基数(cardinality)和偏移的字节数。更小的表对于每个条目可以使用更少的字节。
如在下面进一步阐明的,如这里所使用的,“基数”是指两个实体之间的共现的数量。所述头部可以要么准确地要么使用两字节近似(简化格式)来指示稀疏矩阵中的最大基数,例如10+6位的尾数和数量级指数。
优选的非限制性串表可以有两部分,即索引和对应数据。所述索引是提供各个串的偏移的整数(优选使用最小数量的字节来表示)的连结(concatenated)列表。串长度可以通过从下一个出现的串中相减来计算出。
所述串表的索引之后是每个串的数据,其列出了所述稀疏矩阵中所表示的每个实体。在所述串表的数据部分中的实体优选按照在文档资料库14中的出现频率的降序列出,其原因不久将变得显而易见。如果需要则所述串数据可以被压缩,但应当基于每个串被压缩,则通常对于仅仅在文件系统级压缩整个文件更有意义。
在生成所述串表时,所述文档资料库中的实体如下面进一步阐述的那样被获取、排序以及然后连结,以产生所述串表的串数据部分,其中,其偏移被计算并记录在所述索引部分。由此,所述串表的一部分可以看来如下数据部分Dan SmithUSPTOIBM...,索引 0 10 15...,其被理解为,所述索引中的“0”指向正好“DanSmith”(其在所述串数据中的零位置开始)之前,所述索引中的“10”指向正好“USPTO”(其在所述数据串中的第十位置开始)之前,以及,所述索引中的“15”指向正好“IBM”(其在所述数据串中的第十五位置开始)之前。
返回所述稀疏矩阵30,在优选实现中,所述稠密矩阵中代表单一实体的行被拆分成所述稀疏矩阵中的子行,其中,每个子行代表来自所述稠密矩阵表示中的对应行的一列。由此,所述稀疏矩阵中的子行的分组对应于文档资料库中的实体。所述稠密矩阵表示中的列(以及因此所述稀疏矩阵30中的子行)对应于已满足了如下面进一步讨论的关于该行实体的共现准则的实体,以及,所述列中的值指示该两个实体的共现的数量。由于多数实体与所述资料库中的所有实体的仅小型子集共现,所以所述稠密矩阵表示如所示大部分由零组成。通过该关键性观察,所述稀疏矩阵30被提供。
稀疏矩阵30中的子行的所述分组按两种方式被排序。首先,所述分组本身的顺序取决于所述文档资料库中的对应实体的出现频率,即,子行的第一分组对应于文档资料库14中最经常出现的实体,子行的第二分组表示其次最经常出现的实体,等等。所述排序方法有利于响应于对例如“在web上最经常提到的咳嗽糖浆是什么?”的查询。回想到所述串表数据部分中的实体被类似地排序,即,第一串是最经常出现的实体等等。
由此,如图2中所示,子行的第一分组(以数字“1”开始的那些)对应于单一实体,实际上是所述文档资料库中最频繁出现的实体。为进一步保存空间,稀疏矩阵30的每个子行的第一个数字可以在实现中被丢弃,其中,行索引32如所示被用于指向子行的每个新分组的开始。
每个子行中的第二个数字代表来自所述稠密矩阵表示的非零列,以及,其第三个数字代表该列中的值。在图2中所示的例子中,在所述第一分组中存在四个子行,其中,第一子行指示值“3”对应于列“7”,第二子行指示值“2”对应于列“17”,第三子行指示值“1”对应于第一列,以及,第四子行指示值“1”对应于第十三列。
从而,现在可以理解对稀疏矩阵30进行排序的第二种方式。不仅子行的分组被按照对应实体的出现频率一起排序,而且在每个分组内,所述子行被按照基数排序,其中,指示共现的最高数量的子行在第一,指示共现的第二高数量的子行在第二等等。对稀疏矩阵30进行排序的所述第二种方式由此有利于响应于例如“哪种咳嗽糖浆是最经常与阿司匹林共同提到的?”的查询。
图3-5示出了上面讨论的数据结构可以怎样生成。开始于方框40,实体类的分层结构可以被建立。更具体地,考虑实体可以被认为是已被手动或经由算法自动放置到文档上的注释。在非限制性实现中,每个实体可以是非结构化的信息管理体系结构(UIMA)注释,其记录了该实体的唯一标识符、其在所述文档中的位置、以及该实体被表示所使用的权标的数量。该信息然后被如下面进一步阐述的那样编译为对于每文档的注释向量。方框40识别出许多注释落在注释的类中,以及实体没有不同。在所述背景技术中的例子中,“Sam Palmisano”和“Steve Mills”都是“人(People)”类的实体,而注释“IBM”属于组织(Organization)类,以及“DB2”可以被认为是产品(Product)类的实体的一部分。该非限制性说明分类允许实体的简单分层结构被创建/实体/人/Sam Palmisano/实体/人/Steve Mills/实体/组织/IBM/实体/产品/DB2当注释被按照所述方式分类和结构化时,所述逻辑可以移动到方框42以检查所述资料库中的每个文档(或其相关子集)并确定实体、其位置和关联于每个实体的权标的数量,以便由此建立注释向量。多个注释可以在给定的注释位置被产生,例如,在文档中的位置“Sam Palmisano”处,注释“实体”、“实体/人”和“实体/人/Sam Palmisano”可以被产生。
图4示出了注释向量怎样被生成。尽管图4中的示例性文档是用Web标记语言,但本发明不限于特定格式的文档。
如所示,具有文档ID、内容和本领域的技术人员已知的其它数据(爬取(crawl)日期、URL等)的原始文档44可以被存储在46,并且然后被注释装置48操作以产生已注释的文档50,特别地,该文档50如所示列出了所述文档中的各种实体。所述已注释文档50也可以被存储在46。索引部件52然后访问所述已注释文档50以产生注释向量54,所述注释向量对于每个实体示出了其所出现在的文档。
进行到图3中的方框56,所述注释向量被软件实现的索引装置反转,以致对于每个文档,唯一注释的表被产生,并且所述注释所出现在的文档上的位置被记录。在非限制性索引装置中,对于每个位置的所述位置、范围和唯一实体标识符被记录。当给定注释已在文档上出现多于一次时,所述注释位置被构造为按各个注释在文档中出现的顺序被排序的注释的列表。如果注释是在文档上唯一的,则所述表可以被认为指向大小为一的位置列表。
简单地参考图5,当更多文档被所述索引装置处理时,唯一注释表58(这里称为字典)和对应的注释列表被合并,以产生所述文档表60。一旦所有文档都已被处理,则如图5中所示的最终索引被产生,其包含所有所述唯一注释和其已出现在的文档的列表,以及还优选包含每次出现在文档中的位置。图5的所述数据结构有利于高效的实体(术语)查找、高效的布尔运算以及大量数据记录的高效存储。
再次返回图3,所述逻辑接下来移动到方框62以定义内部实体的集合和外部实体的集合。在概念上,所述内部实体定义所述子行分组,并且所述外部实体定义图2的稀疏矩阵30中的分组中的所述子行。
由此,所述内部集合是首要关注的实体的类。所述内部集合可以是所有实体的集合或所有实体的子集。所述外部集合是用于确定关系是否存在于感兴趣实体与内部实体之间的感兴趣实体的类,并且该集合也可以是所有实体的集合或仅其一个子集。
一旦实体的类被定义,则从所述索引装置中检索所述类的文档位置的列表,即,图4和5的数据结构被访问。在方框64处,所述列表被顺序地扫描以确定出现在给定接近边界内出现的所有内部和外部实体对。接近边界可以是在同一句子、段落、文档内,或在固定数量的权标内。
当一个对被确定为在接近约束内时,在方框66处进入循环,在所述循环中,被存储在两个位置内的所述唯一实体标识符在判断菱形68中相互比较,以确保该实体是唯一的。如果其相同,则所述过程在方框70处访问下一对(假设所述Do循环未完成),并且循环返回判断菱形68。另一方面,如果所述实体是彼此唯一的,则所述对在方框72处被附加到已发现的所有对的列表。
一旦所述位置列表已被取尽(即所述Do循环完成),则所述对列表在方框74处被处理,以产生所出现的所有唯一对以及所述对出现的次数的表。该表根据上面讨论的原理被排序为图2的稀疏矩阵30。所述串表同样使用图4和5中的列表来产生。
为执行查询,所述稀疏矩阵30和串表可以被使用如下。应当理解,较不优选的其它稀疏矩阵可以被使用,但在优选实现中,有利地如上面讨论的那样被排序的稀疏矩阵30被使用。
对于“哪‘N’种医疗状况被最经常地与药品X一起提到?”的示例性查询,所述串表(回想到其具有与所述稀疏矩阵相同的实体顺序)被访问以定位药品X(以及因此其子行分组在所述稀疏矩阵中的位置)。然后,所述稀疏矩阵通过使用所述药品实体作为输入参数被访问,并且由对应于医疗状况的分组中的最高子行所代表的列被检索。由于所述子行是按基数顺序的,所以,第一子行指示所述资料库中具有与药品X的最多共现的实体,并且其被检查,以确定是否其对应于被分类为“条件”的共现实体。如果不是,则下一子行被检查,依此类推,直到指示最频繁共现状况的最高基数“N”子行被标识出。所述结果然后被返回。对于例如“哪些药品被最经常地在Web上提到”的较简单查询,所述串表被从开始进行访问,以找到已被分类为药品的最高基数实体,并且所述结果被返回。
大约三万个共现条目的s-web可以小于2千兆字节。这意味着这些“共现快照”可以容易地安装在可移除媒体(DVD、CD、拇指大小的驱动器等)上。应用也可以被包括在所述媒体上,以允许这些事实的独立递送,其中,消费者可以探究这些事实以发现可控诉的商务观察。
尽管“用于响应于对信息的查询的计算机和方法”在这里被示出并详细描述,但应当理解,被本发明所包含的主题仅由权利要求所限定。
权利要求
1.一种计算机,其包括用于接收查询的装置;响应于所述查询,用于访问至少一个稀疏矩阵的装置,其中,所述稀疏矩阵包含代表文档资料库中的实体的共现的信息;以及用于作为对所述查询的响应返回在所述访问动作中获得的信息的装置。
2.根据权利要求1所述的计算机,其中,所述稀疏矩阵具有子行的分组,每个分组对应于所述文档资料库中的一个实体,所述分组在所述稀疏矩阵中从最多出现实体到最少出现实体进行排序,分组的每个子行在至少一个共现准则内对应于与由该分组代表的实体在所述文档资料库中共现的实体,分组内的所述子行从最多出现共现到最少出现共现进行排序。
3.根据权利要求1所述的计算机,其中还包括响应于所述查询,用于访问指向所述稀疏矩阵中的子行的分组的开始位置的行索引的装置。
4.根据权利要求1所述的计算机,其中还包括响应于所述查询,用于访问包括至少两字节的头部的装置,其中第一字节指示文件版本,以及其中第二字节指示用于代表对应的实体共现数量的至少一个基数的字节数。
5.根据权利要求4所述的计算机,其中,所述基数被准确地表述。
6.根据权利要求4所述的计算机,其中,所述基数使用两字节近似来表述。
7.根据权利要求1所述的计算机,其中还包括用于访问包括索引和对应的数据串的串表的装置。
8.根据权利要求7所述的计算机,其中,所述索引是代表所述数据串中的代表实体的串的偏移的整数的连结列表。
9.根据权利要求8所述的计算机,其中,所述数据串中的代表实体的串按照在所述文档资料库中的出现频率的降序列出。
10.根据权利要求1所述的计算机,其中,所述文档资料库是万维网。
11.一种用于响应于对信息的查询的方法,包括接收对包含在万维网中的信息的查询;以及至少部分地通过访问包括稀疏矩阵的数据结构返回对所述查询的响应。
12.根据权利要求11所述的方法,其中,所述稀疏矩阵包括代表文档资料库中的实体的实体表示,所述实体表示按照在所述资料库中实体出现的频率排序,并且在实体表示内,信息按照其它实体与对应于该实体表示的实体的共现的频率排序。
13.根据权利要求10所述的方法,其中,所述实体表示是所述稀疏矩阵中的子行的分组,所述分组从最多出现实体到最少出现实体进行排序,其中,分组的每个子行对应于与由该分组代表的实体在所述文档资料库中共现的实体,分组内的所述子行从最多出现共现到最少出现共现进行排序。
14.根据权利要求11所述的方法,其中,所述数据结构包括指向所述稀疏矩阵中的子行的分组的开始位置的行索引。
15.根据权利要求11所述的方法,其中,所述数据结构包括头部,所述头部包括至少两字节,其中第一字节指示文件版本,并且其中第二字节指示用于代表对应的实体共现数量的至少一个基数的字节数。
16.根据权利要求11所述的方法,其中,所述数据结构包括串表。
17.根据权利要求16所述的方法,其中,所述串表包括索引和对应的数据串。
18.根据权利要求17所述的方法,其中,所述索引是代表所述数据串中的代表实体的串的偏移的整数的连结列表。
19.根据权利要求18所述的方法,其中,所述数据串中的代表实体的串按照在所述文档资料库中的出现频率的降序列出。
20.一种用于响应于对文档资料库中的信息的查询的方法,包括接收所述查询;使用所述查询的至少一部分作为用于访问稀疏矩阵的输入参数;以及至少部分地基于对所述稀疏矩阵的访问返回对所述查询的响应。
21.根据权利要求20所述的方法,其中,所述文档资料库包括万维网,以及,所述稀疏矩阵包括该稀疏矩阵中的子行的各个分组的实体表示,其中,所述分组从最多出现实体到最少出现实体进行排序,其中,分组的每个子行对应于与由该分组代表的实体在所述文档资料库中共现的实体,分组内的所述子行从最多出现共现到最少出现共现进行排序。
全文摘要
为响应于关于Web上的共现实体的查询,一种代表实体共现的紧凑稀疏矩阵被生成并且然后被访问来满足查询。所述稀疏矩阵具有子行的分组,其中,每个分组对应于文档资料库中的一个实体。所述分组从最多出现实体到最少出现实体进行排序。分组内的每个子行在共现准则内对应于与由该分组代表的实体在所述文档资料库中共现的实体,以及,为有利于查询响应,分组内的所述子行从最多出现共现到最少出现共现进行排序。
文档编号G06F17/30GK101079070SQ20071010461
公开日2007年11月28日 申请日期2007年5月18日 优先权日2006年5月26日
发明者D·F·格鲁尔, D·N·梅雷迪思 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1