从非结构化文本提取可伸缩增量语义实体和相关性的制作方法

文档序号:6423421阅读:125来源:国知局
专利名称:从非结构化文本提取可伸缩增量语义实体和相关性的制作方法
技术领域
本发明涉及网络技术领域,尤其涉及网络技术中的搜索技术。
背景技术
搜索文本是通常由web搜索引擎以及用于桌面和局域网环境的搜索引擎执行的任务。存储在文件系统、网站、或其他数据库中的大量数据可以是文本形式。关键词搜索可以返回来自具有精确匹配的文档的结果。当关键词搜索还搜索同义词时,该搜索可以返回附加结果。然而,关键词搜索可能不揭示文档中的不同概念与词语之间的关系。

发明内容
用于包含文本的文档的搜索引擎可以使用统计语言模型来处理文本,基于熵对该文本进行分类,并且为每一分类创建后缀树或文本的其他映射。可以从后缀树或映射中用不同单词或文本串之间的关系强度来构造图。可以使用该图来确定搜索结果,并且在查看搜索结果之前可以对该图进行浏览或导航。由于添加了新文档,可以对它们进行处理并且添加到后缀树,随后可以响应于搜索请求按需创建该图。可以将该图表示为邻接矩阵,并且传递闭包算法可以处理该邻接矩阵作为后台进程。提供本发明内容以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。


在附图中,图1是示出搜索引擎以及搜索引擎可在其中操作的环境的实施例的图示。图2是示出用于对文本项进行索引以及处理查询的通用方法的实施例的流程图
7J\ ο图3是示出熵排序的金字塔的示例实施例的图示。图4是示出可作为后台进程来执行的用于执行传递闭包的方法的一个实施例的流程图示。图5是示出用于响应于搜索查询以及呈现结果的方法的实施例的流程图示。
具体实施例方式搜索引擎可以接收项用于索引,并且可以使用统计语言模型对来自项的元素进行分类和分组。分组可以基于项的‘熵’或稀有性,并且可以形成熵排序的金字塔。可以将每一分组添加到该组的数据结构中,其中该数据结构可以是后缀树或其他结构。各种数据结构可以被合并成表示每一元素以及与其他元素的关系的图。每一关系可以具有相关联的关系强度。搜索引擎可以使用那些项内的任何类型的元素来处理任何类型的项。在示例实施例中,项内的文本串被用于突出显示搜索引擎如何操作,但可以使用不同的实施例来搜索任何类型的元素。用于在新的项被添加到可搜索的数据库时对那些项进行索引的机制是可伸缩的。 无论数据库的大小如何,可以用接近相同的处理时间将新的项添加到可伸缩的数据库中。 传递闭包算法可以在数据库上操作以标识项之间暗示的关系。当数据库是小的时,传递闭包算法可以填充数据库中的元素之间通过未显式地示出来暗示的该数据库内的关系。因为文档的语料库可以是小的,因此可以快速地执行传递闭包算法。当数据库非常大时,传递闭包算法仍可处理,但数据库中大量的项可能已经拥有许多关系。因为该属性,传递闭包算法可以作为后台进程来操作,并且在很大的语料库中可以被省略。贯穿本说明书和权利要求书,术语‘项’和‘元素’被用于表示特定事物。‘项’被用于表示被索引且可使用搜索引擎搜索的单元。‘项’可以是的文档、网站、网页、电子邮件、 或被搜索和索引的其他单元。‘元素’是构成‘项’的被索引的单元。在基于文本的搜索系统中,‘元素’可以是例如单词或短语。‘元素’是在搜索索引中被定义成具有与其他元素的关系的单元。本说明书通篇中,在所有附图的描述中,相似的附图标记表示相同的元素。在将元素称为被“连接”或“耦合”时,这些元素可以直接连接或耦合在一起,或者也可以存在一个或多个中间元素。相反,在将元素称为被“直接连接”或“直接耦合”时,不存在中间元素。本发明主题可被具体化为设备、系统、方法、和/或计算机程序产品。因此,本发明的部分或全部能以硬件和/或软件(包括固件、常驻软件、微码、状态机、门阵列等)来具体化。此外,本发明可以采用其上包含有供指令执行系统使用或结合其使用的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。在本文的上下文中,计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、 或传输程序以供指令执行系统、装置或设备使用或结合其使用的任何介质。计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、 或半导体系统、装置、设备或传播介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由指令执行系统访问的任何其它介质。注意,计算机可使用或计算机可读介质可以是其上打印有程序的纸张或其它合适的介质,因为程序可以经由例如对纸张或其它介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其它合适的方式处理,并随后存储在计算机存储器中。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号” 可以被定义为其一个或多个特征以在信号中编码信息的方式被设定或更改的信号。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及诸如声学、RF、红外及其它无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。当本发明主题在计算机可执行指令的一般上下文中具体化时,该实施例可以包括由一个或多个系统、计算机、或其它设备执行的程序模块。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。图1是实施例100的图,它示出了具有用于对项进行索引并且响应于搜索查询的搜索引擎的系统。实施例100是搜索引擎的一个实现的简化示例,因为它可以被部署在独立系统上。图1的图示出了系统的各个功能组件。在某些情况下,组件可以是硬件组件、软件组件、或硬件和软件的组合。某些组件可以是应用层软件,而其他组件可以是操作系统层组件。在某些情况下,一个组件到另一个组件的连接可以是紧密连接,其中两个或更多个组件在单个硬件平台上操作。在其它情况下,连接可以通过跨长距离的网络连接来形成。各实施例可以使用不同的硬件、软件、以及互连体系结构来实现所描述的功能。实施例100示出了可以在单个设备中部署的搜索引擎的各种组件。在某些实施例中,为搜索引擎所描述的功能组件可以驻留在许多不同的设备上,该功能组件例如可被配置成供负载平衡。在某些情况下,搜索引擎的功能可以被部署在基于云的计算平台中。实施例100的搜索引擎可以创建熵排序的金字塔,该熵排序的金字塔基于元素的稀有性或‘熵’来将诸如文本元素等元素分组成各级别。元素越稀有则熵越高。各分组可以通过包括具有高于一组预定义级别的熵的所有元素来定义。这一安排可以创建金字塔效果,最高熵的元素是最小的分组,随着金字塔前进到底部,每一后续分组包括附加元素。熵排序的金字塔的示例可以在本说明书稍后给出的实施例300中示出。可以使用分开的数据结构来存储不同分组的元素中的每一个。存储最高熵的元素的数据结构可以是最小数据结构,并且可以包含最稀有的元素。存储最低熵的元素的数据结构可以是最大数据结构。数据结构可以是捕捉元素之间的关系的任何数据结构。在一个示例中,可以使用后缀树来标识并且存储各种元素之间的关系。在另一示例中,可以使用短语倒排的索引数据结构。后缀树可能能够表示无限长度的短语,然而,短语倒排的数据结构在可以避免后缀树的复杂性的实施例中可能是有用的。数据结构可以包括对数据的源的引用。在基于文本的项的例子下,数据源可以是各文档的分组或集合、单个文档、或文档的子节。在某些实施例中,单个元素可以具有对源项的两个或多个不同的引用,其中一个引用可以是对源文档的引用,而另一引用可以是对源文档内的子节的引用。在填充了数据结构之后,可以从数据结构中构造图。该图可以包括作为节点的每一索引的元素,关系强度被应用于每一边缘。从该图中,可以创建邻接矩阵,并且可以对邻接矩阵执行传递闭包算法。可以从邻接矩阵中直接处理搜索请求,或通过将数据结构投射通过过滤器并且基于该投射来创建图。在某些这样的实施例中,用户界面可以允许用户浏览该图,以在选择详细查看搜索结果之前探索各关系,并且查看底层源文档。设备102被示为具有硬件组件104和软件组件106的单个、独立设备。实施例100 可以示出搜索引擎的部署,可以在小网络内使用该搜索引擎以搜索存储在各种服务器和客户机设备上的文档。实施例100中所描述的搜索引擎可以是可扩展到诸如公共因特网等可包含数十亿文档的非常大的数据集。在这样的实施例中,搜索引擎的各种组件可以部署在许多服务器设备上,一大群服务器执行单个任务或功能。在某些实施例中,搜索引擎可以被部署为桌面或设备专用搜索引擎,其中该搜索引擎对存储在单个设备上的文档执行搜索。设备102被示为传统的计算机设备,诸如服务器计算机或台式机计算机。设备102 可以是独立设备,诸如个人计算机、游戏控制台、或其他计算设备。在某些情况下,设备102 可以是手持式或便携式设备,诸如膝上计算机、上网本计算机、移动电话、个人数字助理、或其他设备。在某些实施例中,设备102可以是例如可爬行局域网并且响应于使用web浏览器所传送的搜索查询的专用搜索设备。硬件组件104可以包括处理器108、随机存取存储器110、以及非易失性存储112。 硬件组件104还可以包括网络接口 114和用户接口 116。软件组件106可包括操作系统118的文件系统119。在搜索引擎提供桌面或本地搜索服务的实施例中,该搜索引擎可以对位于本地文件系统119中的文件进行索引和搜索。搜索引擎的组件可以包括可具有若干过滤器122的文档适配器120。文档适配器 120可以消耗各种文档或数据的源用于索引和搜索。在文本搜索的示例中,文档可以是文字处理文档、经历光学字符识别(OCR)的扫描的文档、电子邮件文档、网站文档、数据库中基于文本的项、或任何其他基于文本的项。过滤器122可以用作用于从特定类型的文档中捕捉数据的机制。例如,可以使用一过滤器以供文字处理文档,并且可以使用另一过滤器以供幻灯片演示。文档适配器120可以将文档排队以供输入适配器124分析。输入适配器IM可以将要搜索的项解构成元素。在文本文档的情况下,元素可以是单词或短语。具体地,输入适配器IM可以标识单元语法、二元语法、三元语法、以及元素的其他组。当元素被输入适配器IM标识时,可以向该元素分配一标识符并且将该元素存储在文本标识符数据库126中。标识符可以是例如表示该元素的整数。贯穿创建数据解构的过程,当图组合了数据结构以及邻接矩阵,可以使用各元素的标识符来引用它们。标识符可以是用于压缩数据库大小并且允许更高效的处理的简单技术。在某些实施例中,其中数据库是小的或当元素是一致的且小的时,可以将实际元素存储在各种数据库中,并且可以不使用文本标识符数据库。输入适配器IM可以将项内的某些元素标识为在项内被不同地处理。在文本搜索引擎中,加下划线、加粗、或斜体的文本可以被标识为具有额外重要性。类似地,被用作节题目的文档的标题或图示的标题中的文本可以比文档中的常规正文文本具有更高的相对重要性。可以对被标识的那些元素加标志或以其他方式进行标记,使得所标识的元素之间的关系在以下定义的数据结构或图中被加强。
在某些实施例中,输入适配器IM可以具有噪声抑制器146。噪声抑制器146可以标识并且移除可能破坏可搜索的数据库的元素。例如,某些文档可以包含元数据、特殊字符、嵌入式脚本、或创建或消耗这些文档的应用程序可以使用的其他信息。噪声抑制器146 可以将这些信息从项的可搜索元素中移除。语言模型处理器1 可以分析各个元素以将熵值分配给各元素。熵值可以指示该元素与其他元素相比有多稀有。例如,诸如“反例”等词语在英语语言中可以是相对稀有的单词,并且可以具有高熵值。在另一示例中,单词“比”在英语中可以是很常见的单词,并且可以具有低熵值。语言模型处理器1 可以使用一个或多个统计语言模型以确定元素的熵值。许多实施例可以使用基本语言模型130,该基本语言模型可以是诸如美式英语等语言的统计语言模型。统计语言模型可以基于该语言的概率分布为一个或多个单词分配概率。概率的逆 (inverse)可以是分配给该元素的熵。美式英语的统计语言模型可以包含120,000单元语法、12,000, 000双元语法以及 4,000, 000三元语法的数量级。当项可包含来自特定技术领域、特定方言的信息或包含在基本语言模型130中通常找不到或不使用的单词时,可以使用特定专用语言模型132。例如,与计算机领域有关的文档可以包含具有特殊含义或在基本语言模型130中通常找不到的某些单词和短语。这样的专用语言模型132可以包括与基本语言模型130不同的一组概率或熵级别。在某些实施例中,语言模型处理器1 可以为被处理的文档开发定制的统计语言
模型。例如,企业可以具有专用于该企业且可为其构造定制的语言模型的词语和短语的方 、
曰ο在将熵分配给元素之后,数据库引擎134可以通过根据元素的熵对元素进行分组来创建熵排序的金字塔。熵排序的金字塔的示例可以在本说明书稍后给出的实施例300中示出。熵排序的金字塔可以是基于熵的对元素的分组。在一个实施例中,具有大于阈值的熵的那些元素可以被分组在一起。另一组可以是具有低于阈值的熵的元素。在第二组中也可以找到第一组的成员。数据结构136可以包含来自特定熵级别的所有元素。元素分组中的每一个可以具有可捕捉分组中的元素的数据结构136。例如,在具有五级的熵分组的实施例中,存在数据结构136的五个实例。数据结构136可以捕捉熵分组中的元素以及那些元素之间的关系。例如,从文本串构建的后缀树能够存储文本元素序列。元素之间的关系以及元素彼此的邻近度可以在稍后步骤中对索引的数据执行的分析中出现。图138可以合并数据结构136以创建以元素为顶点而以元素与其它元素的连接为边缘的图。对于每一元素,相同的元素与其具有直接关系的每个元素可具有它们之间的边缘。可以用加权来定义该边缘。在一个实施例中,边缘加权可以使用Jaccard相似度来定义,边缘加权可被定义为
权利要求
1.一种在计算机处理器上执行的方法,所述方法包括 接收包含文本串的项(202);确定所述项的项标识符O04);用统计语言模型处理所述文本串012),用于标识文本元素;确定所述文本元素的文本元素标识符;以及将熵值分配给所述元素的每一个;选择所述文本元素的第一子集0观),所述第一子集中的所述文本元素的每一个具有大于第一预定义的熵值的熵值;将所述文本元素的每一个添加O30)到第一数据结构,所述第一数据结构包括所述文本元素标识符以及所述项标识符;创建邻接矩阵036),所述邻接矩阵表示包括表示所述文本元素的顶点以及表示加权的关系的边缘的图,所述加权的关系是从所述第一数据结果中确定的;以及接收对第一文本元素的搜索查询038),并且用从所述邻接矩阵中导出的搜索结果来作出响应。
2.如权利要求1所述的方法,其特征在于,还包括使用第一算法对所述邻接矩阵执行传递闭包,以使用附加值对所述邻接矩阵进行填充。
3.如权利要求2所述的方法,其特征在于,所述第一算法是Floyd-Warshall算法。
4.如权利要求1所述的方法,其特征在于,所述第一数据结果包括后缀树,所述后缀树包括表示所述文本元素的边缘以及包括所述项标识符的节点。
5.如权利要求1所述的方法,其特征在于,所述第一数据结构包括短语倒排的索引数据结构。
6.如权利要求1所述的方法,其特征在于,还包括选择所述文本元素的第二子集,所述第二子集中的所述文本元素的每一个具有大于第二预定义的熵值的熵值;将所述文本元素的第二子集中的每一个添加到第二数据结构,所述第二数据结构包括所述文本元素以及所述项标识符;以及所述图中的所述边缘是从所述第一数据结构和所述第二数据结构中进一步确定的。
7.如权利要求6所述的方法,其特征在于,还包括所述边缘是部分地通过在确定所述边缘之前将第一加权应用于所述第一数据结构并且将第二加权应用于所述第二数据结构来确定的。
8.如权利要求1所述的方法,其特征在于,还包括 在所述处理之前对所述项执行降噪。
9.如权利要求1所述的方法,其特征在于,所述文本元素包括含有下列各项的组中的至少一个单元语法; 二元语法;以及三元语法。
10.如权利要求1所述的方法,其特征在于,还包括 标识第一文本元素;确定所述第一文本元素的同义词;以及将所述同义词添加到所述文本元素的第一子集。
11.如权利要求1所述的方法,其特征在于,还包括 检查所述项以确定第一文本项的格式化特征;以及基于所述格式化特征对所述第一文本项进行加权。
12.如权利要求11所述的方法,其特征在于,所述格式化特征包括以下各种中的至少一个 标题;题目;字体效果;以及字体修饰符。
13.一种系统,包括 文档适配器(120),用于接收包括文本元素的项;以及创建所述项的项标识符;输入适配器(IM),用于将所述项解析成文本元素;以及为所述文本元素中的每一个分配文本元素标识符;语言模型处理器(1 ),用于基于统计语言模型将熵值分配给所述文本元素的每一个; 数据库引擎(134),用于选择所述文本元素的第一子集,所述第一子集中的所述文本元素的每一个具有大于第一预定义的熵值的熵值;将所述文本元素的每一个添加到第一数据结构,所述第一数据结构包括所述文本元素标识符以及所述项标识符;以及创建邻接矩阵,所述邻接矩阵表示包括表示所述文本元素的顶点以及表示加权的关系的边缘的图,所述加权的关系是从所述第一数据结果中确定的; 查询引擎(140),用于 接收包括第一文本元素的第一查询;以及返回从所述邻接矩阵中导出的结果,所述结果包括观察到的结果。
14.如权利要求13所述的系统,其特征在于,还包括 后台处理器,用于锁定所述邻接矩阵的第一行;当所述第一行被锁定时,使用第一算法对所述邻接矩阵的所述第一行执行传递闭包, 所述第一算法确定所述图中的两个所述顶点中的最短路径;以及当对所述第一行完成所述传递闭包时,对所述第一行进行解锁。
15.如权利要求14所述的系统,其特征在于,所述语言模型处理器使用多个所述统计语言模型来确定所述熵值。
全文摘要
公开了从非结构化文本提取可伸缩增量语义实体和相关性。用于包含文本的文档的搜索引擎可以使用统计语言模型来处理文本,基于熵对该文本进行分类,并且创建后缀树或每一分类的文本的其他映射。可以从后缀树或映射中用不同单词或文本串之间的关系来构造图。可以使用该图来确定搜索结果,并且在查看搜索结果之前可以对该图进行浏览或导航。由于添加了新文档,可以对它们进行处理并且添加到后缀树,随后可以响应于搜索请求按需创建该图。可以将该图表示为邻接矩阵,并且传递闭包算法可以处理该邻接矩阵作为后台进程。
文档编号G06F17/30GK102236696SQ201110111578
公开日2011年11月9日 申请日期2011年4月20日 优先权日2010年4月21日
发明者K·穆克吉, S·盖尔曼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1