首页> 中国专利> 使用候选答案逻辑综合提供问题答案

使用候选答案逻辑综合提供问题答案

摘要

一种产生问题答案的方法、系统和计算机程序产品。在一个实施例中,所述方法包括接收输入查询;将所述输入查询分解为多个不同的子查询;在一个或多个数据源中执行搜索以识别每个所述子查询的至少一个候选答案。将排序函数应用于每个所述候选答案以判定所述每个所述候选答案的排序;以及针对每个所述子查询,根据该排序选择所述子查询的所述候选答案之一。应用逻辑综合组件以根据所述子查询的所述选定候选答案综合所述输入查询的候选答案。在一个实施例中,通过所述输入查询判定所述逻辑综合组件用于综合所述输入查询的所述候选答案的过程。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-10

    授权

    授权

  • 2013-08-28

    实质审查的生效 IPC(主分类):G06F17/27 申请日:20110922

    实质审查的生效

  • 2013-07-31

    公开

    公开

说明书

相关申请相互参考

本申请主张2010年9月28日提交的美国临时专利申请第61/387,194 号申请日期的权益,该申请的公开内容在此全部纳入作为参考。

技术领域

本发明一般地涉及信息检索。更具体地说,本发明涉及问答。再具体 地说,本发明涉及问/答系统以及通过产生和评估多个候选答案,执行并行 分析以提供问题答案的方法。

背景技术

一般而言,问答(QA)是一种信息检索。在给定档案集合(例如,万 维网或本地集合)的情况下,QA系统应该能够检索以自然语言提出的问 题的答案。QA被认为需要比诸如文档检索之类的其他信息检索类型更复 杂的自然语言处理(NLP)技术,QA有时被视为超越搜索引擎的下一步。

QA研究尝试处理大范围的问题类型,其包括:事实、列表、定义、 方式、原因、假设、语义约束和跨语言问题。从小型本地文档集合到内部 组织文档,到编译的新闻专线报道,再到万维网,搜索集合均有所不同。

闭域问答处理特定域下的问题(例如,医药和汽车维修),并且可被 视为较轻松的任务,因为NLP系统可利用经常以本体形式化的域特定知 识。备选地,闭域可能指示其中仅接受有限类型问题(例如,查询描述性 信息而非程序性信息的问题)的情况。开域问答处理有关几乎任何事情的 问题,可以仅依赖于一般本体和世界知识。但是开域Q/A系统通常具有更 多可从中提取答案的可用数据。

对信息的访问目前主要包括两个范式:数据库查询,所述数据库查询 回答有关结构化记录集合之内的问题;以及搜索,所述搜索响应于对非结 构化数据集合的查询而传送文档链接集合(文本、html等)。

此类信息查询范式的主要挑战在于提供能够根据大文档集合(所有种 类的文档,包括结构化文档和非结构化文档)中包括的信息回答事实问题 的计算机程序。此类答案的范围宽到诸如“缺乏维生素K有哪些危害”, 窄到诸如“希拉里.克林顿父亲出生在何时、何地”。

用户与此类计算机程序的交互可以是单次用户-计算机交换,也可以是 用户与计算机系统之间的多轮对话。此类对话可以涉及一种或多种形式(文 本、语音、触觉、手势等)。此类交互的实例包括这样一种情形:其中电 话用户使用语音提问,接收语音、文本和图像(例如,带有文本注释的图) 及语音(计算机产生的)解释组合而成的答案。另一实例是用户与视频游 戏进行交互,并使用机器可识别的手势拒绝或接受答案,或者是计算机产 生指示用户的触觉输出。

构建此类计算机系统的挑战在于理解查询,查找可能包含答案的相应 文档,以及提取要提供给用户的正确答案。目前,理解查询是一个公开的 难题,因为计算机不具备人类理解自然语言的能力,也没有从当前(非常 初级的)自然语言理解系统可产生的许多可能解释中做出选择的常识。

通过一轮或多轮对话回答事实查询的能力具有巨大的潜在价值,因为 它允许实时存取准确的信息。例如,提高现有问答技术水平具有巨大商业 价值,因为这样可以实时了解业务状况、竞争对手、经济条件等。即使QA 采取最初级的形式,也可以将信息工作者的生产效率提高好几个量级。

在此全部纳入作为参考的编号为12/152,441的美国专利的公开描述了 一种QA系统,包括产生候选答案以及从一组候选答案中选择最终答案(或 对最终答案的列表进行排序)。但是在某些情况下,通过将问题分解为不 同的方面或组件,然后根据针对不同组件的答案或响应综合最终答案,可 以更好地解决问题。

发明内容

本发明的实施例提供一种产生问题答案的方法、系统和计算机过程产 品。在一个实施例中,所述方法包括接收输入查询;将所述输入查询分解 为多个不同的子查询;在一个或多个数据源中执行搜索以识别每个所述子 查询的至少一个候选答案。将候选排序函数应用于每个所述候选答案以判 定所述每个所述候选答案的排序;针对每个所述子查询,根据所述一个所 述候选答案的所述排序选择所述子查询的所述候选答案之一。应用逻辑综 合组件以根据所述子查询的所述选定候选答案综合所述输入查询的候选答 案。

在一个实施例中,所述逻辑综合组件用于根据所述子查询的所述选定 候选答案综合所述输入查询的所述候选答案的过程通过所述输入查询判 定。

在一个实施例中,在分解所述输入查询时判定该综合所述输入查询的 所述候选答案的过程。

在一个实施例中,使用自然语言处理分解所述输入查询,该自然语言 处理还用于判定根据所述子查询的所述选定候选答案综合所述输入查询的 所述候选答案的过程。

在一个实施例中,针对所述子查询的每个所述候选答案产生一个或多 个评分,然后将排序函数应用于所述一个或多个评分以判定所述每个候选 答案的所述排序。

在一个实施例中,所述逻辑综合组件对所述选定候选答案中的数据执 行数学运算以综合所述输入查询的所述候选答案。

在一个实施例中,所述逻辑综合组件形成所述选定候选答案的交集以 综合所述输入查询的所述候选答案。

在一个实施例中,所述逻辑综合组件形成所述选定候选答案的并集以 综合所述输入查询的所述候选答案。

在一个实施例中,所述逻辑综合组件组合所述选定答案中的文本以综 合所述输入查询的所述候选答案。

在一个实施例中,所述候选排序函数还应用于所述输入查询的所述综 合候选答案以判定该综合候选答案的排序。

附图说明

本发明的目标、特征和优点在下面列出的本发明具体实施例的上下文 中理解。本发明具体实施例在附图的上下文中理解,所述附图形成本公开 的一个材料部分,其中:

图1示出显示本发明的实施例的高级逻辑架构和问答方法的系统图 表。

图2示出图1中的架构的变形,其中证据收集模块包括两个子模块: 支持段落检索和候选答案评分。

图3示出图1中的查询分析模块和候选答案产生模块的更详细的图表。

图4示出图1和2中的候选答案评分模块和答案排序模块的更详细的 图表。

图5是示出根据本发明的实施例处理问题并提供答案的方法步骤的流 程图实例。

图6示出提供一类用于处理CAS数据结构的分析引擎的UIMA框架 实现的一方面。

具体实施方式

如在此使用的那样,单词“问题”和“查询”及其扩展词可以互换地 使用并指示同一概念,即,信息请求。此类请求通常以疑问句表达,但是 可以通过其他形式表达,例如采取提供感兴趣实体描述的陈述句形式(其 中可通过上下文推断出实体识别请求)。“结构化信息”(来自“结构化 信息源”)在此被定义为其表达的含义很明确,并通过数据结构或格式(例 如,数据库表)明确表示的信息。“非结构化信息”(来自“非结构化信 息源”)在此被定义为其表达的含义仅通过其内容(例如,自然语言文档) 暗示的信息。“半结构化信息”指示其某些含义在数据格式中明确表示的 数据,例如文档的一部分可被标记为“标题”。

图1示出本发明的实施例的高级逻辑架构10和方法的系统图表。如图 1所示,架构10包括查询分析模块20,该模块实现接收和分析用户查询或 问题的功能。根据本发明的一个实施例,“用户”指的是与系统交互的一 个或多个人,术语“用户查询”指的是用户提出的查询(及其上下文)19。 但是将理解,可以构建其他实施例,其中术语“用户”指的是通过机械手 段产生查询的计算机系统22,其中术语“用户查询”指的是此类以机械方 式产生的查询及其上下文19'。提供候选答案产生模块30以实现通过遍历 主源模块11和答案源知识库模块21(包含从主源提取的关系和列表的集 合)中包含的结构化、半结构化和非结构化源搜索候选答案。所有信息源 均可存储在本地或通过包括因特网的网络进行分发。候选答案产生模块30 根据分析已检索的数据,产生多个包含候选答案的输出数据结构。在图1 中,所示的实施例包括与主源11和知识库21连接,以同时执行以下并行 处理操作的证据收集模块50:根据包含候选答案的段落分析证据,以及对 每个候选答案进行评分。

在一个实施例中,可以采用利用公共分析系统(CAS)候选答案结构, 以及实现支持段落检索的架构,本文下面将更具体地进行描述。此处理在 图2中示出,其中证据收集模块50包括支持段落检索40A和候选答案评 分40B作为独立的处理模块以同时执行并行处理操作:分析段落以及对每 个候选答案进行评分。答案源知识库21可以包括一个或多个包括关系集合 (例如,类型化列表)结构化或半结构化源(预计算的或其他源)数据库。 在实现实例中,答案源知识库可以包括存储在记忆存储系统(例如,硬盘) 中的数据库。答案排序模块60提供对候选答案进行排序以及判定响应99 的功能,所述响应通过用户的计算机显示界面(未示出)返回给用户或返 回给计算机系统22。所述响应可以是响应于问题的答案,也可以是以说明 为目的的对现有答案或请求的详述(如果未找到高质量答案)。

将理解,本领域的技术人员可以实现对图1所示系统的进一步扩展以 根据但不限于文本、音频、视频、手势、触觉输入和输出等形式采用一个 或多个模块启用用户或计算机系统与系统10之间的I/O通信。因此,在一 个实施例中,输入查询和所产生的查询响应均可根据包括文本、语音、图 像、视频、触觉或手势的多种形式中的一种或多种提供。

图1和2所示的处理可以在本地执行、在服务器上执行或在服务器集 群上执行、在企业内执行,或者备选地,可以通过公共或专用搜索引擎进 行分发,或与其集成,或以其他方式与其结合执行操作,从而以上述方式 增强问答功能。因此,本发明的实施例可以被提供为包括处理设备可执行 指令的计算机过程产品,或者被提供为部署计算机过程产品的服务。所述 架构采用搜索引擎(文档检索系统)作为候选答案产生模块30的一部分, 模块30可以专注于因特网、公用数据库、网站(例如,IMDB.com)或专 用数据库。数据库可以存储在任何存储系统中,例如存储在硬盘或闪存中, 也可以通过网络或不通过网络进行分发。

如上所述,本发明的实施例使用公共分析系统(CAS)、处理各种UIMA 组件(例如,分析引擎和非结构化信息管理应用)之间数据交换的非结构 化信息管理架构(UIMA)的子系统。CAS通过独立于过程设计语言的类 型系统支持数据建模,通过强大的索引机制提供数据访问,以及支持创建 文本数据注释,例如(http://www.research.ibm.com/journal/sj/433/gotz.html) 中描述的那样,此网页内容在此纳入作为参考,就像在此列出一样。CAS 还允许文档与其注释之间具有多个链接定义,这对于分析图像、视频或其 他非文本形式有用。

在一个实施例中,UIMA可以被提供为中间件,用于通过广泛的信息 源有效地管理和交换非结构化信息。该架构一般包括搜索引擎,数据存储、 包含流水线文档注释器和各种适配器的分析引擎。UIMA系统、方法和计 算机过程可用于产生输入查询的答案。所述方法包括输入文档和操作至少 一个文本分析引擎,该引擎包括多个相连的注释器以标记文档以及识别和 注释特定类型的语义内容。因此可用于分析问题以及从一系列文档中提取 有可能是问题答案的实体。

在一个非限制性实施例中,公共分析系统(CAS)数据结构形式根据 编号为7,139,752的美国专利中描述实现,该专利的全部内容及其公开在此 纳入作为参考,就像完全在此列出一样。

如图3中更详细的逻辑架构图表中更详细地所示,“查询分析”模块 20接收包括查询19的输入,该查询例如由用户通过其基于Web的浏览设 备输入。输入查询19可以包括诸如“谁是最高的美国总统?”之类的字符 串。备选地,问题可以由字符串和暗示的上下文(例如,“谁是最矮的美 国总统?”)构成。在该实例中,上下文的范围可以从另一简单字符串(例 如,“美国总统”或“谁是最高的美国总统”)扩展到任何数据结构,例 如处理上一字符串的所有中间结果——例如,在多轮对话中发生情况。输 入查询由查询分析模块20接收,该模块包括但不限于下面的一个或多个子 过程:分析和预测论证结构方块202;重点段、重点和修改符方块204;词 汇回答类型方块206;问题分解方块208;词汇和语义关系模块210;问题 分类方块212;以及问题难度模块214。

分析和预测论证结构方块202实现功能和程序设计接口以将输入查询 分解为语法和语义分量,例如名词短语、动词短语和预测/论证结构。可使 用(English Slot Grammar:英文槽文法)ESG类型分析器实现方块202。 重点段、重点和修改符方块204用于计算问题的重点和重点修改符,将在 下面进一步描述。词汇回答类型(LAT)方块206实现功能和程序设计接 口以提供对答案类型(词汇)的额外约束,本文下面将更详细地进行描述。 问题分解方块208实现功能和程序设计接口以分析输入问题来判定有关目 标答案的问题指定的约束集。这些约束有多种相互关联的方法:1)嵌套式 约束;2)冗余约束;以及3)三角剖分。借助嵌套式约束,“内部”问题 的答案实例化“外部”问题。例如,“佛罗里达的哪个城市以从西班牙手 里夺取佛罗里达的将军名字命名?”。借助冗余约束,一个约束唯一地识 别答案。例如,“最高的哺乳动物每小时奔跑30英里,这是什么动物?” 借助三角剖分,每个约束产生一组答案并且正确的答案同时位于两个(或 多个)集合中。例如,在“猜谜式”问题“什么是一组同类型事物,或针 对戏剧表演构建的场景”中。

词汇和语义关系模块210用于检测查询中的词汇和语义关系(例如, 预测-论证关系),问题分类模块212也具有此功能,该模块采用提供信息 访问的主题分类器,例如问题涉及哪个方面?问题难度模块214执行提供 确定问题难度手段的方法,例如,向问题应用可读性矩阵。将理解,图3 所示的一个或多个查询/问题分析处理方块可以针对特定实现进行选择。

分析和预测论证结构方块202实现功能和过程设计接口以通过执行本 领域公知的词汇处理和句法与预测论证结构分析将输入分解为其语法分 量。对于查询实例:

“在1960年代,这个最大的堪萨斯城市成为世界最大的通用航空飞机 生产基地”。

分析和预测论证方块202将在下面产生分析搜索结果树结构实例,其 中eX提供树中的索引,例如单词“become”为e8(结果树的第8个结构, e7索引结果树结构的第7个单词),其中7表示单词“city”,它是“become” 的第一论证,e13(索引结果数结构的第13个单词)是“producer”,它 是“become”在语义结构中的第二论证,如下所示:

in(e1,e3,e8)

the(e2,e3)

1960s(e3,u)

this(e4,e7)

large(e5,e7)

Kansas(e6,e7)

city(e7,u)

become(e8,e7,e13)

the(e9,e10)

world(e10,u,e13)

aposts(e11,e10)

large(e12,e13)

producer(e13,of:e17)

general(e15,e17)

aviation(e16,u,e17)

aircraft(e17)

重点段、重点和修改符方块204检测重点段,该段是问题中被正确答 案替换的文本跨度。例如,在下面的查询中,斜体字表示查询中的重点段: “在1960年代,这个最大的堪萨斯城市成为世界最大的通用航空飞机生产 基地”。

为了检测重点段,针对预测论证结构和ESG分析实现一组规则,该 组规则与预测论证结构(PAS)中的模式匹配。所述模式的实例包括例如, 名词短语“什么/哪个/这个/这些X”,其中X是另一对象;“谁/什么/何时 /何地/为何/这个/这些”;无指示代词。下面是代词模式实例,其中代词以 斜体表示:

作为一个男孩,他创建了模型风车;他的微积分对手戈特弗里德.莱 布尼兹成年之后才设计出这样的模型风车。

现在参考词汇回答类型(LAT)方块206,LAT是识别正确答案语义 类型的问题词。下面段落中的斜体单词表示以下查询中的LAT:

“哪个堪萨斯城市是世界最大的通用航空飞机生产基地”。

LAT可在更改含义时包括修改符。例如,斜体单词表示以下查询中的 LAT:

乔利埃特和科发现密西西比河注入什么水体?

现在参考图3,问题/查询分析方块20的输出29包括查询分析结果数 据结构(CAS结构)。在该实施例中,输出数据结构问题/查询分析方块 20和候选答案产生方块30可以实现为根据UIMA开源平台在模块之间传 递数据。

“候选答案产生”模块30接收来自问题/查询分析方块20的CAS型 查询结果数据结构29输出,然后根据主源11和答案源KB21中存储的文 档产生一组候选答案。“候选答案产生”模块30包括但不限于以下一个或 多个功能性子处理模块:词语加权和查询扩展模块302;文档标题(在标 题源中检索文档)模块304;检索段落中实体模块308;以及结构源知识库 实体模块310。

词语加权和查询扩展模块302实现根据模块11和21创建查询的功能 (部分查询产生),其中包括实现查询扩展的实施例(请参阅例如: http://en.wikipedia.org/wiki/Query_expansion)。文档标题(在标题源中 检索文档)模块304实现检测候选答案的功能(从源11和21)。检索段 落中实体模块308实现在文本段落中检测候选答案的功能,例如根据段落 和查询的语法和语义结构。结构源知识库实体模块310实现根据查询中的 实体与答案源知识库21中的实体之间关系间的匹配检索候选答案的功能 (例如实现为SQL查询)。

作为实现候选答案产生方块30的功能模块的结果,创建查询并针对 (本地或分布式)源数据库或类似的记忆存储器件中的所有结构化和非结 构化主数据源11运行查询。可针对结构化(KB)、半结构化(例如,维 基百科、IMDB数据库、XBRL中的SEC filings集合等)或非结构化数据 (文本库)运行查询以产生候选答案列表39(也作为CAS,或现有CAS 的扩展)。应该理解,在一个实施例中,针对所列主源数据库的本地副本 运行查询,也可访问公用的公共数据库源。而且可以理解,在一个实施例 中,并非查询中的所有词需要用于搜索答案——因此需要根据查询分析结 果创建查询。例如,在回答问题“波兰首都名称中的前五个字母”时,查 询的一部分中不应包含“五个字母”。

如图3进一步所示,答案源知识库21被示出为与结构源实体模块310 相连,模块310包括类型化列表(例如,世界上所有国家的列表)、已提 取的精确一元体(例如,国家)、二元体(例如,国家+国家元首)、三元 体(例如,国家+国家元首+元首夫人)、n元体关系等。

现在参考图2和4,“候选答案评分”模块40B从例如证据收集方块 50的支持段落检索(SPR)方块40A接收CAS型数据结构49(即,一个 或多个CAS)。“候选答案评分”模块40B包括但不限于以下一个或多个 功能性子处理模块:段落中词汇与语义关系模块402;文本对齐模块405; 段落中查询词匹配模块407;语法关系方块410;知识库中答案查找模块 413;以及候选答案类型分析模块415。

段落中词汇与语义关系模块402实现计算候选答案段落中的语义(预 测/论证)关系满足程度(答案评分的一部分)的功能。文本对齐模块405 实现对齐查询(或其中的某些部分)与答案段落以及计算描述对齐程度的 评分(例如,当对齐引用的答案时)的功能。段落中查询词匹配模块407 实现将查询段落的匹配程度与候选答案段落中的词进行关联的功能(答案 评分的一部分)。语法关系方块410实现检测候选答案之间的语法关系(可 归入段落中词汇与语义关系模块402之下)的功能。知识库中答案查找模 块413实现根据评分排序检测候选答案的功能。候选答案类型分析模块415 例如根据对出现候选答案的文档执行语法和语义分析产生测量候选答案为 正确答案的概率。“候选答案评分”模块40B的输出为CAS结构,此结 构包含一系列评分由模块给定的答案。

如此出描述的那样,可实现多个并行操作模块以计算候选答案的评分, 其中所述评分根据上述标准在CAS型数据结构59中提供。例如,答案是 否满足类似的词汇和语义关系(例如,对于有关电影女明星的查询,答案 是否为女性,候选是否满足电影演员关系?),答案与查询的对齐程度; 词语的匹配程度以及词语是否以类似的顺序存在。因此,将理解,多个模 块用于处理不同的候选答案,因此,可能根据可能的评分模块数量提供许 多评分。

参考图2和4,“答案排序”模块60因此从证据收集方块50(包括实 现SPR40A和候选答案评分40B)接收多个CAS型数据结构59输出,并 针对每个候选答案产生评分。图4示出机器学习实现,其中“答案排序” 模块60包括使用机器学习技术,根据现有数据产生的训练模型组件71。 现有数据可以编码有关候选答案的特征、候选答案所在段落的特征、候选 答案评分模块40B赋予候选答案的评分,以及候选答案是否正确的信息。 机器学习算法可应用于CAS的全部内容以及有关候选答案正确性的信息。 此类现有数据例如可随时用于技术服务支持功能,或者随时可用于因特网 (其中许多网站列出带有正确答案的问题)上更一般的设置。模型对预测 功能进行编码,此功能输入到“学习特征组合”模块73。

因此,在图4所示的实施例中,将作为CAS的一系列候选答案以及存 储在训练模型子模块71中并且其参数依赖于查询类型的训练模型输入到 答案排序模块60。答案排序模块60包括学习特征组合子方块73,方块73 实现产生答案排序列表75的功能。答案排序模块60的输出包括查询答案 (一个或一系列),还可以选择性地包括说明性问题(如果系统参与对话 或者如果所产生的答案没有高排序)。学习特征组合子方块73应用训练模 型71产生的预测功能,例如实现根据训练模型对候选答案评分进行加权的 方法。训练方块71和学习特征组合73可以参考Ittycheriah,A等人在2001 年的文本检索会议上发表的标题为“{IBM}'s Statistical Question  Answering System-{TREC}”的文章,地址位于:

http://citeseer.ist.psu.edu/cache/papers/cs2/7/http:zSzzSztrec.nist.govzSzpu bszSztrec10zSz.zSzpaperszSztrec2001.pdf/ittycheriah01ibms.pdf。

机器学习训练模型71以及学习特征组合73的应用将在下面更详细地 进行描述。在一个实施例中,实现由两部分构成的任务以:(1)识别候选 中的最佳答案,以及(2)判定最佳答案的置信度。

根据此处理,每个问题候选对包括一个实例,从大范围的特征中获取 评分,例如,答案与查询词的共现、候选是否匹配问题类型,以及搜索引 擎排名。因此,对于问题实例:“从浓缩蔗汁中去除糖晶体之后,还剩什 么液体?”诸如下面的表1所示的评分实例根据但不限于以下项产生:类 型分析、对齐、搜索引擎排名等。TypeAgreement是表示段落中候选答案 的词汇形式是否对应于问题中感兴趣的实体词汇类型的评分。Textual  Alignment对问题与答案段落之间的对齐进行评分。

表1

候选 类型 对齐 排名 评分 牛奶 1 0.2 3 0.46 黑砂糖 0 0.6 1 0.48 糖浆 1 0.5 2 0.8

因此,在该实施例中,候选答案根据其答案评分被表示为实例。如上 所述,分类模型71通过实例进行训练(根据现有数据),其中每个候选答 案针对问题被分类为真/伪(使用逻辑回归或线性回归函数或本领域公知的 其他类型的预测函数)。现在应用该模型,候选答案根据分类评分进行排 序,其中所述分类评分被用作答案置信度的测量值,也就是说,通过对完 整的特征或其子集应用预测函数,比较和评估可能的候选答案。如果分类 评分高于阈值,则该答案被视为可接受的答案。使用表1中“类型”、“对 齐”和“排名”中的数值,预测函数(评分)由线性表达式实例给出:=0.5* 类型+0.8*对齐+(1-排名)*0.1,分别针对牛奶、黑砂糖和糖浆获取值0.46、 0.48和0.8(值越大,表示答案越佳)。这些值在表1中的“评分”列中表 示。该评分函数实例出于说明的目的给出,在实际应用中,可使用更复杂 的评分函数。例如,数学表达式可以基于逻辑回归函数(由线性表达式和 指数函数构成),并且可应用于更大数量的特征。

图5是示出系统操作的方块图500。在步骤510,被设计为执行本发明 步骤的系统接收查询。指令集在包括一个或多个处理器或计算设备的计算 环境中执行。对查询进行分析并将其解析为适合于搜索引擎511(执行图1 和2中模块30的信息检索功能)搜索的元素。

在实施例中,查询可在512被分解为不同的方面或组件,以便这些组 件然后可被单独处理。这些组件或子查询的答案或候选答案接着进行组合 或使用以形成查询的答案或候选答案。

如上所述,在某些情况下,可通过将问题分解为不同的方面或组件, 然后通过这些不同组件的答案综合最终答案,更好地解决问题。可能需要 此方法的问题实例有“达伽马1498年在印度待了多久?”可从语料库中查 到他抵达和离开日期,但是没有停留的时间。在这种情况下,系统可以针 对抵达和离开日期的“子问题”而非完整的问题执行搜索、候选产生,以 及评分。下面描述的可以计算日期的逻辑综合组件然后可以根据这些日期 计算出停留时间。

问题分解在问题处理阶段发生,具体是在分析问题之后,执行搜索之 前。使用自然语言处理分析问题,解析问题,然后通过原始问题制定出两 个或多个子查询。例如,可将“达伽马1498年在印度待了多久?”分为以 下子问题:询问达伽马在1498年的何时抵达印度,以及达伽马在1498年 的何时离开印度。

图5还表示定义数据结构的数据模型,所述数据结构作为图1和2所 示的系统组件的输入提供,或者作为所述系统组件的输出产生。所述数据 模型提供有关给定组件功能的说明文件,它允许以非常高的置信度集成独 立开发的组件,这些组件将正确地进行交互操作。所述数据模型被正式定 义为UIMA类型系统,在UIMA类型系统描述符中具有描述性规范。众所 周知,非结构化信息管理架构(UIMA)框架是开放的工业级可扩展、可 延伸平台,用于构建处理文本或其他非结构化信息以查找潜在含义、关系 和其中隐藏的相关事实的分析应用或搜索方案(http:// incubator.apache.org/uima/)。

所述数据模型通过UIMA CAS(类型系统中各种类型的实例容器)进 行实例化。

类型系统具有一些基本设计点。

1.CAS表示单个问题,但是并不限于此,即,包括某些现有重点的问 题(种类、现有问题或答案,或问题元数据,还提供上下文的某种元素);

2.问题是初始CAS视图中的分析主题;

3.处理被分为若干阶段,其中每个阶段可以产生多个带有新分析主题 和对应视图的新CAS,但是原始问题视图位于每个CAS中。将理解,各 种变形是可能的。

所有处理结果可以添加到原始CAS(中间结果一直保留到处理结束) 中,并且系统产生的最终答案作为CAS中的注释发布。

在一个实施例实例中,数据模型包括基注释类型,许多类型扩展 uima.tcas.Annotation(请参阅http://incubator.apache.org/UIMA)。每个 类别(例如,注释器)也可估计它所创建的注释的正确性。

在一个示例性实施例中,作为在问题处理阶段510执行的问题分析的 一部分,接收问题19,并且使用该问题(以及问题上下文)初始化CAS。 创建两个初始注释:带有有关问题的元数据的“问题注释”,以及通过直 接包含结果,或通过指向表示问题分析结果的其他注释来整合所有问题分 析结果的“QaResult注释”。

基问题注释类型被定义为选择性地包括任何关联的元数据,例如问题 源(TREC、技术支持、电视节目等)、现有对话或其他上下文信息(例 如,有关以其他形式表示的输入所包含的信息)。

问题类型可进一步具体化为建立问题模型的子类型实例,此问题的类 别定义Type(即,问题类型,例如,FACTOID、LIST、DEFINITION、 OTHER、OPINION或UNCLASSIFIED问题类型之一)。

分析问题的初始步骤是针对问题运行NLP(自然语言处理)堆栈。自 然语言处理通常包括句法处理(例如,使用ESG分析器)和推导预测论证 结构。该处理根据标准的UIMA方式执行,其中NLP堆栈作为综合分析 引擎在CAS上执行。在本发明的实施例中,所有NLP堆栈结果被添加到 CAS作为扩展Hutt和ESG类型系统的注释。

在NPL堆栈处理之后,运行问题分析组件,该组件例如包括问题分类、 答案类型检测和重点识别,如图3中的查询分析方块所示。问题可以根据 问题类型(元数据)进行分类,每个问题可能需要特殊的下游处理。该分 类结果可存储在QClass注释中:

下游处理实例可以包括处理猜谜式问题(其中获取答案需要来自多个 源的综合信息、推理等);需要视听处理的audio_visual问题;具有引号 或命名实体等的imple_factoid问题;有关可查找的事实的FACTOID;以 及包含答案定义并且其中期望问题定义的单词为答案的DEFINITION。

图3示出的典型问题分析过程产生多个注释,其中包括重点、答案类 型、语义作用标注和约束,以及标注任何表示定义的问题部分。

对于上述注释类型,图5中的问题分析组件510将创建注释实例,设 置问题文本的跨度(如果适用),以及设置注释中的其他任何特征。需要 指出,这些注释可以有多个实例。

问题以及问题结果用于产生查询的抽象表示,此表示为了进行描述, 被称为AbstractQuery。抽象查询表示问题中的所有可搜索的关键字和短 语,以及语义答案类型(如果检测到)。

抽象查询使用以下类型表示:同义词(下面的所有查询概念均互为同 义词);短语(顺序中的所有查询概念均为短语);并列词(“或”,即 论证节点的分离);加权(下面的概念按照运算符中存储的浮点进行加权); 必要(下面的概念均为必要概念,如果可能);关系(下面的概念位于关 系下,存储在运算符内)。

现在参考图5,在问题处理方块510中,分析问题之后,搜索处理开 始,这可以包括搜索结构化和非结构化源,例如,Google、维基百科的本 地副本或数据库查找表。

每个搜索引擎具有查询产生器,其从抽象查询产生引擎特定的查询, 并使用搜索引擎的查询语法设置其格式。搜索引擎然后处理查询并将搜索 结果命中列表添加到CAS。搜索对象包含搜索引擎查询、搜索引擎的标识 符,以及搜索结果。

在一个实施例中,搜索结果由SearchResult对象表示,该对象包含结 果的标识符(URI)、结果的评分,以及结果的实际内容,即,段落文本、 知识库元组等。SearchResult可针对不同的搜索引擎种类以及对应的搜索 结果进行特殊化。

可创建Document对象以表示搜索引擎交付的结果。该对象可以包括 文档标题和该文档的唯一标识符,以及其他数据和元数据。段落对象可与 返回段落的搜索引擎一起使用。它可将偏移(例如,包含该段落的文档内 的该段落开头的字符偏移,以及包含该段落的文档内的该段落结尾的字符 偏移)以及段落命中的段落长度元数据添加到document对象。

如图5所示,CAS结构实例中的数据是问题分析处理步骤510的搜索 结果方块的输出,需要并行处理。使用搜索命中CAS分割装置515启动对 候选答案的并行搜索。对于并行操作,搜索列表(搜索结果段落)通过CAS 分割元件515进行分发以便应用(工作分割)并行搜索结果处理技术以处 理每个找到的搜索结果以及使用本文内候选答案产生方块30(图3)中描 述的技术执行候选答案产生(并行)。

在候选答案产生期间,候选答案在搜索结果中识别。在一个实现实例 中,候选答案通过两种不同的级别表示:CandidateAnswerVariant;以及 Candidate Answers Canon。CandidateAnswerVariant是唯一的候选答案 字符串(可能是某些非常简单的正则化的标准)。Candidate Answers Canon 是标准化的候选答案,将语义上等效的变体集合在一起。这两个类型均扩 展了抽象基类别CandidateaAnswer,该类别定义与该候选答案关联的候选 答案字符串和特征。

候选答案的类别(例如,CandidateaAnswer)提供与该候选答案关联 的候选答案字符串和特征。在操作中,可实例化它的一个或多个子类型。 一个子类型包括已定义的候选答案类别变体(CandidateAnswerVariant), 此变体可能出现多次,所有出现收集在变体对象中,该子类别还定义该变 体的出现。提供CandidateAnswerOccurrence以注释被识别为候选答案的 文本跨度并定义:(1)涵盖文本指示某一实体(例如,NAME、PRONOUN、 CITY)的方式;(2)候选答案源;(3)源文本内该候选答案开头的字符偏移; 以及(4)源文本内该候选答案结尾的字符偏移。

在一个实现实例中,候选答案通过文档标题推导,另一方法可通过候 选段落中的一个或多个元素推导候选答案。候选答案可进行标准化,从而 可在一个标准形式中识别多个拼写变体。

搜索结果处理和候选答案产生方块30的CAS结构39输出实例中的 数据在此由用于并行放置输入支持段落检索方块40A的候选答案的候选答 案CAS分割装置520进行并行处理。对于每组候选答案,CAS被分割为 单独的CAS,以便每个CAS包括一个或多个候选答案并被发送到证据收 集模块50进行处理。

现在参考图5更详细地描述根据本发明的实施例实现(并行处理)和 支持段落检索和答案评分的证据收集模块50(在图1和3中示出)。

一般而言,段落检索在候选答案产生期间使用,其中使用问题中的关 键字,从非结构化语料库中找到段落。然后从这些段落中提取候选答案。

根据本发明的实施例,支持段落检索(SPR)在候选答案产生之后执 行。对于每个最终的候选段落,将遍历段落内容以查找/找到包含候选答案 以及问题词的段落。将理解,如果已知要查找的候选答案,则可以找到更 适合的段落。对于每个最终的候选,遍历源以查找包含候选答案以及问题 词的段落(即,针对原始主源(数据库)或候选知识库执行另一搜索)。 在另一实施例中,可针对缓存的搜索结果(过去的段落)执行搜索。将理 解,如果重复搜索包括问题词的候选答案,则可以获取最佳结果。

支持段落然后通过执行以下一个或多个步骤,由多个评分器进行评分: 简单词匹配评分;文本对齐;深度分析。简单词匹配评分实现可执行指令 来计数匹配词的数量,文本对齐实现可执行指令来判定相同或类似顺序中 出现的单词之间具有相似的距离,以便不会相距太远(对齐)。这有利于 查找引用。为了查找引用,例如,将执行对齐以获取最佳结果。深度分析 实现可执行指令来判定段落/问题的含义(即,词汇和/或语义关系)。其中 每个分析产生一个评分。

现在针对非限制的说明目的描述证据收集实例。在该实例中,给出的查 询如下所示:

“In2002,who became the first Republican sitting senator ever to  host“Saturday Night Live?”

在实现停用词删除(即,从查询中删除最常用词,例如“a”、“an”、 “the”、“is/was/be…”、“become/became…”…)的查询产生中,查 询变为

“Republican first sitting senator ever host“Saturday Night Live” 2002”

查询产生之后,在一个实施例中,查询被发送到因特网搜索引擎,例 如MSN提供的搜索引擎,读取前20个结果文档。下面示出针对 “Republican first sitting senator ever host“Saturday Night Live”2002”的 问题搜索结果实例的段落提取结果实例(候选答案)。在每个文档中,识 别包括每个候选答案(即,John McCain还是Al Gore)以及可能以斜体 显示的许多问题关键字的段落。这两个段落实例包括段落评分,在一个示 例性实施例中,段落评分被计算为:

段落评分=段落中的查询词数/总查询词数

候选答案:John McCain

文档:http://doney.net/aroundaz/celebrity/mccain_john.htm

段落:Representative from Arizona1st District(1983-1987),POW (1967-1972),Navy pilot,first sitting Senator to host Saturday Night Live (2002).Born in the Panama Canal Zone,John McCain shares the  headstrong,blunt,maverick traits of his father and grandfather,who were  the first father and son four star Admirals in the U.S.。

段落评分:8/11=0.73

候选答案:Al Gore

文档:http://www.imdb.com/title/tt0072562/news

段落:17December2002(StudioBriefing)No longer a candidate for the  presidency in2004,Al Gore may have a whole new career cut out for him  as the host of a late-night comedy show,judging by the ratings for the Dec. 14edition of NBC's Saturday Night Live。

段落评分:5/11=0.45

在一个实施例中,另外计算SPR答案评分,该评分在一个实施例中被 计算为包含方程式1)中所示答案的段落的下降式评分总和。

答案评分=P0+nP1+n2P2+n3P3+…    1)

其中,Pi是第i个最高段落评分,“n”是常数<1(例如,0.1)。

因此,对于查询实例“Republican first sitting senator ever host  “Saturday Night Live2002”,针对候选答案John McCain的SPR“答案 评分”被计算为:

1)摘取针对John McCain的第一候选答案段落,其中问题关键字以 斜体示出,即:

Representative from Arizona1st District(1983-1987),POW (1967-1972),Navy pilot,first sitting Senator to host Saturday Night Live (2002).Born in the Panama Canal Zone,John McCain shares the  headstrong,blunt,maverick traits of his father and grandfather,who were  the first father and son four star Admirals in the U.S.。计算的段落评分为: [评分:0.74]。

2)摘取针对John McCain的第二候选答案段落实例,即:

John McCain,Meghan regaled reporters with tales of her days as an  intern at Saturday Night Live in2004.&quot;Slave work,&quot;she says, &quot;but I had an amazing time。计算的段落评分为:[评分:0.27]。

3)摘取针对John McCain的第三候选答案段落实例,即:

The most prominent Republican,Arizona Senator John McCain,was  portrayed as a loser because of his support for staying the course in Iraq。 计算的段落评分为:[评分:0.18]。

因此,根据方程式1),其中n=0.1,针对候选答案John McCain的综 合答案评分变为:

0.74+(0.1)(0.27)+(0.01)(0.18)=0.7688

类似地,

对于查询实例“2002Republican first sitting senator ever host “Saturday Night Live”,针对候选答案Al Gore的SPR“答案评分”被计 算为:

1)摘取针对Al Gore的第一候选答案段落,其中问题关键字以斜体 示出,即:

17December2002(StudioBriefing)No longer a candidate for the  presidency in2004,Al Gore may have a whole new career cut out for  him as the host of a late-night comedy show,judging by the ratings for the  Dec.14edition of NBC's Saturday Night Live…,计算的段落评分为:[评 分:0.45]。

2)摘取针对Al Gore的第二候选答案段落实例,即:

Also in attendance were former Presidents George Bush,Gerald Ford, Jimmy Carter,former Vice-president Al Gore,former Senator Bob Dole  and all their wives.Was portrayed on"Saturday Night Live"(1975)by  Phil Hartman,Chris Farley(once),David Spade(once),Chris Elliot(once), Michael McKean,and Darrell Hammond。计算的段落评分为:[评分:0.36]。

3)摘取针对Al Gore的第三候选答案段落实例,即:

Also in attendance were former Presidents George Bush,Gerald Ford, Jimmy Carter,former Vice President Al Gore,former Senator Bob Dole  and all their wives.[September2001].Was portrayed on &#34;Saturday Night Live&#34;(1975)by Phil Hartman,Chris Farley (once),David Spade(once),Chris Elliott(once),Michael McKean,and  Darrell Hammond。计算的段落评分为:[评分:0.36]。

4)摘取针对Al Gore的第四候选答案段落实例,即:

Remember Al Gore's"Saturday Night Live"skit where he pretended  to be President and the world was a glorious place?计算的段落评分为: [评分:0.27]。

因此,SPR模块根据方程式1),针对候选答案Al Gore计算的综合 答案评分变为:

0.45+(0.1)(0.36)+(0.01)(0.36)=0.4896

注意,根据简单求和机制,Al Gore的答案评分应该为1.44,John McCain的简单求和计算评分为1.19,前者胜出。

每个候选答案的答案评分将包括在CAS中。

现在返回参考图5,在模块530,检索支持段落。功能在CAS分割之 后启动。支持段落检索创建的支持段落记录由支持段落分割器540进行分 割,由于可能存在许多记录,因此分割器将新的CAS(包含所有之前计算 的信息:上下文、查询、候选答案、支持段落)路由到“答案评分”。

结果包含许多CAS,所述CAS包含(除了其他元素)三个重要项: 候选答案、问题词和支持段落。由于针对每个问题可产生数百个此类CAS, 因此并行评分这些候选答案。在实施例中,由候选评分模块40B执行的候 选评分可分为两类:上下文无关评分43(其中独立于段落对答案进行评 分),上下文相关评分47(其中答案评分依赖于段落内容)。例如,如果 候选答案从文档标题中获取,则评分不依赖于段落内容,为上下文无关评 分。与之相对,基于文本对齐(模块405,图4)、语法关系(模块410, 图4)或词汇和语义关系(模块402,图4)的其他候选答案评分类型需要 比较查询与段落,为上下文相关评分。由于这些方法中的多数依赖于计算 段落中的语法和语义关系,因此必须在47中的上下文相关候选答案处理之 前处理搜索结果(使用SPR方块40A的搜索结果处理模块)。

答案评分器的结果保存在CAS中。在最后的答案排序处理60的阶段, 所有候选答案特征进行加总和合并,然后应用最终候选答案评分函数(如 上面参考表1中提供的评分实例描述的那样)。由于给定的候选答案可以 出现在多个段落中,因此最终合并/排名注释器必须跨CAS收集结果,标 准化和合并候选答案,合并同一答案评分器跨多个候选答案实例产生的特 征评分,以及对结果进行汇总。标准化的、合并的以及汇总的结果被输入 评分函数以产生候选答案的最终评分。最终排序结果保存为答案和/或交付 给用户。在本发明的实施例中,最终合并和排序是递增的,即,只要针对 不同节点的计算完成,机器便会提供最佳答案。一旦所有节点完成,便交 付最终(位于最上面)答案。因此,在一个实施例中,最终答案列表和答 案被添加到原始问题视图,问题解答过程完成。

如上所述,在某些情况下,可通过将问题分解为不同的方面或组件, 然后通过搜索引擎511、候选答案产生模块30、支持段落检索方块40A以 及证据收集模块50处理单独的组件,更好地解决问题。

对于那些分解的问题,提供逻辑综合器580以根据从原始问题的原始 组件获取的答案或响应综合候选答案。

逻辑综合在最终合并/排序获取自分解问题的候选答案之后发生。它接 收这些候选作为输入并综合候选答案作为输出。那些综合的候选然后被发 送回“最终合并/排序”,此模块对完整问题的所有答案进行排序。

在实施例中,每个子问题本身具有多个候选答案。最终合并/排序处理 570可以对每个候选答案进行排序,可根据该排序将每个子查询的候选答 案之一选择为子查询的答案。然后使用选定候选答案综合原始完整问题的 候选答案。如上所述,当分解原始查询时,综合候选答案的特定方式在512 通过自然语言处理512判定。

例如,可将问题“达伽马1498年在印度待了多久?”分解为有关他抵 达日期和离开日期的组件问题。“逻辑综合”可接收输入候选05/20/1498 作为抵达日期,接收08/29/1498作为离开日期。“逻辑综合”计算这两个 日期之差(101天)。此差别然后被返回到“最终合并/排序”作为完整问 题的候选答案。

在实施例中,自然语言处理还用于判定如何使用或综合子查询的答案 来形成原始查询的答案。例如,自然语言处理可以在512判定问题“达伽 马1498年在印度待了多久”的答案通过判定子查询“达伽马在1498年的 何时抵达印度?”和“达伽马在1498年的何时离开印度?”的答案之差来 获取。可使用其他类型的过程根据子查询的答案综合完整问题的答案。例 如,完整问题的答案可通过对子查询的答案进行求和,通过形成子查询答 案的并集,通过形成子查询答案的交集,或通过组合子查询答案中的文本 来获取。

作为另一实例,考虑问题“多少NFL球队保持不败?”。自然语言处 理可在512将该问题分解为子查询“多少AFC球队保持不败?”和“多少 NFC球队保持不败?”自然语言处理在512还判定完整问题的答案通过对 两个子查询的答案进行求和来综合。通过支持段落检索方块40A、证据收 集模块50和最终合并/排序570找到并处理子查询的候选答案之后,在580 综合这些候选答案以获取完整问题的候选答案。该完整问题的候选答案然 后被返回到最终合并/排序570。

考虑问题“哪位演员同时出演‘The Usual Suspects’和 ‘Stigmata’?”。该问题可被自然语言处理分解为“哪位演员出演‘The  Usual Suspects’?”和“哪位演员出演‘Stigmata’?”。完整问题的 答案通过形成这两个子查询答案的交集来综合。

作为另一实例,上述问题可被改述为“哪位演员出演‘The Usual  Suspects’或‘Stigmata’?”。该问题可被自然语言处理在512分解为 “哪位演员出演‘The Usual Suspects’?”和“哪位演员出演 ‘Stigmata’?”。自然语言处理还判定完整问题的答案通过形成这两个 子查询答案的并集来综合。

考虑问题“圣路易斯大拱门位于哪个州哪个市?”。该问题可被分解 为子查询“圣路易斯大拱门位于哪个市?”和“圣路易斯大拱门位于哪个 州?”。完整问题的答案通过使用逗号组合这两个问题的文本答案来综合 (“圣路易斯”+“,”+“密苏里州”)。

需要指出,如果系统无法找到答案,或者找到具有高评分答案(例如, 基于与预设阈值的比较),则系统可能询问用户说明性问题,或提交答案 集,或承认失败并请求用户的进一步指示。本领域的技术人员将能够根据 例如编号为6,829,603和6,983,252的美国专利(这两个专利在此纳入作为 参考,就像完全在此列出一样),以及Wlodek Zadrozny等人发表的标题 为“Natural language dialogue for personalized interaction(个性化交互自 然语言对话,可从2000年8月发行的美国计算机协会通讯第43卷、第8 刊,116-120页存档中找到) (http://portal.acm.org/citation.cfm?id=345164)”的参考实现此类对话。

本领域的技术人员将能够实现对本发明的系统的进一步扩展以采用多 模通信(使用编号为7,136,909的美国专利)的模式,所述多模通信包含文 本、音频、视频、手势、触觉输入和输出等做种形式。如上所述,此类交 互的实例包括使用语音提问以及通过其他形式(语音、文本和图像)的组 合接收答案的蜂窝电话用户,或与视频游戏进行的交互。

此处描述的数据模型和处理模型旨在允许并行处理,允许“流”计算 模型,其中结果在所有处理完成之前逐渐变得可用。如果分析能够首先识 别和处理最可能的候选,然后使用更多的处理时间持续改进评分估计,则 可有利地使用该流模型。

如上所述,在一个实施例中,上述图1-7中的模型可表示为UIMA中 的功能组件,并且可以体现为用于根据结构化和非结构化信息组合开发集 成搜索和分析的应用的硬件和软件组合。采用UIMA组件实现最终用户功 能的软件程序通常被称为应用、应用程序或软件应用。

其实施例在图1-7中示出的UIMA高级架构定义协力实现UIM应用 的大颗粒组件的作用、接口和通信。这些包括能够分析非结构化源工件(例 如包含文本数据和/或图像数据的文档)、集成和访问结构化源以及根据发 现的语义内容存储、索引和搜索工件的组件。

尽管未示出,但是UIMA高级架构的非限制性实施例包括语义搜索引 擎、文档存储、至少一个文本分析引擎(TAE)、至少一个结构化知识源 适配器、收集处理管理器、至少一个收集分析引擎,所有这些均与应用逻 辑连接。在一个实施例实例中,UIMA通过操作同时访问结构化信息和非 结构化信息以通过此处介绍的方式产生候选答案和答案。非结构化信息可 被视为文档集合,并且可以采取文本、图形、静态和动态图像、音频以及 它们的各种组合的形式。

UIMA的各方面进一步在图8中示出,其中示出分析引擎(AE)600, 该引擎可以是文本分析引擎的一个组件部分。AE600包括公共分析系统 (CAS)610、注释器620和控制器630。TAE的第二实施例(未示出)包 括由两个或多个组件分析引擎以及CAS构成的综合分析引擎,它与AE600 实现同一外部接口。

公共分析系统610

公共分析系统(CAS)60被提供作为通用工具,所有注释器620均可 使用它来访问和修改分析结构。因此,CAS610允许注释器620之间进行 协调并便利注释器620在不同的应用和不同类型的架构(例如,松散与紧 密连接的)内重用。CAS610可被视为约束各种注释器执行操作。

CAS610主要提供数据建模、数据创建和数据检索功能。数据建模优 选地定义类型的树层次结构,如下面提供的表2所示。类型具有被称为特 征的属性或特性。在本发明的实施例中,存在少量内建(预定义)类型, 例如整数(int)、浮点(float)和字符串;UIMA还包括预定义数据类型 “Annotation”。数据模型在注释器描述符中定义,并且与其他注释器共 享。在表2中,某些被视为从现有技术非结构化信息管理应用进行扩展以 适应本发明的实施例中问答的“类型”包括:

表2

在表2中,例如,所有问答类型(在左列中列出)均为新类型并扩展 另一新类型或现有类型(在右列中示出)。例如,“Query”和“Query Context” 是“Query Record”(一种新类型)的种类;而“Candidate Answer Record” 扩展UIMA类型“Annotation”但是添加了类型为“Float”的新特征 “CandidateAnswerScore”。

CAS610数据结构可被称为“特征结构”。为创建特征结构,必须指 定类型(请参阅表2)。注释(以及-特征结构)存储在索引中。

CAS610可被视为将表达的基于对象的数据结构实现为抽象数据类型 的方法集合(实现为类别,例如,在Java或C++中)。优选地,CAS610 设计大部分基于TAE130特征特性结构,该结构提供用户定义的对象、特 性和值来实现灵活性,提供静态类型层次结构来实现效率,以及提供方法 来使用一个或多个迭代器访问存储的数据。

除了其他特征,通过CAS610实现的抽象数据模型还为UIMA100提 供:平台独立性(即,类型系统以声明的方式定义,独立于程序设计语言); 性能优势(例如,当通过公共数据模型连接以不同的程序设计语言编写的 注释器620);通过注释器620的输入/输出规范实现的流组成(包括允许 类型检查和错误检测,以及支持注释器(TAE)作为服务模型的声明性规 范);以及支持通过语义索引、搜索和检索实现第三代搜索程序(即,语 义类型是声明性的,并非基于关键字)。

CAS610为注释器620提供有效地构建和搜索分析结构的工具。分析 结构是主要由描述原始文档文本子序列的元数据构成的数据结构。分析结 构中元数据的示例性类型为注释。注释是一个对象,具有自己的特性,该 特性用于注释文本序列。存在任意多个注释类型。例如,注释可以在文档 结构(例如,单词、句子、段落等)中根据文本序列的作用。标注文本序 列,或根据它们的语法作用(例如,名词、名词短语、动词、形容词等) 描述它们。对于注释的数量或应用基本没有限制。其他实例包括注释文本 段以将其识别为正确的名称、位置、军事目标、时间、事件、设备、装备、 条件、时间条件、关系、生物关系、家庭关系或其他重要的或感兴趣的项。

一般而言,注释器620的功能是分析文本以及现有的分析结构以发现 需要识别的新注释集实例,然后将这些注释添加到分析结构进行输入,以 便由其他注释器220进一步处理。

除了注释之外,图6中的CAS610还可存储原始文档文本,以及可由 注释器620产生的相关文档(例如,原始文档的译文和/或摘要)。优选地, CAS610包括便利通过XML之类的确定格式导出分析结构(例如,一组 注释)的不同方面的扩展。

更具体地说,CAS610是TAE中定义和存储文本注释的部分。CAS API同时由应用和注释器620用于创建和访问注释。CAS API例如包括三 个独立的接口。类型系统控制新类型的创建并提供有关类型间关系(继承) 以及类型-特征间关系的信息。类型定义的一个非限制性实例在表1中提供。 结构访问接口处理新类型的创建以及值的存取和设置。结构查询接口处理 现有结构的检索。

类型系统提供系统所知的实体分类,类似于面向对象的过程设计中的 类别层次结构。类型对应于类别,并且特征对应于成员变量。优选地,类 型系统接口提供以下功能:通过提供新类型名称以及指定层次结构中附加 类型的位置添加新类型;通过提供新特征名称以及赋予类型应该附加到的 特征和值类型添加新特征;以及查询现有的类型和特征,以及它们之间的 关系(例如,哪个(哪些)类型继承自该类型)。

在实施例中,类型系统提供少量内建类型。如上所述,基本类型为int、 float和字符串。在Java实现中,这些分别对应于Java int、float和字符串 类型。还支持注释和基本数据类型的阵列。内建类型在结构访问接口中具 有特殊的API支持。

结构访问接口允许创建结构,以及访问和设置现有结构的值。在实施 例中,这提供创建具有给定类型的新结构,获取和设置给定结构上特征的 值,以及访问内建类型的方法。特征定义针对域提供,每个特征具有一个 范围。

在备选实施例中,图1-7中的模块可表示为GATE(文本工程通用架 构)中的功能组件(请参阅: http://gate.ac.uk/releases/gate-2.0alpha2-build484/doc/userguide.html)。 GATE采用的组件是可重用的软件块,具有在概念上与GATE本身分离的 定义良好的接口。所有组件集都是用户可扩展集合并且共同被称为 CREOLE(语言工程可重用对象集合)。GATE框架是其中插入CREOLE 组件的底板。用户为系统提供URL列表以搜索它何时启动,这些位置上 的组件由系统进行加载。在一个实施例中,启动时仅加载它们的配置数据; 实际类别在用户请求实例化资源时加载。GATE组件是三类特殊化的Java  Bean之一:1)Resource;2)Processing Resource;3)Language Resource; 以及4)Visual Resource。Resource是顶级接口,描述所有组件。所有组件 的共同特点是可以在运行时加载,并且组件集可由客户进行扩展。它们具 有特征,所述特征在系统外部通过RDF、Plain XML或Java特性之类的 格式表示为“元数据”。在一个实施例中,Resource全部可以是Java Bean。 ProcessingResource是可运行资源,可以远程调用(通过RMI),并且驻 留在class文件中。为了加载PR(Processing Resource),系统了解在何 处查找class或jar文件(这些文件也包括元数据)。Language Resource 是由数据组成的资源,可通过Java抽象层访问。它们驻留在关系数据库中。 VisualResource是可视Java Bean,它是GUI的组件,包括主GATE GUI 的组件。与PR相同,这些组件驻留在.class或.jar文件中。

在描述GATE处理模型时,所有主要特征为算法的资源(例如,分析 器、产生器等)都被建模为Processing Resource。PR是实现Java Runnable 接口的资源。GATE可视化模型实现以显示和编辑其他资源为任务的资源, 这些资源被建模为Visual Resource。GATE中的语料库模型是成员为文档 的Java Set。Corpora和Documents都是Language Resources(LR)的类 型,所有LR具有与其关联的Feature Map(Java Map),存储有关资源 的属性/值信息。FeatureMap还用于通过注释模型将任意信息与文档范围 (例如,文本片段)进行关联。Documents具有DocumentContent(目前 为文本,未来版本可能添加对视听内容的支持),以及一个或多个 AnnotationSets(为Java Set)。

作为UIMA,GATE可用作实现自然语言对话系统的和多模对话系统 (以公开的问答系统作为主要的子模块之一)的基础。上述在此纳入作为 参考的的引用内容(编号为6,829,603、6,983,252和7,136,909的美国专利) 允许本领域的技术人员构建此类实现。

本发明的实施例可以采取完全的硬件实施例、完全的软件实施例或同 时包含硬件和元件元素的实施例的形式。在实施例中,本发明通过软件实 现,所述软件包括但不限于固件、驻留软件、微代码等。

本发明可以采取可从计算机可用或计算机可读介质访问的计算机程序 产品的形式,计算机可用或计算机可读介质提供由计算机或任何指令执行 系统使用或与其结合的程序代码。为了此描述的目的,计算机可用或计算 机可读介质可以是任何可以包含、存储、传送、传播或传输由指令执行系 统、装置或器件使用或与其结合的程序的装置。

所述介质可以是电、磁、光、电磁、红外线、或半导体的系统(或装 置或器件)或传播介质。计算机可读介质的例子包括半导体或固态存储器、 磁带、可移动计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、 硬磁盘和光盘。光盘的当前例子包括紧凑型光盘只读存储器(CD-ROM)、 紧凑型光盘读写存储器(CD-R/W)和DVD。

本发明的系统和方法可以在通用计算机或计算机系统上实现或运行。 计算机系统可以是任何类型的已知系统或将被获知的系统,通常可以包括 处理器、存储器件、存储装置、输入/输出设备、内部总线和/或用于结合通 信硬件和软件与其他计算机系统通信的通信接口等。

本发明中可使用的术语“计算机系统”和“计算机网络”包括固定和/ 或便携式计算机硬件、软件、周边设备和存储设备的各类组合。计算机系 统可以包括多个联网或以其他方式连接以协作性地执行操作的单独组件, 也可以包括一个或多个独立组件。本发明的计算机系统的硬件和软件组件 可以包括诸如桌面计算机、膝上型计算机和服务器之类的固定和便携式设 备以及可以包括在它们中。模块可以是设备、软件、程序或系统中用于实 现某种“功能”的组件,它可以实现为软件、硬件、固件、电子电路等。

在优选实施例中,术语“用户”指示与系统交互的一个或多个人,术 语“用户查询”指示用户提出的查询。但是可以构建其他实施例,其中术 语“用户”指示通过机械手段产生查询的计算机系统,其中术语“用户查 询”指示此类以机械方式产生的查询及。在此上下文中,“用户查询”可 以是自然语言表达,形式语言表达或自然语言和形式语言表达的组合。对 自动回答计算机产生的查询的需求开始产生,例如,在机械和电子设备诊 断失败的环境下,其中失败的设备以最好的方式产生查询来修复问题,此 类查询可由本发明中的系统根据从因特网收集的相关文本数据语料进行回 答。之前已经公开了自动根据形式表示产生自然语言表达的方法,例如在 编号为5,237,502和6,947,885的美国专利中公开,这两个专利的内容和公 开在此纳入作为参考,就像在此完全列出一样,本领域的技术人员可使用 这些内容创建自动发出“用户查询”的系统。类似地,在此类诊断案例中, 系统可以询问阐述问题,例如查询某些额外的参数。

上述实施例为示例性实例,不应被视为本发明限于这些具体实施例。 因此,在不偏离所附权利要求定义的本发明精神或范围的情况下,本领域 的技术人员可以实施各种更改和修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号