用自然语言命令呈递表格转让专利

申请号 : CN200510059220.2

文献号 : CN1670733B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : A·福尔廷C·D·艾利斯M·卡尔卡格诺N·考德威尔R·沙哈尼R·E·斯顿伯格张素琴

申请人 : 微软公司

摘要 :

本发明涉及操纵软件应用程序并处理存储于数据源中的数据的方法。该方法包括接收自然语言输入并对该自然语言输入做出分析,以标识包含于其中的语义信息。所述自然语言输入的部分被基于语义信息和自然语言输入与一模式的命令对象和实体对象相关联。该方法还包括基于所述模式及自然语言输入的相关联部分而以列一行表格的形式呈递来自数据源的数据。

权利要求 :

1.一种处理存储在结构化数据源中的数据的方法,包括:接收自然语言输入;

分析所述自然语言输入,以标识包含于其中的语义信息;

基于所述语义信息和所述自然语言输入,将所述自然语言输入的部分与模式的命令对象和实体对象相关联,其中所述模式包括命令和可在呈递表格时使用的与各种命令相关联的属性,并且所述模式可表示为命令、帧和实体对象的层次结构;以及基于所述模式在列-行表中呈递来自所述数据源的数据,并呈递所述相关联的自然语言输入的诸部分。

2.如权利要求1所述的方法,进一步包括在接收自然语言输入之前,访问数据库,以标识与所述数据源中维度相关联的字词和短语。

3.如权利要求2所述的方法,其特征在于所述访问进一步包括标识与所述数据源中的级别和数值相关联的字词和短语。

4.如权利要求1所述的方法,其特征在于所述相关联进一步包括将所述自然语言输入的部分与所述模式的帧对象相关联,其中所述帧对象对应于如何呈递数据。

5.如权利要求1所述的方法,其特征在于所述命令对象涉及为呈递数据而执行的任务。

6.如权利要求1所述的方法,其特征在于所述实体对象涉及在所述数据源中的数据,或者涉及在所述应用程序中的对象。

7.如权利要求1所述的方法,进一步包括:

基于接收到的进一步命令而改变所述表格。

8.如权利要求7所述的方法,其特征在于所述进一步的命令是突出显示所述表格的一部分。

9.如权利要求7所述的方法,其特征在于所述进一步的命令是对所述表格的一部分进行分类。

10.如权利要求7所述的方法,其特征在于所述进一步的命令是过滤所述表格中的信息。

11.如权利要求7所述的方法,其特征在于所述进一步的命令是将信息添加到所述表格。

12.如权利要求7所述的方法,其特征在于所述进一步的命令是清除所述表格中的信息。

13.如权利要求7所述的方法,其特征在于所述进一步的命令包括切换所述行和列信息。

14.如权利要求1所述的方法,进一步包括:

在列-行表中呈递来自所述数据源的数据之前,基于所述自然语言输入呈现候选解释。

15.如权利要求1所述的方法,其特征在于,所述接收自然语言输入的步骤进一步包括:将交互接口提供给用户,用于键入所述自然语言输入。

16.如权利要求15所述的方法,进一步包括:

执行在用户输入所述自然语言输入时指示所述自然语言输入中的识别出的项和提供候选解释的至少其中之一。

17.如权利要求1所述的方法,其特征在于,所述在列-行表中呈递来自所述数据源的数据的步骤进一步包括:呈递所述表格中信息的自然语言描述。

18.如权利要求1所述的方法,进一步包括:

在所述在列-行表中呈递来自所述数据源的数据的步骤之后,保持所述表格的历史以备将来使用。

19.如权利要求1所述的方法,其特征在于,所述将所述自然语言输入的部分与模式的命令对象和实体对象相关联的步骤进一步包括:将所述自然语言输入的部分与有关所述数据源的字词和短语相关联。

20.如权利要求1所述的方法,其特征在于所述分析进一步包括标识所述自然语言输入中的模糊项并呈显用于所述模糊项的候选选项。

21.一种用于处理结构化数据源中的数据的计算机系统,所述系统包括:用户界面模块,其适于接收自然语言输入并呈递表格;

表格生成模块,其适于存取维度和数值并定义用于呈递所述维度和数值的模式;以及解释模块,其适于将所述自然语言输入中的词语与对应于所述数据源中维度的所述模式的实体对象相关联,并产生如何基于所述自然语言输入、所述维度和所述模式来呈递所述数据源中数据的候选解释,其中所述模式包括命令和可在呈递表格时使用的与各种命令相关联的属性,并且所述模式可表示为命令、帧和实体对象的层次结构。

22.如权利要求21所述的计算机系统,其特征在于所述用户界面模块适于呈显候选解释。

23.如权利要求21所述的计算机系统,其特征在于所述数据源包括与所述维度相关联的级别。

24.如权利要求21所述的计算机系统,其特征在于所述用户界面模块适于基于至少一个所述候选解释来呈递来自所述数据源维度和数值的表格。

25.如权利要求21所述的计算机系统,其特征在于所述解释模块适于将所述自然语言输入中的字词和短语与所述数据源的维度和数值进行比较。

26.如权利要求21所述的计算机系统,其特征在于所述解释模块进一步适于执行所述自然语言输入的语义分析。

27.如权利要求21所述的计算机系统,其特征在于所述模式进一步包括涉及要执行的任务的命令对象和涉及如何呈递数据的帧对象。

28.如权利要求27所述的计算机系统,其特征在于所述解释模块进一步适于将所述自然语言输入中的词语与所述命令对象和所述帧对象相关联。

29.如权利要求21所述的计算机系统,其特征在于所述用户界面模块适于将候选解释呈现给用户。

30.如权利要求29所述的计算机系统,其特征在于所述候选解释包括多个表格配置,其中至少一个配置与相同的数据相关联。

31.如权利要求21所述的计算机系统,其特征在于所述用户界面模块适于允许用户选择所述候选解释中的一个,以便呈递一与所述选择的候选解释相关联的表格。

32.一种处理信息以驱动应用程序的方法,包括:

接收自然语言输入;

分析所述自然语言输入,以标识包含于其中的语义信息;

访问一模式,以基于所述语义信息和所述自然语言输入来标识命令对象和实体对象,其中所述模式包括命令和可在呈递表格时使用的与各种命令相关联的属性,并且所述模式可表示为命令、帧和实体对象的层次结构;以及基于所述命令对象和所述实体对象,执行一与所述应用程序相关联的动作。

33.如权利要求32所述的方法,其特征在于所述应用程序是电子数据表应用程序。

34.如权利要求32所述的方法,其特征在于所述动作包括基于所述模式以列-行表格的形式呈递来自数据源的数据。

35.如权利要求32所述的方法,其特征在于所述动作包括基于所述自然语言输入来呈递来自数据源的单个单元的信息。

36.如权利要求32所述的方法,其特征在于,所述命令对象与在所述应用程序中执行的命令相关联,所述实体对象与当执行所述命令时所述应用程序所使用的数据相关联。

37.如权利要求36所述的方法,其特征在于所述访问一模式进一步包括标识一帧对象,其中所述帧对象将所述实体对象与所述命令对象相关联。

38.如权利要求32所述的方法,进一步包括:在执行一与所述应用程序相关联的动作之前,基于所述模式和所述语义信息来呈现所述自然语言输入的候选解释。

39.如权利要求32所述的方法,其特征在于,所述访问所述模式包括标识多个实体对象。

40.如权利要求32所述的方法,其特征在于所述访问所述模式包括标识多个命令对象。

说明书 :

用自然语言命令呈递表格

技术领域

[0001] 本发明涉及通过将用户输入分解为应用程序命令而操纵软件应用程序的方法,尤其涉及将用户输入分解为命令以呈递来自诸如数据库的数据源的信息。

背景技术

[0002] 在典型计算机系统中,用户输入已经被严格限制为具有固定格式的用户响应集。例如,有了命令行接口,用户输入必须是唯一标识来自可能自变量的有限和特定域的单一命令和选定自变量的特定形式。类似地,有了图形用户界面,仅向用户提供有限的选项集,且该集对开发者定义用户输入域是相对直接的,该用户输入域包含有限用户输入集中每个特定用户输入的有限命令或实体集。
[0003] 通过将用户严格限制在允许输入或响应集中,计算机系统需要用户或操作者具有相当的技能水平。通常,运用脑力转化所需任务使其成为计算机系统上运行的应用程序所识别的特定输入来执行,这是用户的责任。为了扩展计算机系统的可用性,已经在努力向应用程序提供自然语言(NL)接口。该自然语言接口把应用程序的功能性扩展到了其有限输入集之外,并使计算机系统向自然语言格式的输入开放。自然语言接口负责执行这样的转化工作,即将相对模糊和高度基于上下文的自然语言领域转化成计算机应用程序所需的精确和严格的输入集。
[0004] 分解自然语言输入以呈递来自诸如数据库的数据源的信息难以执行,是因为数据源的定制特性和用于呈递来自数据源的信息的多种方法。特别地,呈递表格以分析存储在数据源中的信息用来自用户的定义何种信息应被呈递以及如何呈递的特定指令来执行呈递呈递。由于这种复杂的接口,许多用户难以呈递用于有用数据分析的表格。提供用户友好界面来创建并呈递来自数据源信息的表格将提供对信息进行分析的更有效工具。

发明内容

[0005] 本发明涉及操纵软件应用程序的方法,它包括处理存储在结构化数据源中的数据。该方法包括接收自然语言输入并分析该自然语言输入,以标识包含于其中的语义信息。自然语言输入的多个部分被基于语义信息和自然语言输入与一模式的命令对象和实体对象相关联。该方法还包括基于模式和自然语言输入的相关联部分将来自数据源的数据呈递到行-列表格中。
[0006] 本发明的另一方面涉及具有用于处理结构化数据源中的数据的指令的计算机可读介质,该结构化数据源包括维度和与维度相关联的数值。指令包括适于接收自然语言输入并呈递表格的用户界面模块。表格生成模块适于访问维度和数值并定义用于呈递其维度和数值的模式。此外,解释模块适于将自然语言输入中的词语(terms)与对应于数据源中维度的模式实体对象相关联,并产生如何基于自然语言输入、维度和模式来呈递数据源中数据的候选解释。
[0007] 本发明的另一方面是处理信息以驱动包括接收自然语言输入的应用程序的方法。分析自然语言输入以标识包含于其中的语义信息。该方法还包括访问模式以基于语义信息和自然语言输入来标识命令对象和实体对象,并基于命令对象和实体对象来执行与应用程序相关联的动作。

附图说明

[0008] 图1是计算系统环境的框图。
[0009] 图2是用于根据用户输入呈递表格的系统框图。
[0010] 图3是示例性模式示例的框图。
[0011] 图4是用于呈递表格的示例示例性方法的流程图。
[0012] 图5是用于接收来自用户的输入并呈递表格信息的用户界面的屏幕截图。

具体实施方式

[0013] 图1示出了在其上可实现本发明的适当计算系统环境100的一示例。计算系统环境100仅是适当计算环境的一个示例示例,并非旨在对本发明的使用范围或功能性做任何限制。计算环境100也不应被解释为对示例示例性操作环境100中所示组件的任何一个或其组合有任何依赖性或需求。
[0014] 本发明可在许多其它通用或专用计算系统环境或配置中运作。适用于本发明的众所周知的计算系统、环境、和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型装置、微处理器系统、基于微处理器的系统、机顶盒、可编程消费电器、网络PC、小型机、大型机、电话系统、包括任一上述系统或器件的分布式计算环境等等。
[0015] 本发明可以诸如由计算机执行的程序模块的计算机可执行指令的一般上下文来模式。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本发明也可在分布式计算环境中实践,其中任务由与通信网络相连的远程处理装置来执行。在分布式计算环境中,程序模块可位于包括存储器存储装置的本地或远程计算机存储介质中。下面结合附图描述由程序和模块执行的任务。本领域技术人员可将说明书和附图实现为可写在任何形式计算机可读介质上的处理器可执行指令。
[0016] 参照图1,用于实现本发明的示例性系统包括形式为计算机110的通用计算装置。计算机110的组件可包括,但不限于,处理器单元120、系统存储器130,以及将把包括系统存储器的不同系统组件耦合到处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线、以及使用各种总线体系结构任一种的本地总线。作为示例,但并非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微信道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线,以及也被称为Mezzanine总线的外围组件互联(PCI)总线。
[0017] 计算机110通常包括多种计算机可读介质。计算机可读介质可为任何可由计算机110存取的可用介质,其包括易失性和非易失性介质、可移动和不可移动介质。作为示例,但非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪速存储器或其它的存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储器、盒式磁带、磁带、磁盘存储器或其它的磁性存储装置,或者任何其它可用来保存需要信息并可由计算机110访问的介质。通信介质通常包含计算机可读指令、数据结构、程序模块或诸如载波或其它传送机制的已调制数据信号中的其它数据,且其包括任何信息传输介质。术语“已调制数据信号”意指具有以对信号中信息编码的方式来设置或改变的一个或多个特性的信号。作为示例,但非限制,通信介质包括诸如有线网络或直接连接的有线介质,以及诸如声波、RF、红外线和其它无线介质的无线介质。上述的任何组合也应被包括在计算机可读介质的范围内。
[0018] 系统存储器130包括形式为易失性和/或非易失性存储器,诸如只读存储器(ROM)131和随机存取存储器(RAM)132的计算机存储介质。包含帮助在计算机110内元件之间诸如在启动阶段传送信息的基本例程的基本输入/输出系统133(BIOS),通常被保存在ROM 131中。RAM 132通常包含可由处理单元120立即访问和/或现时操作的数据和/或程序模块。作为示例,但非限制,图1示出操作系统134、应用程序135、其它程序模块136,以及程序数据137。
[0019] 计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出读取或写入不可移动、非易失性磁性介质的硬盘驱动器141、读取或写入可移动、非易失性磁盘152的磁盘驱动器151、非易失性磁盘152、以及读取或写入诸如CD-ROM或其它光学介质的可移动、非易失性光盘156的光盘驱动器155。其它可在示例操作环境中使用的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141一般通过诸如接口140的不可移动存储器接口与系统总线121相连,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150的可移动存储器接口与系统总线121相连。
[0020] 以上讨论并在在图1中示出的驱动器及其相关联计算机存储介质提供对计算机可读指令、数据结构、程序模块和其它计算机110的数据的存储。在图1中,例如,硬盘驱动器141被示为用于存储操作系统144、应用程序145、其它程序模块146,以及程序数据147。注意,这些组件可能与操作系统134、应用程序135、其它程序模块136,以及程序数据137相同或相异。在这里,操作系统144、应用程序145、其它程序模块146,以及程序数据147被赋以不同数字,说明它们至少是不同的副本。
[0021] 用户可通过诸如键盘162、话筒163的输入装置和诸如鼠标、跟踪球或触摸板的定向设备161将命令和信息输入到计算机110。其它输入装置(未示出)可包括操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪等等。对自然用户界面应用程序而言,用户可进一步使用语音、书写、眼神(眼睛的移动),以及其它姿势与计算机进行通信。为促进自然用户界面,计算机可包括话筒、书写板、照相机、动作传感器,以及其它用于捕获用户姿势的装置。这些和其它的输入装置常常通过与系统总线耦合的用户输入界面160与处理单元120相连,但也可由诸如并行端口、游戏端口或通用串行端口(USB)的其它接口和总线结构连接。监视器191或其它类型的显示装置也通过诸如视频接口190的接口与系统总线121相连。除监视器之外,计算机还可包括其它的外围输出装置,诸如可通过输出外围接口190相连的扬声器197和打印机196。
[0022] 计算机110可在使用与一个或多个诸如远程计算机180的远程计算机的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、手持式装置、服务器、路由器、网络PC、对等装置或其它的普通网络节点,并通常包括以上所述与计算机110相关的许多或全部元件。图1中所述逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这样的网络化环境常见于办公室、企业范围计算机网络、内联网和国际互联网。
[0023] 当在LAN网络化环境中使用时,计算机110通过网络接口或适配器170与LAN 171相连。当在WAN网络环境中使用时,计算机110通常包括用于在诸如国际互联网的WAN 173上建立通信的调制解调器172或其它装置。可以是内置或外置的调制解调器,可通过用户输入接口160或其它适当的机制与系统总线121相连。在网络化环境中,所描述的与计算机110相关的程序模块或其部分可存储在远程存储器存储装置中。作为示例,但非限制,图1示出驻留在远程计算机180中的远程应用程序185。应当认识到所示网络连接是示例性的,也可使用其它用于建立计算机之间通信连接的装置。
[0024] 通常,应用程序135经通过用户输入接口160的命令行或图形用户界面(GUI)与用户进行交互。然而,为了简化并扩展对计算机系统的使用,已将输入开发成能接收来自用户的自然语言输入。和自然语言或语音相比,图形用户界面是精确的。设计完善的图形用户界面通常不产生模糊的指向,或者需要底层应用程序以确认对通过接口160接收的输入的特定解释。例如,由于接口是精确的,通常不需要进一步对用户作与输入相关的查询,即“您点击了‘确定’按钮了吗?”。通常,为图形用户界面设计的对象模型在其实现上是非常机械和严格的。
[0025] 与来自图形用户界面的输入相比,自然语言查询或命令将频繁转化为不止一个,而是一系列对输入对象模型的功能调用。与传统的行输入或图形用户界面的严格和机械限制相比,自然语言是一种人类对话者常常无意识的依靠彼此智力来解决歧义的通信方法。事实上,自然语言被视为“自然”的确切原因是它不是机械的。人类对话者可基于与围绕该言论的任何领域相关的上下文信息和线索来解决歧义的问题。对人类对话者而言,句子“星期五将会议记录发给评审会的与会者”是不需要进一步解释就可以完全理解的巨资。然而,从机器的机械视角来看,必须指定诸如什么文档、所指何会议,以及该文档将被发给谁这的确切特定细节。
[0026] 本发明涉及解释自然语言输入以驱动应用程序及其相关联的动作。可对驱动自然语言输入的解释以及起动与该应用程序相关联的动作来定义模式。结果,模式既与应用程序本身交互,又与用户自然语言输入的语义解释进行交互。如本领域技术人员所理解,该模式可以是分离码和/或包括在应用程序代码中。本发明的诸方面可在众多不同环境中利用,以向用户提供经改良的自然语言接口。可利用本发明方面的一特定环境涉及从诸如数据库的结构化数据源中呈递信息。该方法可用来呈递如行列表格或者单个单元的表格。在呈递单个单元信息的情况下,信息可以是以自然语言形式显现的问题答案,而不是提供表格格式的数据。例如,用户可输入“加利福尼亚州在1999年支付了多少索赔?”,然后可显现答案“3482”,这样用户就不必细读大量数据去寻找答案了。
[0027] 图2示出了基于自然语言输入用于解决来自用户的自然语言输入并呈递表格信息的系统框图。系统200包括用户接口模块202、表格生成模块204、解释模块202和数据库208。值得注意的是数据库208是示例性数据源。该数据源可采取多种形式,诸如SQL数据库、OLAP立方体(OLAP cube)或者MicrosoftExcel电子表格。用户以命令、问题或其它涉及产生表格的输入的形式向用户接口模块202提供自然语言输入。例如,用户可提供“按年份根据飞机和目的地显示毛利”或者“1999年737的总收入是多少?”,或者简单的“利润”。
用户接口模块202接收自然语言输入并将其提供给表格生成模块204。
[0028] 表格生成模块204定义命令及可在呈递表格时使用的各种命令的相关联属性的模式。例如,命令可包括创建、显示、添加、隐藏、高亮、过滤、清除等等,并包括进一步定义这些命令的属性。命令还可包括打印表格并用来自数据库208的数据创建图表。该模式也可提供给解释模块206以驱动对输入的解释。或者,该模式可用来呈递单个单元的信息。表格生成模块204利用解释模块206来帮助确定应呈递基于从接口模块202接收到的自然语言输入以及驱动用于建造并生成表格的动作的经定义模式来呈递什么信息。表格生成模块204访问数据库208,以便标识对应于储存在数据库208中条目的字和/或短语,并将其提供给解释模块206。
[0029] 解释模块206分析用户输入、模式以及数据库字和短语,以生成向用户呈递什么信息的候选语义解释。首先执行对用户输入的语义分析,以提供用于解释用户会想呈递什么的语义信息。例如,输入中经命名实体可发出信号,即用户希望把条目呈递为页、行、或列或者在表格的数据区内。也可使用其它的语义技术,诸如标识部分语音、接受部分匹配条目和/或依靠匹配某些语音部分、标识语形备选模式(即“区域”和“区域的”)、解决名称拼接(即“家庭的主人”和“家庭主人”)、数据规范化(即“1/1/04”和“2004年1月1日”)、通过类属词典来标识同义词、允许调换的字序(如“总收入”和“收入全部”)以及分级方法。其它的语义信息也可由解释模块206来标识,诸如数值的否定(即隐藏)、比较(即阈值上的值),等等。
[0030] 使用语义信息和模式,解释模块206将自然语言输入中的一个或多个任务与该模式的命令对象相关联,并将自然语言输入中的其它信息与一个或多个帧对象和/或模式中的一个或多个实体对象相关联。模式还可包括诸如标记的其它对象和可表示其它实体并描述对象属性的限制对象。一旦自然语言输入与模式的对象相关联,就分解了候选解释并将其发送到表格生成模块204。
[0031] 在一个示例实施例中,用户接口模块202可以是电子数据表应用程序,诸如由华盛顿州雷蒙德市的微软公司提供的Microsoft Excel。电子数据表应用程序可被配置来处理并呈递所有类型的数据库信息。例如,数据表应用程序可作为在线分析处理(OLAP)呈递工具。OLAP是指允许用户简便并有选择地以不同方式提取并查看数据库中数据的处理方法。在OLAP数据模型中,“信息”在概念上被视作立方体(cube),其由描述性范畴(维度)和量值(量度)组成。多维度据模型使得用户能简单地设计复杂的询问、安排报告中的数据、从汇总切换到详细数据、以及过滤数据或将数据切成有意义的子集。例如,在包含销售信息立方体中的维度可包括时间、地理位置、产品、渠道、组织,以及模式(预算或实际情况)。量度可包括货币销售额、单位销售量、库存量、职员总数、收入和花费。
[0032] 在OLAP数据模型的各维度内,数据可被组织成表示数据细节水平的等级结构。例如,在时间维度内,可有这些级别:年份、月份和天数;同样的,在地理位置维度内,可有这些级别:国家、区域、州/省、和城市。OLAP数据模型的一个特定的实例会具有关于该等级结构中每个级别的特定数值。查看OLAP数据的用户在级别之间向上或向下移动,以看到更详细或较不详细的信息。
[0033] 在本发明的一个实施例中,用户提供的自然语言输入可以被解析以基于OLAP立方体维度在像Microsoft Excel这样的电子数据表应用程序中创建所谓的数据透视表。数据透视表是可以汇总大量数据的交互式表格。呈递表格的交互界面允许用户旋转信息行和列,以便用户查看数据库208中的不同数据汇总、通过显示不同的页和/或显示涉及数据库信息的细节来过滤数据。数据透视表包括字段,每个字段汇总数据源的多行信息。数据透视表也可通过使用诸如对表格中的特定单元进行求和、计数和/或平均这样的汇总功能来汇总数据。为创建数据透视表,用户可调用表格生成模块204。在一个实施例中,表格生成模块204是向导,其指导用户输入涉及呈递表格信息的信息。
[0034] 在这个实施例中,表格生成模块204可基于可用于构建和修改数据透视表的动作而定义模式。该模式可用命令、帧和实体对象的层次结构来表示。其它对象可包括标示器、指定实体和限制对象。命令对象标识任务和动作,帧对象标识涉及数据将如何被显示的动作,而实体对象标识数据。这些对象的具体实例可用来实现信息呈递。实例在需要时可继承基类的属性。表格生成模块204使用模式来执行对数据的动作,以生成表格,解释模块206使用模式来驱动用户输入解释。
[0035] 图3是用来在表格的轴之间移动数据字段的示例模式的框图。模式220包括命令对象222,其被示为“移动轴”命令。命令对象222包括相关联的帧对象224,为“移动轴”帧。帧对象224包括三个相关联的实体对象226、228和230。帧对象224将每个实体对象226、228和230与命令对象222相关联。实体对象与数据库208中的数据相关联。在一个实施例中,实体对象可与要呈递的行或列相关联。在所述实施例中,实体对象226是默认的实体,这里其是字段实体并指定要被移动的数据字段。这样,若用户输入(use input)的解释不分解执行命令对象222中的命令所需要的特定实体,则字段实体226将被分解成默认值,这可基于各种的规则。实体对象228是目标实体,其定义关于要呈递数据的轴。实体对象230是源实体,其定义要被移动到不同轴的当前字段。
[0036] 图4是用于向用户呈递表格示例方法的流程图。方法250在步骤252处开始,其中调用了表格生成模块。在步骤254,表格生成模块也可存取对应于维度、级别、量度和/或数据库208的成员等将要用来匹配用户输入项的的数据库项和/或短语。所标识的数据库项可保持在历史中,以便将来用于改进表格生成模块204的性能。在步骤256,自然语言输入由用户接收到。自然语言输入可为任何形式,包括从键盘输入的文本、语音数据和/或手写数据,且可以是任何语言,包括英语、德语、法语、西班牙语、日语等等。
[0037] 给定自然语言输入后,可在步骤258执行对输入的语义分析,以标识与输入相关联的语义信息。然后,用户输入的候选解释可基于语义信息而得到,并且如上所述,将用户输入的一些部分关联到上述模式的部分上。值得注意的是,命令不必在自然语言输入中清晰地表达,而是可用输入来暗示。例如,输入“苹果和香蕉(apples and bananas)”可暗示用于“显示”命令。通过使用候选解释,可在步骤262呈递表格候选说明。表格候选说明可采用许多形式来创建交互式用户友好界面。例如,可在用户在键入时提供解释和/或表格预览,输入中识别出的项可被突出显示,可呈现多个表格配置(即,某一实体作为行或作为列),可在列表中提供表格候选说明的自然语言描述,模糊选项能以弹出式菜单的形式提供。
[0038] 另外,用户可选择候选说明中的本地歧义。例如,若用户在输入中键入“sales(销售)”,则其中一个候选说明就可包括项“number of sales(销售数量)”,这是数据库208的一部分,且其可等同于项“sales(销售)”。通过提供令一种方法来解析本地歧义,用户可选择“销售数量”作为“销售”等价。这个信息(将“销售”等价于“销售数量”)可被保持,且进一步用在驱动未来的解释。
[0039] 若一用户选择了表格候选说明中的一个,则该特定表格在步骤266被呈递。作为替换,若需要,则当输入词语被识别出来或用户输入出现变化时,表格可被呈递为“不工作状态”。而且,自然语言输入的一部分可被用来在用户打字时识别并可视化地表示词语。例如,识别出的词语可在用户打字时被突出显示。一旦表格被呈递,则用户可通过提供要修改表格或呈递新的表格的进一步的命令或多条命令来对表格做出改变。在步骤268,该进一步的命令可以例如被用来突出显示表格中的部分、隐藏和/或添加行和列、分类(sort)和过滤信息以及其它命令。然后,可在步骤266呈递新的表格。
[0040] 图5阐明依照本发明实施例使用的示例界面300。界面300包括表格显示302,其用于以行-列表格的形式显示来自数据库208的信息。在所述实施例中,按区域显示多种类型飞机的总收入(total revenue)。窗口304被提供给用户,以便查看表格说明并提供由表格生成模块204使用的自然语言输入。窗口304包括表格说明306,其描述当前在显示器302中显示的表格的内容。另外,提供了用于构建表格的输入示例308。用户可将文本输入到字段310中,以便呈递一表格。候选说明312可进一步被提供给用户,如上述是用列表的形式,以便用户可简便地从列表中选择候选者之一。另外,可提供按钮314给用户,以选择特定的表格布置。例如,按钮314可把一个维度从列切换到行。在一个实施例中,可变布置(或配置)的数量可基于自然语言输入中的词语的次序而受到限制。
[0041] 在图4中阐明的示例中,用户已经在输入字段310中提供了自然语言输入“show revenue for aircraft and region(显示飞机和区域的收入)”。表格生成模块204在访问了来自数据库208的项后已经标识了“Total revenue(总收入)”、“Type of aircraft(飞机类型)”和“Region Name(区域名称)”等维度。在312,解释模块206使用字段310中的输入和数据库208中的维度解析该输入并提供候选说明“show total revenue by aircraft type and by regionname(按飞机类型、按区域名称显示总收入)”。
[0042] 在用户选择这个解释后,当前的说明306和表格显示302就被更新,以显示所选的表格和相关联的说明。然后,用户被允许在字段310中输入有关显示302中的表格或有关新的表格的进一步的自然语言命令。例如,用户可提供“Hide Australia(隐藏澳大利亚)”、“show only 747(仅显示747)”、“highlightrevenue over$10,000(突出显示超过$10,000的收入)”,等等。在这些例子中,应用程序将分别隐藏澳大利亚栏、呈递仅具有与747类型飞机相关联的数据的表格、以及突出显示比$10,000多的总收入值。
[0043] 作为上述实施例的结果,提供了这样的自然语言界面,其用于以列-行表格的形式呈递来自诸如数据库等数据源的信息。该界面使得用户更简便地生成并呈递用于数据分析的表格。这样,通过呈递表格来解析数据分析就能以更高的时效和更佳的用户友好方式来执行。
[0044] 尽管本发明已经参考特定的实施例做了说明,但是本领域熟练的技术人员会认识到可对形式和细节做出改变,而不背离本发明主旨和范围。