CN110888966B - 自然语言问答 - Google Patents
自然语言问答 Download PDFInfo
- Publication number
- CN110888966B CN110888966B CN201811038457.6A CN201811038457A CN110888966B CN 110888966 B CN110888966 B CN 110888966B CN 201811038457 A CN201811038457 A CN 201811038457A CN 110888966 B CN110888966 B CN 110888966B
- Authority
- CN
- China
- Prior art keywords
- question
- sequence
- actions
- semantics
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000009471 action Effects 0.000 claims abstract description 194
- 238000012549 training Methods 0.000 claims description 40
- 238000000034 method Methods 0.000 claims description 23
- 238000003062 neural network model Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 11
- 230000001419 dependent effect Effects 0.000 claims description 8
- 239000002585 base Substances 0.000 description 27
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000010076 replication Effects 0.000 description 8
- 238000013459 approach Methods 0.000 description 5
- 238000002372 labelling Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 241000288105 Grus Species 0.000 description 2
- 101150055297 SET1 gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012458 free base Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
Abstract
根据本公开的实现,提出了一种用于回答自然语言对话中的问题的方案。在该方案中,自然语言对话中的问题被接收。问题被转换成表示其语义的逻辑表示。该逻辑表示包括在知识库上可执行的第一动作序列。通过在知识库上执行第一动作序列来获得针对该问题的回答。该方案能够准确地理解多轮对话中的问题的语义,从而能够将问题转换成在大规模知识库上可执行的动作序列。以此方式,该方案能够有效提高自然语言问题系统回答问题的准确度和效率。
Description
背景技术
随着计算机和人工智能技术的飞速发展,如何从海量的非结构化信息中提取真正满足用户需求的信息,已经成为一个越来越重要的研究课题。自然语言问答(QA)系统应运而生,其是能够对用户以自然语言形式描述的问题做出准确回答的系统。与传统的搜索引擎不同,自然语言问答系统并非简单的针对关键词组合进行匹配,而是需要理解用户问题的真实语义。由于自然语言的词汇、语法和结构的复杂多变,理解自然语言问题的语义往往十分困难。不仅如此,在多轮对话中,还有可能存在大量的短句或省略用语,使得必须结合多轮对话的上下文才能准确理解当前问题的真实语义。这些都对自然语言问答系统的实现提出了挑战。
发明内容
根据本公开的实现,提出了一种用于回答自然语言对话中的问题的方案。在该方案中,自然语言对话中的问题被接收。问题被转换成表示其语义的逻辑表示。该逻辑表示包括在知识库上可执行的第一动作序列。通过在知识库上执行第一动作序列来获得针对该问题的回答。该方案能够准确地理解多轮对话中的问题的语义,从而能够将问题转换成在大规模知识库上可执行的动作序列。以此方式,该方案能够有效提高自然语言问题系统回答问题的准确度和效率。
提供发明内容部分是为了简化的形式来介绍对概念的选择,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。
附图说明
图1示出了多轮对话的示意图;
图2示出了能够实施本公开的实现的计算环境的框图;
图3示出了根据本公开的实现的用于回答自然语言对话中的问题的问答模块的框图;
图4示出了根据本公开的实现的语义解析树的示意图;
图5示出了根据本公开的实现的语义解析树的示意图;
图6示出了根据本公开的实现的利用编码器-解码器模型来生成对应于问题的动作序列的示意图;
图7示出了根据本公开的实现的利用编码器-解码器模型来生成对应于问题的动作序列的示意图;以及
图8示出了根据本公开的实现的用于回答自然语言对话中的问题的方法的流程图。
这些附图中,相同或相似参考符号用于表示相同或相似元素。
具体实施方式
现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本公开的范围的任何限制。
如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如本文所使用的,术语“自然语言”指的是人类用于书面交流或口头交流的日常语言。自然语言的示例包括中文、英文、德文、西班牙文、法文等等。在以下描述中,将以英文作为自然语言的示例。然而应当理解,这仅仅出于示例的目的,而无意于限制本公开的范围。本公开的实施例可以适用于各种不同的自然语言。
如以上提及的,为了能够对用户以自然语言形式描述的问题做出准确回答,需要理解用户问题的真实语义。由于自然语言的词汇、语法和结构的复杂多变,理解自然语言问题的语义往往十分困难。不仅如此,在多轮对话中,有可能存在大量的短句或省略用语,这些对正确理解用户问题的语义提出了挑战。
图1示出了多轮对话100的示意图。在此所述的“多轮对话”表示包括至少两轮问答的对话。如图1所示,多轮对话100包括四个示例性问题110-1、110-2、110-3和110-4(统称为问题110)及其相应回答120-1、120-2、120-3和120-4(统称为回答120)。例如,问题110-1是“Where was the President of the United States born(美国的总统在哪儿出生)?”,其回答120-1是“New York City(纽约市)”。问题110-2是“Where did he graduate from(他从哪儿毕业)?”,其中“he”的语义由问题110-1中的“the President of the UnitedStates”隐含地指示。问题110-2的回答120-2是“Wharton School of the University ofPennsylvania(宾夕法尼亚大学沃顿商学院)”。问题110-3是“What year was itestablished(它在哪年建成)?”,其中“it”的语义由回答120-2中的“Wharton School ofthe University of Pennsylvania”隐含地指示。问题110-4是“How about HarvardUniversity(哈佛大学呢)?”,该问题的语义由问题110-3隐含地指示。也即,问题110-4所问的问题实际上为“What year was Harvard University established(哈佛大学在哪年建成)?”。
从以上示例能够看出,针对多轮对话中的问题,必须结合上下文(历史问题和/或历史回答)才能准确理解该问题的真实语义。只有能够正确理解自然语言问题的语义,才能够获得针对该问题的正确回答。
为了回答自然语言对话中的问题,一些传统方案利用针对有限数据集的一组问题和一组回答来训练神经网络模型,从而利用所训练的模型来回答用户的自然语言问题。然而,这种方案仅仅适用于规模较小的数据集。当数据集的规模较大时,模型训练的开销将是巨大的。因此,这种方案无法适应问题和回答比较多样化的情况。另一些传统方案利用一组问题和表示该组问题的相应语义的一组逻辑表示来训练基于上下文的语义解析器,从而利用所训练的语义解析器将用户的自然语言问题转换成对应的逻辑表示。然而,这种方案要求事先对训练数据集中的问题的语义进行准确标注。也即,这种方案要求在训练数据集中针对某个问题的逻辑表示必须是准确且唯一的。显然,这种方案对训练数据集的质量要求较高。当训练数据集的规模较大时,数据标注的开销将是巨大的。
以上讨论了在目前的自然语言问答方案中存在的一些问题。根据本公开的实现,提出了一种用于回答自然语言对话中的问题的方案,旨在解决上述问题以及其他潜在问题中的一个或多个。在该方案中,通过训练神经网络模型将多轮对话中的自然语言问题转换成对应于该问题的语义的逻辑表示,该逻辑表示包括在大规模知识库上可执行的动作序列。通过在大规模知识库上执行该动作序列能够获得针对该问题的回答。用于训练该模型的训练数据集包括一组问题和针对该组问题的相应回答,而不要求事先对训练数据集中的问题的逻辑表示进行准确标注。该模型按照预定语法以自顶向下的方式来对问题执行语义解析,并且将与问题和对应回答有关的信息存储在数据存储库中作为理解后续问题的上下文信息。当后续问题的语义依赖于历史问题和/或历史回答时,该模型能够从数据存储库中复制相应内容来生成对应于当前问题的动作序列。以此方式,该方案能够准确地理解多轮对话中的问题的语义,从而有效提高自然语言问题系统回答问题的准确度和效率。
以下进一步结合附图来详细描述该方案的各种示例实现。
示例环境
图2示出了能够实施本公开的多个实现的计算设备200的框图。应当理解,图2所示出的计算设备200仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备200包括通用计算设备形式的计算设备200。计算设备200的组件可以包括但不限于一个或多个处理器或处理单元210、存储器220、存储设备230、一个或多个通信单元240、一个或多个输入设备250以及一个或多个输出设备260。
在一些实现中,计算设备200可以被实现为具有计算能力的各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备200能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。
处理单元210可以是实际或虚拟处理器并且能够根据存储器220中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备200的并行处理能力。处理单元210也可以被称为中央处理单元(CPU)、微处理器、控制器、微控制器。
计算设备200通常包括多个计算机存储介质。这样的介质可以是计算设备200可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器220可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或其某种组合。存储器220可以包括问答模块222,这些程序模块被配置为执行本文所描述的各种实现的功能。问答模块222可以由处理单元210访问和运行,以实现相应功能。
存储设备230可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,其能够用于存储信息和/或数据并且可以在计算设备200内被访问。计算设备200可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图2中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。
通信单元240实现通过通信介质与另外的计算设备进行通信。附加地,计算设备200的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备200可以使用与一个或多个其他服务器、个人计算机(PC)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。
输入设备250可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球、语音输入设备等。输出设备260可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备200还可以根据需要通过通信单元240与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备200交互的设备进行通信,或者与使得计算设备200与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
计算设备200可以根据本公开的多种实现来提供自然语言问答服务。因此,在下文中,计算设备200有时也被称为“自然语言问答设备200”。在提供自然语言问答服务时,计算设备200可以通过输入设备250接收自然语言问题270。在一些实现中,问题270可以是某个单独的问题。备选地,在另一些实现中,问题270可以是多轮对话中的某个问题(例如,如图1所示的问题110中的一个),其语义可能依赖于多轮对话中的某个历史问题或回答。计算设备200可以将问题270转换成与其语义相对应的逻辑表示,该逻辑表示可以包括在大规模知识库上可执行的动作序列。计算设备200可以在大规模知识库上执行所生成的动作序列,从而获得针对问题270的回答280。此外,自然语言问答设备200可以将与问题270和回答280有关的信息(包括与动作序列的生成有关的信息)存储在存储设备230中,以便作为理解多轮对话中的后续问题的上下文信息。
在一些实现中,除了被集成在单个设备上之外,计算设备200的各个部件中的一些或所有部件还可以以云计算架构的形式被设置。在云计算架构中,这些部件可以被远程布置,并且可以一起工作以实现本公开所描述的功能。在一些实现中,云计算提供计算、软件、数据访问和存储服务,它们不需要终端用户知晓提供这些服务的系统或硬件的物理位置或配置。在各种实现中,云计算使用适当的协议通过广域网(诸如因特网)提供服务。例如,云计算提供商通过广域网提供应用,并且它们可以通过web浏览器或任何其他计算组件被访问。云计算架构的软件或组件以及相应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被合并或者它们可以被分散。云计算基础设施可以通过共享数据中心提供服务,即使它们表现为针对用户的单一访问点。因此,可以使用云计算架构从远程位置处的服务提供商提供本文所描述的组件和功能。备选地,它们也可以从常规服务器被提供,或者它们可以直接或以其他方式被安装在客户端设备上。
工作原理
图3示出了根据本公开的实现的用于回答自然语言对话中的问题的问答模块222的框图。问答模块222可以被实现在图2的计算设备200中。如图3所示,问答模块222可以包括语义解析模块310和动作执行模块320。语义解析模块310可以接收自然语言对话中的问题270,对其进行语义解析以生成表示其语义的逻辑表示。例如,该逻辑表示可以包括在知识库330上可执行的动作序列。动作执行模块320可以接收由语义解析模块310生成的动作序列。进一步地,动作执行模块320可以在知识库330上执行所接收的动作序列,并且输出针对问题270的回答280。
如图3所示的知识库330可以是任何已有或将要开发的知识库,其示例包括但不限于Freebase、DBpedia、YAGO、Open Information Extraction(Open IE)、Never-EndingLanguage Learning(NELL)等等。在此所述的“知识库(KB)”也被称为“知识图谱”,其用于描述真实世界中存在的各种实体和概念、它们之间的关系以及它们各自的属性。在此所述的“关系”指代两个实体之间的关联,例如姚明和叶莉之间的关系为夫妻。在此所述的“属性”指代实体本身的性质。以人物为例,其属性可以包括年龄、身高、体重、性别等。知识库是大量知识的集合。知识的示例例如为“姚明出生于上海”、“姚明是篮球运动员”等。为了方便计算机的处理和理解,知识库中的知识可以以三元组(triple)的形式来表示,三元组例如为(第一实体,关系,第二实体)。例如,知识“姚明出生于上海”可以用三元组表示为(YaoMing,PlaceOfBirth,Shanghai)。在本文中,关系(诸如,PlaceOfBirth)也被称为“谓词”。如果将一个实体看作是一个结点,将实体间的关系(包括属性等)看作是一条边,那么包含了大量三元组的知识库就形成了庞大的知识图。
语义解析的语法
在一些实现中,语义解析模块310可以按照预定语法以自顶向下的方式来对问题270执行语义解析,从而生成在知识库330上可执行的动作序列。例如,表1示出了根据本公开的实现的示例语法,其定义了一系列在知识库330上可执行的动作。
表1 语义解析的语法
如表1所示,每个动作可以包括三个部分:语义类别、函数符号(有时可省略)和参数列表。例如,语义类别可以是起始(start)、实体集合(set)、数字(num)和真假(bool)中的一个。针对问题的语义解析通常可以从语义类别start开始。函数符号指示要执行的具体动作。参数列表中的每个参数可以是语义类别、常量或动作序列中的一个。以表1所示的动作A5为例,动作A5具有语义类别num、函数符号count和作为唯一参数的语义类别set1,其表示获得实体集合set1中的实体的数目。
应当理解,表1中所示的语法仅仅出于示例的目的而被示出,而无意于限制本公开的范围。在一些实现中,表1中的语法可以被扩展,以包括更多的动作;或者可以被收缩,以省略其中的某些动作。在另一些实现中,也可以利用与表1中所示的语法不同的语法来进行语义解析。本公开的范围在此方面不受限制。在下文中,将以如表1所示的语法为例来描述如何针对问题进行语义解析。
在一些实现中,语义解析模块310可以基于如表1中所示的语法对问题270进行自顶向下的语义解析,以生成对应于该问题270的语义解析树。语义解析模块310可以通过遍历对应于该问题的语义解析树来生成表示其语义的动作序列。以下以如图1所示的问题110-1(即“Where was the President of the United States born?”)为例来详细描述语义解析树和动作序列的生成。
图4示出了与问题110-1相对应的语义解析树400的示意图。语义解析树400的根节点为语义类别start(在下文中简称为“S”)。由于问题110-1询问的是地点(即,某个实体),因此通过应用动作A1来获得根节点start的子节点。根节点start的子节点为实体集合set,其表示美国总统出生的地方。由于美国总统出生的地方表示的是与“the President ofthe United States”具有某种关系(即,placeOfBirth)的地点,进一步地通过应用动作A4来获得节点set的子节点find(set,r1)。节点find(set,r1)中的实体集合set表示“thePresident of the United States”,关系r1表示与“the President of the UnitedStates”的关系。由于“the President of the United States”表示的是与“the UnitedStates”具有某种关系(即,isPresidentOf)的人,进一步地通过应用动作A4来获得节点find(set,r1)的子节点find(set,r2)。节点find(set,r2)中的实体集合set表示“theUnited States”,关系r2表示与“the United States”的关系。由于节点find(set,r2)中的实体集合set为实体(即,“the United States”),因此通过应用动作A15来获得该节点的子节点{e},然后通过应用动作A16将实体e实例化为“the United States”。在下文中,将实体e实例化为“the United States”的动作A16也被表示为eUS。进一步地,可以通过应用动作A17将节点find(set,r1)中的关系r1实例化为placeOfBirth,并且将节点find(set,r2)中的关系r2实例化为isPresidentOf。在下文中,将关系r1实例化为placeOfBirth的动作A17也被表示为rbth,将关系r2实例化为isPresidentOf的动作A17也被表示为rpres。以此方式,与问题110-1的语义相对应的语义解析树400被生成。通过对语义解析树400进行深度遍历,语义解析模块310可以生成与问题110-1相对应的动作序列,即A1→A4→A4→A15→eUS→rpres→rbth。
在一些实现中,语义解析树的一个子树可以对应于动作序列的一个子序列,其可以表示与该语义解析树相对应的问题的语义中的一部分。例如,图4示出了语义解析树400的子树410。子树410对应于动作序列A1→A4→A4→A15→eUS→rpres→rbth中的子序列A4→A15→eUS→rpres,其表示问题110-1中的语义单元“the President of the UnitedStates”。
在一些实现中,当多轮对话中的后续问题的语义依赖于历史问题的语义时,语义解析模块310可以通过复制对应于该历史问题的语义解析树的子树来生成与后续问题相对应的语义解析树,从而生成表示该后续问题的语义的动作序列。以下以如图1所示的问题110-2(即“Where did he graduate from?”)为例来详细在这种情况下的语义解析树和动作序列的生成。
图5示出了与问题110-2相对应的语义解析树500的示意图。与如图4所示的语义解析树400类似,语义解析树500的根节点为语义类别start。由于问题110-2询问的是地点(即某个实体),因此通过应用动作A1来获得根节点start的子节点。根节点start的子节点为实体集合set,其表示“Where did he graduate from”。由于“Where did he graduate from”表示的是与“he”具有某种关系(即,graduateFrom)的地点,进一步地通过应用动作A4来获得节点set的子节点find(set,r1)。节点find(set,r1)中的实体集合set表示“he”,关系r1表示与“he”的关系。由于问题110-2中的“he”的语义对应于问题110-1中的语义单元“thePresident of the United States”,可以将语义解析树400中对应于“the President ofthe United States”的子树410复制到语义解析树500中,以表示问题110-2中的“he”。然后,通过应用动作A17将节点find(set,r1)中的关系r1实例化为graduateFrom。在下文中,将关系r1实例化为graduateFrom的动作A17也被表示为rgrad。以此方式,与问题110-2的语义相对应的语义解析树500被生成。通过对语义解析树500进行深度遍历,语义解析模块310可以生成与问题110-2相对应的动作序列,即A1→A4→A4→A15→eUS→rpres→rgrad。
模型实现
在一些实现中,语义解析模块310可以利用经训练的神经网络模型来执行针对多轮对话中的问题的语义解析。在此所述的“模型”可以从训练数据中学习到相应的输入与输出之间的关联,从而在训练完成后可以针对给定的输入,生成对应的输出。例如,神经网络模型被构造为包括多个神经元,每个神经元根据训练获得的参数来处理输入,并产生输出。所有神经元的参数组成神经网络模型的参数集。当神经网络模型的参数集被确定时,该模型可以被运行以执行相应功能。在本文中,术语“学习网络”、“神经网络”、“神经网络模型”、“模型”和“网络”可替换地使用。
在一些实现中,语义解析模块310可以利用经训练的编码器-解码器(Encoder-Decoder)模型来实现针对多轮对话中的问题的语义解析。通常,编码器-解码器模型可以包括一个或多个编码器以及一个或多个解码器。编码器用于读取源数据,比如句子或图像,然后产出在连续空间中的特征表示。比如,递归神经网络(RNN)编码器可以以句子为输入,以生成对应于该句子的含义的固定长度的向量。又比如,基于卷积神经网络(CNN)的编码器可以以图像为输入,并生成包含了该图像的特征的数据。由编码器所生成的表征输入特征的数据可以被解码器用来生成新数据,比如另一种语言或形式的句子和图像。解码器是基于编码器所产生的特征的生成模型。比如,RNN解码器可以学习生成某种语言的句子的另一种语言的表示。
在一些实现中,语义解析模块310可以使用具有门控递归单元(gated recurrentunit,GRU)的双向RNN作为编码器,并且使用具有注意力机制的多个GRU作为解码器,以实现针对多轮对话中的问题的语义解析。多轮对话中的当前问题及其上下文(即,历史问题和历史回答)可以作为该编码器的输入,其可以被表示为词序列(也称为“源序列”)。在编码器工作期间,前向RNN可以以从左到右的顺序读取源序列,以获得第一组隐藏状态。第一组隐藏状态例如可以表示源序列中的每个词的上文(preceding context)。此外,后向RNN可以以从右到左的顺序读取源序列,以获得第二组隐藏状态。第二组隐藏状态例如可以表示源序列中的每个词的下文(following context)。通过组合第一组隐藏状态和第二组隐藏状态可以获得源序列的最终隐藏状态表示,以作为解码器的初始隐藏状态。在解码器工作期间,解码器可以以顺序方式来生成对应于当前问题的动作序列{a1,a2,…,aN},其中N表示动作序列中的动作的数目。
图6示出了根据本公开的一些实现的利用编码器-解码器模型来生成对应于问题的动作序列的示意图。在图6中,以如图1所示的问题110-2作为示例来进行描述,问题110-2依赖于历史问题110-1和历史回答120-1。
如图6所示,历史问题110-1和历史回答120-1以及当前问题110-2被输入到编码器601,以获得解码器602的初始隐藏状态603。解码器602以顺序方式来生成表示问题110-2的语义的动作序列(例如,对应于语义解析树500)。具体地,在每个时间步骤t,解码器602可以输出语法动作的分布。可以应用注意力机制来获得在时间步骤t处的上下文向量ct。在每个GRU处,上下文向量ct、上一时间步骤t-1处得到的隐藏状态st-1和上一时间步骤t-1处所预测的动作的嵌入层向量表示υt-1的组合被馈送到该GRU,以获得当前隐藏状态st=GRU(st-1,yt-1,ct)。其中,如果先前预测动作是实例化动作(即,A16-A18之一),则嵌入层向量表示υt-1是所选常量的向量表示。
为了生成有效的动作序列,解码器602可以基于动作受限的语法(例如,如表1所示的语法)来确定动作序列中包括的动作。例如,如果语法中的某个动作的语义类别与目前已解析出的部分语义解析树的最左侧的非叶节点的语义类别相同,则该动作可以被确定为合适的动作。例如,将在时间步骤t处的动作序列表示为At={a1,a2,…,aN},其中N表示其中包括的动作的数目,则该集合的概率分布可以如以下公式(1)来被确定:
其中,i∈[1,N]。a<t表示在时间步骤t之前生成的动作序列。x表示源序列(即,历史问题、历史回答和当前问题的组合)。υi表示动作ai的嵌入层向量表示,其可以通过对动作ai进行独热编码而获得。Wa表示模型参数。
上下文信息的存储和使用
如上所述,历史问题和历史回答对于理解多轮对话中的后续问题的语义是重要的。在一些实现中,与历史问题和历史回答有关的信息可以被存储作为上下文信息,以用于理解多轮对话中的后续问题的语义。在一些实现中,响应于当前问题的语义中的一部分由上下文信息中的一部分信息隐含地指示,解码器602可以通过引用上下文信息中的一部分信息来生成对应于当前问题的动作序列。
如图6所示,与历史问题110-1和历史回答120-1有关的信息被存储作为上下文信息610。上下文信息610可以包括三种类型的信息,包括关于实体的信息611、关于谓词(即,关系)的信息612和关于动作序列的子序列的信息613。
在一些实现中,上下文信息中的实体信息可以记录两种类型的实体,即来自历史问题的实体和来自历史回答的实体。如图6所示,实体信息611记录了来自历史问题110-1的实体“United States”,其利用标签‘Q’被标记。实体信息611还记录了来自历史回答120-1的实体“New York City”,其利用标签‘A’被标记。在一些实现中,上下文信息中的谓词信息可以记录来自历史问题的谓词。如图6所示,谓词信息612记录了来自问题110-1的谓词isPresidentOf和placeOfBirth。
在一些实现中,上下文信息中的子序列信息可以记录与历史问题相对应的动作序列的一个或多个子序列。每个子序列可以被粗略地分类为经实例化的子序列和未经实例化的子序列。经实例化的子序列可以表达完整的或者部分的逻辑表示。例如,经实例化的子序列可以指代至少包括动作A16-A18之一的子序列。未经实例化的子序列可以传达逻辑表示的软模式。例如。未经实例化的子序列可以指代不包括动作A16-A18中的任一项的子序列。如图6所示,子序列信息613记录了与历史问题110-1相对应的动作序列(其对应于语义解析树400)的多个子序列,其中的每个子序列对应于语义解析树400的一个子树。例如,子序列信息613记录了经实例化的子序列613-1和未经实例化的子序列613-2。
在一些实现中,响应于当前问题的语义中的一部分由对应于历史问题的动作序列的某个子序列隐含地指示,解码器602可以通过复制该子序列来生成对应于当前问题的动作序列。被复制的子序列可以是经实例化的子序列或者未经实例化的子序列。
图6示出了复制经实例化的子序列的示例。如图6所示,子序列信息613记录了经实例化的子序列613-1,其对应于语义解析树400中的子树410,其表示“the President ofthe United States”。由于当前问题110-2“Where did he graduate from?”中的“he”由问题110-1中的“the President of the United States”隐含地指示,因此如图6所示,解码器602可以生成动作A19,以将子序列613-1“A4→A15→eus→rpres”复制到对应于当前问题110-2的动作序列中。
图7示出了复制未经实例化的子序列的示例。例如,在图7中,输入到编码器601的历史问题110-1和历史回答120-1与图6所示的示例相同,而输入到编码器601的当前问题710为“How about China?”。在此情况下,上下文信息仍然包括如图6所示的实体信息611、谓词信息612和子序列信息613。其中,子序列信息613记录了未经实例化的子序列613-2“A4→A4→A15”,其表示如下语义:询问实体的谓词,其中实体通过另一动作而被获得。例如,在图7中,问题710与其历史问题110-1具有相同的模式,不同之处在于历史问题110-1中的实体“United States”被替换为“China”。在此情况下,解码器602可以生成动作A19,以将未经实例化的子序列613-2“A4→A4→A15”复制到对应于当前问题710的动作序列中。子序列613-2对应于语义解析树400中的子树720。通过复制子序列613-2,对应于当前问题710的动作序列可以被生成,其对应于语义解析树730。
从以上描述能够看出,本公开的实现支持完整和部分逻辑表示的复制。这在当前问题中的实体被缺省的情况下将是有益的,其中所缺省的实体既可能由历史问题中的语义单元指示也可能由历史回答所指示。此外,本公开的实现支持逻辑表示的软模式的复制。这在当前问题与历史问题具有相同模式的情况下将是有益的。
以下将进一步详细讨论解码器在引用来自上下文信息中的内容时的策略。
在一些实现中,当解码器实例化实体、谓词或者数字时,实例化动作(即,A16-A18)被允许访问上下文信息。以实体为例,每个实体根据其来源可以具有以下三种标签之一:历史问题、历史回答或当前问题。在一些实现中,实体et在时间步骤t处被实例化的概率可以如以下公式(2)来被确定:
p(et|a<t,x)=pe(et|gt,a<t,x)pg(gt|a<t,x) (2)
其中pg(·)表示标签gt被选择的概率,而pe(·)表示针对每个标签的对应实体的概率分布。实体的概率分布pe(·)可以如以下公式(3)来被确定:
其中υe是实体et的嵌入层向量表示,We是模型参数,是具有标签gt的实体的集合。概率pg(·)由跟随有softmax函数的线性层来实现。
在一些实现中,在时间步骤t处,当解码器要实例化实体et时,解码器可以基于以上概率来确定要利用上下文信息中的实体信息中的哪些信息来对实体et进行实例化。谓词和数字的实例化与以上描述的实体的实例化类似。不同之处在于,谓词通常仅来自于历史问题或当前问题,因此谓词可以具有以下两种标签之一:历史问题和当前问题。
在一些实现中,解码器可以通过选择动作A19-A21之一来复制对应于历史问题的动作序列的某个子序列。这种复制可以具有两种模式:对经实例化的子序列的复制和对未经实例化的子序列的复制。例如,图6示出了对经实例化的子序列进行复制的示例,而图7示出了对未经实例化的子序列进行复制的示例。
在一些实现中,为了确定所要复制的子序列,可以从解析出的对应于历史问题的语义解析树中得到该语义解析树的所有子树,其中的每个子树对应于相应子序列。然后,解码器可以按照以下公式(4)来确定子序列subt被复制的概率:
p(subt|a<t,x)=ps(subt|mt,a<t,x)pm(mt|a<t,x) (4)
其中pm(·)表示模式mt被选择的概率,并且ps(·)表示针对每个模式的子序列的概率分布。子序列的概率分布可以如以下公式(5)来被确定:
其中υsub是子序列subt的嵌入层向量表示,并且是给定模式mt的子序列的集合。嵌入层向量表示υsub可以通过使用GRU对子序列subt进行编码来被获得。pm(·)的计算类似于pg(·)。
在一些实现中,在时间步骤t处,解码器可以基于上述概率来确定要被复制的子序列subt。在一些情况下,如果错误的子序列被复制,则可能导致误差传播,从而不利地影响动作序列的生成的性能。备选地,在一些实现中,可以在不进行子序列复制的情况下确定动作被选择的概率,并且基于该概率来选择合适的动作以生成对应于问题的动作序列。
模型训练
在一些实现中,上述用于对多轮对话中的问题进行语义解析的模型可以基于训练数据集被训练。例如,该训练数据集可以包括一组问题和针对该组问题的相应回答,而无须对每个问题的精确逻辑表示进行标注。在一些实现中,为了使得所训练的模型能够对多轮对话中的问题进行语义解析,该训练数据集可以包括在语义上存在依赖关系的一组问题和针对该组问题的相应回答。例如,该训练数据集至少可以包括第一问题和针对第一问题的第一回答、以及第二问题和针对第二问题的第二回答,其中第二问题的语义依赖于第一问题和第一回答中的至少一项。
为了训练该模型,可以针对训练数据集中的每个训练数据(包括一个问题和针对该问题的正确回答)生成相应的动作序列。在一些实现中,可以利用广度优先搜索算法来生成针对每个训练数据的动作序列,使得通过在知识库330上执行该动作序列能够得到针对问题的正确答案。也即,本公开的实现并不要求事先对训练数据集中的问题的逻辑表示进行精确的标注,从而有效降低模型训练的开销。
在一些情况下,所生成的与一组问题相对应的一组动作序列中可能包括重复或无效的动作序列(例如,包括在两个相同实体集合上执行并集动作的动作序列)。在一些实现中,可以在搜索期间提前去除重复或无效的动作序列。例如,在针对某个训练数据的完整动作序列被生成之前,可以提前去除将导致无效结果的非完整动作序列。例如,动作find(e,r)在如下情况下可能导致无效结果:知识库中不存在通过关系r链接到实体e的实体。在此情况下,包括find(e,r)的非完整动作序列可以被提前去除。附加地或者备选地,在一些实现中,可以去除其中动作的所有参数彼此相同(例如,union(set1,set2),其中set1与set2相同)的动作序列。附加地或者备选地,在一些实现中,为了缩小搜索空间,可以限制动作序列中的某些动作的最大数目。此外,在一些实现中,为了能够覆盖子序列复制的情况,当对应于某个问题(例如,如上所述的第二问题)的当前动作序列中的子序列与对应于其历史问题(例如,如上所述的第一问题)的历史动作序列中的子序列相同时,当前动作序列中的该子序列可以被替换为如表1所示的复制动作A19-A21之一。为了保证具有复制动作的训练实例的质量,可以设置某些约束,例如两个子序列中的至少一个经实例化的常量应当是相同的。
在一些实现中,用于训练模型的目标函数可以是动作、实例化和子序列复制的对数概率之和,如以下公式(6)所示:
其中,当动作at为实例化动作时,δ(ins,at)为1;否则δ(ins,at)为0。类似地,当动作at为复制动作时,δ(rep,at)为1;否则δ(rep,at)为0。通过使以上公式(6)所述的目标函数最小化,能够确定用于对多轮对话中的问题进行语义解析的模型的模型参数。
示例过程
图8示出了根据本公开一些实现的用于回答自然语言对话中的问题的方法800的流程图。方法800可以由计算设备200来实现,例如可以被实现在计算设备200的存储器220中的问答模块222处。在810,计算设备200接收自然语言对话中的问题。在820,计算设备200生成对应于该问题的语义的逻辑表示,该逻辑表示包括在知识库上可执行的第一动作序列。在830,计算设备200通过在知识库上执行第一动作序列,获得针对该问题的回答。
在一些实现中,生成逻辑表示包括:通过对该问题进行自顶向下的语义解析来生成对应于该问题的语义解析树;以及通过遍历该语义解析树,来生成第一动作序列。
在一些实现中,生成逻辑表示包括:利用经训练的神经网络模型来生成第一动作序列,其中该神经网络模型基于训练数据集来被训练,并且训练数据集包括一组问题和针对该组问题的相应回答。
在一些实现中,该训练数据集至少包括第一问题和针对第一问题的第一回答、以及第二问题和针对第二问题的第二回答,并且第二问题的语义依赖于第一问题和第一回答中的至少一项。
在一些实现中,方法800还包括:记录与该问题和回答有关的第一信息,第一信息被用于理解自然语言对话中的后续问题。
在一些实现中,第一信息包括以下至少一项:该问题中所涉及的实体;该问题中所涉及的谓词;该回答中所涉及的实体;以及第一动作序列的一个或多个子序列,其中每个子序列对应于该问题的语义中的相应部分。
在一些实现中,生成逻辑表示包括:响应于该问题的语义依赖于自然语言对话中的历史问题和历史回答中的至少一项,获取与该历史问题和历史回答有关的第二信息;以及至少基于第二信息来生成第一动作序列。
在一些实现中,第二信息包括以下至少一项:历史问题中所涉及的实体;历史问题中所涉及的谓词;历史回答中所涉及的实体;以及与该历史问题的语义相对应的第二动作序列的一个或多个子序列,其中每个子序列对应于该历史问题的语义中的相应部分。
在一些实现中,至少基于第二信息来生成第一动作序列包括:响应于确定该问题的语义中的一部分由第二信息中的一部分信息隐含地指示,通过引用第二信息中的一部分信息来生成第一动作序列。
在一些实现中,第二信息包括第二动作序列的子序列,并且生成第一动作序列包括:响应于确定该问题的语义中的一部分与第二动作序列的子序列相对应,通过将第二动作序列的该子序列包括在第一动作序列中来生成第一动作序列。
基于以上描述能够看出,根据本公开的实现的用于回答自然语言对话中的问题的方案通过训练神经网络模型将多轮对话中的自然语言问题转换成对应于该问题的语义的逻辑表示,该逻辑表示包括在大规模知识库上可执行的动作序列。通过在大规模知识库上执行该动作序列能够获得针对该问题的回答。用于训练该模型的训练数据集包括一组问题和针对该组问题的相应回答,而不要求事先对训练数据集中的问题的逻辑表示进行准确标注。该模型按照预定语法以自顶向下的方式来对问题执行语义解析,并且将与问题和对应回答有关的信息存储在数据存储库中作为理解后续问题的上下文信息。当后续问题的语义依赖于历史问题和/或历史回答时,该模型能够从数据存储库中复制相应内容来生成对应于当前问题的动作序列。以此方式,该方案能够准确地理解多轮对话中的问题的语义,从而有效提高自然语言问题系统回答问题的准确度和效率。
示例实现方式
以下列出了本公开的一些示例实现方式。
在一方面,本公开提供了一种计算机实现的方法。该方法包括:接收自然语言对话中的问题;生成对应于该问题的语义的逻辑表示,该逻辑表示包括在知识库上可执行的第一动作序列;以及通过在知识库上执行第一动作序列,获得针对该问题的回答。
在一些实现中,生成逻辑表示包括:通过对该问题进行自顶向下的语义解析来生成对应于该问题的语义解析树;以及通过遍历该语义解析树,来生成第一动作序列。
在一些实现中,生成逻辑表示包括:利用经训练的神经网络模型来生成第一动作序列,其中该神经网络模型基于训练数据集来被训练,并且训练数据集包括一组问题和针对该组问题的相应回答。
在一些实现中,该训练数据集至少包括第一问题和针对第一问题的第一回答、以及第二问题和针对第二问题的第二回答,并且第二问题的语义依赖于第一问题和第一回答中的至少一项。
在一些实现中,该方法还包括:记录与该问题和回答有关的第一信息,第一信息被用于理解自然语言对话中的后续问题。
在一些实现中,第一信息包括以下至少一项:该问题中所涉及的实体;该问题中所涉及的谓词;该回答中所涉及的实体;以及第一动作序列的一个或多个子序列,其中每个子序列对应于该问题的语义中的相应部分。
在一些实现中,生成逻辑表示包括:响应于该问题的语义依赖于自然语言对话中的历史问题和历史回答中的至少一项,获取与该历史问题和历史回答有关的第二信息;以及至少基于第二信息来生成第一动作序列。
在一些实现中,第二信息包括以下至少一项:历史问题中所涉及的实体;历史问题中所涉及的谓词;历史回答中所涉及的实体;以及与该历史问题的语义相对应的第二动作序列的一个或多个子序列,其中每个子序列对应于该历史问题的语义中的相应部分。
在一些实现中,至少基于第二信息来生成第一动作序列包括:响应于确定该问题的语义中的一部分由第二信息中的一部分信息隐含地指示,通过引用第二信息中的一部分信息来生成第一动作序列。
在一些实现中,第二信息包括第二动作序列的子序列,并且生成第一动作序列包括:响应于确定该问题的语义中的一部分与第二动作序列的子序列相对应,通过将第二动作序列的该子序列包括在第一动作序列中来生成第一动作序列。
在另一方面,本公开提供了一种电子设备。该电子设备包括:处理单元;以及存储器,耦合至处理单元并且包含存储于其上的指令,指令在由处理单元执行时,使得设备执行动作,动作包括:接收自然语言对话中的问题;生成对应于该问题的语义的逻辑表示,该逻辑表示包括在知识库上可执行的第一动作序列;以及通过在知识库上执行第一动作序列,获得针对该问题的回答。
在一些实现中,生成逻辑表示包括:通过对该问题进行自顶向下的语义解析来生成对应于该问题的语义解析树;以及通过遍历该语义解析树,来生成第一动作序列。
在一些实现中,生成逻辑表示包括:利用经训练的神经网络模型来生成第一动作序列,其中该神经网络模型基于训练数据集来被训练,并且训练数据集包括一组问题和针对该组问题的相应回答。
在一些实现中,该训练数据集至少包括第一问题和针对第一问题的第一回答、以及第二问题和针对第二问题的第二回答,并且第二问题的语义依赖于第一问题和第一回答中的至少一项。
在一些实现中,动作还包括:记录与该问题和回答有关的第一信息,第一信息被用于理解自然语言对话中的后续问题。
在一些实现中,第一信息包括以下至少一项:该问题中所涉及的实体;该问题中所涉及的谓词;该回答中所涉及的实体;以及第一动作序列的一个或多个子序列,其中每个子序列对应于该问题的语义中的相应部分。
在一些实现中,生成逻辑表示包括:响应于该问题的语义依赖于自然语言对话中的历史问题和历史回答中的至少一项,获取与该历史问题和历史回答有关的第二信息;以及至少基于第二信息来生成第一动作序列。
在一些实现中,第二信息包括以下至少一项:历史问题中所涉及的实体;历史问题中所涉及的谓词;历史回答中所涉及的实体;以及与该历史问题的语义相对应的第二动作序列的一个或多个子序列,其中每个子序列对应于该历史问题的语义中的相应部分。
在一些实现中,至少基于第二信息来生成第一动作序列包括:响应于确定该问题的语义中的一部分由第二信息中的一部分信息隐含地指示,通过引用第二信息中的一部分信息来生成第一动作序列。
在一些实现中,第二信息包括第二动作序列的子序列,并且生成第一动作序列包括:响应于确定该问题的语义中的一部分与第二动作序列的子序列相对应,通过将第二动作序列的该子序列包括在第一动作序列中来生成第一动作序列。
在又一方面,本公开提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在由设备执行时使设备执行上述方面的方法。
在又一方面,本公开提供了一种计算机可读介质,其上存储有机器可执行指令,机器可执行指令在由设备执行时使设备执行上述方面的方法。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (20)
1.一种计算机实现的方法,包括:
接收自然语言对话中的问题,所述问题依赖于所述自然语言对话中的之前接收的至少一个问题的语义;
生成对应于所述问题的语义的逻辑表示,所述逻辑表示包括在知识库上可执行的第一动作序列,其中生成所述逻辑表示包括:
生成对应于所述问题的语义解析树,包括:复制对应于之前接收的所述至少一个问题的先前语义解析树的子树;以及
通过遍历所述语义解析树,来生成所述第一动作序列;以及通过在所述知识库上执行所述第一动作序列,获得针对所述问题的回答。
2.根据权利要求1所述的方法,其中生成所述逻辑表示包括:
通过对所述问题进行自顶向下的语义解析来生成对应于所述问题的语义解析树。
3.根据权利要求1所述的方法,其中生成所述逻辑表示包括:
利用经训练的神经网络模型来生成所述第一动作序列,
其中所述神经网络模型基于训练数据集来被训练,并且所述训练数据集包括一组问题和针对所述一组问题的相应回答。
4.根据权利要求3所述的方法,其中所述训练数据集至少包括第一问题和针对所述第一问题的第一回答、以及第二问题和针对所述第二问题的第二回答,并且所述第二问题的语义依赖于所述第一问题和所述第一回答中的至少一项。
5.根据权利要求1所述的方法,还包括:
记录与所述问题和所述回答有关的第一信息,所述第一信息被用于理解所述自然语言对话中的后续问题。
6.根据权利要求5所述的方法,其中所述第一信息包括以下至少一项:
所述问题中所涉及的实体;
所述问题中所涉及的谓词;
所述回答中所涉及的实体;以及
所述第一动作序列的一个或多个子序列,其中每个子序列对应于所述问题的语义中的相应部分。
7.根据权利要求1所述的方法,其中生成所述逻辑表示包括:
响应于所述问题的语义依赖于所述自然语言对话中的历史问题和历史回答中的至少一项,获取与所述历史问题和所述历史回答有关的第二信息;以及
至少基于所述第二信息来生成所述第一动作序列。
8.根据权利要求7所述的方法,其中所述第二信息包括以下至少一项:
所述历史问题中所涉及的实体;
所述历史问题中所涉及的谓词;
所述历史回答中所涉及的实体;以及
与所述历史问题的语义相对应的第二动作序列的一个或多个子序列,其中每个子序列对应于所述历史问题的语义中的相应部分。
9.根据权利要求8所述的方法,其中至少基于所述第二信息来生成所述第一动作序列包括:
响应于确定所述问题的语义中的一部分由所述第二信息中的一部分信息隐含地指示,通过引用所述第二信息中的所述一部分信息来生成所述第一动作序列。
10.根据权利要求9所述的方法,其中所述第二信息包括所述第二动作序列的子序列,并且生成所述第一动作序列包括:
响应于确定所述问题的语义中的一部分与所述第二动作序列的所述子序列相对应,通过将所述第二动作序列的所述子序列包括在所述第一动作序列中来生成所述第一动作序列。
11.一种电子设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时,使得所述设备执行动作,所述动作包括:
接收自然语言对话中的问题,所述问题依赖于所述自然语言对话中的之前接收的至少一个问题的语义;
生成对应于所述问题的语义的逻辑表示,所述逻辑表示包括在知识库上可执行的第一动作序列,其中生成所述逻辑表示包括:
生成对应于所述问题的语义解析树,包括:复制对应于之前接收的所述至少一个问题的先前语义解析树的子树;以及
通过遍历所述语义解析树,来生成所述第一动作序列;以及
通过在所述知识库上执行所述第一动作序列,获得针对所述问题的回答。
12.根据权利要求11所述的设备,其中生成所述逻辑表示包括:
通过对所述问题进行自顶向下的语义解析来生成对应于所述问题的语义解析树。
13.根据权利要求11所述的设备,其中生成所述逻辑表示包括:
利用经训练的神经网络模型来生成所述第一动作序列,
其中所述神经网络模型基于训练数据集来被训练,并且所述训练数据集包括一组问题和针对所述一组问题的相应回答。
14.根据权利要求13所述的设备,其中所述训练数据集至少包括第一问题和针对所述第一问题的第一回答、以及第二问题和针对所述第二问题的第二回答,并且所述第二问题的语义依赖于所述第一问题和所述第一回答中的至少一项。
15.根据权利要求11所述的设备,其中所述动作还包括:
记录与所述问题和所述回答有关的第一信息,所述第一信息被用于理解所述自然语言对话中的后续问题。
16.根据权利要求15所述的设备,其中所述第一信息包括以下至少一项:
所述问题中所涉及的实体;
所述问题中所涉及的谓词;
所述回答中所涉及的实体;
所述第一动作序列;以及
所述第一动作序列的一个或多个子序列,其中每个子序列对应于所述问题的语义中的相应部分。
17.根据权利要求11所述的设备,其中生成所述逻辑表示包括:
响应于所述问题的语义依赖于所述自然语言对话中的历史问题和历史回答中的至少一项,获取与所述历史问题和所述历史回答有关的第二信息;以及
至少基于所述第二信息来生成所述第一动作序列。
18.根据权利要求17所述的设备,其中所述第二信息包括以下至少一项:
所述历史问题中所涉及的实体;
所述历史问题中所涉及的谓词;
所述历史回答中所涉及的实体;
与所述历史问题的语义相对应的第二动作序列;以及
所述第二动作序列的一个或多个子序列,其中每个子序列对应于所述历史问题的语义中的相应部分。
19.根据权利要求18所述的设备,其中至少基于所述第二信息来生成所述第一动作序列包括:
响应于确定所述问题的语义中的一部分由所述第二信息中的一部分信息隐含地指示,通过引用所述第二信息中的所述一部分信息来生成所述第一动作序列。
20.一种计算机存储介质,存储机器可执行指令,所述机器可执行指令在由设备执行时使所述设备执行动作,所述动作包括:
接收自然语言对话中的问题,所述问题依赖于所述自然语言对话中的之前接收的至少一个问题的语义;
生成对应于所述问题的语义的逻辑表示,所述逻辑表示包括在知识库上可执行的第一动作序列,其中生成所述逻辑表示包括:
生成对应于所述问题的语义解析树,包括:复制对应于之前接收的所述至少一个问题的先前语义解析树的子树;以及
通过遍历所述语义解析树,来生成所述第一动作序列;以及通过在所述知识库上执行所述第一动作序列,获得针对所述问题的回答。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811038457.6A CN110888966B (zh) | 2018-09-06 | 2018-09-06 | 自然语言问答 |
PCT/US2019/038071 WO2020050893A1 (en) | 2018-09-06 | 2019-06-20 | Natural language question answering |
US17/267,302 US20210319344A1 (en) | 2018-09-06 | 2019-06-20 | Natural language question answering |
EP19735172.9A EP3847591A1 (en) | 2018-09-06 | 2019-06-20 | Natural language question answering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811038457.6A CN110888966B (zh) | 2018-09-06 | 2018-09-06 | 自然语言问答 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110888966A CN110888966A (zh) | 2020-03-17 |
CN110888966B true CN110888966B (zh) | 2024-05-10 |
Family
ID=67138231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811038457.6A Active CN110888966B (zh) | 2018-09-06 | 2018-09-06 | 自然语言问答 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210319344A1 (zh) |
EP (1) | EP3847591A1 (zh) |
CN (1) | CN110888966B (zh) |
WO (1) | WO2020050893A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111951782B (zh) * | 2019-04-30 | 2024-09-10 | 京东方科技集团股份有限公司 | 语音问答方法及装置、计算机可读存储介质和电子设备 |
CN111177326B (zh) * | 2020-04-10 | 2020-08-04 | 深圳壹账通智能科技有限公司 | 基于精标注文本的关键信息抽取方法、装置及存储介质 |
CN111259668B (zh) * | 2020-05-07 | 2020-08-18 | 腾讯科技(深圳)有限公司 | 阅读任务处理方法、模型训练方法、装置和计算机设备 |
CN111639171B (zh) * | 2020-06-08 | 2023-10-27 | 吉林大学 | 一种知识图谱问答方法及装置 |
US20230343333A1 (en) | 2020-08-24 | 2023-10-26 | Unlikely Artificial Intelligence Limited | A computer implemented method for the aut0omated analysis or use of data |
CN112328741B (zh) * | 2020-11-03 | 2022-02-18 | 平安科技(深圳)有限公司 | 基于人工智能的智能关联答复方法、装置、计算机设备 |
CN112365892B (zh) * | 2020-11-10 | 2024-07-16 | 杭州大搜车汽车服务有限公司 | 人机对话方法、装置、电子装置及存储介质 |
CN112527999B (zh) * | 2020-12-22 | 2024-05-14 | 江苏省农业科学院 | 引入农业领域知识的抽取式智能问答方法及系统 |
US12067362B2 (en) | 2021-08-24 | 2024-08-20 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11989507B2 (en) | 2021-08-24 | 2024-05-21 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US12073180B2 (en) | 2021-08-24 | 2024-08-27 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11989527B2 (en) | 2021-08-24 | 2024-05-21 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11977854B2 (en) | 2021-08-24 | 2024-05-07 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
CN115238101B (zh) * | 2022-09-23 | 2023-01-03 | 中国电子科技集团公司第十研究所 | 一种面向多类型知识库的多引擎智能问答系统 |
US20240119046A1 (en) * | 2022-09-29 | 2024-04-11 | Tata Consultancy Services Limited | System and method for program synthesis for weakly-supervised multimodal question answering using filtered iterative back-translation |
CN116992005B (zh) * | 2023-09-25 | 2023-12-01 | 语仓科技(北京)有限公司 | 基于大模型及本地知识库的智能对话方法、系统及设备 |
CN117033664B (zh) * | 2023-09-28 | 2024-01-09 | 腾讯科技(深圳)有限公司 | 业务的序列图生成方法、装置、计算机设备和存储介质 |
CN117635381B (zh) * | 2023-11-07 | 2024-06-25 | 华南师范大学 | 一种基于人机对话的计算思维品质评估方法及系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725307B2 (en) * | 1999-11-12 | 2010-05-25 | Phoenix Solutions, Inc. | Query engine for processing voice based queries including semantic decoding |
CN103229162B (zh) * | 2010-09-28 | 2016-08-10 | 国际商业机器公司 | 使用候选答案逻辑综合提供问题答案 |
US9535898B2 (en) * | 2013-02-06 | 2017-01-03 | International Business Machines Corporation | Natural language question expansion and extraction |
US9619513B2 (en) * | 2014-07-29 | 2017-04-11 | International Business Machines Corporation | Changed answer notification in a question and answer system |
US11204929B2 (en) * | 2014-11-18 | 2021-12-21 | International Business Machines Corporation | Evidence aggregation across heterogeneous links for intelligence gathering using a question answering system |
WO2016131045A1 (en) * | 2015-02-13 | 2016-08-18 | Thomson Reuters Global Resources | Systems and methods for natural language question answering and analysis |
US10867256B2 (en) * | 2015-07-17 | 2020-12-15 | Knoema Corporation | Method and system to provide related data |
CN106844368B (zh) * | 2015-12-03 | 2020-06-16 | 华为技术有限公司 | 用于人机对话的方法、神经网络系统和用户设备 |
WO2017112813A1 (en) * | 2015-12-22 | 2017-06-29 | Sri International | Multi-lingual virtual personal assistant |
US20190102390A1 (en) * | 2017-09-29 | 2019-04-04 | Novabase Sgps, S.A. | Semantic search engine and visualization platform |
US11243955B2 (en) * | 2017-11-29 | 2022-02-08 | International Business Machines Corporation | Latent token representations for passage and answer scoring in question answering systems |
US10929601B1 (en) * | 2018-03-23 | 2021-02-23 | Amazon Technologies, Inc. | Question answering for a multi-modal system |
US20200050942A1 (en) * | 2018-08-07 | 2020-02-13 | Oracle International Corporation | Deep learning model for cloud based technical support automation |
US11243948B2 (en) * | 2019-08-08 | 2022-02-08 | Salesforce.Com, Inc. | System and method for generating answers to natural language questions based on document tables |
-
2018
- 2018-09-06 CN CN201811038457.6A patent/CN110888966B/zh active Active
-
2019
- 2019-06-20 EP EP19735172.9A patent/EP3847591A1/en not_active Withdrawn
- 2019-06-20 US US17/267,302 patent/US20210319344A1/en active Pending
- 2019-06-20 WO PCT/US2019/038071 patent/WO2020050893A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
CN110888966A (zh) | 2020-03-17 |
US20210319344A1 (en) | 2021-10-14 |
EP3847591A1 (en) | 2021-07-14 |
WO2020050893A1 (en) | 2020-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888966B (zh) | 自然语言问答 | |
Li et al. | Know more say less: Image captioning based on scene graphs | |
WO2022134759A1 (zh) | 关键词生成方法、装置、电子设备及计算机存储介质 | |
JP7301922B2 (ja) | 意味検索方法、装置、電子機器、記憶媒体およびコンピュータプログラム | |
US8452772B1 (en) | Methods, systems, and articles of manufacture for addressing popular topics in a socials sphere | |
US9805718B2 (en) | Clarifying natural language input using targeted questions | |
Hao et al. | Recent progress in leveraging deep learning methods for question answering | |
Zhang et al. | SG-Net: Syntax guided transformer for language representation | |
CN114429133A (zh) | 通过神经机器阅读理解依赖于话语分析来回答复杂问题 | |
WO2021238604A1 (zh) | 翻译方法、装置、电子设备及计算机可读存储介质 | |
JP7335300B2 (ja) | 知識事前訓練モデルの訓練方法、装置及び電子機器 | |
US11487971B2 (en) | Multi-dimensional language style transfer | |
Wang et al. | Cocosum: Contextual code summarization with multi-relational graph neural network | |
CN111460115A (zh) | 智能人机对话模型训练方法、模型训练装置及电子设备 | |
CN111026320B (zh) | 多模态智能文本处理方法、装置、电子设备及存储介质 | |
US20120158742A1 (en) | Managing documents using weighted prevalence data for statements | |
JP2021033995A (ja) | テキスト処理装置、方法、デバイス及びコンピューター読み取り可能な記憶媒体 | |
Mo | Design and Implementation of an Interactive English Translation System Based on the Information‐Assisted Processing Function of the Internet of Things | |
JP2022106980A (ja) | クエリ文の生成方法、装置、電子機器及び記憶媒体 | |
WO2020052060A1 (zh) | 用于生成修正语句的方法和装置 | |
CN113743095A (zh) | 基于词格和相对位置嵌入的中文问题生成统一预训练方法 | |
US11138205B1 (en) | Framework for identifying distinct questions in a composite natural language query | |
Zhu et al. | Knowledge-based question answering by jointly generating, copying and paraphrasing | |
WO2022271369A1 (en) | Training of an object linking model | |
CN115062603A (zh) | 对齐增强语义解析方法、装置和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |