概率解析的制作方法

文档序号:9529254阅读:232来源:国知局
概率解析的制作方法
【专利说明】概率解析
[0001]
[0002]解析可被认为是用于寻找文本或其他有序项序列的结构的过程。已经被用于生成文本的语法或其他规则可以是可用的并且被用于寻找该结构;或者可能需要寻找出语法本身。然而,由于人们可使用文本来表达他们自己的各种方式和语言的自然模糊性,解析未被结构化的文本是非常有挑战性的任务。
[0003]由于大量信息仅以未被结构化的文本的形式可用(诸如在因特网上可用的大部分信息),因此需要解析这种未被结构化的文本的准确、快速且成本高效的方式,以使得自动化系统(诸如信息检索系统、文档分类系统、机器翻译系统和其他系统)能够利用该信息。
[0004]一些先前的解析方式涉及手动地书写大量的机器学习代码,这是耗时、难以理解和维护以及容易出错的。
[0005]使用大量经标记的训练数据训练的分类器可被用于从未被结构化的文本中提取信息。然而,获得经标记的训练数据通常是昂贵的且耗时的,并且一旦被训练,分类器不适应于改变对语言的使用,诸如新的单词或短语。
[0006]—些先前的解析方式使用了常规表达式来分析文本。然而,常规表达式难以被新手用户使用并使用有限的语言来定义,所以不允许丰富且复杂的解析过程被定义,例如,解析不能依赖于非文本线索。
[0007]下面描述的实施例不限于解决用于解析文本和其他有序项序列的已知系统的任何或所有缺点的实现。
[0008]概述
[0009]下面呈现了本发明的简要概述,以便向读者提供基本理解。本概述不是本公开的穷尽概览,并且不标识本发明的关键/重要元素或描述本说明书的范围。其唯一的目的是以简化形式呈现此处所公开的精选概念,作为稍后呈现的更详细的描述的序言。
[0010]描述了用于计算关于文本和其他有序项序列的结构的信息以使得下游系统(诸如机器翻译系统、信息检索系统、文档分类系统和其他系统)能够使用该结构信息的概率解析。在各个实施例中,解析推断组件包括从概率程序中编译的(诸)推断算法,该概率程序定义用于生成文本或其他有序项序列的随机过程。在各示例中,解析推断组件接收与概率程序所定义的随机过程兼容的一个或多个文本观察或示例。解析推断组件可将推断算法应用到文本以更新串或与解析有关的其他值上的一个或多个概率分布。在一些示例中,解析推断组件使用推断结果来完成部分示例以在信息检索任务方面协助用户。
[0011]通过结合附图参考以下详细描述,可易于领会并更好地理解许多附带特征。
[0012]附图简沐
[0013]根据附图阅读以下【具体实施方式】,将更好地理解本发明,在附图中:
[0014]图1是用于生成解析推断结果的解析推断组件的示意图;
[0015]图2是在推断引擎和/或解析推断组件处的示例方法的流程图;
[0016]图3是图1的用于完成部分示例的解析推断组件的示意图;
[0017]图4是在图3的解析推断组件处的一方法的流程图;
[0018]图5是图3的图形用户界面处的示例显示的示意图;
[0019]图6是图3的图形用户界面处的另一示例显示的示意图;
[0020]图7是概率程序的因子图的一示例的示意图;
[0021]图8是表示串上的概率分布的两个示例随机自动机的示意图;
[0022]图9示出了示例性基于计算的设备,其中解析推断组件和/或推断引擎的实施例可被实现。
[0023]在各个附图中使用相同的附图标记来指代相同的部件。
[0024]详细描沐
[0025]下面结合附图提供的详细描述旨在作为本发明示例的描述,并不旨在表示可以构建或使用本发明示例的唯一形式。本描述阐述了本发明示例的功能,以及用于构建和操作本发明示例的步骤的序列。然而,可以通过不同的示例来实现相同或等效功能和序列。
[0026]虽然在本文中将本发明的示例描述并示出为在信息检索系统中实现,但是所描述的系统只是作为示例而非限制来提供的。本领域的技术人员将理解,本示例适于在使用文本或其他有序项序列的各种不同类型的系统中应用。
[0027]图1是用于生成解析推断结果的解析推断组件的示意图。解析推断组件是使用软件和/或一个或多个硬件逻辑组件被计算机实现的。其包括经编译的概率程序110和任选地用于访问和获得观察108的观察工具112。用于定义概率程序的语言可以是具有串操纵方法的标准编程语言(或标准编程语言的子集)。观察108是与在概率程序中指定的任何要求兼容的文本或其他有序项序列的示例。有序项序列可以是其中项是字符的字符序列、其中项是人的姓名的姓名列表、其中项是学校的学校列表或其他类型的项的列表。观察108在一些情况下可以是部分或不完整的示例,如在以下将详细描述的。解析推断组件100使用经编译的概率程序110和观察108来实现推断以产生解析推断结果114。例如,解析推断结果114包括概率程序中变量的概率分布,其中变量中的至少一个是串或另一有序项序列。概率分布可初始地被设置为默认概率分布并可通过应用观察108来被更新。随着更多的观察108通过使用解析推断组件被获取并被应用,解析推断结果114变得更准确并提供关于文本或其他有序项序列的结构的更多信息。
[0028]通过这种方式,随着概率分布被习得,概率解析被实现,这些概率分布描述语法、规则或操作如何被用于生成文本或其他有序项序列。这在无需大量的经标记的训练数据以及无需使用常规表达式或用于处理文本的单独的语言的情况下被实现。来自概率程序的不处理串的部分的信息可被容易地用于提升解析的准确性,这是因为作为串上的概率分布的变量可与其他类型的变量在相同的程序中使用。
[0029]解析推断结果114可被传递到另一系统116,诸如信息检索系统118、机器翻译系统120、文本操纵系统122或其他。其中解析推断结果114被用在信息检索中的一示例在本文档中稍后来描述。
[0030]经编译的概率程序110包括被推断引擎106导出的推断算法。例如,推断引擎可包括如在转让给微软公司的、2012年I月24日授权的、发明人为Minka等、题为“Compilerfor Probabilistic Programs (用于概率程序的编译器)”的美国专利8103598中描述的概率编译器,其中该编译器被扩展来处理包括对使用有序项序列上的概率分布表示的随机变量的声明或引用的概率程序。概率程序可包括对类型double (双精度)、integer (整数)、Boolean(布尔)的随机变量的声明或引用;经扩展的编译器可使得类型string(串)和list (列表)的随机变量另外被支持。
[0031]参考图1和2,概率程序在推断引擎处被接收202。例如,用户可操作编程环境来创建概率程序。解析推断组件根据传入数据的结构来自动地生成概率程序也是可能的(这将参考图3来更加详细地描述)。在其中解析推断组件动态地生成概率程序的示例中,它将概率程序发送到推断引擎以供编译并作为回复接收包括消息传递算法的概率程序的经编译的形式。
[0032]概率程序定义用于生成有序项序列的随机过程。例如,项是字符并且有序项序列是文本。该过程是随机的,这是因为它包括具有仅能被表达为分布(诸如在有序项序列上的分布)的未确定值的变量。例如,在文本的情况下,变量可具有在作为人的名字的串上的均匀概率分布(并且所以采取特定形式,其中第一字符是选自已知字母表的大写字母并且之后的字符是选自已知字母表的小写字符)。作为另一示例,变量可采取反映不同名字和姓氏的相对频率的更加复杂的分布。
[0033]在一示例中,概率程序可定义用于通过使用来自多个可用操作中可被应用到有序项序列的一个或多个操作来生成有序项序列的随机过程。例如,通过对串使用一操作来生成文本,该操作诸如用于格式化一个或多个串、寻找串的长度、串接两个或更多个串、创建串的索引、寻找串的起始字符、寻找串的结束字符、寻找串的子串、将一个或多个字符插入到串中、替换串、从串的结束或开始中移除字符等。这些操作是对可用的标准语言操作的补充,可用的标准语言操作诸如loop (循环)、switch (转变)、if (如果)语句、阵列索引等。
[0034]在各示例中,用于生成有序项序列的一操作可采用一个或多个自变量,这些自变量自身可以被写为有序项序列并使用概率变量来表示。例如,用于格式化多个串的操作可采用包括对该多个串的引用以及指示各串要如何被格式化的模板的自变量。模板自身是串并且其值可被表示为串上的概率分布。这使得解析推断组件能够通过使用观察到的文本的示例来作出推断以习得可能的模板。
[0035]概率程序104可使用包括由边连接的多个节点(变量节点和因子节点)的因子图来表示。变量节点表示概率程序中的变量。因子节点表示概率程序中的一操作并且被连接到作为该操作的自变量或该操作的返回值的变量。
[0036]因子图还提供用于计算推断结果的数据结构。变量上的概率分布的形式的消息按沿着图的各边的两个方向被传递。在每个变量节点处,这些消息被用于更新表示在其处被存储的变量的值的概率分布。在每个因子节点处,从因子接收到的消息中计算从该因子传出的消息。这些计算可被称为消息运算符。消息传递算法以正方向和/或反方向(或以根据输入的模式的任意其他方向)在因子图上传递消息来执行推断,藉此概率分布被更新。
[0037]如以上提到的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1