2024年9月8日发(作者:房俊友)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.5
(22)申请日 2013.06.04
(71)申请人 SAP欧洲公司
地址 德国瓦尔多夫
(72)发明人 陈颖宇 董玢 申永源 魏正隆 刘晓伟
(74)专利代理机构 北京市柳沈律师事务所
代理人 邵亚丽
(51)
G06F17/30
权利要求说明书 说明书 幅图
(10)申请公布号 CN 104216913 A
(43)申请公布日 2014.12.17
(54)发明名称
问题回答框架
(57)摘要
在此描述的是一种便于自动的问题
回答的技术。在一个实现中,首先接收到
输入问题。可以使用不同的搜索策略来从
多种类型的知识数据库搜索多种类型的数
据,以生成对输入问题的一个或多个候选
答案。评价一个或多个候选答案以生成对
输入问题的最终答案。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种计算机实现的问题-回答方法,包括:
接收输入问题;
确定可用于搜索的一种或多种类型的知识数据库;
如果问题-答案配对的知识数据库可用,则从问题-答案配对的知识数据
如果纯文本知识数据库可用,则从纯文本知识数据库搜索纯文本数据,
如果资源描述框架RDF知识数据库可用,则从RDF知识数据库搜索
评价第一、第二或第三候选答案,以生成对输入问题的最终答案。
2.一种计算机实现的问题-回答方法,包括:
接收输入问题;
使用不同的搜索策略从多种类型的知识数据库搜索多种类型的数据,以
评价一个或多个候选答案以生成对输入问题的最终答案。
生成对输入问题的一个或多个候选答案;以及
RDF数据,以确定对输入问题的第三候选答案;以及
以确定对输入问题的第二候选答案;
库搜索问题-答案配对数据,以确定对输入问题的第一候选答案;
3.如权利要求2所述的方法,进一步包括解析输入问题并识别与输入
4.如权利要求3所述的方法,其中识别一个或多个属性的步骤包括识
5.如权利要求3所述的方法,其中识别一个或多个属性的步骤包括识
6.如权利要求3所述的方法,其中识别一个或多个属性的步骤包括识
7.如权利要求3所述的方法,其中识别一个或多个属性的步骤包括识
8.如权利要求2所述的方法,其中从多种类型的知识数据库搜索多种
类型的数据的步骤包括从至少一个问题-答案配对的知识数据库搜索问题-答
别关键词。
别焦点。
别期望的答案类型。
别问题种类或问题子种类。
问题关联的一个或多个属性。
案配对数据。
9.如权利要求8所述的方法,其中从问题-答案配对的知识数据库搜索
基于与输入问题关联的一个或多个属性生成查询语句,其中可执行查询
10.如权利要求9所述的方法,其中全文搜索包括基于n元算法的模糊
11.如权利要求9所述的方法,进一步包括对搜索结果排名以确定一个
12.如权利要求2所述的方法,其中从多种类型的知识数据库搜索多种
13.如权利要求12所述的方法,其中从至少一个纯文本知识数据库搜
索纯文本数据的步骤包括:
或多个候选答案中的至少一个。
搜索。
语句来执行问题-答案配对数据的全文搜索以生成搜索结果。
问题-答案配对数据的步骤包括:
类型的数据的步骤包括从至少一个纯文本知识数据库搜索纯文本数据。
基于与输入问题关联的搜索术语的挖掘设置生成查询语句,其中可执行
14.如权利要求13所述的方法,进一步包括通过放宽或缩小搜索标准
15.如权利要求13所述的方法,进一步包括基于搜索结果,使用答案
16.如权利要求15所述的方法,进一步包括通过使用机器学习框架来
17.如权利要求2所述的方法,其中从多种类型的知识数据库搜索多种
18.如权利要求2所述的方法,其中评价一个或多个候选答案以生成对
降低候选答案的细节级别。
模板构造一个或多个候选答案中的至少一个。
来重复地改进搜索,直到搜索结果的数目满足预先指定的门限。
查询语句来执行纯文本数据的搜索以生成搜索结果。
类型的数据的步骤包括从至少一个RDF知识数据库搜索RDF数据。
输入问题的最终答案的步骤包括:基于一个或多个预定义的试探规则对一个
或多个候选答案排名。
19.一种在其上存储了程序代码的非瞬时性计算机可读介质,该程序代
接收输入问题;
使用不同的搜索策略从多种类型的知识数据库搜索多种类型的数据,以
评价一个或多个候选答案以生成对输入问题的最终答案。
20.一种系统,包括:
非瞬时性存储设备,用于存储计算机可读程序代码;及
与存储设备通信的处理器,利用计算机可读程序代码来操作处理器以:
接收输入问题;
使用不同的搜索策略从多种类型的知识数据库搜索多种类型的数
评价一个或多个候选答案以生成对输入问题的最终答案。
据,以生成对输入问题的一个或多个候选答案;以及
生成对输入问题的一个或多个候选答案;以及
码可由计算机执行以:
说 明 书
技术领域
本公开总体涉及信息检索,并且更具体地,涉及一种问题回答框架。
背景技术
科学和技术的快速发展导致了发布信息量的快速增加。已设计问题回答
这样的QA系统中的主要难题之一是在各种各样的搜索结果中提供相关
的回答。搜索引擎常常返回与问题不相关的大量搜索结果,使得用户困惑并
被淹没在无数结果中。甚至排在顶上的(top ranked)搜索结果也可
本身不相关。在问题较短并且包括具有极其类似于其它不同话
容(诸如电影名或者流行歌曲的歌词)的拼写的常用字
遍。
(QA)系统来访问并搜索这样的信息以自动回答人们用自然语言提出的问
题。
能与问题
题的名称或内
的情况下,这尤其普
存在两种检索不相关的回答的常见原因。第一,问题解析和文本分析中
此外,在领域特定的QA系统中,答案会受到限制。大部分QA系统仅
支持某种领域,并且不支持对知识库的广泛集合的访问。通常,对于具有来
自非支持领域的答案的问题,不提供答案。即使可以找到答案,它们
不是用户可理解的。大多数情况下,答案可能很长,具有很多
绍、参考、相关话题等等,使得用户,尤其学龄儿童难
的低精确度可能导致不相关。换言之,QA系统可能没有正确地解释输入问
题的意思。QA系统的答案寻找能力的低精确度也可能导致答案中的不相关。
也可能
定义、原理介
以快速理解。
甚至还有,传统QA系统的性能一般是令人不满意的。为了正解地解释
因此,需要一种解决上述难题的改进的框架。
发明内容
在此描述了一种便于问题-回答的计算机实现的技术。根据技术的一方
面,首先接收到输入问题。使用不同的搜索策略来从多种类型的知识数据库
搜索多种类型的数据,以生成对输入问题的一个或多个候选答案。评
或多个候选答案以生成对输入问题的最终答案。
人类语言并且从大量知识库提取答案,QA系统通常采用计算昂贵并且常常
导致慢检索时间和低精度的广泛数据搜索和深度数据挖掘。
价一个
根据另一方面,首先接收到输入问题。然后该技术确定可供搜索的一种
或多种类型的知识数据库。如果问题-答案配对知识数据库可用,则搜索来
自问题-答案配对知识数据库的知识-答案配对数据,以确定对输入问题的第
一候选答案。如果纯文本知识数据库可用,则搜索来自纯文本知识数据库的
纯文本数据,以确定对输入问题的第二候选答案。如果资源描述框架
知识数据库可用,则搜索来自RDF知识数据库的RDF数据,
问题的第三候选答案。然后可以评价第一、第二或第三
输入问题的最终答案。
(RDF)
以确定对输入
候选答案,以生成对
与在下文中将变得明显的这些和其它优点和特征一起,通过参考下面的
附图说明
详细描述和所附权利要求以及参照附图,可以获得进一步的信息。
在附图中示出一些实施例,在附图中相似的参考数字指定相似的部分,
图1是示出示范性系统的框图;
图2是示出示范性架构的框图;
图3示出示范性问题-回答方法;
图4示出将种类和子种类映射到相应的答案类型的示范性表格;
图5a示出包含问题-答案配对数据的示范性表格;
图5b示出包含全文搜索结果的示范性表格;
图6示出示范性n元模型;
图7示出在作记号之后从长段落导出的多个基本单元;
图8示出包含用于“谁”问题的问题和答案模板的示范性查询表;以及
图9示出示范性资源描述框架数据。
具体实施方式
在下面的描述中,为了说明,阐述特定的数字、材料和配置,以便提供
对本框架和方法的彻底理解,并且以便满足法定的撰写描述、启动
(enablement)和最佳实施例的要求。然而,对一位本领域技术人员来说显
其中:
然,可以没有特定示范性细节而实践本框架和方法。在其它情况下,省略或
简化公知特征以阐明本框架和方法的示范性实现的描述,并且从而更
释本框架和方法。此外,为便于理解,将某些方法步骤描绘为
然而,这些单独描绘的步骤不应该被认为是依赖于它们
好地解
单独的步骤;
的性能的必须次序。
在此描述用于促进问题-回答的技术。技术的一方面提供了一种支持多
据
种类型的知识数据库的问题-回答(QA)框架。知识数据库一般指的是可以
收集、组织、共享和/或使用信息的信息储存库。例如,不同类型的知识数
库包括公式化问题-回答配对知识数据库、纯文本知识数据库和资源
架(RDF)知识数据库,这些将在下面的描述中更详细地描述。描述框
本技术的一方面实现了一种用于每种类型知识数据库的不同的搜索策
略。可以结合不同的搜索策略来支持多种类型的知识数据库中的查询,并且
响应于该查询提供最相关的答案。这允许用户组合知识数据库,而不
合并来自不同类型的知识数据库的数据。使用这样扩展的知识
用户可以建立尤其对于特定的领域范围提高答案寻找速
统。
用非得
数据库支持,
率的全面的知识系
本技术的另一方面提供了一种具有提高的问题识别和答案提取精度的、
用于问题配对和答案聚集的改进的方法。使用存储器中技术、并行计算和内
置文本分析功能,可以以对用户可接受的高精度和速度来处理更多数
有使用这种强大的计算能力,多数据源和无限的领域才是可行
描述中将更详细地描述这些和其它优点和方面。
据。只
的。在下面的
在此描述的框架可以被实现为一种方法、计算机控制装置、计算机处理、
计算系统,或者作为诸如计算机可用介质的一件制造产品。从下面的描述中
这些和各种其它特征将是明显的。
图1示出图解可以用来实现在此描述的框架的示范性系统100的框图。
系统100可以包括通信地耦接到输入设备102(例如,键盘、触摸板、麦克
风、相机等)和输出设备104(例如,显示设备、监视器、打印机、扬声器
等)的计算机系统106。计算机系统106还可以包括通信卡或设备116(例
如,调制解调器和/或网络适配器),用于使用通信链路130(例如,电话
无线网络链路、有线网络链路或线缆网络)
可以是局域网(LAN)或者广域网
132通信地耦接到一个或多
可以充当服务器,并且使用
络环境中操作。客户端计算
并且可以是台式计算机、移
设备等等的形式。
线、
与网络132交换数据。网络132
(WAN)。计算机系统106可以经由网络
个其它计算机系统154。例如,计算机系统106
到一个或多个客户端计算机150的逻辑连接在网
机150可以包括类似于计算机系统106的部件,
动设备、平板计算机、通信设备、基于浏览器的
计算机系统106包括中央处理单元(CPU)114、输入/输出(I/O)单元
110和存储模块112。诸如高速缓存、电源、时钟电路和通信总线的其它支
持电路也可以被包括在计算机系统106中。此外,任何上述都可以通过专用
集成电路实现,或者被并入其中。计算机系统106的例子包括手持设备、移
动设备、个人数字助理(PDA)、工作站、服务器、便携式膝上型计算机、
另一种便携式设备、迷你计算机、大型计算机、存储系统、专门数字
设备、部件、其它装备或者这些能够以定义的方式响应并执行
合。
应用、
指令的某种组
存储模块112可以是任何形式的非瞬时性计算机可读介质,包括但不限
于:动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可
擦 除可编程只读存储器(EPROM)、电可擦除可编程只读存储器
闪存设备、磁盘、内部硬盘、可移除磁盘、磁光盘、光
(CD-ROM)、任何其它易失性或非易失性存储器或
(EEPROM)、
盘只读存储器
者其组合。
存储模块112用来存储机器可执行的指令、数据和用于实现在此描述的
技术的各种软件部件,所有这些都可以通过CPU114来处理。因而,计算机
系统106是当执行机器可执行指令时成为专用计算机系统的通用计算机系
统。可替换地,在此描述的各种技术可以被实现为经由应用服务器120和/
或数据服务器125执行的软件产品的一部分。如果需要,每个计算机程序可
以用高级过程的或面向对象的编程语言(例如C、C++、Java、来自的高级
业务应用编程(ABAPTM)、结构化查询语言(SQL)等等),或者
用 汇编或机器语言来实现。该语言可以是编译的或解释的语言。不是意
器可执行指令限于任何特定的编程语言及其实现。将理解各种
代码可以用来实现在此包含的本公开的教导。
在将机
编程语言及其
在一个实现中,计算机系统106的存储模块112包括应用服务器(或堆
栈)120和数据服务器(或堆栈)125。应用服务器(或堆栈)120可以存储
QA框架122,其可以使用诸如Java、C++、ABAPTM等的高级
码。其它类型的编程语言也是有用的。QA框架122可
诸如问题解析、答案检索和排名、答案汇编等等
理功能的QA框架的一组函数模块或程序。
它示范性函数的更多细节。
编程语言来编
以包括被设计为执行
的各种数据收集和/或QA处
将在下面的描述中提供这些和其
数据服务器(或堆栈)125可以包括数据库管理系统(DBMS)126和
数据库129。可以使用诸如SQL或其扩展的数据库查询语言来编码DBMS
126。其它类型的编程语言也是有用的。DBMS126可以包括用于定义、管
理和处理数据库129的一组程序、函数或过程(例如,HANA自定义过
程)。 更具体地,DBMS126可以包括索引服务器127和预处理服务
服务器127提供用于存储和检索与存储在数据库129中的信息
据(例如,索引)的数据库功能,而预处理服务器128
引服务器127索引的文档。将在下面的描述中提
更多细节。
器128。索引
关联的查询数
可以用来分析要被索
供这些和其它示范性功能的
在客户端计算机150处的用户可以与用户接口152交互,以经由应用服
性
务器120和DBMS126与数据库129通信。在一个实现中,数据库129是主
要依靠用于有效的计算机数据存储的系统主存储器的内存数据库
(in-memory database)。更具体地,内存数据库中的数据可以存在于易失
存储器中而不是永久地存储在硬盘驱动上,从而允许以几兆字节每毫
度即时访问和扫描数据。内存数据库129允许无缝访问并实时
数据。通过使用多核处理器114结合内存数据库129,
处理。内存数据库技术包括诸如SAP的HANA
算引擎的系统。
秒的速
传输高容量的
可以进一步实现并行
(高性能分析应用)内存计
在内存数据库129中可以进一步实现基于列的数据存储,其中在压缩的
存储块中依次并作为数据列来存储数据表。当在单列上执行计算时,这可以
便于数据的更快聚合(aggregation)。可替换地,基于行的数据存储
的。在一些实现中,代替更新整行,将仅更新改变的字段。这
期间不得不锁定整个数据表以防止对一组数据的冲突修
行化,这对直播数据
说很重要。
也是可能
避免了在更新
改。可以实现高级并
流的实时处理以及执行恒定的并且基本上同时的更新来
应该理解,计算机系统106的不同部件和子部件可以位于不同机器或系
统上。例如,可以在不同的物理机器或计算机系统上实现应用服务器120和
数据服务器125。还应该理解,客户端计算机150的不同部件也可以位于计
算机系统106上,反之亦然。
图2示出系统100的示范性结构200。应该注意到,在下面的讨论中将
如所示,客户端设备(150a至150n)与QA框架122通信以提供一个
或多个输入问题,并从QA框架122接收对输入问题的响应。输入问题可以
用自然语言表达,并且以语句或寻找合适的问题的答案的形式来提供。客户
端设备(150a至150n)和QA框架122可以通过使用web服务的网
通信。Web服务可以实现各种web技术,包括基于代表性状
的接口、基于远程过程调用(RPC)的技术、基于简单
的技术、基于面向服务架构(SOA)的技术等
使用相似的标号来指代在图1中描述的特征。在一些实现中,QA框架和
DBMS(122、126)可以包括比在图2中示出的那些更少或多很多的部件。
络彼此
态传输(REST)
对象访问协议(SOAP)
等。
响应于由一个或多个客户端设备150a-n提供的问题,QA框架122可以
202
自动生成一个或多个答案。在一些实现中,QA框架122包括数据收集器
和QA处理器203。数据收集器202可以用来从一个或多个不同的知
库(205a至205n)检索信息,用于生成答案。在一个实现中,
202通过自动从知识数据库(205a至205n)下载数据集、解
为适合于在数据库129中存储的本地格式,来检索数据。
预定的时间间隔定期地执行下载。另外,或替换地,数
括被配置为自动地直接从一个或多个知识数据库(205a
索相关信息的爬虫(crawler)、蜘蛛(spider)、机器
至还有,数据收集器202可以直接从数据库129
识数据
数据收集器
析并将数据转换
可以按需求或者以
据收集器202可以包
至205n)发现和检
人或其它类似应用。甚
检索先前存储的信息。
知识数据库(KB)(205a至205n)可以提供不同格式的信息。知识数
据库可以是结构化、半结构化或非结构化的。第一示范性类型的知识数据库
提供了公式化或准备的问题-答案对的结构化集合。这样的问题-答案
知识数据库包括但不限于雅虎问答(Yahoo!Answers)、维
(WikiAnswer)和百度知道。
配对的
基问答
第二示范性类型的知识数据库提供包括纯文本段落的半结构化或非结
构化的自然语言文档集。这样的纯文本知识数据库可以包括但不限于可以搜
索或爬虫内容的公共或专用数据库或知识库、内部网、因特网、网页
新闻网站、基于域的网站、维基百科等)。在一些实现中,数
从纯文本知识数据库检索纯文本,并且在将它存储在数据库
理纯文本。可以通过例如使用训练模型对它分类来预处
(例如,
据收集器202
129中之前预处
理纯文本。
第三示范性类型的知识数据库以资源描述框架(RDF)格式存储基于事
例如RDF知识数据库包括YAGO和DBPedia。YAGO从维基百科
(Wikipedia)、词网(WordNet)和GeoNames提取数据。更具体地,
建立在维基百科的信息框和分类页上。信息框是包含关于文中描述的
的基本信息的标准化表。例如,存在用于国家的信息框,其包括国家
名称、它的首都和它的大小。相对于自然语言文本,解析和利
容易得多。RDF还可以表达实体、事实、事实间的关
实的信息。RDF是用于在Web上的数据交换的标准数据模型。它由万维网
联盟(W3C)发布,并且一般用来概念性地描述或模型化(model)在web
资源中实现的信息。RDF语句集本征地表示标记的、直接的(directed)多
图。因而,基于RDF的数据模型自然地适合于某些类型的知识表达。实际
上,RDF数据常常固执于关系数据库或原本表示(也称为三重存储(Triple
stores))。
YAGO
实体
的本国
用信息框可能
系和关系属性。用RDF 三重存储格式表示YAGO中的事实,并且可以
来查询。 使用SQL和/或SPARQL语言
QA处理器203用来自动处理通过QA框架122接收的输入问题,并且
问题解析器204分析问题以识别一个或多个与问题关联的属性。这样的
属性可以包括但不限于问题类型、用户期待的答案类型、关键词、关键词的
搜索焦点等等。另外,问题解析器204通过使用预定的模板,可以将
题转换为基于所识别的属性的数据库查询语句(例如,用
向在DBMS126中的查询语言处理器210发送查询语句,
129中的数据。
响应于问题生成一个或多个答案。在一个实现中,QA处理器203进一步包
括问题解析器204、答案检索和排名单元206和答案汇编器208。
输入问
SQL)。然后可以
以访问在数据库
答案检索和排名单元206执行或调用检索对输入问题的一个或多个候选
答案的搜索函数。例如,搜索函数可以是由DBMS126提供的全文搜索函数。
答案检索和排名单元206可以基于预定义的评价法则进一步生成用于
选答案的信用点或分。然后可以使用信用点或分来对候选答案
序。答案汇编器208可以用来从候选答案中识别最合适的答案,
内容中提取相关的答案段,和/或构造答案文本。在下面的段
描述这些和其它示范性特征。
每个候
排名和/或排
从整个文本
落中将更详细地
QA框架122通信地耦接到DBMS126,DBMS126包括索引服务器127
和预处理服务器128。索引服务器127一般包括实际的数据和用于处理数据
的引擎。它也可以调整并使用其它服务器。索引服务器127可以包括查询语
言处理器210和搜索模块212。搜索模块212可以进一步包括数据存储优化
器和执行控制器214、数据存储操作器216和文本搜索引擎220。
为搜索存储在数据库129中的数据,可以调用查询语句(例如,SQL)
210
或全文搜索。如果从问题解析器204接收到查询语句,则查询语言处理器
检查查询语句的语法和语义,并且生成逻辑执行计划。数据存储优化
行控制器214从查询语言处理器210接收逻辑执行计划作为输
优化的物理执行计划。数据存储优化器和执行控制器
存储操作器216来执行优化的物理执行计划以访
存数据218。
器和执
入,并且生成
214然后通过调用数据
问存储在数据库129中的内
在一些实现中,为提高搜索的性能,可以用DBMS126平衡存储器中计
且
算。数据收集器202可以从知识数据库(205a-205n)下载原始的文档,并
将它们存储为数据库129中的内存数据218。内存数据218可以是基
这可以比传统的行存储数据库更有效。替换地,基于行的内存
有用的。
于列的,
数据218也是
文本搜索引擎220提供允许运行全文查询的全文(或文档)索引和搜索
能力。全文查询可以包括简单的词语和短语,或者多种形式的词语或短语。
在一个实现中,文本搜索引擎220通过建立一个或多个全文索引224
记录的定位,来加速查询执行。预处理服务器128中的文档分
将在来自知识数据库(205a至205n)的原始文档中的句子或
独的词语,用于文本搜索引擎220建立全文索引224。
些语言(例如,中文、日文、韩文等)的情况中,
在中文中,句
明”之间没有
以便于
析器228可以
段落分割成单
在基于表意字符的某
词语之间没有空格。例如,
子“他的名字叫姚明”,在词语“他的”、“名字”、“叫”、“姚
空格。文档分析器228可以提供机制以识别这样的词语。
响应于全文查询,文本搜索引擎220可以在全文索引224中对于文本数
据222执行全文搜索以返回搜索结果226。搜索可以包括对于词语和短语的
精确搜索、容许打字错误的模糊搜索以及基于特定语言(例如,英语)的语
言规则查找词语的变形的语言学搜索。搜索结果226可以包括通过搜
的、包含至少一处匹配(也称为命中)的任何文档。当目标文
查询中指定的所有术语,并且满足诸如术语之间的最小
测量)的其它搜索条件时,匹配发生。
索返回
档包含在全文
匹配距离(或相似性
图3示出示范性QA方法300。方法300可以通过如先前参照图1和2
用
在302,QA处理器203接收输入问题。问题的类型可以包括但不限于
事实、列表、定义、如何、为什么或者假设的问题。问题还可以是封闭领域
(即,在特定领域下),或者开放领域(即,关于几乎任何事)。此
可以是多面的。例如,问题“SAP代表什么?”可以被解释为关
题。替换地,它也可以被解释为缩写问题。
描述的系统100和/或结构200来实现。应该注意到,在下面的讨论中将使
相似的标号来参考在图1和2中描述的特征。
外,问题
于事实的问
在304,问题解析器204在将查询传递到DBMS126之前处理输入问题
以识别与问题关联的属性。在一个实现中,问题解析器204包括或从用于解
析自然语言输入问题的自然语言处理(NLP)库调用函数。还可以使用
来从知识数据库(205a-205n)解析文档内容,并提取更详细的语义
息。
NLP
和语言信
可以将输入问题或文档内容解析成一组语言的区分,包括但不限于:区分
为词类(POS)、句子、命名实体、文本记号、文档类别、字块、句子结构、
词依赖等等。例如,词类(POS)标记是确定句子中的词语是介词、
是任何其它词类的主机NLP功能。记号化一般指的是将句子
(例如,词语、标点符号、数字等)。文本分块一般指的是将
法上相关的词组,诸如名词组、动词组等等。这样的文
原始句子中的内部结构或它们的作用。命名实体一般指
名词还
分割成“记号”
文本划分为句
本“块”通常不指定
的是具有预定义类别 的基本元素,诸如人、组织、位置的名称,时间、
的表示等等。 数量、货币价值、百分比
问题解析器204可以使用提取的NLP区分来导出与输入问题关联的更
高级属性。这样的属性可以包括但不限于问题种类(例如,“什么”、“哪些”、
“何时”、“哪里”、“谁”、“为什么”等等),问题子种类、期待的答案
(例如,关于位置、人、日期、金钱等)、焦点、关键词等等。可以
题属性来识别输入问题的关键词用于执行全文搜索和找到最相
类型
使用问
关的段落。
更具体地,问题解析器204可以基于NLP区分,通过使用描述某种问
题种类的预定义模板来导出问题种类。例如,“什么”问题可以以“什么”
开始,或者有时候在问题的开头包含“什么”。因此,用于“什么”种类的
模板可以被预定义为:记号值是“什么”&&组类型是
是“WP”,其中NP表示“专有名词”并且WP表示
为了识别问题种类,可以实现多层环(例如,两
如,问题解析器204可以首先扫描句子以
组不能识别问题种类,则问题解析
多个记号。如果记号匹配某种预定
类。
“NP”&&标记类型
“wh(疑问)-代名词”。
层环)来解析输入句子。例
识别一个或多个块组。如果基于块
器204可以进一步扫描句子以识别一个或
义的模板,则相应地确定并保存对应的种
为了说明,假设输入问题是“What is Microsoft Office?(微软Office是
么?)”。块组标识符可能如下标记该问题:“What(什么)|is(是)|
什
Microsoft Office(微软Office)?”。换言之,将“What”、“is”和“Microsoft
Office”识别为具有相应类型[WP]、[VBZ]和[NP]并且它的两个孩子都是
的块组。如果这些块组类型与预定义的问题种类关联,那么相应地识
种类。例如,可以将该问题种类识别为由问题词“什么”所定义
种类,它的记号类型是[WP],并且问题的目标组类型是[NP]。
[NNP]
别问题
的“什么”
如果块组不匹 配任何预定义的模板,则可以将该问题作记号为
中[VBZ]表示动词,第三人称单数呈现并
[WP][VBZ][NNP][NNP],其
且[NNP]表示专用名词,单数。
一旦确定问题种类,就可以检查名称实体列表,看是否有任何名称实体
匹配第一[NN]记号类型,其中NN表示名词,单数或复数。如果找到匹配,
则直接从列表中选择匹配名称实体作为焦点。如果没找到匹配,可以
码级检查来确定子种类。更具体地,可以使用一个或多个预定
确定子种类。例如,种类“首都”、“城市”、“国家”等属
因此,在问题“What city is the largest one in China?(什
城市?)”中,可以
(位置)”。
执行代
义的关键词来
于子种类“位置”。
么城市是中国最大的
使用预定义关键词“city(城市)”来确定子种类“location
可以基于输入问题识别的另一属性是期待的答案类型。答案类型一般指
图4示出将种类和子种类映射到相应答案类型的示范性预定表400。例
如,如果问题子种类是“什么-谁”,那么答案类型可以是“人”或者“组织”。
为了确定答案类型,问题解析器204可以使用包含某一类别(例如,人、组
织、位置等)的所有相关信息、描述和定义的训练数据集合来训练分类器。
训练集合可以包括已知的问题和答案类型对。然后分类器基于输入问
问题种类词(例如,“什么”或“哪些”)之后的第一个名词短语
类型。
的是响应于输入问题的、用户或应用期待的答案类型。在一些实现中,将输
入问题种类和/或子种类映射到在预定义表中的相应答案类型。
题中在
来识别答案
例如,根据先前的规则,问题解析器204只能知道问题“什么公司是世
界上最大的?”和“什么企业是世界上最富的?”是完全的“什么-谁”问
题。可以使用在问题词“什么”之后的第一个名词(例如,“公司”和“企
业”)来识别答案类型。因为人工创建覆盖所有情况的规则不容易,所以可
以使用现有的训练数据集合作为用于进一步确定问题类型的参考。
基于输入问题还可以识别的另一属性是“焦点”。“焦点”一般指的是定
问题在寻找什么的词语序列。例如,在问题“中国的首都是什么?”
题解析器204理解该问题在问“位置”。然而,问题种类“位置”可
义输入
中,问
能太宽
是首都
问题种
了,将搜索变窄到聚焦在“首都”上可能有帮助。这意味着答案应该
的名称(或城市名称)。问题解析器204可以通过从输入问题提取在
类词之后的第一个名词(例如,首都)来识别焦点。
基于输入问题还可以识别的另一属性是“关键词”。输入问题可以包括
多个关键词,其提供输入问题的背景并且可以显著地影响搜索结果。
一个或
关键词可以包括焦点,虽然不是在所有情况中都必须如此。识别输入问题的
关键词可能是重要的,使得可以执行搜索以找到与问题相关的段落。
别关键词,可以使用下面的试探点(heuristics)有序集: 为了识
试探点1:引用语的所有直达(non-stop)词是关键词;
试探点2:所有名称实体是关键词;
试探点3:所有的复杂名词与它们的形容词修饰(如果有)是关键词;
试探点4:所有的名词与它们的形容词修饰(如果有)是关键词;
试探点5:所有动词都是关键词;以及
试探点6:焦点是关键词。
在运行时间期间,问题解析器204根据所示的试探点次序处理每个试探
点来提取一个或多个关键词。例如,可以在试探点2之前处理试探点1,在
试探点3之前处理试探点2,等等。应该理解,还可以应用其它类型的试探
点或者其它试探点次序。在一个实现中,问题解析器204仅考虑基于前4个
试探点提取的关键词;仅当需要更多关键词来识别答案时才可能考虑基于最
后2个试探点提取的关键词。可替换地,如果使用任何提取的关键词
找到答案,则可以在接下来几次搜索迭代中按将它们输入所用
来丢弃关键词,以便放宽搜索标准。
都不能
的相反的次序
返回图3,在306,QA处理器203识别可用于向QA框架122提供数据
的知识数据库(KB)的类型。如之前所讨论,KB可以是问题-答案配对KB、
纯文本KB、RDF KB和/或任何其它类型的KB。可以下载并在数据
中存储来自不同类型的KB的数据,或者使用例如在数据收集器202
虫应用来直接从KB检索该数据。可以在配置文件中存储可用
对于来自不同类型的知识数据库的不同类型数据,可以实现不
略。应该理解,多于一种类型的知识数据库可能可用。通过支
知识数据库,本技术使用扩展的知识数据库集能够提供
率。
库129
中的爬
KB的类型。
同的搜索策
持不同类型的
较高的答案寻找速
在一个实现中,在306,QA处理器203确定问题-答案配对KB是可用
的。在308,答案检索和排名单元206通过DBMS126调用全文搜索以生成
搜索结果226。图5a示出包含来自问题-答案配对KB的示范性问题-答案配
对数据的表502。表502可以从问题-答案配对KB下载,并且存储在例如数
据库129中。如所示,表502的每行存储了一对问题(或标题)和答案(或
内容)。为便于搜索,基于表示问题和答案内容的列“标题”和“内容”,可
以生成两个全文索引224。
答案检索和排名单元206通过基于一个或多个问题属性(例如,焦点、
关键词等)而生成查询语句(例如,SQL),并向用于处理和执行的
的查询语言处理器210发送查询语句,可以调用问题-答案配
搜索。可以基于全文索引224,而不是原始表来执行全
DBMS126
对数据的全文
文搜索。
例如,示范性SQL语句可以如下:
SELECT*,SCORE()as RANK from"QUESTIONS"where CONTAINS
其中表达“CONTAINS()”通过文本搜索引擎220调用全文搜索函数,
“表达FUZZY()”指示容错率。最初可以将容错率设置为0.8,然后如
进行调整以改善搜索结果。表达SCORE()指示对于容错搜索算法的
最小匹配分数。
图5b示出包含示范性全文搜索结果的表512。如所示,在表512中返回
与输入问题有关的一组问题(标题),及对应的答案(内容)、语言
和答案源(URL)。在搜索结果中还可以提供其它类型的信息。
并且
果需要,
期望的
((TITLE,CONTENT),'why is the ocean blue',FUZZY(0.8))order by RANK
DESC;
(LANG)
如先前讨论,全文搜索可以提供对于问题文本的用户输入的容错。这允
许搜索包含排字错误,并且通过返回更可能的搜索结果来改善搜索质量。在
一个实现中,使用n元匹配算法来提供模糊全文搜索。图6示出示范
模型602。对于每个串604,可以生成一组n元606。通过将输入串
数据串的n元匹配,可以执行模糊搜索。例如,假设输入串是
数据串是“gans”和“haas”,在“hans”和“gans”之间的模糊匹配分
性n元
的n元与
“hans”并且
是63%
匹配分608
(即,7个中5个n元匹配),而在“hans”和“haas”之间的模糊
也是63%。如果期望的最小匹配分低于63%,则返回数据串
作为搜索结果。 “hans”和“haas”
返回图3,在309,答案检索和排名单元206对搜索结果226排名以确
在某种实现中,向每个候选问题-答案对分配模糊分数。可以通过在输
入问题和候选问题之间确定相似度测量来计算模糊分数。通过比较在输入问
题和每个候选问题中的词语来确定相似度测量。例如,如果输入问题
“Who is Bill Gates?(比尔盖茨是谁?)”并且候选问题包含准确的相
则模糊分数是1.0。但是,如果候选问题是
尔羡茨的女儿是谁?)”,则模糊分数可
定最相关的候选答案。搜索结果226可以包括与输入问题有关的一组候选问
题-答案对。答案检索和排名单元206可以通过向每个候选问题-答案对分配
分数来对搜索结果226进行排名。基于分数识别最相关的问题,并且返回相
应答案作为候选答案。
是:
同词语,
“Who is Bill Gate’s daughter?(比
以计算如下:
分数=Common_Word_Count(共同词计数)
=4/(SQRT(4)*SQRT(5))=0.894-----------(1)
在306,QA处理器203可以确定纯文本KB可用。在310,在来自纯文
本KB的纯文本数据上执行搜索。问题解析器204可以基于与输入问题关联
的搜索术语(例如,关键词、焦点等)的挖掘设置,来构造查询语句。然后
向查询语言处理器210发送查询语句用于处理,并且调用搜索以生成
/(SQRT(Word_Count_of_Input_Question(输入问题的词计数))*
SQRT(Word_Count_of_Candidate_Question(候选问题的词计数)))
搜索结
果。可以返回候选纯文本段落作为搜索结果。
答案检索和排名单元206可以通过放宽或放窄搜索标准来迭代地改进搜
索,直到搜索结果的数目满足预指定的门限。通过扩展搜索术语的挖掘设置
(即,合并)可以放宽搜索。可以使用同义词词典(例如,WordNet)
挖掘设置添加提取的问题属性(例如,焦点、关键词等)的同义词。
来向
例如,输入问题可以如下:“谁是托马斯·杰佛森高中的校长?”。关键词
可以是“校长”、“托马斯”、“杰佛森”、“高中”,并且焦点可以是“校长”。
答案检索和排名单元206可以使用扩展的关键词来执行搜索。例如,通过如
先前描述将原始的关键词(或关键词的主干)映射到同义词来获得扩展的关
键词。例如,如果关键词是“高中”,则可以向挖掘设置添加同义词
挖掘设置可以包括如下: “高级”,
(高&中)|(高级&高&中)|(高级&高)|高|高中
在上述搜索术语的挖掘设置中,可能认为词语“高”在英语语言中太常
且独立或组合到其它短语中可以表示与原始的关键词“高中”完全不
思。可以从挖掘设置中移除这样的常用词语,以产生更精确的搜索结
另一种扩展搜索术语的挖掘设置以放宽查询的方法是经由取主干
基
用,并
同的意
果。为了识别常用词,答案检索和排名单元206可以执行查找预定义的常用
词列表。
(stemming)。“取主干”一般指的是用于减少对它们的主干、基本或根形式
的改变的(或有时候导出的)词语的过程。例如,用于英语的取主干器可以
基于根“猫”识别串“猫们”(可能还用“像猫的”、“似猫的”等),并且
于“主干”识别“取主干器”、“取主干”、“取主干的”。一旦确定关键词
的
主干,就可以向搜索术语的挖掘设置添加主干的变形以放宽查询。
在311,答案检索和排名单元206对搜索结果226排名以确定最相关的
候选答案。搜索结果226可以包括一组纯文本候选段落。候选段落的数目可
以很大,尤其是当输入问题的关键词是常用的或普通的词语时。答案检索和
排名单元206可以通过向每个候选段落分配分数来对候选段落排名。
于分数识别与输入问题最相关的候选段落,并作为候选答案将
相关的候选段落返回。
可以基
与输入问题最
在一个实现中,分数包括术语频率-反文档频率(TF-IDF)分数。通过
计算为候选段落和输入问题两者所共有的词语(或词语的同义词)的数目,
来计算TF-IDF分数。例如,如果候选段落与输入问题共享同一个共
则可以分配2点。如果候选段落与输入问题共享同一个同义词,
1点。如果没有共有的词语或同义词,则不能分配点数。可以
用于候选段落的最终分数:
有词语,
则可以分配
通过如下获得
最终分数=总分数/(不同词语的数目)----(2)
应该注意到,也可以实现其它类型的计分技术。
在某些情况下,原始候选段落的文本可能太长而因此作为候选答案不合
适。在计算分数和对这样的候选段落排名之前,答案检索和排名单元206可
以将候选段落的长文本分割成更小片段的文本。在一个实现中,使用由知识
数据库提供的元数据中的分层信息来拆分搜索结果文本。例如,来自
科的原始网页在元数据中包含每个段落的分层信息,其可以用
也可以使用诸如字体大小和缩排格式的其它信息来导出
维基百
来分割文本。
分层并且分割文本。
在一些实现中,尤其是其中没有可用于分割的信息时,使用作记号方法
图7示出在作记号之后从长段落导出的多个基本单元702a-d。连续的基
本单元(702a、702b、702c或702d)之间的每个点是长段落的可能断点。
为了确定断点在哪儿,通过比较连续的基本单元之间的相似度分数,检测主
题偏移。相似度分数测量在基本单元之间共享的共有词语和同义词的
低相似度指示可能的主题偏移。例如,参照图7,可以在第一
和第二基本单元702b之间计算第一相似度分数(分数
单元702b和第三基
第三基本单元
因为第
的,从
的断点
来分割文本。通过移除非用词(stop word)并且使用其余词作为基本单元,
可以对原始文本作记号。“非用词”一般指的是在处理自然语言文本之前或
之后过滤的词语。例如,“该”、“是”等是可以被认为是作为非用词的很常
用的词语。
数目。
基本单元702a
1);可以在第二基本
本单元702c之间计算第二相似度分数(分数2);可以在
702c和第四基本单元702d之间计算第三相似度分数(分数3)。
三和第四基本单元(702c-d)是最不相似的,所以分数3可能是最低
而指示可能的主题偏移。因此在第三和第四基本单元(702c-d)之间
706处可以将长段分成2个片段。
参照回图3,在312,答案汇编器208基于最相关的候选段落构造候选
图8示出包含用于“谁”问题的问题和答案模板的示范性预定义查询表
参照表800,例如,“谁是苹果的CEO?”的输入问题可以与问题模板
答案。存在很多方式传递同一个答案。在一个实现中,答案汇编器208确定
输入问题的模板,并且将问题模板映射到答案模板。然后可以根据答案模板
来汇编候选答案。
800。
“谁是
<实体>的<角色>”关联。通过使用查询表800,答案汇编器208将问
签
题模板映射到答案模板“<人>”。然后通过使用答案“蒂姆·库克”替代标
<人>,可以根据答案模板来汇编答案。对于诸如“什么”、“谁”、
“哪里”、“何时”、“哪些”、“为什么”等等的不同问题种类和子
预定义类似的查询表。
“如何”、
种类,可以
有时,最相关段落中的细节级可能太高,并且需要被进一步减少以产生
“沃尔夫冈·阿玛迪斯·莫扎特何时诞生?”
答案检索和排名单元206可以返回下面的段落:
“沃尔夫冈·阿玛迪斯·莫扎特在萨尔茨堡Getreidegasse9号诞生于1756
27日,利奥波德·莫扎特(1719-1787)和安娜·玛丽亚,娘家姓Pertl
为了实现更高的精度,答案汇编器208可以提取“1756年1月27日”
选答案。
应该理解,不是所有的段落都可以精炼或缩短。例如,诸如“天空为什
为了从段落提取候选答案,答案汇编器208可以采用机器学习框架。例
“沃尔夫冈·阿玛迪斯·莫扎特哪一年诞生?”
如,输入问题可以如下:
么是蓝的?”的事实问题可以产生下面的段落:“天空是蓝的是因为地球的
大气层散射来自太阳的光线。”没必要缩短这样的段落。可以返回整个段
落作为候选答案。
作为候
(1720-1778)。
年1月
更高的精度。例如,问题可以如下:
通过答案检索和排名单元206返回的最相关段落的原始文本可以如下:
沃尔夫冈·西奥菲勒斯·莫扎特(1756-1791)是多产的……
沃尔夫冈·阿玛迪斯·莫扎特于1756年在萨尔茨堡诞生……
沃尔夫冈·西奥菲勒斯·莫扎特(*1756在萨尔茨堡……
沃尔夫冈·阿玛迪斯·莫扎特(b.萨尔茨堡,1756;d.1791)
为了从段落中提取答案“1756”,可以使用包括已知的问题-答案对的训
在一些实现中,通过首先收集已知的问题和答案对集合来生成训练集
练集合来训练机器学习框架。
合。例如,问题“比尔盖茨何时诞生?”可以与已知答案“1955年10月28
日”配对。然后可以分析已知的问题和答案对集合来提取关键词(例如,“比
尔·盖茨”、“诞生”等)。可以经由例如搜索引擎来搜索因特网(例如,谷歌、
必应、雅虎等)或其它知识数据库,来收集与关键词关联的文档。可
不包括关键词的文档中的不必要句子。此外,可以对文档作记
的分析。可以从原始的文档中检索最长的匹配串以形成
以移除
号用于进一步
训练集合。
例如,可以收集下面的训练信息:“企业家比尔·盖茨于1955年10月28
日诞生于华盛顿西雅图”;“诞生于1955年10月28日华盛顿西雅图的比
茨是微软的创立者”;等等。基于所收集的信息,可以识别下面的答
(i)<姓名>诞生于<答案>;及(ii)诞生于<答案>
尔·盖
案模板:
的<姓名>。
在生成训练集合之后,可以从输入段落提取候选答案。为了说明的目的,
特
<
假设输入问题是:“沃尔夫冈·阿玛迪斯·莫扎特何时诞生?”。通过答案检索
和排名单元206返回的段落原始文本可能如下:“沃尔夫冈·阿玛迪斯·莫扎
诞生于1756年。”基于训练集合,输入问题类型可以对应于答案模板:
姓名>诞生于<答案>。因为段落匹配答案模板,所以可以提
作为候选答案。 取答案“1756年”
上述答案汇编机制具体适合于事实的和某些类型的问题。然而,应该理
解,不是所有类型的问题都可以通过上述答案汇编机制来处理。对于某些问
题类型,可能需要降级机制。例如,如果答案提取是困难的,则答案
208可以仅通过关键词搜索段落,并且仅返回搜索结果作为候
答案精度可能不高,但至少向最终用户提供了基本的相
汇编器
选答案。虽然
关信息。
返回参照图3,在306,QA处理器203可以确定RDF KB可用。在313,
答案检索和排名单元206通过DBMS126调用RDF搜索。可以通过提交由
用户使用SPARQL协议和RDF查询语言(SPARQL)构造的查询,来调用
RDF搜索。由W3C的RDF数据访问工作组对SPARQL标准化,并且
是W3C官方建议。SPARQL允许查询包括三重模式、与
(disjunction)、模式等。SPARQL还允许联合查询,
位置并且聚合来自分布的查询的结果。在通过查
前,将SPARQL查询翻译为SQL查询。
SPARQL
(conjunction)、或
其中将查询分布到多个
询语言处理器210的处理之
图9示出存储在RDF知识数据库中的示范性RDF格式数据。如所示,
将事实三重存储为“主语”、“谓语”和“宾语”。使用输入问题的关键词来
查询数据库129以找到最相关的段落。在一个例子中,输入问题可以如下:
“印度的首都是什么?”
在解析输入问题时,输入问题的关键词可以是“首都”和“印度”。可
如定义相应的问题类型、关键词、谓语等的列表格,在DBMS126中
定义的模式。通过使用预定义的模式,答案检索和排名单元206将输
直接翻译成SQL查询,以访问RDF知识数据库,如下:
Select object from Yago facts where subject=‘<印度>’and predicate=‘<
在另一例子中,输入问题可以如下:
“比尔·克林顿的女儿何时诞生?”
答案检索和排名单元206可以将输入问题翻译成访问RDF知识数据库
select distinct t, from Yago facts T1
inner join Yago facts T2on =t
inner join Yago facts T3on =t
where t='<Bill_Clinton>'and ate='<hasChild>'
and ate='<hasGender>'and ='<female>'
and ate='<wasBornOnDate>'
替换地,可以将上述输入问题翻译成更可读的SPARQL查询,如下:
的SQL查询,以检索比尔·克林顿的女儿的出生日期,如下:
有首都>’
以用例
存储预
入问题
Select ?d where {
s wasBornOnDate d.
s hasGender female.
Bill_Clinton hasChild ?s}
为便于查询公式化过程,可以实现SPARQL到SQL映射引擎。这允许
重
基于SQL的DBMS支持SPARQL查询。为了将关键词映射到SPARQL三
模式,可以首先检索与每个关键词有关的相关国际化资源标识符
段落之内的IRI是符合在RFC3987[IRI]中定义的语法的
括了统一资源标识符(URI)或统一资源定位符
URI或URL是IRI。
(IRI)。RDF
Unicode串。IRI概
(URL)。每个独立的(absolute)
接下来,基于检索的IRI向查询应用预配置的SPARQL三重模型模板。
可以基于YAGO事实(例如,像<hasGender(有性别)>、
首都)>等的谓语)的观察来配置一些SPARQL三
配置的模型的关键词,DBMS对主语和宾语列
YAGO事实表中检索大致匹配的IRI。然后在
<hasCapital(有
重模型模板。对于没有预
执行全文模糊搜索,以在
SPARQL查询中使用匹配IRI。
如上所述,为使能对主语和宾语列的全文搜索,可以首先在主语和宾语
select*,score()as rank from"yaofacts"where contains((subject,object),
'XXX_XXX',FUZZY(0.8))order by rank desc;
列上创建全文搜索索引。答案检索和排名单元206可以生成下面的SQL语
句来执行模糊搜索:
如果使用选择的SPARQL查询没有检索到答案,则可以使用降低的模糊
在获得搜索结果之后,将搜索结果数目(即计数)与预指定的门限比较。
语
如果搜索计数少于预指定的门限,则例如通过去除搜索术语和/或将搜索术
之间的逻辑运算符从AND(和)改变为OR(或),可以放宽搜索
如,原始的搜索标准可以如下:校长&托马斯&杰佛
标准扩展为如下:(校长|(学校校长)|(老师
级的高中))。
协同因素和/或减少的关键词数目来重复查询直到检索到一些答案。
标准。例
森&(高中)。可以将搜索
领导))&托马斯&杰佛森&((高中)|(高
相反地,如果搜索计数高于预指定的门限,则例如可以通过添加搜索术
使
语和/或将搜索术语之间的逻辑运算符从OR(或)改变为AND(和),来
搜索标准变窄。因此,可以返回合适数目的搜索结果(例如,文本段
落)。
回头参照图3,在314,答案检索和排名单元206对RDF搜索结果排名
以确定最相关的候选答案。答案检索和排名单元206可以通过向每个RDF
搜索结果分配模糊的分数或任何其它合适的分数,
可以基于分数识别最相关的问题,并且返回相应
来对RDF搜索结果排名。
的候选答案作为候选答案。
在316,QA处理器203确定是否存在任何其它类型的可用KB。如果存
在320,QA处理器203评价候选答案以找到要向用户返回的最终答案。
每种类型的知识数据库(例如,问题-答案配对KB、纯文本KB、RDF KB
在,则重复步骤306来确定什么类型的KB可用。应该理解,还可以并行执
行步骤308、310和/或313来获得搜索结果226。
等等)可以产生零个或一个候选答案。存在多种类型的知识数据库时,可能
存在多个候选答案。
因为比较从不同类型的知识数据库获得的候选答案不容易,所以QA处
理器203可以基于问题类型使用一个或多个预定义的试探规则来确定最终的
答案。在一些实现中,对所有候选答案排名以找到最终的最好的一个。排名
可以基于一个或多个预定义的试探规则。例如,如果从问题-答案配
索到候选答案并且它的SCORE()大于或等于80%,则将返回
终答案。这样的候选答案被认为是最精确的,从而被分
问题-答案对是人为定义的。其次,如果从问题-
选答案,则答案汇编器208确定输入问题是否是
回从RDF KB检索的候选答案作为最终
然地适合于事实的描述的结构数据,
题是诸如“什么是”、“谁是”等等的
到适合的候选答案,则返回从纯文
对KB检
候选答案作为最
配最高优先级,因为
答案配对KB没有检索到候
纯事实问题。如果是,则返
答案,如果可能的话。RDF数据是天
其一般被用来回答事实的问题。事实问
问题。其次,如果没有从RDF KB检索
本KB检索到的候选答案作为最终答案。
在某些情况下,QA处理器203可以确定所有候选答案都不够好,或者
可以通过记录在历史的问题与回答任务中来自最终用户的反馈,来改进
评价过程。在此情况下,用户可以为每个答案评级(rate)或输入排名分数。
QA过程203还可以允许最终用户纠正答案并且人工地回答问题。然
处理器203可以基于用户反馈改进它的问题-回答能力。
没有候选答案。在这种情况下,答案汇编器208可以向最终用户发送文本消
息,诸如“对不起,我不知道答案。”
后QA
虽然已经用对结构特征和/或方法步骤特定的语言描述了一个或多个上
述实现,但是要理解,没有所述的特定特征或步骤也可以实践其它实现。相
反地,公开特定特征和步骤作为一个或多个实现的优选形式。
2024年9月8日发(作者:房俊友)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.5
(22)申请日 2013.06.04
(71)申请人 SAP欧洲公司
地址 德国瓦尔多夫
(72)发明人 陈颖宇 董玢 申永源 魏正隆 刘晓伟
(74)专利代理机构 北京市柳沈律师事务所
代理人 邵亚丽
(51)
G06F17/30
权利要求说明书 说明书 幅图
(10)申请公布号 CN 104216913 A
(43)申请公布日 2014.12.17
(54)发明名称
问题回答框架
(57)摘要
在此描述的是一种便于自动的问题
回答的技术。在一个实现中,首先接收到
输入问题。可以使用不同的搜索策略来从
多种类型的知识数据库搜索多种类型的数
据,以生成对输入问题的一个或多个候选
答案。评价一个或多个候选答案以生成对
输入问题的最终答案。
法律状态
法律状态公告日
法律状态信息
法律状态
权 利 要 求 说 明 书
1.一种计算机实现的问题-回答方法,包括:
接收输入问题;
确定可用于搜索的一种或多种类型的知识数据库;
如果问题-答案配对的知识数据库可用,则从问题-答案配对的知识数据
如果纯文本知识数据库可用,则从纯文本知识数据库搜索纯文本数据,
如果资源描述框架RDF知识数据库可用,则从RDF知识数据库搜索
评价第一、第二或第三候选答案,以生成对输入问题的最终答案。
2.一种计算机实现的问题-回答方法,包括:
接收输入问题;
使用不同的搜索策略从多种类型的知识数据库搜索多种类型的数据,以
评价一个或多个候选答案以生成对输入问题的最终答案。
生成对输入问题的一个或多个候选答案;以及
RDF数据,以确定对输入问题的第三候选答案;以及
以确定对输入问题的第二候选答案;
库搜索问题-答案配对数据,以确定对输入问题的第一候选答案;
3.如权利要求2所述的方法,进一步包括解析输入问题并识别与输入
4.如权利要求3所述的方法,其中识别一个或多个属性的步骤包括识
5.如权利要求3所述的方法,其中识别一个或多个属性的步骤包括识
6.如权利要求3所述的方法,其中识别一个或多个属性的步骤包括识
7.如权利要求3所述的方法,其中识别一个或多个属性的步骤包括识
8.如权利要求2所述的方法,其中从多种类型的知识数据库搜索多种
类型的数据的步骤包括从至少一个问题-答案配对的知识数据库搜索问题-答
别关键词。
别焦点。
别期望的答案类型。
别问题种类或问题子种类。
问题关联的一个或多个属性。
案配对数据。
9.如权利要求8所述的方法,其中从问题-答案配对的知识数据库搜索
基于与输入问题关联的一个或多个属性生成查询语句,其中可执行查询
10.如权利要求9所述的方法,其中全文搜索包括基于n元算法的模糊
11.如权利要求9所述的方法,进一步包括对搜索结果排名以确定一个
12.如权利要求2所述的方法,其中从多种类型的知识数据库搜索多种
13.如权利要求12所述的方法,其中从至少一个纯文本知识数据库搜
索纯文本数据的步骤包括:
或多个候选答案中的至少一个。
搜索。
语句来执行问题-答案配对数据的全文搜索以生成搜索结果。
问题-答案配对数据的步骤包括:
类型的数据的步骤包括从至少一个纯文本知识数据库搜索纯文本数据。
基于与输入问题关联的搜索术语的挖掘设置生成查询语句,其中可执行
14.如权利要求13所述的方法,进一步包括通过放宽或缩小搜索标准
15.如权利要求13所述的方法,进一步包括基于搜索结果,使用答案
16.如权利要求15所述的方法,进一步包括通过使用机器学习框架来
17.如权利要求2所述的方法,其中从多种类型的知识数据库搜索多种
18.如权利要求2所述的方法,其中评价一个或多个候选答案以生成对
降低候选答案的细节级别。
模板构造一个或多个候选答案中的至少一个。
来重复地改进搜索,直到搜索结果的数目满足预先指定的门限。
查询语句来执行纯文本数据的搜索以生成搜索结果。
类型的数据的步骤包括从至少一个RDF知识数据库搜索RDF数据。
输入问题的最终答案的步骤包括:基于一个或多个预定义的试探规则对一个
或多个候选答案排名。
19.一种在其上存储了程序代码的非瞬时性计算机可读介质,该程序代
接收输入问题;
使用不同的搜索策略从多种类型的知识数据库搜索多种类型的数据,以
评价一个或多个候选答案以生成对输入问题的最终答案。
20.一种系统,包括:
非瞬时性存储设备,用于存储计算机可读程序代码;及
与存储设备通信的处理器,利用计算机可读程序代码来操作处理器以:
接收输入问题;
使用不同的搜索策略从多种类型的知识数据库搜索多种类型的数
评价一个或多个候选答案以生成对输入问题的最终答案。
据,以生成对输入问题的一个或多个候选答案;以及
生成对输入问题的一个或多个候选答案;以及
码可由计算机执行以:
说 明 书
技术领域
本公开总体涉及信息检索,并且更具体地,涉及一种问题回答框架。
背景技术
科学和技术的快速发展导致了发布信息量的快速增加。已设计问题回答
这样的QA系统中的主要难题之一是在各种各样的搜索结果中提供相关
的回答。搜索引擎常常返回与问题不相关的大量搜索结果,使得用户困惑并
被淹没在无数结果中。甚至排在顶上的(top ranked)搜索结果也可
本身不相关。在问题较短并且包括具有极其类似于其它不同话
容(诸如电影名或者流行歌曲的歌词)的拼写的常用字
遍。
(QA)系统来访问并搜索这样的信息以自动回答人们用自然语言提出的问
题。
能与问题
题的名称或内
的情况下,这尤其普
存在两种检索不相关的回答的常见原因。第一,问题解析和文本分析中
此外,在领域特定的QA系统中,答案会受到限制。大部分QA系统仅
支持某种领域,并且不支持对知识库的广泛集合的访问。通常,对于具有来
自非支持领域的答案的问题,不提供答案。即使可以找到答案,它们
不是用户可理解的。大多数情况下,答案可能很长,具有很多
绍、参考、相关话题等等,使得用户,尤其学龄儿童难
的低精确度可能导致不相关。换言之,QA系统可能没有正确地解释输入问
题的意思。QA系统的答案寻找能力的低精确度也可能导致答案中的不相关。
也可能
定义、原理介
以快速理解。
甚至还有,传统QA系统的性能一般是令人不满意的。为了正解地解释
因此,需要一种解决上述难题的改进的框架。
发明内容
在此描述了一种便于问题-回答的计算机实现的技术。根据技术的一方
面,首先接收到输入问题。使用不同的搜索策略来从多种类型的知识数据库
搜索多种类型的数据,以生成对输入问题的一个或多个候选答案。评
或多个候选答案以生成对输入问题的最终答案。
人类语言并且从大量知识库提取答案,QA系统通常采用计算昂贵并且常常
导致慢检索时间和低精度的广泛数据搜索和深度数据挖掘。
价一个
根据另一方面,首先接收到输入问题。然后该技术确定可供搜索的一种
或多种类型的知识数据库。如果问题-答案配对知识数据库可用,则搜索来
自问题-答案配对知识数据库的知识-答案配对数据,以确定对输入问题的第
一候选答案。如果纯文本知识数据库可用,则搜索来自纯文本知识数据库的
纯文本数据,以确定对输入问题的第二候选答案。如果资源描述框架
知识数据库可用,则搜索来自RDF知识数据库的RDF数据,
问题的第三候选答案。然后可以评价第一、第二或第三
输入问题的最终答案。
(RDF)
以确定对输入
候选答案,以生成对
与在下文中将变得明显的这些和其它优点和特征一起,通过参考下面的
附图说明
详细描述和所附权利要求以及参照附图,可以获得进一步的信息。
在附图中示出一些实施例,在附图中相似的参考数字指定相似的部分,
图1是示出示范性系统的框图;
图2是示出示范性架构的框图;
图3示出示范性问题-回答方法;
图4示出将种类和子种类映射到相应的答案类型的示范性表格;
图5a示出包含问题-答案配对数据的示范性表格;
图5b示出包含全文搜索结果的示范性表格;
图6示出示范性n元模型;
图7示出在作记号之后从长段落导出的多个基本单元;
图8示出包含用于“谁”问题的问题和答案模板的示范性查询表;以及
图9示出示范性资源描述框架数据。
具体实施方式
在下面的描述中,为了说明,阐述特定的数字、材料和配置,以便提供
对本框架和方法的彻底理解,并且以便满足法定的撰写描述、启动
(enablement)和最佳实施例的要求。然而,对一位本领域技术人员来说显
其中:
然,可以没有特定示范性细节而实践本框架和方法。在其它情况下,省略或
简化公知特征以阐明本框架和方法的示范性实现的描述,并且从而更
释本框架和方法。此外,为便于理解,将某些方法步骤描绘为
然而,这些单独描绘的步骤不应该被认为是依赖于它们
好地解
单独的步骤;
的性能的必须次序。
在此描述用于促进问题-回答的技术。技术的一方面提供了一种支持多
据
种类型的知识数据库的问题-回答(QA)框架。知识数据库一般指的是可以
收集、组织、共享和/或使用信息的信息储存库。例如,不同类型的知识数
库包括公式化问题-回答配对知识数据库、纯文本知识数据库和资源
架(RDF)知识数据库,这些将在下面的描述中更详细地描述。描述框
本技术的一方面实现了一种用于每种类型知识数据库的不同的搜索策
略。可以结合不同的搜索策略来支持多种类型的知识数据库中的查询,并且
响应于该查询提供最相关的答案。这允许用户组合知识数据库,而不
合并来自不同类型的知识数据库的数据。使用这样扩展的知识
用户可以建立尤其对于特定的领域范围提高答案寻找速
统。
用非得
数据库支持,
率的全面的知识系
本技术的另一方面提供了一种具有提高的问题识别和答案提取精度的、
用于问题配对和答案聚集的改进的方法。使用存储器中技术、并行计算和内
置文本分析功能,可以以对用户可接受的高精度和速度来处理更多数
有使用这种强大的计算能力,多数据源和无限的领域才是可行
描述中将更详细地描述这些和其它优点和方面。
据。只
的。在下面的
在此描述的框架可以被实现为一种方法、计算机控制装置、计算机处理、
计算系统,或者作为诸如计算机可用介质的一件制造产品。从下面的描述中
这些和各种其它特征将是明显的。
图1示出图解可以用来实现在此描述的框架的示范性系统100的框图。
系统100可以包括通信地耦接到输入设备102(例如,键盘、触摸板、麦克
风、相机等)和输出设备104(例如,显示设备、监视器、打印机、扬声器
等)的计算机系统106。计算机系统106还可以包括通信卡或设备116(例
如,调制解调器和/或网络适配器),用于使用通信链路130(例如,电话
无线网络链路、有线网络链路或线缆网络)
可以是局域网(LAN)或者广域网
132通信地耦接到一个或多
可以充当服务器,并且使用
络环境中操作。客户端计算
并且可以是台式计算机、移
设备等等的形式。
线、
与网络132交换数据。网络132
(WAN)。计算机系统106可以经由网络
个其它计算机系统154。例如,计算机系统106
到一个或多个客户端计算机150的逻辑连接在网
机150可以包括类似于计算机系统106的部件,
动设备、平板计算机、通信设备、基于浏览器的
计算机系统106包括中央处理单元(CPU)114、输入/输出(I/O)单元
110和存储模块112。诸如高速缓存、电源、时钟电路和通信总线的其它支
持电路也可以被包括在计算机系统106中。此外,任何上述都可以通过专用
集成电路实现,或者被并入其中。计算机系统106的例子包括手持设备、移
动设备、个人数字助理(PDA)、工作站、服务器、便携式膝上型计算机、
另一种便携式设备、迷你计算机、大型计算机、存储系统、专门数字
设备、部件、其它装备或者这些能够以定义的方式响应并执行
合。
应用、
指令的某种组
存储模块112可以是任何形式的非瞬时性计算机可读介质,包括但不限
于:动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可
擦 除可编程只读存储器(EPROM)、电可擦除可编程只读存储器
闪存设备、磁盘、内部硬盘、可移除磁盘、磁光盘、光
(CD-ROM)、任何其它易失性或非易失性存储器或
(EEPROM)、
盘只读存储器
者其组合。
存储模块112用来存储机器可执行的指令、数据和用于实现在此描述的
技术的各种软件部件,所有这些都可以通过CPU114来处理。因而,计算机
系统106是当执行机器可执行指令时成为专用计算机系统的通用计算机系
统。可替换地,在此描述的各种技术可以被实现为经由应用服务器120和/
或数据服务器125执行的软件产品的一部分。如果需要,每个计算机程序可
以用高级过程的或面向对象的编程语言(例如C、C++、Java、来自的高级
业务应用编程(ABAPTM)、结构化查询语言(SQL)等等),或者
用 汇编或机器语言来实现。该语言可以是编译的或解释的语言。不是意
器可执行指令限于任何特定的编程语言及其实现。将理解各种
代码可以用来实现在此包含的本公开的教导。
在将机
编程语言及其
在一个实现中,计算机系统106的存储模块112包括应用服务器(或堆
栈)120和数据服务器(或堆栈)125。应用服务器(或堆栈)120可以存储
QA框架122,其可以使用诸如Java、C++、ABAPTM等的高级
码。其它类型的编程语言也是有用的。QA框架122可
诸如问题解析、答案检索和排名、答案汇编等等
理功能的QA框架的一组函数模块或程序。
它示范性函数的更多细节。
编程语言来编
以包括被设计为执行
的各种数据收集和/或QA处
将在下面的描述中提供这些和其
数据服务器(或堆栈)125可以包括数据库管理系统(DBMS)126和
数据库129。可以使用诸如SQL或其扩展的数据库查询语言来编码DBMS
126。其它类型的编程语言也是有用的。DBMS126可以包括用于定义、管
理和处理数据库129的一组程序、函数或过程(例如,HANA自定义过
程)。 更具体地,DBMS126可以包括索引服务器127和预处理服务
服务器127提供用于存储和检索与存储在数据库129中的信息
据(例如,索引)的数据库功能,而预处理服务器128
引服务器127索引的文档。将在下面的描述中提
更多细节。
器128。索引
关联的查询数
可以用来分析要被索
供这些和其它示范性功能的
在客户端计算机150处的用户可以与用户接口152交互,以经由应用服
性
务器120和DBMS126与数据库129通信。在一个实现中,数据库129是主
要依靠用于有效的计算机数据存储的系统主存储器的内存数据库
(in-memory database)。更具体地,内存数据库中的数据可以存在于易失
存储器中而不是永久地存储在硬盘驱动上,从而允许以几兆字节每毫
度即时访问和扫描数据。内存数据库129允许无缝访问并实时
数据。通过使用多核处理器114结合内存数据库129,
处理。内存数据库技术包括诸如SAP的HANA
算引擎的系统。
秒的速
传输高容量的
可以进一步实现并行
(高性能分析应用)内存计
在内存数据库129中可以进一步实现基于列的数据存储,其中在压缩的
存储块中依次并作为数据列来存储数据表。当在单列上执行计算时,这可以
便于数据的更快聚合(aggregation)。可替换地,基于行的数据存储
的。在一些实现中,代替更新整行,将仅更新改变的字段。这
期间不得不锁定整个数据表以防止对一组数据的冲突修
行化,这对直播数据
说很重要。
也是可能
避免了在更新
改。可以实现高级并
流的实时处理以及执行恒定的并且基本上同时的更新来
应该理解,计算机系统106的不同部件和子部件可以位于不同机器或系
统上。例如,可以在不同的物理机器或计算机系统上实现应用服务器120和
数据服务器125。还应该理解,客户端计算机150的不同部件也可以位于计
算机系统106上,反之亦然。
图2示出系统100的示范性结构200。应该注意到,在下面的讨论中将
如所示,客户端设备(150a至150n)与QA框架122通信以提供一个
或多个输入问题,并从QA框架122接收对输入问题的响应。输入问题可以
用自然语言表达,并且以语句或寻找合适的问题的答案的形式来提供。客户
端设备(150a至150n)和QA框架122可以通过使用web服务的网
通信。Web服务可以实现各种web技术,包括基于代表性状
的接口、基于远程过程调用(RPC)的技术、基于简单
的技术、基于面向服务架构(SOA)的技术等
使用相似的标号来指代在图1中描述的特征。在一些实现中,QA框架和
DBMS(122、126)可以包括比在图2中示出的那些更少或多很多的部件。
络彼此
态传输(REST)
对象访问协议(SOAP)
等。
响应于由一个或多个客户端设备150a-n提供的问题,QA框架122可以
202
自动生成一个或多个答案。在一些实现中,QA框架122包括数据收集器
和QA处理器203。数据收集器202可以用来从一个或多个不同的知
库(205a至205n)检索信息,用于生成答案。在一个实现中,
202通过自动从知识数据库(205a至205n)下载数据集、解
为适合于在数据库129中存储的本地格式,来检索数据。
预定的时间间隔定期地执行下载。另外,或替换地,数
括被配置为自动地直接从一个或多个知识数据库(205a
索相关信息的爬虫(crawler)、蜘蛛(spider)、机器
至还有,数据收集器202可以直接从数据库129
识数据
数据收集器
析并将数据转换
可以按需求或者以
据收集器202可以包
至205n)发现和检
人或其它类似应用。甚
检索先前存储的信息。
知识数据库(KB)(205a至205n)可以提供不同格式的信息。知识数
据库可以是结构化、半结构化或非结构化的。第一示范性类型的知识数据库
提供了公式化或准备的问题-答案对的结构化集合。这样的问题-答案
知识数据库包括但不限于雅虎问答(Yahoo!Answers)、维
(WikiAnswer)和百度知道。
配对的
基问答
第二示范性类型的知识数据库提供包括纯文本段落的半结构化或非结
构化的自然语言文档集。这样的纯文本知识数据库可以包括但不限于可以搜
索或爬虫内容的公共或专用数据库或知识库、内部网、因特网、网页
新闻网站、基于域的网站、维基百科等)。在一些实现中,数
从纯文本知识数据库检索纯文本,并且在将它存储在数据库
理纯文本。可以通过例如使用训练模型对它分类来预处
(例如,
据收集器202
129中之前预处
理纯文本。
第三示范性类型的知识数据库以资源描述框架(RDF)格式存储基于事
例如RDF知识数据库包括YAGO和DBPedia。YAGO从维基百科
(Wikipedia)、词网(WordNet)和GeoNames提取数据。更具体地,
建立在维基百科的信息框和分类页上。信息框是包含关于文中描述的
的基本信息的标准化表。例如,存在用于国家的信息框,其包括国家
名称、它的首都和它的大小。相对于自然语言文本,解析和利
容易得多。RDF还可以表达实体、事实、事实间的关
实的信息。RDF是用于在Web上的数据交换的标准数据模型。它由万维网
联盟(W3C)发布,并且一般用来概念性地描述或模型化(model)在web
资源中实现的信息。RDF语句集本征地表示标记的、直接的(directed)多
图。因而,基于RDF的数据模型自然地适合于某些类型的知识表达。实际
上,RDF数据常常固执于关系数据库或原本表示(也称为三重存储(Triple
stores))。
YAGO
实体
的本国
用信息框可能
系和关系属性。用RDF 三重存储格式表示YAGO中的事实,并且可以
来查询。 使用SQL和/或SPARQL语言
QA处理器203用来自动处理通过QA框架122接收的输入问题,并且
问题解析器204分析问题以识别一个或多个与问题关联的属性。这样的
属性可以包括但不限于问题类型、用户期待的答案类型、关键词、关键词的
搜索焦点等等。另外,问题解析器204通过使用预定的模板,可以将
题转换为基于所识别的属性的数据库查询语句(例如,用
向在DBMS126中的查询语言处理器210发送查询语句,
129中的数据。
响应于问题生成一个或多个答案。在一个实现中,QA处理器203进一步包
括问题解析器204、答案检索和排名单元206和答案汇编器208。
输入问
SQL)。然后可以
以访问在数据库
答案检索和排名单元206执行或调用检索对输入问题的一个或多个候选
答案的搜索函数。例如,搜索函数可以是由DBMS126提供的全文搜索函数。
答案检索和排名单元206可以基于预定义的评价法则进一步生成用于
选答案的信用点或分。然后可以使用信用点或分来对候选答案
序。答案汇编器208可以用来从候选答案中识别最合适的答案,
内容中提取相关的答案段,和/或构造答案文本。在下面的段
描述这些和其它示范性特征。
每个候
排名和/或排
从整个文本
落中将更详细地
QA框架122通信地耦接到DBMS126,DBMS126包括索引服务器127
和预处理服务器128。索引服务器127一般包括实际的数据和用于处理数据
的引擎。它也可以调整并使用其它服务器。索引服务器127可以包括查询语
言处理器210和搜索模块212。搜索模块212可以进一步包括数据存储优化
器和执行控制器214、数据存储操作器216和文本搜索引擎220。
为搜索存储在数据库129中的数据,可以调用查询语句(例如,SQL)
210
或全文搜索。如果从问题解析器204接收到查询语句,则查询语言处理器
检查查询语句的语法和语义,并且生成逻辑执行计划。数据存储优化
行控制器214从查询语言处理器210接收逻辑执行计划作为输
优化的物理执行计划。数据存储优化器和执行控制器
存储操作器216来执行优化的物理执行计划以访
存数据218。
器和执
入,并且生成
214然后通过调用数据
问存储在数据库129中的内
在一些实现中,为提高搜索的性能,可以用DBMS126平衡存储器中计
且
算。数据收集器202可以从知识数据库(205a-205n)下载原始的文档,并
将它们存储为数据库129中的内存数据218。内存数据218可以是基
这可以比传统的行存储数据库更有效。替换地,基于行的内存
有用的。
于列的,
数据218也是
文本搜索引擎220提供允许运行全文查询的全文(或文档)索引和搜索
能力。全文查询可以包括简单的词语和短语,或者多种形式的词语或短语。
在一个实现中,文本搜索引擎220通过建立一个或多个全文索引224
记录的定位,来加速查询执行。预处理服务器128中的文档分
将在来自知识数据库(205a至205n)的原始文档中的句子或
独的词语,用于文本搜索引擎220建立全文索引224。
些语言(例如,中文、日文、韩文等)的情况中,
在中文中,句
明”之间没有
以便于
析器228可以
段落分割成单
在基于表意字符的某
词语之间没有空格。例如,
子“他的名字叫姚明”,在词语“他的”、“名字”、“叫”、“姚
空格。文档分析器228可以提供机制以识别这样的词语。
响应于全文查询,文本搜索引擎220可以在全文索引224中对于文本数
据222执行全文搜索以返回搜索结果226。搜索可以包括对于词语和短语的
精确搜索、容许打字错误的模糊搜索以及基于特定语言(例如,英语)的语
言规则查找词语的变形的语言学搜索。搜索结果226可以包括通过搜
的、包含至少一处匹配(也称为命中)的任何文档。当目标文
查询中指定的所有术语,并且满足诸如术语之间的最小
测量)的其它搜索条件时,匹配发生。
索返回
档包含在全文
匹配距离(或相似性
图3示出示范性QA方法300。方法300可以通过如先前参照图1和2
用
在302,QA处理器203接收输入问题。问题的类型可以包括但不限于
事实、列表、定义、如何、为什么或者假设的问题。问题还可以是封闭领域
(即,在特定领域下),或者开放领域(即,关于几乎任何事)。此
可以是多面的。例如,问题“SAP代表什么?”可以被解释为关
题。替换地,它也可以被解释为缩写问题。
描述的系统100和/或结构200来实现。应该注意到,在下面的讨论中将使
相似的标号来参考在图1和2中描述的特征。
外,问题
于事实的问
在304,问题解析器204在将查询传递到DBMS126之前处理输入问题
以识别与问题关联的属性。在一个实现中,问题解析器204包括或从用于解
析自然语言输入问题的自然语言处理(NLP)库调用函数。还可以使用
来从知识数据库(205a-205n)解析文档内容,并提取更详细的语义
息。
NLP
和语言信
可以将输入问题或文档内容解析成一组语言的区分,包括但不限于:区分
为词类(POS)、句子、命名实体、文本记号、文档类别、字块、句子结构、
词依赖等等。例如,词类(POS)标记是确定句子中的词语是介词、
是任何其它词类的主机NLP功能。记号化一般指的是将句子
(例如,词语、标点符号、数字等)。文本分块一般指的是将
法上相关的词组,诸如名词组、动词组等等。这样的文
原始句子中的内部结构或它们的作用。命名实体一般指
名词还
分割成“记号”
文本划分为句
本“块”通常不指定
的是具有预定义类别 的基本元素,诸如人、组织、位置的名称,时间、
的表示等等。 数量、货币价值、百分比
问题解析器204可以使用提取的NLP区分来导出与输入问题关联的更
高级属性。这样的属性可以包括但不限于问题种类(例如,“什么”、“哪些”、
“何时”、“哪里”、“谁”、“为什么”等等),问题子种类、期待的答案
(例如,关于位置、人、日期、金钱等)、焦点、关键词等等。可以
题属性来识别输入问题的关键词用于执行全文搜索和找到最相
类型
使用问
关的段落。
更具体地,问题解析器204可以基于NLP区分,通过使用描述某种问
题种类的预定义模板来导出问题种类。例如,“什么”问题可以以“什么”
开始,或者有时候在问题的开头包含“什么”。因此,用于“什么”种类的
模板可以被预定义为:记号值是“什么”&&组类型是
是“WP”,其中NP表示“专有名词”并且WP表示
为了识别问题种类,可以实现多层环(例如,两
如,问题解析器204可以首先扫描句子以
组不能识别问题种类,则问题解析
多个记号。如果记号匹配某种预定
类。
“NP”&&标记类型
“wh(疑问)-代名词”。
层环)来解析输入句子。例
识别一个或多个块组。如果基于块
器204可以进一步扫描句子以识别一个或
义的模板,则相应地确定并保存对应的种
为了说明,假设输入问题是“What is Microsoft Office?(微软Office是
么?)”。块组标识符可能如下标记该问题:“What(什么)|is(是)|
什
Microsoft Office(微软Office)?”。换言之,将“What”、“is”和“Microsoft
Office”识别为具有相应类型[WP]、[VBZ]和[NP]并且它的两个孩子都是
的块组。如果这些块组类型与预定义的问题种类关联,那么相应地识
种类。例如,可以将该问题种类识别为由问题词“什么”所定义
种类,它的记号类型是[WP],并且问题的目标组类型是[NP]。
[NNP]
别问题
的“什么”
如果块组不匹 配任何预定义的模板,则可以将该问题作记号为
中[VBZ]表示动词,第三人称单数呈现并
[WP][VBZ][NNP][NNP],其
且[NNP]表示专用名词,单数。
一旦确定问题种类,就可以检查名称实体列表,看是否有任何名称实体
匹配第一[NN]记号类型,其中NN表示名词,单数或复数。如果找到匹配,
则直接从列表中选择匹配名称实体作为焦点。如果没找到匹配,可以
码级检查来确定子种类。更具体地,可以使用一个或多个预定
确定子种类。例如,种类“首都”、“城市”、“国家”等属
因此,在问题“What city is the largest one in China?(什
城市?)”中,可以
(位置)”。
执行代
义的关键词来
于子种类“位置”。
么城市是中国最大的
使用预定义关键词“city(城市)”来确定子种类“location
可以基于输入问题识别的另一属性是期待的答案类型。答案类型一般指
图4示出将种类和子种类映射到相应答案类型的示范性预定表400。例
如,如果问题子种类是“什么-谁”,那么答案类型可以是“人”或者“组织”。
为了确定答案类型,问题解析器204可以使用包含某一类别(例如,人、组
织、位置等)的所有相关信息、描述和定义的训练数据集合来训练分类器。
训练集合可以包括已知的问题和答案类型对。然后分类器基于输入问
问题种类词(例如,“什么”或“哪些”)之后的第一个名词短语
类型。
的是响应于输入问题的、用户或应用期待的答案类型。在一些实现中,将输
入问题种类和/或子种类映射到在预定义表中的相应答案类型。
题中在
来识别答案
例如,根据先前的规则,问题解析器204只能知道问题“什么公司是世
界上最大的?”和“什么企业是世界上最富的?”是完全的“什么-谁”问
题。可以使用在问题词“什么”之后的第一个名词(例如,“公司”和“企
业”)来识别答案类型。因为人工创建覆盖所有情况的规则不容易,所以可
以使用现有的训练数据集合作为用于进一步确定问题类型的参考。
基于输入问题还可以识别的另一属性是“焦点”。“焦点”一般指的是定
问题在寻找什么的词语序列。例如,在问题“中国的首都是什么?”
题解析器204理解该问题在问“位置”。然而,问题种类“位置”可
义输入
中,问
能太宽
是首都
问题种
了,将搜索变窄到聚焦在“首都”上可能有帮助。这意味着答案应该
的名称(或城市名称)。问题解析器204可以通过从输入问题提取在
类词之后的第一个名词(例如,首都)来识别焦点。
基于输入问题还可以识别的另一属性是“关键词”。输入问题可以包括
多个关键词,其提供输入问题的背景并且可以显著地影响搜索结果。
一个或
关键词可以包括焦点,虽然不是在所有情况中都必须如此。识别输入问题的
关键词可能是重要的,使得可以执行搜索以找到与问题相关的段落。
别关键词,可以使用下面的试探点(heuristics)有序集: 为了识
试探点1:引用语的所有直达(non-stop)词是关键词;
试探点2:所有名称实体是关键词;
试探点3:所有的复杂名词与它们的形容词修饰(如果有)是关键词;
试探点4:所有的名词与它们的形容词修饰(如果有)是关键词;
试探点5:所有动词都是关键词;以及
试探点6:焦点是关键词。
在运行时间期间,问题解析器204根据所示的试探点次序处理每个试探
点来提取一个或多个关键词。例如,可以在试探点2之前处理试探点1,在
试探点3之前处理试探点2,等等。应该理解,还可以应用其它类型的试探
点或者其它试探点次序。在一个实现中,问题解析器204仅考虑基于前4个
试探点提取的关键词;仅当需要更多关键词来识别答案时才可能考虑基于最
后2个试探点提取的关键词。可替换地,如果使用任何提取的关键词
找到答案,则可以在接下来几次搜索迭代中按将它们输入所用
来丢弃关键词,以便放宽搜索标准。
都不能
的相反的次序
返回图3,在306,QA处理器203识别可用于向QA框架122提供数据
的知识数据库(KB)的类型。如之前所讨论,KB可以是问题-答案配对KB、
纯文本KB、RDF KB和/或任何其它类型的KB。可以下载并在数据
中存储来自不同类型的KB的数据,或者使用例如在数据收集器202
虫应用来直接从KB检索该数据。可以在配置文件中存储可用
对于来自不同类型的知识数据库的不同类型数据,可以实现不
略。应该理解,多于一种类型的知识数据库可能可用。通过支
知识数据库,本技术使用扩展的知识数据库集能够提供
率。
库129
中的爬
KB的类型。
同的搜索策
持不同类型的
较高的答案寻找速
在一个实现中,在306,QA处理器203确定问题-答案配对KB是可用
的。在308,答案检索和排名单元206通过DBMS126调用全文搜索以生成
搜索结果226。图5a示出包含来自问题-答案配对KB的示范性问题-答案配
对数据的表502。表502可以从问题-答案配对KB下载,并且存储在例如数
据库129中。如所示,表502的每行存储了一对问题(或标题)和答案(或
内容)。为便于搜索,基于表示问题和答案内容的列“标题”和“内容”,可
以生成两个全文索引224。
答案检索和排名单元206通过基于一个或多个问题属性(例如,焦点、
关键词等)而生成查询语句(例如,SQL),并向用于处理和执行的
的查询语言处理器210发送查询语句,可以调用问题-答案配
搜索。可以基于全文索引224,而不是原始表来执行全
DBMS126
对数据的全文
文搜索。
例如,示范性SQL语句可以如下:
SELECT*,SCORE()as RANK from"QUESTIONS"where CONTAINS
其中表达“CONTAINS()”通过文本搜索引擎220调用全文搜索函数,
“表达FUZZY()”指示容错率。最初可以将容错率设置为0.8,然后如
进行调整以改善搜索结果。表达SCORE()指示对于容错搜索算法的
最小匹配分数。
图5b示出包含示范性全文搜索结果的表512。如所示,在表512中返回
与输入问题有关的一组问题(标题),及对应的答案(内容)、语言
和答案源(URL)。在搜索结果中还可以提供其它类型的信息。
并且
果需要,
期望的
((TITLE,CONTENT),'why is the ocean blue',FUZZY(0.8))order by RANK
DESC;
(LANG)
如先前讨论,全文搜索可以提供对于问题文本的用户输入的容错。这允
许搜索包含排字错误,并且通过返回更可能的搜索结果来改善搜索质量。在
一个实现中,使用n元匹配算法来提供模糊全文搜索。图6示出示范
模型602。对于每个串604,可以生成一组n元606。通过将输入串
数据串的n元匹配,可以执行模糊搜索。例如,假设输入串是
数据串是“gans”和“haas”,在“hans”和“gans”之间的模糊匹配分
性n元
的n元与
“hans”并且
是63%
匹配分608
(即,7个中5个n元匹配),而在“hans”和“haas”之间的模糊
也是63%。如果期望的最小匹配分低于63%,则返回数据串
作为搜索结果。 “hans”和“haas”
返回图3,在309,答案检索和排名单元206对搜索结果226排名以确
在某种实现中,向每个候选问题-答案对分配模糊分数。可以通过在输
入问题和候选问题之间确定相似度测量来计算模糊分数。通过比较在输入问
题和每个候选问题中的词语来确定相似度测量。例如,如果输入问题
“Who is Bill Gates?(比尔盖茨是谁?)”并且候选问题包含准确的相
则模糊分数是1.0。但是,如果候选问题是
尔羡茨的女儿是谁?)”,则模糊分数可
定最相关的候选答案。搜索结果226可以包括与输入问题有关的一组候选问
题-答案对。答案检索和排名单元206可以通过向每个候选问题-答案对分配
分数来对搜索结果226进行排名。基于分数识别最相关的问题,并且返回相
应答案作为候选答案。
是:
同词语,
“Who is Bill Gate’s daughter?(比
以计算如下:
分数=Common_Word_Count(共同词计数)
=4/(SQRT(4)*SQRT(5))=0.894-----------(1)
在306,QA处理器203可以确定纯文本KB可用。在310,在来自纯文
本KB的纯文本数据上执行搜索。问题解析器204可以基于与输入问题关联
的搜索术语(例如,关键词、焦点等)的挖掘设置,来构造查询语句。然后
向查询语言处理器210发送查询语句用于处理,并且调用搜索以生成
/(SQRT(Word_Count_of_Input_Question(输入问题的词计数))*
SQRT(Word_Count_of_Candidate_Question(候选问题的词计数)))
搜索结
果。可以返回候选纯文本段落作为搜索结果。
答案检索和排名单元206可以通过放宽或放窄搜索标准来迭代地改进搜
索,直到搜索结果的数目满足预指定的门限。通过扩展搜索术语的挖掘设置
(即,合并)可以放宽搜索。可以使用同义词词典(例如,WordNet)
挖掘设置添加提取的问题属性(例如,焦点、关键词等)的同义词。
来向
例如,输入问题可以如下:“谁是托马斯·杰佛森高中的校长?”。关键词
可以是“校长”、“托马斯”、“杰佛森”、“高中”,并且焦点可以是“校长”。
答案检索和排名单元206可以使用扩展的关键词来执行搜索。例如,通过如
先前描述将原始的关键词(或关键词的主干)映射到同义词来获得扩展的关
键词。例如,如果关键词是“高中”,则可以向挖掘设置添加同义词
挖掘设置可以包括如下: “高级”,
(高&中)|(高级&高&中)|(高级&高)|高|高中
在上述搜索术语的挖掘设置中,可能认为词语“高”在英语语言中太常
且独立或组合到其它短语中可以表示与原始的关键词“高中”完全不
思。可以从挖掘设置中移除这样的常用词语,以产生更精确的搜索结
另一种扩展搜索术语的挖掘设置以放宽查询的方法是经由取主干
基
用,并
同的意
果。为了识别常用词,答案检索和排名单元206可以执行查找预定义的常用
词列表。
(stemming)。“取主干”一般指的是用于减少对它们的主干、基本或根形式
的改变的(或有时候导出的)词语的过程。例如,用于英语的取主干器可以
基于根“猫”识别串“猫们”(可能还用“像猫的”、“似猫的”等),并且
于“主干”识别“取主干器”、“取主干”、“取主干的”。一旦确定关键词
的
主干,就可以向搜索术语的挖掘设置添加主干的变形以放宽查询。
在311,答案检索和排名单元206对搜索结果226排名以确定最相关的
候选答案。搜索结果226可以包括一组纯文本候选段落。候选段落的数目可
以很大,尤其是当输入问题的关键词是常用的或普通的词语时。答案检索和
排名单元206可以通过向每个候选段落分配分数来对候选段落排名。
于分数识别与输入问题最相关的候选段落,并作为候选答案将
相关的候选段落返回。
可以基
与输入问题最
在一个实现中,分数包括术语频率-反文档频率(TF-IDF)分数。通过
计算为候选段落和输入问题两者所共有的词语(或词语的同义词)的数目,
来计算TF-IDF分数。例如,如果候选段落与输入问题共享同一个共
则可以分配2点。如果候选段落与输入问题共享同一个同义词,
1点。如果没有共有的词语或同义词,则不能分配点数。可以
用于候选段落的最终分数:
有词语,
则可以分配
通过如下获得
最终分数=总分数/(不同词语的数目)----(2)
应该注意到,也可以实现其它类型的计分技术。
在某些情况下,原始候选段落的文本可能太长而因此作为候选答案不合
适。在计算分数和对这样的候选段落排名之前,答案检索和排名单元206可
以将候选段落的长文本分割成更小片段的文本。在一个实现中,使用由知识
数据库提供的元数据中的分层信息来拆分搜索结果文本。例如,来自
科的原始网页在元数据中包含每个段落的分层信息,其可以用
也可以使用诸如字体大小和缩排格式的其它信息来导出
维基百
来分割文本。
分层并且分割文本。
在一些实现中,尤其是其中没有可用于分割的信息时,使用作记号方法
图7示出在作记号之后从长段落导出的多个基本单元702a-d。连续的基
本单元(702a、702b、702c或702d)之间的每个点是长段落的可能断点。
为了确定断点在哪儿,通过比较连续的基本单元之间的相似度分数,检测主
题偏移。相似度分数测量在基本单元之间共享的共有词语和同义词的
低相似度指示可能的主题偏移。例如,参照图7,可以在第一
和第二基本单元702b之间计算第一相似度分数(分数
单元702b和第三基
第三基本单元
因为第
的,从
的断点
来分割文本。通过移除非用词(stop word)并且使用其余词作为基本单元,
可以对原始文本作记号。“非用词”一般指的是在处理自然语言文本之前或
之后过滤的词语。例如,“该”、“是”等是可以被认为是作为非用词的很常
用的词语。
数目。
基本单元702a
1);可以在第二基本
本单元702c之间计算第二相似度分数(分数2);可以在
702c和第四基本单元702d之间计算第三相似度分数(分数3)。
三和第四基本单元(702c-d)是最不相似的,所以分数3可能是最低
而指示可能的主题偏移。因此在第三和第四基本单元(702c-d)之间
706处可以将长段分成2个片段。
参照回图3,在312,答案汇编器208基于最相关的候选段落构造候选
图8示出包含用于“谁”问题的问题和答案模板的示范性预定义查询表
参照表800,例如,“谁是苹果的CEO?”的输入问题可以与问题模板
答案。存在很多方式传递同一个答案。在一个实现中,答案汇编器208确定
输入问题的模板,并且将问题模板映射到答案模板。然后可以根据答案模板
来汇编候选答案。
800。
“谁是
<实体>的<角色>”关联。通过使用查询表800,答案汇编器208将问
签
题模板映射到答案模板“<人>”。然后通过使用答案“蒂姆·库克”替代标
<人>,可以根据答案模板来汇编答案。对于诸如“什么”、“谁”、
“哪里”、“何时”、“哪些”、“为什么”等等的不同问题种类和子
预定义类似的查询表。
“如何”、
种类,可以
有时,最相关段落中的细节级可能太高,并且需要被进一步减少以产生
“沃尔夫冈·阿玛迪斯·莫扎特何时诞生?”
答案检索和排名单元206可以返回下面的段落:
“沃尔夫冈·阿玛迪斯·莫扎特在萨尔茨堡Getreidegasse9号诞生于1756
27日,利奥波德·莫扎特(1719-1787)和安娜·玛丽亚,娘家姓Pertl
为了实现更高的精度,答案汇编器208可以提取“1756年1月27日”
选答案。
应该理解,不是所有的段落都可以精炼或缩短。例如,诸如“天空为什
为了从段落提取候选答案,答案汇编器208可以采用机器学习框架。例
“沃尔夫冈·阿玛迪斯·莫扎特哪一年诞生?”
如,输入问题可以如下:
么是蓝的?”的事实问题可以产生下面的段落:“天空是蓝的是因为地球的
大气层散射来自太阳的光线。”没必要缩短这样的段落。可以返回整个段
落作为候选答案。
作为候
(1720-1778)。
年1月
更高的精度。例如,问题可以如下:
通过答案检索和排名单元206返回的最相关段落的原始文本可以如下:
沃尔夫冈·西奥菲勒斯·莫扎特(1756-1791)是多产的……
沃尔夫冈·阿玛迪斯·莫扎特于1756年在萨尔茨堡诞生……
沃尔夫冈·西奥菲勒斯·莫扎特(*1756在萨尔茨堡……
沃尔夫冈·阿玛迪斯·莫扎特(b.萨尔茨堡,1756;d.1791)
为了从段落中提取答案“1756”,可以使用包括已知的问题-答案对的训
在一些实现中,通过首先收集已知的问题和答案对集合来生成训练集
练集合来训练机器学习框架。
合。例如,问题“比尔盖茨何时诞生?”可以与已知答案“1955年10月28
日”配对。然后可以分析已知的问题和答案对集合来提取关键词(例如,“比
尔·盖茨”、“诞生”等)。可以经由例如搜索引擎来搜索因特网(例如,谷歌、
必应、雅虎等)或其它知识数据库,来收集与关键词关联的文档。可
不包括关键词的文档中的不必要句子。此外,可以对文档作记
的分析。可以从原始的文档中检索最长的匹配串以形成
以移除
号用于进一步
训练集合。
例如,可以收集下面的训练信息:“企业家比尔·盖茨于1955年10月28
日诞生于华盛顿西雅图”;“诞生于1955年10月28日华盛顿西雅图的比
茨是微软的创立者”;等等。基于所收集的信息,可以识别下面的答
(i)<姓名>诞生于<答案>;及(ii)诞生于<答案>
尔·盖
案模板:
的<姓名>。
在生成训练集合之后,可以从输入段落提取候选答案。为了说明的目的,
特
<
假设输入问题是:“沃尔夫冈·阿玛迪斯·莫扎特何时诞生?”。通过答案检索
和排名单元206返回的段落原始文本可能如下:“沃尔夫冈·阿玛迪斯·莫扎
诞生于1756年。”基于训练集合,输入问题类型可以对应于答案模板:
姓名>诞生于<答案>。因为段落匹配答案模板,所以可以提
作为候选答案。 取答案“1756年”
上述答案汇编机制具体适合于事实的和某些类型的问题。然而,应该理
解,不是所有类型的问题都可以通过上述答案汇编机制来处理。对于某些问
题类型,可能需要降级机制。例如,如果答案提取是困难的,则答案
208可以仅通过关键词搜索段落,并且仅返回搜索结果作为候
答案精度可能不高,但至少向最终用户提供了基本的相
汇编器
选答案。虽然
关信息。
返回参照图3,在306,QA处理器203可以确定RDF KB可用。在313,
答案检索和排名单元206通过DBMS126调用RDF搜索。可以通过提交由
用户使用SPARQL协议和RDF查询语言(SPARQL)构造的查询,来调用
RDF搜索。由W3C的RDF数据访问工作组对SPARQL标准化,并且
是W3C官方建议。SPARQL允许查询包括三重模式、与
(disjunction)、模式等。SPARQL还允许联合查询,
位置并且聚合来自分布的查询的结果。在通过查
前,将SPARQL查询翻译为SQL查询。
SPARQL
(conjunction)、或
其中将查询分布到多个
询语言处理器210的处理之
图9示出存储在RDF知识数据库中的示范性RDF格式数据。如所示,
将事实三重存储为“主语”、“谓语”和“宾语”。使用输入问题的关键词来
查询数据库129以找到最相关的段落。在一个例子中,输入问题可以如下:
“印度的首都是什么?”
在解析输入问题时,输入问题的关键词可以是“首都”和“印度”。可
如定义相应的问题类型、关键词、谓语等的列表格,在DBMS126中
定义的模式。通过使用预定义的模式,答案检索和排名单元206将输
直接翻译成SQL查询,以访问RDF知识数据库,如下:
Select object from Yago facts where subject=‘<印度>’and predicate=‘<
在另一例子中,输入问题可以如下:
“比尔·克林顿的女儿何时诞生?”
答案检索和排名单元206可以将输入问题翻译成访问RDF知识数据库
select distinct t, from Yago facts T1
inner join Yago facts T2on =t
inner join Yago facts T3on =t
where t='<Bill_Clinton>'and ate='<hasChild>'
and ate='<hasGender>'and ='<female>'
and ate='<wasBornOnDate>'
替换地,可以将上述输入问题翻译成更可读的SPARQL查询,如下:
的SQL查询,以检索比尔·克林顿的女儿的出生日期,如下:
有首都>’
以用例
存储预
入问题
Select ?d where {
s wasBornOnDate d.
s hasGender female.
Bill_Clinton hasChild ?s}
为便于查询公式化过程,可以实现SPARQL到SQL映射引擎。这允许
重
基于SQL的DBMS支持SPARQL查询。为了将关键词映射到SPARQL三
模式,可以首先检索与每个关键词有关的相关国际化资源标识符
段落之内的IRI是符合在RFC3987[IRI]中定义的语法的
括了统一资源标识符(URI)或统一资源定位符
URI或URL是IRI。
(IRI)。RDF
Unicode串。IRI概
(URL)。每个独立的(absolute)
接下来,基于检索的IRI向查询应用预配置的SPARQL三重模型模板。
可以基于YAGO事实(例如,像<hasGender(有性别)>、
首都)>等的谓语)的观察来配置一些SPARQL三
配置的模型的关键词,DBMS对主语和宾语列
YAGO事实表中检索大致匹配的IRI。然后在
<hasCapital(有
重模型模板。对于没有预
执行全文模糊搜索,以在
SPARQL查询中使用匹配IRI。
如上所述,为使能对主语和宾语列的全文搜索,可以首先在主语和宾语
select*,score()as rank from"yaofacts"where contains((subject,object),
'XXX_XXX',FUZZY(0.8))order by rank desc;
列上创建全文搜索索引。答案检索和排名单元206可以生成下面的SQL语
句来执行模糊搜索:
如果使用选择的SPARQL查询没有检索到答案,则可以使用降低的模糊
在获得搜索结果之后,将搜索结果数目(即计数)与预指定的门限比较。
语
如果搜索计数少于预指定的门限,则例如通过去除搜索术语和/或将搜索术
之间的逻辑运算符从AND(和)改变为OR(或),可以放宽搜索
如,原始的搜索标准可以如下:校长&托马斯&杰佛
标准扩展为如下:(校长|(学校校长)|(老师
级的高中))。
协同因素和/或减少的关键词数目来重复查询直到检索到一些答案。
标准。例
森&(高中)。可以将搜索
领导))&托马斯&杰佛森&((高中)|(高
相反地,如果搜索计数高于预指定的门限,则例如可以通过添加搜索术
使
语和/或将搜索术语之间的逻辑运算符从OR(或)改变为AND(和),来
搜索标准变窄。因此,可以返回合适数目的搜索结果(例如,文本段
落)。
回头参照图3,在314,答案检索和排名单元206对RDF搜索结果排名
以确定最相关的候选答案。答案检索和排名单元206可以通过向每个RDF
搜索结果分配模糊的分数或任何其它合适的分数,
可以基于分数识别最相关的问题,并且返回相应
来对RDF搜索结果排名。
的候选答案作为候选答案。
在316,QA处理器203确定是否存在任何其它类型的可用KB。如果存
在320,QA处理器203评价候选答案以找到要向用户返回的最终答案。
每种类型的知识数据库(例如,问题-答案配对KB、纯文本KB、RDF KB
在,则重复步骤306来确定什么类型的KB可用。应该理解,还可以并行执
行步骤308、310和/或313来获得搜索结果226。
等等)可以产生零个或一个候选答案。存在多种类型的知识数据库时,可能
存在多个候选答案。
因为比较从不同类型的知识数据库获得的候选答案不容易,所以QA处
理器203可以基于问题类型使用一个或多个预定义的试探规则来确定最终的
答案。在一些实现中,对所有候选答案排名以找到最终的最好的一个。排名
可以基于一个或多个预定义的试探规则。例如,如果从问题-答案配
索到候选答案并且它的SCORE()大于或等于80%,则将返回
终答案。这样的候选答案被认为是最精确的,从而被分
问题-答案对是人为定义的。其次,如果从问题-
选答案,则答案汇编器208确定输入问题是否是
回从RDF KB检索的候选答案作为最终
然地适合于事实的描述的结构数据,
题是诸如“什么是”、“谁是”等等的
到适合的候选答案,则返回从纯文
对KB检
候选答案作为最
配最高优先级,因为
答案配对KB没有检索到候
纯事实问题。如果是,则返
答案,如果可能的话。RDF数据是天
其一般被用来回答事实的问题。事实问
问题。其次,如果没有从RDF KB检索
本KB检索到的候选答案作为最终答案。
在某些情况下,QA处理器203可以确定所有候选答案都不够好,或者
可以通过记录在历史的问题与回答任务中来自最终用户的反馈,来改进
评价过程。在此情况下,用户可以为每个答案评级(rate)或输入排名分数。
QA过程203还可以允许最终用户纠正答案并且人工地回答问题。然
处理器203可以基于用户反馈改进它的问题-回答能力。
没有候选答案。在这种情况下,答案汇编器208可以向最终用户发送文本消
息,诸如“对不起,我不知道答案。”
后QA
虽然已经用对结构特征和/或方法步骤特定的语言描述了一个或多个上
述实现,但是要理解,没有所述的特定特征或步骤也可以实践其它实现。相
反地,公开特定特征和步骤作为一个或多个实现的优选形式。