首页 / 专利库 / 计算机网络 / 数据网络 / 自然语言查询的语义解析

自然语言查询的语义解析

阅读:2发布:2023-11-29

专利汇可以提供自然语言查询的语义解析专利检索,专利查询,专利分析的服务。并且根据本公开的实现,提出了一种用于自然语言查询的语义解析的方案。在该方案中,针对数据集的自然语言查询中的多个词被替换为多个预定符号,以获得抽象语句。通过向抽象语句应用不同的推演规则集,将抽象语句解析为多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义。至少基于多个逻辑表示对应的预测语义,选择一个逻辑表示以用于生成针对数据集的计算机可执行查询。通过该方案,可以在数据集无关以及语法无关的情况下快速实现从自然语言查询到计算机可执行查询的转换。,下面是自然语言查询的语义解析专利的具体信息内容。

1.一种计算机实现的方法,包括:
接收针对数据集的自然语言查询,所述自然语言查询包括多个词,并且所述数据集被组织为表;
通过将所述多个词替换为多个预定符号,将所述自然语言查询转换为抽象语句;
通过向所述抽象语句应用不同的推演规则集,将所述抽象语句解析为多个逻辑表示,每个逻辑表示对应于所述自然语言查询的一个预测语义;以及
至少基于所述多个逻辑表示对应的预测语义,选择一个逻辑表示以用于生成针对所述数据集的计算机可执行查询。
2.根据权利要求1所述的方法,其中将所述自然语言查询转换为所述抽象语句包括以下至少一项:
响应于识别出所述多个词中的第一词与所述数据集中的数据匹配,将所述第一词替换为元数据符号集中的第一预定符号,所述第一预定符号被映射到与所述数据相关的属性和语义;
响应于识别出所述多个词中的第二词与第二预定符号语义上匹配,将所述第二词替换为所述第二预定符号;以及
响应于未识别出所述多个词中的第三词的匹配,将所述第三词替换为第三预定符号,所述第三预定符号指示未知词。
3.根据权利要求2所述的方法,其中所述数据包括以下之一:所述数据集的表名称、列名称、行名称、以及由行和列限定的表项。
4.根据权利要求2所述的方法,其中所述推演规则集中的每个推演规则定义以下至少一项:
该推演规则的应用条件,
从至少一个预定符号推演出推演符号,所述推演符号选自所述元数据符号集和操作符号集,所述操作符号集包含另外的预定符号,所述另外的预定符号被映射到相应的数据分析操作,
所述推演符号对应的谓词逻辑,以及
属性设置规则,所述属性设置规则定义如何设置所述推演符号的属性。
5.根据权利要求4所述的方法,其中从至少一个预定符号推演出推演符号包括以下之一:
将两个预定符号合成为所述推演符号,或者
将单个预定符号替换为所述推演符号。
6.根据权利要求1所述的方法,其中将所述抽象语句解析为多个逻辑表示包括:
使用自底向上的语义解析,从所述抽象语句解析出多个语义解析树以作为所述多个逻辑表示,每个语义解析树的节点包括在应用相应的推演规则集后获得的推演符号和所述推演符号对应的谓词逻辑。
7.根据权利要求1所述的方法,其中选择所述逻辑表示包括:
针对所述多个逻辑表示中的每一个:
确定解析出该逻辑表示的推演规则集中的每个推演规则在所述抽象语句的上下文中的语义置信度,以及
通过加和所述推演规则集的语义置信度来确定该逻辑表示对应的预测语义的语义置信度;以及
通过比较所述多个逻辑表示对应的预测语义的语义置信度来选择所述逻辑表示。
8.根据权利要求7所述的方法,其中确定每个推演规则的语义置信度包括:
标识应用该推演规则生成的所述逻辑表示的一部分映射到所述抽象语句中的一部分;
将所述抽象语句中所标识的部分进行扩展,以获得所述抽象语句中的扩展部分;
提取所述扩展部分的特征;以及
基于所提取的特征和该推演规则的向量化表示来确定该推演规则的语义置信度。
9.根据权利要求8所述的方法,其中利用预先配置的神经网络来执行所述特征的提取和所述语义置信度的确定。
10.根据权利要求1所述的方法,其中所述抽象语句为第一抽象语句并且所述多个逻辑表示为第一多个逻辑表示,并且选择所述逻辑表示包括:
通过将所述多个词替换为第二多个预定符号,将所述自然语言查询转换为第二抽象语句,所述第二抽象语句与所述第一抽象语句不同;
通过向所述第二抽象语句应用不同的推演规则集,将所述第二抽象语句解析为第二多个逻辑表示,每个逻辑表示对应于所述自然语言查询的一个预测语义;
从所述第一多个逻辑表示中选择第一逻辑表示并且从所述第二多个逻辑表示中选择第二逻辑表示;以及
从所述第一逻辑表示和所述第二逻辑表示中确定所述逻辑表示以用于生成所述计算机可执行查询。
11.一种电子设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时使所述设备执行以下动作:
接收针对数据集的自然语言查询,所述自然语言查询包括多个词,并且所述数据集被组织为表;
通过将所述多个词替换为多个预定符号,将所述自然语言查询转换为抽象语句;
通过向所述抽象语句应用不同的推演规则集,将所述抽象语句解析为多个逻辑表示,每个逻辑表示对应于所述自然语言查询的一个预测语义;以及
至少基于所述多个逻辑表示对应的预测语义,选择一个逻辑表示以用于生成针对所述数据集的计算机可执行查询。
12.根据权利要求11所述的设备,其中将所述自然语言查询转换为所述抽象语句包括以下至少一项:
响应于识别出所述多个词中的第一词与所述数据集中的数据匹配,将所述第一词替换为元数据符号集中的第一预定符号,所述第一预定符号被映射到与所述数据相关的属性和语义;
响应于识别出所述多个词中的第二词与第二预定符号语义上匹配,将所述第二词替换为所述第二预定符号;以及
响应于未识别出所述多个词中的第三词的匹配,将所述第三词替换为第三预定符号,所述第三预定符号指示未知词。
13.根据权利要求11所述的设备,其中所述推演规则集中的每个推演规则定义以下至少一项:
该推演规则的应用条件,
从至少一个预定符号推演出推演符号,所述推演符号选自所述元数据符号集和操作符号集,所述操作符号集包含另外的预定符号,所述另外的预定符号被映射到相应的数据分析操作,
所述推演符号对应的谓词逻辑,以及
属性设置规则,所述属性设置规则定义如何设置所述推演符号的属性。
14.根据权利要求13所述的设备,其中从至少一个预定符号推演出推演符号包括以下之一:
将两个预定符号合成为所述推演符号,或者
将单个预定符号替换为所述推演符号。
15.根据权利要求11所述的设备,其中将所述抽象语句解析为多个逻辑表示包括:
使用自底向上的语义解析,从所述抽象语句解析出多个语义解析树以作为所述多个逻辑表示,每个语义解析树的节点包括在应用相应的推演规则集后获得的推演符号和所述推演符号对应的谓词逻辑。
16.根据权利要求11所述的设备,其中选择所述逻辑表示包括:
针对所述多个逻辑表示中的每一个:
确定解析出该逻辑表示的推演规则集中的每个推演规则在所述抽象语句的上下文中的语义置信度,以及
通过加和所述推演规则集的语义置信度来确定该逻辑表示对应的预测语义的语义置信度;以及
通过比较所述多个逻辑表示对应的预测语义的语义置信度来选择所述逻辑表示。
17.根据权利要求16所述的设备,其中确定每个推演规则的语义置信度包括:
标识应用该推演规则生成的所述逻辑表示的一部分映射到所述抽象语句中的一部分;
将所述抽象语句中所标识的部分进行扩展,以获得所述抽象语句中的扩展部分;
提取所述扩展部分的特征;以及
基于所提取的特征和该推演规则的向量化表示来确定该推演规则的语义置信度。
18.根据权利要求17所述的设备,其中利用预先配置的神经网络来执行所述特征的提取和所述语义置信度的确定。
19.根据权利要求11所述的设备,其中所述抽象语句为第一抽象语句并且所述多个逻辑表示为第一多个逻辑表示,并且选择所述逻辑表示包括:
通过将所述多个词替换为第二多个预定符号,将所述自然语言查询转换为第二抽象语句,所述第二抽象语句与所述第一抽象语句不同;
通过向所述第二抽象语句应用不同的推演规则集,将所述第二抽象语句解析为第二多个逻辑表示,每个逻辑表示对应于所述自然语言查询的一个预测语义;
从所述第一多个逻辑表示中选择第一逻辑表示并且从所述第二多个逻辑表示中选择第二逻辑表示;以及
从所述第一逻辑表示和所述第二逻辑表示中确定所述逻辑表示以用于生成所述计算机可执行查询。
20.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在由设备执行时使设备执行权利要求1至
10所述的方法。

说明书全文

自然语言查询的语义解析

背景技术

[0001] 用户出于工作、学习、研究等方面的需要,将期望从知识库查询有用信息。为了实现查询,需要使用诸如结构化查询语言(SQL)、SPARQL协议和RDF查询语言(SPARQL)等机器语言来向计算机发起查询。这要求用户熟练掌握这类机器语言。随着知识库格式的变化、数据检索技术的变化等,机器查询语言也可能发生变化。这为用户的数据检索过程带来更多难度。
[0002] 为了方便用户使用,希望计算机支持使用灵活的自然语言来发起查询。在这种情况下,依赖于机器查询语言进行工作的计算机需要理解用户提出的问题,以便将自然语言查询转换为计算机可执行查询。然而,从自然语言到机器语言的转换是一个极具挑战的任务。这个任务的困难之处在于如何正确解析自然语言查询中的真实语义,这实际上是在自然语言处理中面临的语义解析问题。尽管已经对自然语言的语义解析进行了长时间研究,由于自然语言的词汇、语法和结构的复杂多变性,目前仍然没有一个通用解决方案能够准确理解在各种场景下发生的、基于各种自然语言的语句的语义。发明内容
[0003] 根据本公开的实现,提出了一种用于自然语言查询的语义解析的方案。在该方案中,针对数据集的自然语言查询中的多个词被替换为多个预定符号,以获得抽象语句。通过向抽象语句应用不同的推演规则集,将抽象语句解析为多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义。至少基于多个逻辑表示对应的预测语义,选择一个逻辑表示以用于生成针对数据集的计算机可执行查询。通过该方案,可以在数据集无关以及语法无关的情况下快速实现从自然语言查询到计算机可执行查询的转换。
[0004] 提供发明内容部分是为了简化的形式来介绍对概念的选择,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。附图说明
[0005] 图1示出了能够实施本公开的多个实现的计算环境的框图
[0006] 图2示出了根据本公开的一个实现的用于解析自然语言查询的语义解析模的框图;
[0007] 图3示出了根据本公开的一个实现的数据抽象的示例的示意图;
[0008] 图4示出了根据本公开的一个实现的语义解析树形式的逻辑表示的示意图;
[0009] 图5示出了根据本公开的一个实现的用于确定语义置信度的模型的示意图;以及[0010] 图6示出了根据本公开的一个实现的用于解析自然语言查询的过程的流程图
[0011] 这些附图中,相同或相似参考符号用于表示相同或相似元素。

具体实施方式

[0012] 现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本公开的范围的任何限制。
[0013] 如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
[0014] 如本文所使用的,术语“自然语言”指的是人类用于书面交流或口头交流的日常语言。自然语言的示例包括中文、英文、德文、西班牙文、法文等等。术语“机器语言”指的是计算机可直接执行的指令,也被称为计算机语言或计算机编程语言。机器语言的示例包括结构化查询(SQL)语言、SPARQL协议和RDF查询语言(SPARQL)、C/C+语言、Java语言、Python语言等。机器查询语言是一种机器语言,诸如SQL、SPARQL等,用于引导计算机执行查询操作。人类智可以直接理解自然语言,而计算机只可以直接理解机器语言以便执行一个或多个操作。除非经过转换,否则计算机难以理解自然语言的语法和句法。
[0015] 如以上提及的,语义解析是将自然语言查询转换为计算机可执行查询的一个障碍。已经发现,良好的通用语义解析方案很难实现。已提出的很多通用语义解析方案非常依赖于不同自然语言的语法。一些方案可用于解决特定应用场景、例如数据查询场景的语义解析问题。这些方案往往依赖于对已知的知识库的提前分析,因而仅能够对有限知识库获得良好性能。如果要对新的知识库执行查询,则需要利用新数据来重新设计算法或者重新训练模型。这个过程的时间消耗大、影响用户体验,对于数据查询这种期望高效率结果呈现的场景尤其不利。因此,期望提出一种数据无关、语法无关并且能够快速实现的语义解析方案。
[0016] 示例环境
[0017] 以下参考附图来说明本公开的基本原理和若干示例实现。图1示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100包括通用计算设备形式的计算设备100。计算设备100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。
[0018] 在一些实现中,计算设备100可以被实现为各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。
[0019] 处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备100的并行处理能力。处理单元110也可以被称为中央处理单元(CPU)、微处理器控制器微控制器
[0020] 计算设备100通常包括多个计算机存储介质。这样的介质可以是计算设备100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如内存、闪存驱动、磁盘或者任何其他介质,其能够用于存储信息和/或数据并且可以在计算设备
100内被访问。
[0021] 计算设备100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。
[0022] 通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算设备100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备100可以使用与一个或多个其他服务器、个人计算机(PC)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。
[0023] 输入设备150可以是一个或多个各种输入设备,例如鼠标键盘、追踪球、语音输入设备等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备100交互的设备进行通信,或者与使得计算设备100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
[0024] 在一些实现中,除了被集成在单个设备上之外,计算设备100的各个部件中的一些或所有部件还可以以计算架构的形式被设置。在云计算架构中,这些部件可以被远程布置,并且可以一起工作以实现本公开所描述的功能。在一些实现中,云计算提供计算、软件、数据访问和存储服务,它们不需要终端用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实现中,云计算使用适当的协议通过广域网(诸如因特网)提供服务。例如,云计算提供商通过广域网提供应用,并且它们可以通过web浏览器或任何其他计算组件被访问。云计算架构的软件或组件以及相应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被合并或者它们可以被分散。云计算基础设施可以通过共享数据中心提供服务,即使它们表现为针对用户的单一访问点。因此,可以使用云计算架构从远程位置处的服务提供商提供本文所描述的组件和功能。备选地,它们可以从常规服务器被提供,或者它们可以直接或以其他方式被安装在客户端设备上。
[0025] 计算设备100可以用于实施本公开的多种实现中的对自然语言查询的语义解析。存储器120可以包括一个或多个模块,其具有一个或多个程序指令,这些模块可以由处理单元110访问和运行,以实现本文所描述的各种实现的功能。存储器120可以包括解析模块
122,用于执行语义解析功能。存储器120还可以包括查询模块126,用于执行数据查询功能。
[0026] 在执行语义解析时,计算设备100能够通过输入设备150接收自然语言查询152。自然语言查询152可以由用户输入,并且包括基于自然语言的语句,诸如一个或多个词。在图1的示例中,自然语言查询152是以英语书写的语句“Activity with most shark attack in USA”。自然语言查询152可以被输入用于查询特定知识库,例如存储在存储设备130中的数据集132。数据集132被组织为表,包括表名称“Shark attacks”,多个列名称“Country”、“Activity”、“Attacks”和“Year”以及由行和列限定数据项,例如“USA”等。
[0027] 自然语言查询152被输入给存储器120中的解析模块122。解析模块122可以解析自然语言查询152,并且可以生成针对数据集132的计算机可执行查询124。计算机可执行查询124是由机器语言、特别是机器查询语言编写的查询。在图1的示例中,计算机可执行查询
124是以SQL语言编写的查询“Select Activity where Country=USA GROUP BY activity Order by sum(Attacks)DES LIMIT 1”。
[0028] 计算机可执行查询124可以被提供给查询模块126。查询模块126执行计算机可执行查询124,以从数据集132中查询出在美国引起最多次鲨鱼攻击的活动。查询模块126将查询结果160提供给输出设备160,并由输出设备160输出以作为自然语言查询152的响应。在图1的示例中,查询结果160被编写为自然语言语句“The activity with most shark attacks in USA is swimming”。虽然查询结果被图示为自然语言语句,在另外的实现中,根据具体查询结果类型和实际需要,还可以将查询结果呈现为数值、表、图、或者诸如音频和视频等其他形式。这方面的实现不受限制。
[0029] 应当理解,图1示出的自然语言查询152、计算机可执行查询124、查询结果162以及数据集132仅用于示例的目的,不作为对本公开的实现的任何限制。虽然以SQL为例进行说明,自然语言查询可以被转换为任何其他机器语言形式的计算机可执行查询。数据集132或者其他用于查询的知识库可以被存储在计算设备10的本地或者被存储在经由通信单元140可访问的外部存储设备或数据库中。在一些实现中,计算设备100可以仅执行语义解析工作,并且将解析结果提供给其他设备用于实现计算机可执行查询的生成和/或查询结果的确定。因此,计算设备100的存储器120可以不包括查询模块126。
[0030] 工作原理
[0031] 根据本公开的实现,提出了一种用于自然语言查询的语义解析的方案。该方案涉及将针对被组织为表的数据集的自然语言查询的语义解析。在该方案中,自然语言查询中的词被替换为预定符号,以生成抽象语句。通过向抽象语句应用不同的推演规则集,将抽象语句解析为多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义。基于预测语义来选择一个逻辑表示用于生成针对数据集的计算机可执行查询。以此方式,可以在数据无关、语法无关的情况下快速实现自然语言查询到计算机可执行查询的转换。
[0032] 图2示出了根据本公开的一些实现的用于解析自然语言查询的解析模块122。解析模块122可以被实现在图1的计算设备100中。如图所示,解析模块122包括数据抽象模块210、语义表示模块220和表示选择模块230。
[0033] 数据抽象模块210接收针对特定数据集的自然语言查询152。自然语言查询152可以被认为是一个基于自然语言的语句,其包括多个词。取决于自然语言查询152所采用的语言,多个词可以是一个或多个自然语言中所包含的词汇。数据集被组织为表。数据集可以包括表名称、行和/或列名称、以及由行和列限定的数据项。数据集的一个示例例如是图1示出的数据集132。数据集是自然语言查询152的查询对象,即期望从该数据集中获取自然语言查询152的查询结果。在一些实现中,自然语言查询152所使用的自然语言与呈现数据集的自然语言可以相同。在一些实现中,这两种自然语言可以不同。如从以下讨论将理解的,不同的自然语言仅影响数据抽象过程如何替换符号,这可以通过自然语言互译来实现。
[0034] 根据本公开的实现,数据抽象模块210执行数据抽象操作。具体地,数据抽象模块210通过将自然语言查询152中的多个词替换为多个预定符号,将自然语言查询152转换为抽象语句212。抽象语句212中的多个预定符号的排列顺序与对应的多个词在自然语言查询
152中的排列顺序相同。数据抽象是将自然语言查询152中的原始词汇映射到预定词典中的有限预定符号。这可以降低不同自然语言中的过多词汇的解析难度。预定符号是针对特定场景,特别是针对表的数据查询场景而设定的符号,其中一些符号可以被映射到表相关信息。通过数据抽象,可以从自然语言查询152中抽象出表相关信息。数据抽象过程将在下文中详细描述。
[0035] 在一些实现中,在词-符号的替换过程中,取决于映射关系,自然语言查询152中的同一个词或同一组词可以被替换为不同的预定符号。因此,数据抽象模块210可以从自然语言查询152转换出一个或多个不同的抽象语句212。假设自然语言查询152被表示为x,并且数据抽象模块210生成n个(n≥1)抽象语句212,分别被表示为x1′,x2′,...,x′n。
[0036] 抽象语句212被提供给语义表示模块220。语义表示模块220通过向抽象语句212应用不同的推演规则集,将抽象语句212解析为多个逻辑表示222。在一些实现中,逻辑表示222由多个预定符号以及所应用的推演规则来定义,因此是计算机可解释的表示形式。推演规则用于从抽象语句212的词(即符号)推演出可能的语义。因此,每个逻辑表示222可以对应于自然语言查询152的一个预测语义。
[0037] 推演规则可以作用于抽象语句212的一个或多个预定符号上。在一些实现中,每个推演规则定义以下至少一项:该推演规则的应用条件、从至少一个预定符号到推演符号的推演规则、推演符号对应的谓词逻辑,以及属性设置规则。属性设置规则定义如何设置推演符号所映射到的属性。推演规则可以针对特定场景,特别是针对表的数据查询场景而设计。每个推演规则集可以包括一条或多个推演规则。不同推演规则集中包括的一条或多个推演规则不同。因此,由于不同推演规则的应用,可以生成不同的逻辑表示。通过应用推演规则,逻辑表示可以对应于自然语言查询的一个预测语义。
[0038] 在一些实现中,如果数据抽象模块210提供多个抽象语句212,语义表示模块220针对每个抽象语句212,均可以应用不同的推演规则集以生成多个逻辑表示。如果一个或多个抽象语句212被表示为x1′,x2′,...,x′n,由这些抽象语句生成的逻辑表示可以被表示为Z1,1,Z1,2,...;Z2,1,Z2,2,...;...;Zn,1,Zn,2,...。通过应用推演规则集来生成逻辑表示的过程将在下文中详细描述。
[0039] 多个逻辑表示222被提供给选择模块230。选择模块230基于多个逻辑表示222对应的预测语义,选择一个逻辑表示232(被表示为Z)以用于生成针对数据集的计算机可执行查询。由于每个逻辑表示是通过不同的推演规则、从一个相应抽象语句222解析得到,可以从多个逻辑表示中选择其预测语义更匹配自然语言查询152的真实语义的逻辑表示,以用于生成计算机可执行查询。如下文中更详细讨论的,在一些实现中,可以通过确定每个逻辑表示的语义置信度来衡量预测语义是否匹配真实语义。
[0040] 在一些实现中,如果从多个抽象语句212解析出对应的逻辑表示,选择模块230可以首先从由每个抽象语句212解析得到的逻辑表示中选择一个逻辑表示,所选择的逻辑表示可以对应于在对应抽象语句的基础上解析得到的较好语义。然后,选择模块230可以从针对多个抽象语句选择的多个逻辑表示中继续筛选对应于更匹配的语义的逻辑表示。
[0041] 选择模块230选择的逻辑表示232(被表示为Z)由于被表示为计算机可解释的形式,因此可以根据需要(例如要使用的机器查询语言)用于生成计算机可执行查询。在一些实现中,解析模块122可以包括另一模块用于执行计算机可执行查询的生成。在另外一些实现中,所选择的逻辑表示可以被提供给计算设备100的存储器120中的其他模块或者其他设备,以用于计算机可执行查询的生成。
[0042] 根据本公开的实现,不是直接将自然语言查询合成为计算机可执行查询,而是通过数据抽象和中间的逻辑表示的生成和选择,来将逻辑表示解释成计算机可执行查询。在这个过程中,用于语义解析的词典和推演规则被设计为尽可能简单,并且可仅通过学习表面特征来实现语义解析。这种语义解析方案可以获得跨语言和知识域的准确结果,实现了数据无关、语法无关的快速语义解析。在一些实现中,预定符号和推演规则可以基于专家知识来设置,因此可以包括本文中描述的不同的、更多或更少的预定符号和/或推演规则。通常,在针对表形式的数据集的查询中,有限数目的符号和推演规则就可以达到良好的语义解析效果。
[0043] 图2示出了将自然语言查询解析为逻辑表示以用于生成计算机可执行查询的示例实现。以下将进一步分别详细描述这个过程中涉及的数据抽象、语义表示和表示选择的实现。
[0044] 数据抽象
[0045] 如以上讨论的,数据抽象模块210的数据抽象过程依赖于预定符号。预定符号来自预定词典,也称为词表。在一些实现中,预定词典中的符号包括指示表相关信息或数据的预定符号,诸如指示表名称、行和/或列名称、以及由行和列限定的特定数据项的预定符号。这样的预定符号可以被映射到表相关信息的属性和语义,其中属性描述该符号的基本信息,语义表征该符号的含义。如以下将讨论的,这类预定符号可以继续推演出其他符号,因此也可以被元数据符号,并且可以被包含在元数据符号集中。以下表1中给出了元数据符号集中的预定符号的一些示例。应当理解,表1中的英文字母类型的符号仅仅是示例,可以用任何其他符号来指示表相关信息。
[0046] 表1元数据符号
[0047]符号 属性 语义
T 列 表
C 列、类型 表的列
V 值、列 一般数据项
N 值、列 数值
D 值、列 日期/时间
[0048] 在表1中,符号T的语义表示整个表(即数据集),其具有属性“列”(可表示为col),其记录该符号包含表的一个或多个列的名称,符号C的语义是表的列,其具有属性“列”(col)和“类型”(可表示为type)。“类型”属性记录一个列中的数据的类型,类型可以选自诸如{数字、字符串、日期}。符号V、N和D表示表的由行和列限定的数据项,都具有属性“值”(可表示为value)和“列”(可表示为col),其中属性“value”记录由行和列限定的数据项的具体信息,分别对应于一般数据项的字符串、数值和日期/时间,而属性“col”指示这些符号对应的列。
[0049] 元数据符号集中的预定符号具有两方面作用。第一方面的作用是如上所述的,用于在后续解析过程中推演出其他符号。另一方面是可以用于考虑符号被映射到的语义和属性来生成计算机可执行查询。
[0050] 除了指示表相关信息的符号之外,预定词典中的符号还可以包括给定的自然语言中的重要词或者指示这些重要词的另外的符号。这样的重要词可以包括重要的停用词,例如英文中的“by”、“of”、“with”等等。一些与数据分析和/或数据聚合相关的词也可以被认为是在数据查询场景中的重要词,例如英文中的“group”、“sort”、“different”、“sum”、“average”、“count”等等。可用作预定符号的重要词还可以包括与比较相关的词,诸如英文中的“greater”、“than”、“less”、“between”、“most”等等。这样的重要词对应的预定符号可以由其在不同自然语言中对应的词来表示,例如预定符号被表示为“by”、“of”、“with”等等。备选地,这些词可以由能够与指示表相关信息的预定符号区分开来的其他符号进行统一表示,在这种情况下,这些预定符号可以被映射到不同自然语言下的词。
[0051] 通常,为了使得预定词典较简单,可以将其中的预定符号的数目表示在一个有限数目。例如,经过试验发现,对于英文,大约400个预定符号即可以用于实现合意的语义解析结果。在一些实现中,还可以设置一个特殊符号,用于指示未知词,该特殊符号可以是任何区别于其他预定符号的符号,诸如“UNK”。可以看出,所有预定符号不是专用于某个数据集或表,而是对于所有数据集或表都可通用。
[0052] 在数据抽象过程中,可以采用多种技术来执行自然语言查询152中的一个或多个词与预定符号的匹配。在一些实现中,数据抽象模块210将自然语言查询152的多个词进行分割(即分词)和/或执行词形变换,从而获得多组词,每一组包括一个、两个或两个以上的词。在一些实现中,由于分词要求较高的语法分析,可以不执行分词,而直接将多个词逐个划分。然后,数据抽象模块210基于预定符号中的符号来源来确定应当将每组词或每个词替换为哪个预定符号。即使多个词被逐次划分,在执行预定符号替换时,数据抽象模块210也可以遍历多个词的组合。通常,针对相邻的两个或更多词作为一组词。
[0053] 具体地,数据抽象模块210可以识别自然语言查询152中的多个词中的一个或更多词与数据集(例如数据集152)中的数据是否匹配。如果数据抽象模块210识别出多个词中的一个或更多词与数据集中的数据匹配,将该词替换为指示表相关信息的预定符号,诸如以上表1中列出的预定符号。在替换预定符号后,该预定符号将被映射到与表的信息相关的属性和语义,诸如表1的映射形式。在一些实现中,由于预定符号中包含指示与一般数值、日期、时间等与语言无关或者支持多语言的预定符号(例如,V、N、D),数据抽象模块210在执行分词和/或词性变换之前从自然语言查询152中识别出数值,并且通过判断所识别的数值的类型来确定匹配到的预定符号。
[0054] 图3示出了将自然语言查询152转换为抽象语句212的一个示例的示意图。图3中的自然语言查询152如图1所给出的具体自然语言语句。在对自然语言查询152执行分词或词组分割之后,数据抽象模块210确定词“Activity”与数据集132的一个列的名称匹配。数据抽象模块210将该词替换为与指示一个列的名称的预定符号,例如符号“C”。数据模块210遍历自然语言查询152的词,并且识别出词“Attacks”和“USA”分别与数据集132的一个列和由行和列限定的一个数据项匹配,因此将这两个词分别替换为指示这样的表信息的预定符号,例如,例如符号“C”和“V”。
[0055] 数据抽象模块210还可以识别多个词中的一个或更多词与某个预定符号是否语义上匹配,并且在语义匹配的情况下将该词替换为指示重要词的预定符号。仍以图3为例,数据抽象模块210在遍历自然语言查询152的词时发现词“with”、“most”和“in”与预定符号语义匹配,即语义完全相同或相似,因此可以将这些词保留作为预定符号。或者如果这些词在预定词典中由其他不同形式的预定符号来表征,则可以将这些词替换为其他预定符号。
[0056] 如果数据抽象模块210未识别出自然语言查询152中的某个词的匹配,则将该词替换为指示未知词的特殊预定符号(例如,符号“UNK”)。例如,在图3中,数据抽象模块210遍历到词“Sharks”时,无法识别出该词与数据集中的数据匹配或者与其他预定符号直接匹配,则可以将该词替换为符号“UNK”。
[0057] 经过基于预定符号的抽象,数据抽象模块210可以将自然语言查询152转换为抽象语句212“C with most UNK C in V”。在数据抽象过程中,对于一个或多个词,数据抽象模块210可能识别出多种可能匹配或未匹配的结果。例如,对于自然语言查询152中的词组“Shark attacks”,除了可以被替换为“UNK C”两个预定符号之外,数据抽象模块210还识别出该词组与数据集132中的表名称匹配,因而将该词组替换为被指示表名称的预定符号,例如符号“T”。通过利用不同组的预定符号来执行替换,数据抽象模块210可以获得多于一个的抽象语句212,例如另一抽象语句“C with most T in V”。
[0058] 在一些实现中,在执行与数据集中的数据或者与预定符号的语义匹配过程中,数据抽象模块210可以使用字符串匹配、词干匹配、同义词/近义词匹配等一个或多个匹配技术。
[0059] 通过数据抽象过程,可以将自然语言查询152中的表相关信息、重要词等提取出来,并且可以用特殊预定符号(UNK)替换不存在于预定词典中的未知词。以此方式,具有较多可能词汇的自然语言查询被局限到有限词表中,这有利于使后续语义解析与数据无关并且能够快速执行。虽然词表有限,但由于保留的词/符号均适于表征在针对表的数据查询的上下文中的特定语义,仍然可以用于支持正确的语义解析。
[0060] 语义解析
[0061] 为了生成逻辑表示以促进语义解析,语义表示模块220向抽象语句210应用不同的推演规则。这些推演规则也可以在预定词典中指示表相关信息的预定符号(即元数据符号)的基础上设置,用于促进理解由这些预定符号组成的抽象语句背后的语义。如以上提及的,每个推演规则可以由推演符号的推导、推演符号的谓词逻辑、应用条件和属性设置规则中的一项或多项来定义。如果某个推演规则中的某项未被定义,则它的相应部分可以被表示为空或N/A。
[0062] 每个推演规则定义符号变换,指示如何从当前符号推演出另一符号(可称为推演符号)。“推演符号”在本文中指的是从抽象语句中的预定符号推演得到的符号,取决于具体的推演规则,推演符号可以选自元数据符号集(例如表1中所提供的那些)以及另一操作符号集。操作符号集也包含一个或多个预定符号,这些符号与元数据符号集中的预定符号不同,并且可以被映射到相应的数据分析操作。数据分析操作是计算机可解释且可执行的。通常,操作符号集中的预定符号的属性为“列”,记录要执行相应数据分析操作的列。在一些实现中,操作符号集中的预定符号也被认为映射到属性和语义,其中语义表示相应的数据分析操作。以下表2中给出了一些操作符号集的示例,然而应当理解,更多、更少或者不同的预定符号也是可能的。
[0063] 表2操作符号
[0064]符号 属性 语义/数据分析操作
A 列 聚合
G 列 分组
F 列 过滤
S 列 最高级
[0065] 符号A的语义对应于聚合操作,其属性为“列(可表示为A.col),用于记录要被聚合的一个或多个列。符号G的语义对应于分组操作,其属性“列”用于记录要被分组的一个或多个列。符号F的语义对应于过滤操作,其属性“列”用于记录要应用过滤操作的列。符号S表示最高级,其属性“列”用于记录要应用取最高级操作(取最大值、取最小值等)的列。
[0066] 在应用推演规则时,可以从一个或多个预定符号推演出另一预定符号。除了符号变换外,每个推演规则还可以定义应用条件,该应用条件指定在预定符号满足何种条件的情况下才应用该推演规则(也即应用该推演规则)。应用条件是否满足可以基于要变换的预定符号被映射到的属性来确定。处于变换后得到的推演符号,还需要设置推演符号的属性。属性的设置可用于后续进一步的推演。这里的属性可能与原始的预定符号对应的属性不完全相同。
[0067] 通过推演规则的应用,从预定符号获得的推演符号可以被映射到数据分析域中的操作或表示,这有利于后续生成的逻辑表示表征自然语言查询的某种语义,该语义是由计算机可解释(例如通过谓词逻辑来解释)。
[0068] 在详细描述语义表示模块220如何生成逻辑表示222之前,首先讨论适用于针对表的数据查询的上下文的一些推演规则的示例。应当理解,所讨论的具体推演规则仅作为示例。在一些实现中,对于组成抽象语句的多个预定符号,仅针对其中来自元数据符号集(例如表1)的预定符号执行应用推演规则,因为这些符号指示与表相关的信息。在一些实现中,在前一次推演的基础上还可以继续推演(只要满足应用条件),因此推演规则还可以被应用在来自操作符号集合的预定符号。
[0069] 在一些实现中,根据推演规则的不同,推演规则可以被划分为两个类别。第一类别的推演规则称为合成推演规则,其定义将两个预定符号合成为一个推演符号。取决于规则设置,推演符号在表现形式上可以与两个预定符号中的某个符号的相同或者与两个符号均不同。合成推演规则是重要的,因为可以反映语义中的组合特性。
[0070] 以下表3中给出了合成推演规则的一些示例。
[0071] 表3合成推演规则的示例
[0072]
[0073]
[0074] 在表3中,标识“|”指示该标识两边的符号是“或”的关系,即取其一。在每个推演规则中,推演符号以上标 来特别标注,但推演符号仍然可以被认为是元数据数据集或操作符号集中的预定符号,虽然它的属性被特别设置。在下文中,推演符号有时不使用特殊上标来指示。还要注意,在推演中,“+”左右两侧的符号的顺序不影响该推演规则的使用。例如,“C+T”与“T+C”相同。
[0075] 在表3中,第一列“推演和谓词逻辑”指示从左边的两个预定符号可以推演出右边的预定符号及其对应的谓词逻辑。这些符号变换/推演规则主要来自关系代数,并且谓词逻辑被映射到数据分析领域中的操作。表3中列出了谓词逻辑,诸如投射(project)、过滤(filter)、等同(equal)、大于(more)、小于(less)、和/或(and/or)、取最大/最小(argmax/argmin)或组合(combine)。第二列“应用条件”指示该推演规则在何种条件下可以被应用。应用条件的设置可以来自专家知识。通过设置应用条件,可以避免在对推演规则的随机排列组合应用时导致过多的冗余使用情况,从而极大减少搜索空间。例如,对于推演和谓词逻辑 应用条件定义只有在预定符号“C”的属性(即类型)属于字符
串或者日期时,才将符号“G”和“C”合成为推演符号
[0076] 第三列“属性设置规则”指示如何设置推演符号的属性。在应用推演规则执行解析时,对推演符号的属性的设置可以用于后续推演以及对于计算机可执行查询的生成。例如,属性设置规则 意味着推演符号 的属性“列”将被设置为预定符号C、A、G或S的属性“列”所记录的列名称。
[0077] 此外,在合成推演规则中还引入了修饰操作(modify)。这个符号基于语义解析领域中关于选区语法的X-bar理论,基于该理论,在词组中,带有一些修饰词的某些词可以被认为是中心词,这例如可以被表示为NP:=NP+PP。发明人在涉及数据查询场景下的合成推演规则时发现,某些预定符号,诸如F和S可以被合成为其中一个预定符号,该预定符号是先前两个预定符号中表达其中心语义的符号(例如, )。合成的推演符号沿用先前的预定符号的属性,但修饰操作(modify)的谓词被指派给推演符号。这样的合成推演规则有助于正确解析语言学上的正-偏词组结构。虽然表3中仅给出了涉及修饰操作的一些推演规则,但根据需要还可以涉及更多的其他推演规则。
[0078] 上述合成推演规则要求两个预定符号合成为一个推演符号的推演规则以用于产生新的语义,但这可能不足以表征一些复杂语义。已经发现,某些单个符号也可以表示重要语义。例如,在“Shark attacks by country”的自然语言查询中,人类从上下文可以理解其中暗含的语义是要对“attacks”求和。为了能够使计算机理解这样的暗含语义,需要对词“attacks”对应的预定符号执行进一步的推演。因此,在一些实现中,还定义了用于一对一的符号推演的推演规则。这样的推演规则可以被称为提升推演规则。提升推演规则涉及从指示表相关信息的预定符号推演出指示表相关信息的另一预定符号。在设计提升推演规则时,还可以避免出现提升语法循环(例如,两个预定符号可以不断相互转换),这可以通过设计推演规则的应用条件来实现。提升语法循环的抑制可以有效降低后续生成逻辑表示的数目。
[0079] 表4给出了提升推演规则的一些示 例。例如 ,定义推演规则的推演规则允许从符号C推演出符号 条件在于符号C对应
的类型属性是数值(即,C.type=num)。推演符号A被映射到谓词逻辑可以包括与数值相关的多种谓词逻辑,诸如取最小值(min)、取最大值(max)、取总和(sum)、取平均值(average)。
表4中的其他推演规则也是可以理解的。
[0080] 表4提升推演规则的示例
[0081]
[0082] 以上讨论了不同推演规则的示例。应当理解,基于专家知识以及具体的数据查询场景,可以设置更多、更少或者不同的推演规则。根据上述推演规则,推演符号指示表相关信息或指示针对表的不同操作的预定符号的实例,因此可以用预定符号来表示。在表3至表4中,仅为了区分的目的列出推演符号的变形表示。在一些示例中,推演符号 也可以被表示为T,与表1中示出的预定符号相同。其他推演符号也可以类似表示。
[0083] 预定的推演规则可以组成推演规则库。在操作过程中,语义表示模块220访问这些推演规则库,以便利用这些推演规则来解析抽象语句212,以生成对应于自然语言查询152的预测语义的逻辑表示222。在解析抽象语句212时,语义表示模块220可以遍历抽象语句212中的预定符号,以确定是否可以向一对符号应用合成推演规则(如表3),和/或是否可以向单个符号应用提升推演规则(如表4)。某个推演规则是否可以被应用,取决于该推演规则的应用条件是否得到满足。在一些实现中,根据推演规则的定义,语义表示模块220只需要针对抽象语句212中包含的来自元数据符号集的预定符号执行判断,而不需要考虑语义匹配的预定符号或特殊符号(这些符号将在选择逻辑表示时作为上下文信息被考虑在内,如以下描述的)。在这个遍历过程中,有些预定符号或符号组合可能满足多个推演规则的应用条件。因此,不同推演规则集(包括一个或多个推演规则)可以被用于生成不同的逻辑表示
222。
[0084] 在以上表3至表4的示例中,预定推演规则定义的推演规则可以被表示为以下两类:
[0085]
[0086]
[0087] 其中X表示预定符号,l表示预定符号对应的谓词逻辑,s表示包含该预定符号的抽象语句部分。
[0088] 公式(1)表示从两个相邻的预定符号推演出另一个预定符号(即推演符号),该推演符号所对应的抽象语句是前两个相邻的预定符号对应的抽象语句的连接(即,)。公式(2)表示从一个预定符号推演出另一个预定符号(即推演符号),推演符号和推演前的预定符号对应的抽象语句部分相同。因此,在语义解析算法执行完成后,语义解析树上的每个节点由两部分组成:推演规则(推演符号、对应的谓词逻辑和属性),以及该推演规则对应的抽象语句部分。语义解析树的底层为抽象语句的预定符号。
[0089] 在一些实现中,语义表示模块220可以使用自底向上的语义解析,从抽象语句212解析出多个语义解析树以作为多个逻辑表示。语义表示模块220可以利用各种语义解析方法的技术来生成逻辑表示。每个语义解析树的节点包括在应用相应的推演规则集后获得的推演符号和推演符号对应的谓词逻辑。在一些实现中,每个语义解析树的节点还可以包括获得该推演符号对应的抽象语句部分,即该推演符号被映射到的抽象语句部分。每个语义解析树可以被认为对应于自然语言查询152的一个预测语义。
[0090] 在一些实现中,针对每个抽象语句212,使用自底向上的语义解析,可以从其包含的多个预定符号出发,在某个推演规则的应用条件满足时应用推演规则以获得推演符号,直到获得最后一个推演符号作为该语义解析树的顶点。举例而言,可以利用CKY算法来执行对抽象语句212的自底向上的语义解析。CKY算法的使用可以实现动态规划,并且能够加速推理过程。此外,能够支持在特定规则基础上实现自底向上的语义解析的任何其他算法也可以被采用。本公开的实现的范围在此方面不受限制。
[0091] 在生成语义解析树的过程中,语义表示模块220在多个推演规则的应用条件被满足时做出不同的选择,从而可以获得不同语义解析树。基本上,语义表示模块220搜索根据推演规则定义的所有可能的逻辑表示。以此方式,可以预测出自然语言查询152的所有可能语义。由于抽象语句中可能的预定符号的数目有限,并且不同推演规则在一定条件下才会触发、而不是无条件使用,因此在本公开的实现中,语义解析树的搜索空间是有限的,这可以提高逻辑表示生成以及后续操作的效率。同时,预定符号和推演规则的设计还可以确保语法的灵活性和表达性,从而维持语义解析准确性。
[0092] 图4示出了将一个抽象语句212“C with most UNK C in V”解析成语义解析树222的示例。通过遍历抽象语句212的预定符号,语义表示模块220确定预定符号“C”符合一个提升推演规则(例如表4中第一行推演规则)的应用条件(因为符号“C”的属性被标记为数值),因此从预定符号“C”推演出推演符号“A”并选择一个谓词逻辑,即“sum”,这可以被表示为“C→A:[sum]”。注意,推演符号“A”也可以对应于其他谓词逻辑,但将在另一语义解析树中被选择。因此,语义解析树222的一个节点410被表示为“C→A:[sum]”并且还指示对应抽象语句212的一部分“C”。语义表示模块220还确定抽象语句212中的预定符号“C”和节点410对应的推演符号“A”符合一个合成推演规则(例如表4中对应于推演和谓词逻辑“A+C→S:argmax”的推演规则)的应用条件(即符号C的属性被标记为数值),因此可以确定语义解析树的节点430,其表示推演和谓词逻辑“A+C→S:argmax”以及用于合成的两个符号映射到抽象语句212的部分“C with most UNK C”。
[0093] 此外,语义表示模块220还确定预定符号“V”符合一个提升推演规则(例如表4中对应于推演和谓词逻辑“V→F:[equal]”的推演规则)的应用条件(即只要遇到符号V就被触发),因此可以确定语义解析树的节点420,其表示推演和谓词逻辑“V→F:[equal]”以及对应抽象语句212的部分“V”。语义表示模块220还能够继续确定推演符号“S”和“F”符合一个合成推演规则(例如表3中对应于推演和谓词逻辑“S+F→S[modify]”的推演规则)的应用条件(即 ),因此可以确定语义解析树的节点440,其表示推演和谓词逻辑“S+F→S[modify]”和用于合成的两个符号映射到抽象语句212的部分“C with most UNK C in V”。
[0094] 在应用可能的多个推演规则后,形成如图4所示的语义解析树222。语义解析树222的节点包括在应用相应的推演规则之后获得的推演符号、推演符号对应的谓词逻辑以及该推演符号被映射回到抽象语句212的部分。解析语义解析树222中的各个节点可以对应于某个语义,该语义被认为是自然语言查询152的预测语义。
[0095] 逻辑表示的选择
[0096] 语义表示模块220可以通过遍历推演规则库为由数据抽象模块210获得的一个或多个抽象语句中的每一个均生成多个逻辑表示222。选择模块230被配置为从这些逻辑表示中选择出一个逻辑表示232以用于生成计算机可执行查询。期望选择出来的逻辑表示与自然语言查询152的真实语义的匹配度较好。由于在遍历预定符号和推演规则之后,已经尽可能地搜索语义空间,用逻辑表示来表征自然语言查询152可能的语义。通过衡量逻辑表示的语义置信度,可以从中选择出有较大概率匹配表达真实语义的逻辑表示。
[0097] 在一些实现中,针对多个逻辑表示222中的每一个,选择模块230确定在生成逻辑表示的过程中使用的每个推演规则的语义置信度,然后基于生成该逻辑表示的过程中使用的多个推演规则的语义置信度,来确定该逻辑表示对应的预测语义的语义置信度。选择模块230可以基于多个逻辑表示222对应的预测语义的语义置信度来选择一个逻辑表示232。例如,选择模块230可以将这些语义置信度进行排序,并且选择具有较高(或最高)语义置信度的逻辑表示。在一些实现中,如果存在多个抽象语句212以及从各个抽象语句212中解析出的逻辑表示222,选择模块230可以首先从每个抽象语句解析出的多个逻辑表示中选择一个逻辑表示(例如,通过语义置信度的计算和排序),然后将针对多个抽象语句选择出的逻辑表示进行排序,再从中选择出具有较高(或最高)语义置信度的逻辑表示。
[0098] 在一些实现中,在确定每个推演规则的语义置信度时,为了获得更多的上下文信息,可以采用基于扩展的分析方法。具体地,每个推演符号对应于抽象语句的一部分可以表示该推演符号的符号宽度,这可以被表示为“s”。在确定语义置信度时,选择模块230可以标识每个推演规则生成的逻辑表示的一部分(例如,语义解析树的每个节点)映射到抽象语句中的一部分,诸如由在生成语义解析树时由节点所标识的部分。选择模块230可以将所对应的部分进行扩展,以获得抽象语句212中的扩展部分。在一些实现中,选择模块230可以将抽象语句212中从两个方向扩展,直到遇到特定符号。在图4的示例中,对于节点410,假设将所对应的抽象语句的一部分(即符号“C”)从“s”扩展到“s’”,所获得的扩展部分除了预定符号“C”之外还包括抽象语句212的上下文中预定符号“with most UNK”和“in”。
[0099] 选择模块230可以提取抽象语句212的扩展部分的特征,并且基于所提取的特征和推演规则的向量化表示来确定该推演规则的语义置信度。语义置信度指示该推演规则对解析自然语言查询152的真实语义的贡献,换言之,在此处应用该推演规则是否是合理的,是否有助于理解自然语言查询152的真实语义。
[0100] 在一些实现中,选择模块230可以利用预先配置的学习模型,例如神经网络来执行扩展部分的特征提取和每个推演规则的置信度的确定。神经网络被构造为包括多个神经元,每个神经元根据训练获得的参数来处理输入,并产生输出。神经网络的所有神经元的参数组成神经网络的参数集。当神经网络的参数集被确定时,神经网络可以被运行以执行相应功能。在本文中,神经网络也可以被称为“学习网络”或“神经网络模型”。在下文中,术语“学习网络”、“神经网络”、“神经网络模型”、“模型”和“网络”可替换地使用。
[0101] 图5示出了根据本公开的一个实现的用于确定语义置信度的神经网络500的示意图。该神经网络500的输入包括针对特定推演规则,从抽象语句212中标识出的该推演规则所对应的扩展的上下文信息。在一些实现中,词表中的每个符号可以被编码为对应的向量化表示,这些向量化表示用于在词表中对符号进行区分。在一些实现中,神经网络500包括用于提取扩展部分(例如,抽象语句212的一部分“with most UNK C in”)的特征的第一子网络510。第一子网络510从扩展部分(例如,扩展部分的向量化表示)提取相应的特征。在一些实现中,第一子网络510可以被设计为长短期记忆(LSTM)子网络,其包括多个LSTM神经元512,用于执行隐藏特征表示提取。在一个示例中,LSTM神经元的数目可以与扩展部分中的符号数目相同或者更多。在其他实现中,其他类似的神经元也可以用于执行隐藏特征表示的提取。由第一子网络510提取的隐藏特征可以被表示为h1,...hn(其中n对应于LSTM神经元的数目)。
[0102] 神经网络500还包括第二子网络520,用于基于在特定推演规则下的注意力机制来确定扩展部分的特征的注意力权重。第二子网络520包括多个神经元522,每个神经元用于利用相应参数执行对输入的处理以生成输出。具体地,第二子网络520接收第一子网络510提取自扩展部分的隐藏特征h1,...hn并且确定各个特征对应的注意力权重。
[0103] 神经网络500可以包括向量化模块502,用于确定每个推演规则的向量化表示。推演规则的向量化表示可以由用于以与其他推演规则区别的方式来表征该推演规则。在一个示例中,每个推演规则r(其中r表示该推演规则的标识)可以被编码为密集向量,表示为er=Wfr,其中矩阵W是向量化模块502的参数集,fr是推演规则r的稀疏向量,fr∈{0,1}d,用于从多个推演规则中标识推演规则r。向量化模块502利用预设参数集W来处理每个推演规则的系数向量表示。
[0104] 在第二子网络520中,每个神经元522接收推演规则的密集向量er和从第一子网络510提取的隐藏特征h1,...hn,并且利用预先配置的参数集来处理输入。这可以被表示为:
[0105] ui=θTtanh(W1hi+W2er)   (5)
[0106]
[0107] 其中向量θ以及W1和W2是第二学习子网络520的参数集。第二学习子网络520的注意力权重a1,...an用于加权到由第一子网络510输出的隐藏特征表示h1,...hn,以生成扩展部分的最终特征。这可以由加权模块504来实现。扩展部分的最终特征的确定可以被表示为:
[0108]
[0109] 通过注意力权重a1,...an,可以在给定推演规则下获取隐藏特征表示中某些更值得关注的特征表示,以用作扩展部分的最终特征。
[0110] 神经网络500进一步包括置信度计算模块530,用于基于扩展部分的特征和推演规则的向量化表示来确定该推演规则的语义置信度。语义置信度的计算可以被表示为其中φ()表示用于置信度计算的函数。置信度计算模块530可以利用任意得分函数(例如点乘、余弦相似度计算函数、双线性相似度计算函数等)来执行置信度计算。
[0111] 图5给出了基于神经网络500确定每个推演规则的语义置信度的示例。神经网络500的训练将在以下描述。应当理解,图5示出的神经网络仅是一个示例。在其他实现中,可以利用被构造为其他形式的神经网络实现推演规则置信度的确定。
[0112] 针对给定逻辑表示222,在例如利用基于神经网络的模型确定每个推演规则的语义置信度之后,在一些实现中,选择模块230通过加和给定逻辑表示222的推演规则集的语义置信度,再经过指数变换来确定该逻辑表示对应的预测语义的语义置信度。语义置信度指示给定逻辑表示对应的预测语义反映自然语言查询152的真实语义的概率。在一些实现中,语义置信度可以与推演规则集的语义置信度之和成某个函数关系。例如,选择模块230可以利用log线性模型来计算逻辑表示222对应的预测语义的语义置信度,这可以被表示为:
[0113]
[0114] 其中p(Z|x)表示语义置信度,其指示逻辑表示Z对应的预测语义反映自然语言查询x的真实语义的概率,∝表示成比例关系,exp()表示自然常数e为底的指数函数,zi表示解析逻辑表示Z所使用的一个推演规则。根据公式(8)可以确定,语义置信度与用于生成一个逻辑表示的推演规则的语义置信度相关。
[0115] 针对每个抽象语句的每个逻辑表示,均可以利用以上描述的实现来确定逻辑表示对应的预测语义的语义置信度。选择模块230然后基于逻辑表示的语义置信度来选择一个逻辑表示用于生成计算机可执行查询。如以上提及的,可以首先从每个抽象语句212解析得到的逻辑表示中执行一次逻辑表示的选择,然后跨多个抽选语句212选择具有最优语义置信度的逻辑表示。因为首先在抽象语句的基础上执行逻辑表示选择,在一些实现中,可以并行执行抽象语句的生成、抽象语句到逻辑表示的解析以及语义置信度的计算。这可以进一步提高语义解析的效率。
[0116] 在以上一些实现中,基于神经网络的模型可以用于确定单个推演规则的语义置信度,并进一步用于确定逻辑表示的语义置信度。为了配置这样的神经网络模型的参数集(例如上述参数W、θ、W1和W2等),可以利用训练数据对神经网络模型(例如神经网络500)进行训练。训练样本可以包括被组织为表的训练数据集(被表示为ti),针对该训练数据集的训练自然语言查询(被表示为xi)和对应的真实/正确的计算机可执行查询(例如SQL查询,可被表示为yi),这样的训练数据可以被表示为(xi,ti,yi)。为了训练模型,可以使用多个训练样本,即i可以取大于1的值。
[0117] 对于每个训练自然语言查询xi,可以首先由数据抽象模块210和语义表示模块220确定出对应的多个逻辑表示。这些逻辑表示都是有效逻辑表示。为了衡量神经网络500的当前参数集是否准确,可以将每个有效逻辑表示转换为训练计算机可执行查询(例如SQL查询)。通过将训练计算机可执行查询与真实计算机可执行查询进行比较,如果两个查询等效,则可以认为对应的逻辑表示是一致逻辑表示。如果两个计算机可执行查询不等效,则认为逻辑表示是不一致逻辑表示。
[0118] 在一些实现中,训练过程可以通过确定针对神经网络500的目标函数(诸如损失函数或成本函数),并且优化该目标函数(例如最小化损失函数或最大化成本函数)来确定收敛。在基于损失函数的示例中,给定训练数据 (其中N表示训练样本数目),神经网络500的损失函数例如可以被确定为:
[0119]
[0120] 其中p(Z+|xi)*表示从训练自然语言查询xi获得的一致逻辑表示的最高语义置信度,其基于神经网络500的当前参数集来确定; 表示从训练自然语言查询xi获得的不一致逻辑表示;并且α是裕度参数(可以被设置为0至1中的任意值,诸如
0.5、0.4、0.6等)。在训练过程中,通过惩罚不一致的逻辑表示,并且奖励最一致的逻辑表示,可以不断实现参数更新和模型收敛。这还有利于防止在小数据集、弱监督的情况下的过拟合,并且可以达到对已有数据的完全利用。在一些实现中,可以利用任何当前已有或今后开发出来的模型训练方法来实现神经网络500的训练,本公开的范围在此方面不受限制。
[0121] 在上述训练神经网络的过程中,与每个训练自然语言查询对应的计算机可执行查询被用作训练数据。在另外一些实现中,还可以使用训练自然语言查询对应的真实/正确的查询结果作为真实数据,以用于在训练过程中衡量参数集是否已经收敛。
[0122] 对逻辑表示的机器解释
[0123] 由选择模块230选择的逻辑表示232(例如,从抽象语句“C with most UNK C in V”生成的一个逻辑表示)可以用于生成计算机可执行查询。计算机可执行查询的生成可以在计算设备100内部,例如由解析模块122包括的另外的模块或者出了解析模块122之外的模块生成。所选择的逻辑表示232也可以被提供给其他设备,以用于生成计算机可执行查询,例如图1中的计算机可执行查询124。
[0124] 逻辑表示232是对自然语言查询232执行语义解析后获得的计算机可解释的表示形式,因为逻辑表示232中的符号以及推演规则都被映射到相应的属性和/或语义。因此,计算机可以容易从逻辑表示232转换为由机器查询语言编写的计算机可执行查询(诸如SQL查询)。可以使用各种方法来实现计算机可执行查询的生成。
[0125] 在将逻辑表示232解释到计算机可执行查询时,可以基于逻辑表示232中的推演符号对应的谓词逻辑。在语义上,针对数据查询场景,关系代数是一种过程查询语言,其将被组织为表的数据集或数据子集作为输入,并且产生其他表。例如,从基于语义解析树的简单逻辑表示project(group(A,C),T)可以被解释为:基于列C上的值,将表T的列进行分组;对于每个分组,其产生聚合操作A,从而返回新的表。可以看出,逻辑解释从自上而下的,而语义解析过程是自下而上的。在一些实现中,对于逻辑表示可能涉及的推演规则,可以规定仅涉及与project或select相关的谓词逻辑的节点是可以直接解释的。对于逻辑表示中的其他节点,可以被认为只包含部分逻辑,因而不可直接解释。在自上而下的解释过程中,如果遇到不可直接解释的节点,可以先保留这样的节点的解释,直到遇到与project或select相关的节点。换言之,在对逻辑表示的解释过程中,与project或select相关的节点可以触发其全部子节点的谓词逻辑。这样的解释过程可以被称为一种懒惰解释机制,这样的机制有助于更好生成计算机可执行查询。
[0126] 根据需要,所生成的计算机可执行查询可以被执行(例如由计算设备100的查询模块126执行),以对自然语言查询152所针对的数据集进行分析并且获得查询结果,例如图1中的查询结果162。应当理解,本公开的实现对于计算机可执行查询162的执行不做限制。
[0127] 示例过程
[0128] 图6示出了根据本公开一些实现的用于解析自然语言查询的过程600的流程图。过程600可以由计算设备100来实现,例如可以被实现在计算设备100的存储器120中的解析模块122处。在610,计算设备100接收针对数据集的自然语言查询。自然语言查询包括多个词,并且数据集被组织为表。在620,计算设备100通过将多个词替换为多个预定符号,将自然语言查询转换为抽象语句。在630,计算设备100通过向抽象语句应用不同的推演规则集,将抽象语句解析为多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义。在640,计算设备100至少基于多个逻辑表示对应的预测语义,选择一个逻辑表示以用于生成针对数据集的计算机可执行查询。
[0129] 在一些实现中,将自然语言查询转换为抽象语句包括以下至少一项:响应于识别出多个词中的第一词与数据集中的数据匹配,将第一词替换为元数据符号集中的第一预定符号,第一预定符号被映射到与数据相关的属性和语义;响应于识别出多个词中的第二词与第二预定符号语义上匹配,将第二词替换为第二预定符号;以及响应于未识别出多个词中的第三词的匹配,将第三词替换为第三预定符号,第三预定符号指示未知词。
[0130] 在一些实现中,数据包括以下之一:数据集的表名称、列名称、行名称、以及由行和列限定的表项。
[0131] 在一些实现中,推演规则集中的每个推演规则定义以下至少一项:该推演规则的应用条件,从至少一个预定符号推演出推演符号,推演符号选自元数据符号集和操作符号集,操作符号集包含另外的预定符号,另外的预定符号被映射到相应的数据分析操作,推演符号对应的谓词逻辑,以及属性设置规则,属性设置规则定义如何设置推演符号所映射到的属性。
[0132] 在一些实现中,从至少一个预定符号推演出推演符号包括以下之一:将两个预定符号合成为推演符号,或者将单个预定符号替换为推演符号。
[0133] 在一些实现中,将抽象语句解析为多个逻辑表示包括:使用自底向上的语义解析,从抽象语句解析出多个语义解析树以作为多个逻辑表示,每个语义解析树的节点包括在应用相应的推演规则集后获得的推演符号和推演符号对应的谓词逻辑。
[0134] 在一些实现中,选择逻辑表示包括:针对多个逻辑表示中的每一个:确定解析出该逻辑表示的推演规则集中的每个推演规则在抽象语句的上下文中的语义置信度,以及通过加和推演规则集的语义置信度来确定该逻辑表示对应的预测语义的语义置信度;以及通过比较多个逻辑表示对应的预测语义的语义置信度来选择逻辑表示。
[0135] 在一些实现中,确定每个推演规则的语义置信度包括:标识应用该推演规则生成的逻辑表示的一部分映射到抽象语句中的一部分;将抽象语句中所标识的部分进行扩展,以获得抽象语句中的扩展部分;提取扩展部分的特征;以及基于所提取的特征和该推演规则的向量化表示来确定该推演规则的语义置信度。
[0136] 在一些实现中,利用预先配置的神经网络来执行特征的提取和语义置信度的确定。
[0137] 在一些实现中,抽象语句为第一抽象语句并且多个逻辑表示为第一多个逻辑表示,并且选择逻辑表示包括:通过将多个词替换为第二多个预定符号,将自然语言查询转换为第二抽象语句,第二抽象语句与第一抽象语句不同;通过向第二抽象语句应用不同的推演规则集,将第二抽象语句解析为第二多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义;从第一多个逻辑表示中选择第一逻辑表示并且从第二多个逻辑表示中选择第二逻辑表示;以及从第一逻辑表示和第二逻辑表示中确定逻辑表示以用于生成计算机可执行查询。
[0138] 示例实现方式
[0139] 以下列出了本公开的一些示例实现方式。
[0140] 在一方面,本公开提供了一种计算机实现的方法。该方法包括:接收针对数据集的自然语言查询,自然语言查询包括多个词,并且数据集被组织为表;通过将多个词替换为多个预定符号,将自然语言查询转换为抽象语句;通过向抽象语句应用不同的推演规则集,将抽象语句解析为多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义;以及至少基于多个逻辑表示对应的预测语义,选择一个逻辑表示以用于生成针对数据集的计算机可执行查询。
[0141] 在一些实现中,将自然语言查询转换为抽象语句包括以下至少一项:响应于识别出多个词中的第一词与数据集中的数据匹配,将第一词替换为元数据符号集中的第一预定符号,第一预定符号被映射到与数据相关的属性和语义;响应于识别出多个词中的第二词与第二预定符号语义上匹配,将第二词替换为第二预定符号;以及响应于未识别出多个词中的第三词的匹配,将第三词替换为第三预定符号,第三预定符号指示未知词。
[0142] 在一些实现中,数据包括以下之一:数据集的表名称、列名称、行名称、以及由行和列限定的表项。
[0143] 在一些实现中,推演规则集中的每个推演规则定义以下至少一项:该推演规则的应用条件,从至少一个预定符号推演出推演符号,推演符号选自元数据符号集和操作符号集,操作符号集包含另外的预定符号,另外的预定符号被映射到相应的数据分析操作,推演符号对应的谓词逻辑,以及属性设置规则,属性设置规则定义如何设置推演符号所映射到的属性。
[0144] 在一些实现中,从至少一个预定符号推演出推演符号包括以下之一:将两个预定符号合成为推演符号,或者将单个预定符号替换为推演符号。
[0145] 在一些实现中,将抽象语句解析为多个逻辑表示包括:使用自底向上的语义解析,从抽象语句解析出多个语义解析树以作为多个逻辑表示,每个语义解析树的节点包括在应用相应的推演规则集后获得的推演符号和推演符号对应的谓词逻辑。
[0146] 在一些实现中,选择逻辑表示包括:针对多个逻辑表示中的每一个:确定解析出该逻辑表示的推演规则集中的每个推演规则在抽象语句的上下文中的语义置信度,以及通过加和推演规则集的语义置信度来确定该逻辑表示对应的预测语义的语义置信度;以及通过比较多个逻辑表示对应的预测语义的语义置信度来选择逻辑表示。
[0147] 在一些实现中,确定每个推演规则的语义置信度包括:标识应用该推演规则生成的逻辑表示的一部分映射到抽象语句中的一部分;将抽象语句中所标识的部分进行扩展,以获得抽象语句中的扩展部分;提取扩展部分的特征;以及基于所提取的特征和该推演规则的向量化表示来确定该推演规则的语义置信度。
[0148] 在一些实现中,利用预先配置的神经网络来执行特征的提取和语义置信度的确定。
[0149] 在一些实现中,抽象语句为第一抽象语句并且多个逻辑表示为第一多个逻辑表示,并且选择逻辑表示包括:通过将多个词替换为第二多个预定符号,将自然语言查询转换为第二抽象语句,第二抽象语句与第一抽象语句不同;通过向第二抽象语句应用不同的推演规则集,将第二抽象语句解析为第二多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义;从第一多个逻辑表示中选择第一逻辑表示并且从第二多个逻辑表示中选择第二逻辑表示;以及从第一逻辑表示和第二逻辑表示中确定逻辑表示以用于生成计算机可执行查询。
[0150] 在另一方面,本公开提供了一种电子设备。该电子设备包括:处理单元;以及存储器,耦合至处理单元并且包含存储于其上的指令,指令在由处理单元执行时使设备执行以下动作:接收针对数据集的自然语言查询,自然语言查询包括多个词,并且数据集被组织为表;通过将多个词替换为多个预定符号,将自然语言查询转换为抽象语句;通过向抽象语句应用不同的推演规则集,将抽象语句解析为多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义;以及至少基于多个逻辑表示对应的预测语义,选择一个逻辑表示以用于生成针对数据集的计算机可执行查询。
[0151] 在一些实现中,将自然语言查询转换为抽象语句包括以下至少一项:响应于识别出多个词中的第一词与数据集中的数据匹配,将第一词替换为元数据符号集中的第一预定符号,第一预定符号被映射到与数据相关的属性和语义;响应于识别出多个词中的第二词与第二预定符号语义上匹配,将第二词替换为第二预定符号;以及响应于未识别出多个词中的第三词的匹配,将第三词替换为第三预定符号,第三预定符号指示未知词。
[0152] 在一些实现中,数据包括以下之一:数据集的表名称、列名称、行名称、以及由行和列限定的表项。
[0153] 在一些实现中,推演规则集中的每个推演规则定义以下至少一项:该推演规则的应用条件,从至少一个预定符号推演出推演符号,推演符号选自元数据符号集和操作符号集,操作符号集包含另外的预定符号,另外的预定符号被映射到相应的数据分析操作,推演符号对应的谓词逻辑,以及属性设置规则,属性设置规则定义如何设置推演符号所映射到的属性。
[0154] 在一些实现中,从至少一个预定符号推演出推演符号包括以下之一:将两个预定符号合成为推演符号,或者将单个预定符号替换为推演符号。
[0155] 在一些实现中,将抽象语句解析为多个逻辑表示包括:使用自底向上的语义解析,从抽象语句解析出多个语义解析树以作为多个逻辑表示,每个语义解析树的节点包括在应用相应的推演规则集后获得的推演符号和推演符号对应的谓词逻辑。
[0156] 在一些实现中,选择逻辑表示包括:针对多个逻辑表示中的每一个:确定解析出该逻辑表示的推演规则集中的每个推演规则在抽象语句的上下文中的语义置信度,以及通过加和推演规则集的语义置信度来确定该逻辑表示对应的预测语义的语义置信度;以及通过比较多个逻辑表示对应的预测语义的语义置信度来选择逻辑表示。
[0157] 在一些实现中,确定每个推演规则的语义置信度包括:标识应用该推演规则生成的逻辑表示的一部分映射到抽象语句中的一部分;将抽象语句中所标识的部分进行扩展,以获得抽象语句中的扩展部分;提取扩展部分的特征;以及基于所提取的特征和该推演规则的向量化表示来确定该推演规则的语义置信度。
[0158] 在一些实现中,利用预先配置的神经网络来执行特征的提取和语义置信度的确定。
[0159] 在一些实现中,抽象语句为第一抽象语句并且多个逻辑表示为第一多个逻辑表示,并且选择逻辑表示包括:通过将多个词替换为第二多个预定符号,将自然语言查询转换为第二抽象语句,第二抽象语句与第一抽象语句不同;通过向第二抽象语句应用不同的推演规则集,将第二抽象语句解析为第二多个逻辑表示,每个逻辑表示对应于自然语言查询的一个预测语义;从第一多个逻辑表示中选择第一逻辑表示并且从第二多个逻辑表示中选择第二逻辑表示;以及从第一逻辑表示和第二逻辑表示中确定逻辑表示以用于生成计算机可执行查询。
[0160] 在又一方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在由设备执行时使设备执行上述方面的方法。
[0161] 在又一方面,本公开提供了一种计算机可读介质,其上存储有机器可执行指令,机器可执行指令在由设备执行时使设备执行上述方面的方法。
[0162] 本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
[0163] 用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0164] 在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0165] 此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
[0166] 尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈