一种语义受控的答案生成方法、装置及系统
技术领域
本发明涉及自然语言处理技术领域,尤其涉及一种语义受控的答案生成方法、装置及系统。
背景技术
随着自然语言处理技术的发展,基于自然语言学习技术建立起来的对话系统也得到了广泛的应用,传统的对话系统由人工在问答库中预先录入的问题库和答案库组成,当用户提问时,对话系统根据用户提问的内容在问题模型库中检索相应的问题,然后输出问题相应的答案。
近年来,随着深度学习技术的飞速发展,基于深度学习技术的对话系统得到了大规模的应用,与传统的基于问题库信息检索的对话系统不同,深度学习运用了大量的统计学理论,通过设计深度学习算法,基于深度学习技术的对话系统可以从大规模的语料中学习到潜在的回复模式,从而根据学习到的潜在回复模式对未知语料生成回复答案,或者可以生成预料中从未出现过的回复语句。参见图1,为现有技术公开的一种答案生成方法,在该方法中:基于深度学习的对话系统通过建立一个基于RNN(递归神经网络:RecurrentNeural Networks)的sequence to sequence模型(简称:Seq2Seq模型),并使用该模型进行大量的语料训练,使Seq2Seq模型能够从问答对中学习到对未知问题的潜在回答模式,从而对新提出的未知问题给出答案。
由于,Seq2Seq模型进行语义训练时,使用的是统计学领域中的一种基于概率的算法来实现训练过程,且无法通过外界干预去控制Seq2Seq模型内部的训练过程,因此,将问题输入到Seq2Seq模型后,能生成什么样的答案,是一种概率事件,每次生成的答案不尽相同,其答案的语义内容是不可控的,这就导致了现有技术中,运用Seq2Seq模型的深度学习技术生成的问题答案在语义上,常常与问题无关联,导致答案不符合对话逻辑。例如用户提出的问题为“我吃过芒果”,Seq2Seq模型生成的答案为“你没见过芒果”,显然这个答案在语义上与问题是无关联的,是不符合对话逻辑的。
因此,对Seq2Seq模型生成的答案进行语义控制,以解决Seq2Seq模型生成的答案与问题无语义关联的情况,成为本领域技术人员亟待解决的技术问题。
发明内容
本发明提供了一种语义受控的答案生成方法、装置及系统,以解决现有技术中存在的问题。
第一方面,本发明实施例提供了一种语义受控的答案生成方法,所述方法包括:获取问题的第一答案集,所述第一答案集包括问题对应的至少一个候选答案;提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;对第一答案集中的全部候选答案进行句法分析,得到包含句法分析结果的第二答案集;根据句法分析结果,利用语义限制信息对第二答案集中的候选答案进行语义限制处理,得到包含语义受控候选答案的第三答案集;从第三答案集中选择一个候选答案作为问题答案。
第二方面,本发明实施例提供了一种语义受控的答案生成装置,所述装置包括:获取模块,用于获取问题的第一答案集,所述第一答案集包括问题对应的至少一个候选答案;结构化分析模块,用于提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;句法分析模块,用于对第一答案集中的全部候选答案进行句法分析,得到包含句法分析结果的第二答案集;语义控制模块,用于根据句法分析结果,利用语义限制信息对第二答案集中的候选答案进行语义限制处理,得到包含语义受控候选答案的第三答案集;答案选择模块,用于从第三答案集中选择一个候选答案作为问题答案。
第三方面,本发明实施例提供了一种语义受控的答案生成系统,所述系统包括:用户终端和服务器;所述用户终端,用于接收问题,并发送问题到服务器,以及,从服务器接收问题答案;所述服务器包括处理器、存储器;所述存储器用于存储处理器可执行的程序;所述处理器被配置为:获取问题的第一答案集,所述第一答案集包括问题对应的至少一个候选答案;提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;对对第一答案集中的全部候选答案进行句法分析,得到包含句法分析结果的第二答案集;根据句法分析结果,利用语义限制信息对第二答案集中的候选答案进行语义限制处理,得到包含语义受控候选答案的第三答案集;从第三答案集中选择一个候选答案作为问题答案。
本发明实施例提供的技术方案,为了实现对Seq2Seq模型生成的答案进行语义控制,对于用户提出的问题,首先,获取问题的候选答案,提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;其次,对问题的候选答案进行句法分析;然后,根据句法分析结果,利用语义限制信息对候选答案进行语义限制处理,得到语义受控的候选答案,最后,从候选答案中产生与问题具有语义关联的问题答案。实现了对现有技术的Seq2Seq模型生成的答案进行语义控制,解决了Seq2Seq模型生成的答案与问题无语义关联的问题。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术公开的一种答案生成方法;
图2为本发明实施例提供的一种语义受控的答案生成方法的流程图;
图3为本发明实施例提供的一种语义受控的答案生成方法步骤S140的流程图;
图4为本发明实施例提供的一种语义受控的答案生成方法步骤S150的流程图;
图5为本发明实施例提供的一种语义受控的答案生成方法步骤S151的流程图;
图6为本发明实施例提供的另一种语义受控的答案生成方法步骤S140的流程图;
图7为本发明实施例提供的另一种语义受控的答案生成方法步骤S151的流程图;
图8为本发明实施例提供的又一种语义受控的答案生成方法步骤S140的流程图;
图9为本发明实施例提供的一种语义受控的答案生成装置框图;
图10为本发明实施例提供的一种语义受控的答案生成系统框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域的常用概念解释
sequence to sequence模型(缩写为:Seq2Seq模型)是一种建模两个序列间关系的通用深度学习模型,一个标准的Seq2Seq模型通常由两部分组成:Encoder(编码器)和Decoder(解码器)。Encoder负责依次读入输入序列的每个单位,将其编码成一个模型的中间表示(一般为一个向量)。Decoder负责在给定上下文向量的情况下预测出输出序列。Seq2Seq模型在自然语言处理领域中得到了广泛的应用,通过使用大量的语料对Seq2Seq模型进行训练,使Seq2Seq模型可以从大量的语料训练中学习到潜在的回答模式,从而可以生成语料中从未出现过的回答语句。
实施例一
本发明实施例提供了一种语义受控的答案生成方法。图2为本发明实施例提供的一种语义受控的答案生成方法的流程图,如图2所示,所述方法可以包括以下步骤:
在步骤S110中,获取问题的第一答案集,所述第一答案集包括问题对应的至少一个候选答案。
本实施例中,可以搭建一个标准的Seq2Seq框架,并对该Seq2Seq框架进行大量的语料训练,从而得到一个Seq2Seq模型,并且,可以设定当输入一个问题到Seq2Seq模型时,Seq2Seq模型返回多个结果作为候选答案,作为示例地,本实施例设定Seq2Seq模型对一个问题返回五个结果,即返回五个候选答案。
本实施例中,将问题输入到Seq2Seq模型中,得到五个候选答案,这五个候选答案构成了本实例中的第一答案集。
示例地,本实施例中,向Seq2Seq模型中输入的问题为:我想吃云南的芒果。Seq2Seq模型返回的五个候选答案组成的第一答案集为:
我也想吃,我
芒果不错哦
我很喜欢
我吃过
我们去吃啊
在步骤S120中,提取问题中的结构化信息,所述结构化信息至少包括语义限制信息。
结构化信息是指对问题进行结构化识别,将问题转化为结构化的语义表示以后,结构化的语义中包含的信息。在人机对话领域中,结构化的语义通常被称作dialogue act,dialogue act由communicative function和slot-value pairs组成(由于在国内,本领域技术人员未对以上英文概念的中文翻译做统一的规定,而是普遍引用英文原文来表述这些概念,因此,为了避免翻译后产生歧义,本实施例中也使用英文原文来表述这些概念,本领域技术人员能够理解这些英文概念),其中communicative function表示query(可理解为问题)的类型,如:陈述需求、询问属性、否定、选择疑问等;而每个slot-value pair则表达一个限制条件。例如对于问题:“我要吃西二旗附近的川菜”,其对应的dialogue act可以表示为inform(person=我,foodtype=川菜,location=西二旗),在上述dialogue act中,“inform”就是一种类型的communicative function,它表示问题类型为陈述需求,而“inform”之后括号内“person=我,foodtype=川菜,location=西二旗”则属于slot-value pairs,是对语义的具有控制作用的限制条件。具体来说,对于问题“我要吃西二旗附近的川菜”来说,对其进行结构化语义表示之后,slot-value pairs中包含:person=我,foodtype=川菜,location=西二旗。其中“我”为句子中的主语,为人称代词,表示“吃”这个动作的执行者;“川菜”为句子中的宾语,表示“我”要吃的内容;“西二旗”为句子中的定语,是一个表示位置的信息,对川菜的位置做出的限定,以上slot-value pairs信息中的限制条件,共同对问题的语义做出了限制,使问题能够表达出提问者的特定的提问需求。
由于slot-value pairs信息有对语义进行限制的作用,因此,本实施例中的语义限制信息,就是将问题转化为结构化的语义表示以后,从dialogue act的slot-valuepairs信息中提取的。此外,本实施例中的结构化信息至少包括语义限制信息,还可以包括问题类型信息,例如communicative function信息。
示例地,对本实施例步骤S110中的问题“我想吃云南的芒果”,结构化的语义表示为:inform(person=我,location=云南,foodtype=芒果),因此,本实施例中的提取到的语义限制信息为:我、云南、芒果。
在步骤S130中,对第一答案集中的全部候选答案进行句法分析,得到包含句法分析结果的第二答案集。
本实施例中,步骤S130的一种实现方法为:对第一答案集中的全部候选答案进行句法分析,根据句法分析结果,去除无效答案,得到第二答案集,所述无效答案包括句法成分缺失的候选答案和句法成分冗余的候选答案。
本实施例中,使用依存句法分析的方法对第一答案集中全部的候选答案进行句法分析。依存句法(Dependency Parsing,DP)分析通过分析语言单位内成分之间的依存关系揭示其语法结构。直观来讲,依存句法分析识别句子中的“主谓宾”、“定状补”这些句法成分,并分析各句法成分之间的关系。
示例地,对本实施例中的第一答案集中的候选答案使用依存句法分析的结果为:
在本实施例中,候选答案“我也想吃,我”的句法分析结果为“主谓,主”,即在一个句子中出现了两个主语,属于句法成分冗余,属于无效答案,因此在步骤S130中,此候选答案被去除,最终得到的第二答案集为:
芒果不错哦
我很喜欢
我吃过
我们去吃啊
需要说明的是,本实施例中,与第一答案集相比,在步骤S130中得到的第二答案集,包括了第二答案集中每个候选答案的句法分析结果。
在步骤S140中,根据句法分析结果,利用语义限制信息对第二答案集中的候选答案进行语义限制处理,得到包含语义受控候选答案的第三答案集。
参见图3,本实施例中,步骤S140包括以下步骤:
在步骤S1411中,根据句法分析结果,确定每个候选答案的句法成分中包含的语义信息。
语义信息能够表达语句中心内容,本实例中定义的语义信息,由句子中做“主谓宾”成分的内容构成,句子中的“主谓宾”成分构成了句子的主干,通过识别句子中“主谓宾”成分的具体内容(如:主语是人、动物、水果等,谓语是:动作、状态等,宾语是人、食物等),就能够确定句子的中心内容。
本实施例中,可以通过步骤S130中的依存句法分析结果,确定语义信息。
示例地,每个候选答案的句法成分中包含的语义信息的结果为(括号内是对语义信息的注释信息):
候选答案 |
语义信息 |
芒果不错哦 |
芒果(主语,食物)不错(谓语,状态) |
我很喜欢 |
我(主语,人称代词)喜欢(谓语,状态) |
我吃过 |
我(主语,人称代词)吃过(谓语,状态) |
我们去吃啊 |
我们(主语,人称代词)去吃(谓语,动作) |
在步骤S1412中,在语义限制信息中,查找与语义信息存在语义关联的第一目标信息;本实施例中,语义关联是指语义信息和语义限制信息根据句法关系组合能形成符合逻辑的语义。
示例地,对于本实施例而言,语义限制信息已经在步骤S120中提取到,包括(括号中是对语义限制信息的注释信息):
我(人称代词),云南(地点),芒果(食物)
对于第二答案集中的每个候选答案,在语义限制信息中,查找第一目标信息的具体过程为:
a.候选答案:芒果不错哦
“芒果”在本候选答案中为主语,且“芒果”为一种食物;语义限制信息中的“云南”为地点,“云南”和“芒果”可以构成语义关联,组合成“云南芒果”,此时“云南”作为“芒果”状语,起到限制“芒果”产地的语义控制作用,因此,对于本候选答案来说,“云南”是与“芒果”存在语义关联的第一目标信息。
b.候选答案:我很喜欢
“喜欢”在本候选答案中为谓语,表示主语“我”表达出的一种状态;语义限制信息中的“芒果”为食物,“喜欢”和“芒果”可以构成语义关联,组合成“喜欢芒果”,此时“芒果”作为宾语,起到限制“喜欢”的对象的语义控制作用,因此,对于本候选答案来说,“芒果”是与“喜欢”存在语义关联的第一目标信息。
c.候选答案:我吃过
“吃过”在本候选答案中为谓语,表示主语“我”的一种状态;语义限制信息中的“芒果”为食物,“吃过”和“芒果”可以构成语义关联,组合成“吃过芒果”,此时“芒果”作为宾语,起到限制“吃过”的对象的语义控制作用,因此,对于本候选答案来说,“芒果”是与“吃过”存在语义关联的第一目标信息。
d.候选答案:我们去吃啊
“吃”在本候选答案中为谓语,表示主语“我们”的动作;语义限制信息中的“芒果”为食物,“吃”和“芒果”可以构成语义关联,组合成“吃芒果”,此时“芒果”作为宾语,起到限制“吃”的对象的语义控制作用,因此,对于本候选答案来说,“芒果”是与“吃”存在语义关联的第一目标信息。
在步骤S1413中,将所述第一目标信息插入到候选答案的语义关联位置,得到包含语义受控候选答案的第三答案集。
本实施例中,根据步骤S1412中确定的第一目标信息,以及第一目标信息与语义信息之间的关联关系,将第一目标信息插入到候选答案中对应的语义关联位置,使第一目标信息起到对语义信息的语义控制作用,形成语义受控的候选答案,所有语义受控的候选答案构成了第三答案集。
示例地,本实施例在执行步骤S1413时,具体插入结果如下:
(其中:带有下划线的加粗字体为插入的第一目标信息)
本实施例中,将第一目标信息插入到候选答案中对应的语义关联位置,实现对候选答案的语义限制处理,由于第一目标信息来自于问题,因此在“替换”后,第一目标信息作为候选答案中的句法成分,与问题建立了语义关联。
在步骤S150中,从第三答案集中选择一个候选答案作为问题答案。
参见图4,本实施例中,步骤S150具体包括以下步骤:
在步骤S151中,在第三答案集中,对每个候选答案分别与其他候选答案计算相似度。
参见图5,本实施例中,步骤S151由以下步骤组成:
在步骤S1511中,对第三答案集中的候选答案进行分词,并对分词结果做去重处理,得到包含候选答案中全部分词的词袋模型。
示例地,本市实施例中,对第三答案集中的候选答案分词的结果为:
云南/芒果/不错/哦
我/很/喜欢/芒果
我/吃/过/芒果
我们/去/吃/芒果/啊
其中,重复的分词为:我、吃;因此对分词结果做去重处理后得到的词袋模型为:
{云南芒果不错哦我很喜欢吃过我们去啊}
在步骤S1512中,根据候选答案的分词在词袋模型中出现的次数,对每个候选答案生成词频向量。
由于,本实施例步骤S1511得到的词袋模型中,分词的数量为12个,因此,在步骤S1512中,词频向量为12维向量,每一维代表词袋模型中的一个分词。
示例地,本实例定义候选答案的分词每在词袋模型中出现1次,词频为1,由此得出第三答案集中候选答案的词频向量为:
候选答案 |
词频向量 |
云南芒果不错哦 |
v1=[1,1,1,1,0,0,0,0,0,0,0,0] |
我很喜欢芒果 |
v2=[0,1,0,0,1,1,1,0,0,0,0,0] |
我吃过芒果 |
v3=[0,1,0,0,1,0,0,1,1,0,0,0] |
我们去吃芒果啊 |
v4=[0,1,0,0,0,0,0,1,0,1,1,1] |
在步骤S1513中,对每个词频向量分别与其他词频向量计算夹角余弦值,将余弦值计算结果作为相似度。
示例地,根据向量夹角余弦计算公式,本实施例中的词频向量夹角余弦值为:
Cos(v1,v2)=0.25
Cos(v1,v3)=0.25
Cos(v1,v4)=0.224
Cos(v2,v3)=0.5
Cos(v2,v4)=0.224
Cos(v3,v4)=0.447
在计算过程中,由于cos(vn,vm)与cos(vm,vn)的值相同(m和n表示第m个向量和第n个向量),意义也相同,因此,本实施例省略了意义相同的夹角余弦值计算步骤,例如COS(v1,v4)与cos(v4,v1)意义相同,本实施例中仅计算COS(v1,v4)的值,以较少计算量。
在步骤S152中,根据相似度计算结果,得到每个候选答案与其他候选答案的平均相似度。
示例地,以候选答案“云南芒果不错哦”为例,该候选答案与其他候选答案的相似度分别为:Cos(v1,v2)=0.25,Cos(v1,v3)=0.25,Cos(v1,v4)=0.224。
因此,候选答案“云南芒果不错哦”与其他候选答案的平均相似度为:
Ave1=(0.25+0.25+0.224)÷3=0.241
依次地,得到每个候选答案与其他候选答案的平均相似度,如下表:
候选答案 |
与其他候选答案的平均相似度 |
云南芒果不错哦 |
Ave1=0.241 |
我很喜欢芒果 |
Ave2=0.325 |
我吃过芒果 |
Ave3=0.399 |
我们去吃芒果啊 |
Ave4=0.298 |
在步骤S153中,选择最高平均相似度对应的候选答案作为问题答案。
示例地,在本实施例中,最高的平均相似度为Ave3=0.399,该最高的相似度对应的候选答案为“我吃过芒果”,因此将“我吃过芒果”作为问题答案。
本实施例中,如果最高的平均相似度对应多个候选答案,即多个候选答案的平均相似度相同且数值最高,则在步骤S153中,还可以包括步骤S1531。
在步骤S1531中,如果最高的平均相似度对应多个候选答案,则从中任意选择一个候选答案,作为问题答案。
本发明实施例提供的一种语义受控的答案生成方法,对于用户提出的问题,首先,获取问题的候选答案,提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;其次,对问题的候选答案进行句法分析;然后,根据句法分析结果,利用语义限制信息对候选答案进行语义限制处理,得到语义受控的候选答案,最后,从候选答案中产生与问题具有语义关联的问题答案。实现了对现有技术的Seq2Seq模型生成的答案进行语义控制,解决了Seq2Seq模型生成的答案与问题无语义关联的问题。
实施例二
本发明实施例提供了一种语义受控的答案生成方法。图2为本发明实施例提供的一种语义受控的答案生成方法的流程图,如图2所示,所述方法可以包括以下步骤:
在步骤S110中,获取问题的第一答案集,所述第一答案集包括问题对应的至少一个候选答案。
本实施例中,使用与实施例一中相同的方法生成第一答案集。
示例地,将问题“我吃过芒果”输入到Seq2Seq模型中,Seq2Seq模型返回的五个候选答案组成的第一答案集为:
你也吃过水果
我没吃过香蕉
我买过水果
你没见过芒果
吃啊
在步骤S120中,提取问题中的结构化信息,所述结构化信息至少包括语义限制信息。
示例地,本实施例步骤S110中的问题“我吃过芒果”,结构化的语义表示为:inform(person=我,foodtype=芒果),因此,本实施例中提取的语义限制信息为:我,芒果。
在步骤S130中,对第一答案集中的全部候选答案进行句法分析,得到包含句法分析结果的第二答案集。
本实施例中,步骤S130的一种实现方法为:对第一答案集中的全部候选答案进行句法分析,根据句法分析结果,去除无效答案,得到第二答案集,所述无效答案包括句法成分缺失的候选答案和句法成分冗余的候选答案。
本实施例采用与实施例一相同的依存句法分析方法对第一答案集中全部的候选答案进行句法分析,分析结果为:
候选答案 |
句法成分 |
分析结果 |
你也吃过水果 |
你(主语)、吃过(谓语)、水果(宾语) |
主谓宾 |
我没吃过香蕉 |
我(主语)、没吃过(谓语)、香蕉(宾语) |
主谓宾 |
我买过水果 |
我(主语)、买过(谓语)、水果(宾语) |
主谓宾 |
你没见过芒果 |
你(主语)、没见过(谓语)、芒果(宾语) |
主谓宾 |
吃啊 |
吃啊(谓语) |
谓 |
本实施例中,候选答案“吃啊”的句法分析结果为“谓”,即该候选答案中只有谓语,属于句法成分缺失,属于无效答案,因此在步骤S130中,此候选答案被去除,最终得到的第二答案集为:
你也吃过水果
我没吃过香蕉
我买过水果
你没见过芒果
需要说明的是,本实施例中,与第一答案集相比,在步骤S130中得到的第二答案集,包括了第二答案集中每个候选答案的句法分析结果。
在步骤S140中,根据句法分析结果,利用语义限制信息对第二答案集中的候选答案进行语义限制处理,得到包含语义受控候选答案的第三答案集;
与实施例一不同,参见图6,为本发明实施例提供的另一种语义受控的答案生成方法步骤S140的流程图,包括以下步骤:
在步骤S1421中,根据句法分析结果,确定每个候选答案的句法成分中包含的语义信息。
本实施例中,可以通过步骤S130中的依存句法分析结果,确定语义信息。
示例地,每个候选答案的句法成分中包含的语义信息的结果为:
候选答案 |
语义信息 |
你也吃过水果 |
你(主语,人称代词)吃过(谓语,状态)水果(宾语,食物) |
我没吃过香蕉 |
我(主语,人称代词)吃过(谓语,状态)香蕉(宾语,食物) |
我买过水果 |
我(主语,人称代词)买过(谓语,状态)水果(宾语,食物) |
你没见过芒果 |
你(主语,人称代词)没见过(谓语,状态)芒果(宾语,食物) |
在步骤S1422中,在语义限制信息中,查找与语义信息句法成分相同的第二目标信息。
本实施例中,句法成分相同是指语义信息和语义限制信息可以在语句中作为相同的句法成分出现。
示例地,对于本实施例而言,语义限制信息已经在步骤S120中提取到,包括(括号中是对语义限制信息的注释信息):
我(人称代词),芒果(食物)
对于第二答案集中的每个候选答案,在语义限制信息中,查找第二目标信息的具体过程为:
a.候选答案:你也吃过水果
“你”在本候选答案中为主语,是人称代词,而语义限制信息中的“我”也是人称代词,也可以作为主语,因此,二者的句法成分相同,语义限制信息中的“我”能起到对候选答案主语的语义控制作用;此外,“水果”在本候选答案中为宾语,表示一类食物,语义限制信息中的“芒果”属于“水果”,也可以作为宾语,因此,二者的句法成分相同,语义限制信息中的“芒果”对“水果”做出限制,具有语义控制作用,因此,对于本候选答案来说,“我”是与“你”句法成分相同的第二目标信息,“芒果”是与“水果”句法成分相同的第二目标信息。
b.候选答案:我没吃过香蕉
“香蕉”在本候选答案中为宾语,表示一种食物,语义限制信息中的“芒果”也是一种食物,也可以作为宾语,因此,二者的句法成分相同,语义限制信息中的“芒果”能起到对候选答案宾语的语义控制作用,因此,对于本候选答案来说,“芒果”是与“香蕉”句法成分相同的第二目标信息。
c.候选答案:我买过水果
“水果”在本候选答案中为宾语,表示一类食物,语义限制信息中的“芒果”属于“水果”,也可以作为宾语,因此,二者的句法成分相同,语义限制信息中的“芒果”对“水果”做出限制,具有语义控制作用,因此,对于本候选答案来说,“芒果”是与“水果”句法成分相同的第二目标信息。
d.候选答案:你没见过芒果
“你”在本候选答案中为主语,是人称代词,而语义限制信息中的“我”也是人称代词,也可以作为主语,因此,二者的句法成分相同,语义限制信息中的“我”能起到对候选答案主语的语义控制作用,因此,对于本候选答案来说,“我”是与“你”句法成分相同的第二目标信息。
在步骤S1423中,用第二目标信息替换具有相同句法成分的语义信息,得到包含语义受控候选答案的第三答案集。
本实施例中,根据步骤S1422中确定的第二目标信息,用第二目标信息替换掉候选答案中与其具有相同句法成分的语义信息,使第二目标信息起到对候选答案的语义控制作用,形成语义受控的候选答案,所有语义受控的候选答案构成了第三答案集。
示例地,本实施例在执行步骤S1423时,具体插入结果如下:
(其中:带有下划线的加粗字体为替换的第二目标信息)
本实施例中,用第二目标信息替换掉候选答案中与其具有相同句法成分的语义信息,实现对候选答案的语义限制处理,由于第二目标信息来自于问题,因此在“替换”后,第二目标信息作为候选答案中的句法成分,与问题建立了语义关联。
在步骤S150中,从第三答案集中选择一个候选答案作为问题答案。
本实施例中,步骤S150中的步骤S151与实施例一有所不同,参见图7,为本发明实施例提供的另一种语义受控的答案生成方法步骤S151的流程图,不同之处在于,本实施例中在步骤S1512之前,添加了步骤S1514。
在步骤S1514中,根据词袋模型中分词的句法成分,设置每个分词的词频权重值。
示例地,本实施例在步骤S1511中得到的词袋模型为:
{我也吃过买过芒果没见过}
本实施例的步骤S1514,根据词袋模型中的分词在候选答案中的句法成分不同,对每个分词设置不同的词频权重。本实施例中,对可以在句法成分中做主语和宾语的分词设置了较高的词频权重,由此得到的每个分词的词频权重的结果为:
分词 |
词频权重 |
我 |
1.2 |
也 |
1 |
吃过 |
1 |
买过 |
1 |
芒果 |
1.2 |
没 |
1 |
见过 |
1 |
本实施例中,由于对分词设置了词频权重,在生成词频向量时,每个分词对应的词频向量的标量值为:
标量值=词频权重×分词出现次数
在步骤S1512中,根据候选答案的分词在词袋模型中出现的次数,对每个候选答案生成词频向量。
由于,本实施例步骤S1511得到的词袋模型中,分词的数量为7个,因此,在步骤S1512中,词频向量为7维向量,每一维代表词袋模型中的一个分词。
示例地,按照步骤S1514中的词频向量的标量值计算公式,如果词袋模型中的分词“我”在语句中出现1次,其词频为1.2×1=1.2,出现2次,其词频为1.2×2=2.4,依次类推;其他分词计算词频方法相同,由此得出第三答案集中候选答案的词频向量为:
候选答案 |
词频向量 |
我也吃过芒果 |
u1=[1.2,1,1,0,1.2,0,0] |
我没吃过芒果 |
u2=[1.2,0,1,0,1.2,1,0] |
我买过芒果 |
u3=[1.2,0,0,1,1.2,0,0] |
我没见过芒果 |
u4=[1.2,0,0,0,1.2,1,1] |
本实施例中,步骤S1513、步骤S152和步骤S153与实施例一相同。
示例地,步骤S1513得到的词频向量夹角余弦值为:
Cos(u1,u2)=0.795
Cos(u1,u3)=0.662
Cos(u1,u4)=0.59
Cos(u2,u3)=0.662
Cos(u2,u4)=0.795
Cos(u3,u4)=0.662
示例地,步骤S152得到的每个候选答案与其他候选答案的平均相似度,如下表:
候选答案 |
与其他候选答案的平均相似度 |
我也吃过芒果 |
Ave5=0.682 |
我没吃过芒果 |
Ave6=0.751 |
我买过芒果 |
Ave7=0.662 |
我没见过芒果 |
Ave8=0.682 |
示例地,在本实施例中,最高的平均相似度为Ave6=0.751,所以,本实施例在步骤S153中将“我没吃过芒果”作为问题答案。
本实施例中,如果最高的平均相似度对应多个候选答案,即多个候选答案的平均相似度相同且数值最高,则在步骤S153中,还可以包括步骤S1531。
在步骤S1531中,如果最高的平均相似度对应多个候选答案,则从中任意选择一个候选答案,作为问题答案。
本实施例提供的一种语义受控的答案生成方法,对于用户提出的问题,首先,获取问题的候选答案,提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;其次,对问题的候选答案进行句法分析;然后,根据句法分析结果,利用语义限制信息对候选答案进行语义限制处理,得到语义受控的候选答案,最后,从候选答案中产生与问题具有语义关联的问题答案。实现了对现有技术的Seq2Seq模型生成的答案进行语义控制,解决了Seq2Seq模型生成的答案与问题无语义关联的问题。
实施例三
本发明实施例提供了一种语义受控的答案生成方法,参见图2,为本发明实施例提供的一种语义受控的答案生成方法的流程图。
本发明实施例与实施例一和实施例二的区别在于,步骤S140中包括的具体步骤不同。
由于,本实施例中的步骤S110-步骤S130与实施例一、实施例二相同,本实施例对步骤S110-步骤S130不做详述,仅给出示例。
示例地,在步骤S110中,将问题“我想吃云南的芒果”输入到Seq2Seq模型中,可能会得到以下第一答案集:
我也想吃,我
芒果不错哦
我很喜欢
我吃过水果
你没见过芒果
示例地,本实施例在步骤S120中,提取的语义限制信息的提取结果为:我,云南,芒果。
示例地,本实施例在步骤S130中,对第一答案集中的候选答案使用依存句法分析的结果为:
候选答案 |
句法成分 |
分析结果 |
我也想吃,我 |
我(主语)、吃(谓语) |
主谓,主 |
芒果不错哦 |
芒果(主语)、不错(谓语) |
主谓 |
我很喜欢 |
我(主语)、喜欢(谓语) |
主谓 |
我吃过水果 |
我(主语)、吃过(谓语)、水果(宾语) |
主谓宾 |
你没见过芒果 |
你(主语)、没见过(谓语)、芒果(宾语) |
主谓宾 |
因此,在步骤130中,去除无效答案,最终得到的第二答案集为:
芒果不错哦
我很喜欢
我吃过水果
你没见过芒果
在步骤S140中,根据句法分析结果,利用语义限制信息对第二答案集中的候选答案进行语义限制处理,得到包含语义受控候选答案的第三答案集。
本实施例的步骤S140中包含的具体步骤与实施例一和实施例二不同,参见图8,为本发明实施例提供的又一种语义受控的答案生成方法步骤S140的流程图,本实施例的步骤S140包括:
在步骤S1431中,根据句法分析结果,确定每个候选答案的句法成分中包含的语义信息。
本实施例中,可以通过步骤S130中的依存句法分析,确定语义信息。
示例地,每个候选答案的句法成分中包含的语义信息的结果为:
候选答案 |
语义信息 |
芒果不错哦 |
芒果(主语,食物)不错(谓语,状态) |
我很喜欢 |
我(主语,人称代词)喜欢(谓语,状态) |
我吃过水果 |
我(主语,人称代词)吃过(谓语,状态)水果(宾语,食物) |
你没见过芒果 |
你(主语,人称代词)没见过(谓语,状态)芒果(宾语,食物) |
在步骤S1432中,在语义限制信息中,查找与语义信息存在语义关联的第一目标信息,以及,查找与语义信息句法成分相同的第二目标信息。
本实施例中,语义关联是指语义信息和语义限制信息根据句法关系组合能形成符合逻辑的语义,句法成分相同是指语义信息和语义限制信息可以在语句中作为相同的句法成分出现。
示例地,对于本实施例而言,语义限制信息已经在步骤S120中提取到,包括(括号中是对语义限制信息的注释信息):
我(人称代词),云南(地点),芒果(食物)
对于第二答案集中的每个候选答案,在语义限制信息中,查找第一目标信息和第二目标信息的具体过程为:
a.候选答案:芒果不错哦
“芒果”在本候选答案中为主语,且“芒果”为一种食物;语义限制信息中的“云南”为地点,“云南”和“芒果”可以构成语义关联,组合成“云南芒果”,此时“云南”作为“芒果”状语,起到限制“芒果”产地的语义控制作用,因此,对于本候选答案来说,“云南”是与“芒果”存在语义关联的第一目标信息。
b.候选答案:我很喜欢
“喜欢”在本候选答案中为谓语,表示主语“我”表达出的一种状态;语义限制信息中的“芒果”为食物,“喜欢”和“芒果”可以构成语义关联,组合成“喜欢芒果”,此时“芒果”作为宾语,起到限制“喜欢”的对象的语义控制作用,因此,对于本候选答案来说,“芒果”是与“喜欢”存在语义关联的第一目标信息。
c.候选答案:我吃过水果
“水果”在本候选答案中为宾语,表示一类食物,语义限制信息中的“芒果”属于“水果”,也可以作为宾语,因此,二者的句法成分相同,语义限制信息中的“芒果”对“水果”做出限制,具有语义控制作用,因此,对于本候选答案来说,“芒果”是与“水果”句法成分相同的第二目标信息。此外,语义限制信息中的“云南”为地点,能够与“水果”或“芒果”形成语义关联,此时“云南”作为“水果”或“芒果”的状语,起到限制“水果”或“芒果”产地的语义控制作用,因此,对于本候选答案来说,“云南”是与“水果”或“芒果”存在语义关联的第一目标信息。
d.候选答案:你没见过芒果
“你”在本候选答案中为主语,是人称代词,而语义限制信息中的“我”也是人称代词,也可以作为主语,因此,二者的句法成分相同,语义限制信息中的“我”能起到对候选答案主语的语义控制作用,因此,对于本候选答案来说,“我”是与“你”句法成分相同的第二目标信息。此外,语义限制信息中的“云南”为地点,能够与“芒果”形成语义关联,此时“云南”作为“芒果”的状语,起到限制“芒果”产地的语义控制作用,因此,对于本候选答案来说,“云南”是与“芒果”存在语义关联的第一目标信息。
在步骤S1433中,将第一目标信息插入到候选答案的语义关联位置,以及,用第二目标信息替换具有相同句法成分的语义信息,得到包含语义受控候选答案的第三答案集。
本实施例中,根据步骤S1432中确定的第一目标信息和第二目标信息,将第一目标信息插入到候选答案中对应的语义关联位置,并用第二目标信息替换掉候选答案中与其具有相同句法成分的语义信息,使第一目标信息和第二目标信息起到对候选答案的语义控制作用,形成语义受控的候选答案,所有语义受控的候选答案构成了第三答案集。
示例地,本实施例在执行步骤S1433时,具体插入和替换结果如下:
(其中:带有下划线的加粗字体为插入的第一目标信息,不带下划线的加粗字体为替换的第二目标信息)
本实施例中的步骤S140,对候选答案进行语义限制处理时,同时使用第一目标信息插入到候选答案的语义关联位置的方法,以及,用第二目标信息替换具有相同句法成分的语义信息的方法,使本实施例对候选答案的语义做到更全面的控制,提高语义限制处理后,候选答案与问题的关联性。
本实例中的步骤S150与实施例一或实施例二相同,此处不再赘述。
本发明实施例提供的一种语义受控的答案生成方法,对于用户提出的问题,首先,获取问题的候选答案,提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;其次,对问题的候选答案进行句法分析;然后,根据句法分析结果,利用语义限制信息对候选答案进行语义限制处理,得到语义受控的候选答案,最后,从候选答案中产生与问题具有语义关联的问题答案。实现了对现有技术的Seq2Seq模型生成的答案进行语义控制,解决了Seq2Seq模型生成的答案与问题无语义关联的问题。
本发明实施例提供了一种语义受控的答案生成装置,图9为本发明实施例提供的一种语义受控的答案生成装置框图。如图9所示,所述装置包括:
获取模块210,用于获取问题的第一答案集,所述第一答案集包括问题对应的至少一个候选答案;
结构化分析模块220,用于提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;
句法分析模块230,对第一答案集中的全部候选答案进行句法分析,得到包含句法分析结果的第二答案集;
语义控制模块240,用于根据句法分析结果,利用语义限制信息对第二答案集中的候选答案进行语义限制处理,得到包含语义受控候选答案的第三答案集;
答案生成模块250,用于从第三答案集中选择一个候选答案作为问题答案。
本发明实施例提供的一种语义受控的答案生成装置,能够对用户提出的问题,首先,获取问题的候选答案,提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;其次,对问题的候选答案进行句法分析;然后,根据句法分析结果,利用语义限制信息对候选答案进行语义限制处理,得到语义受控的候选答案,最后,从候选答案中产生与问题具有语义关联的问题答案。实现了对现有技术的Seq2Seq模型生成的答案进行语义控制,解决了Seq2Seq模型生成的答案与问题无语义关联的问题。
本发明实施例提供了一种语义受控的答案生成系统,图10是本发明实施例提供的一种语义受控的答案生成系统的示意图,如图10所示,所述系统包括:
用户终端310和服务器320;
所述用户终端310,用于接收问题,并发送问题到服务器320,以及,从服务器320接收问题答案;
所述服务器320包括处理器321和存储器322;
所述存储器322用于存储处理器321可执行的程序;
所述处理器321被配置为:
获取问题的第一答案集,所述第一答案集包括问题对应的至少一个候选答案;
提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;
对第一答案集中的全部候选答案进行句法分析,得到包含句法分析结果的第二答案集;
根据句法分析结果,利用语义限制信息对第二答案集中的候选答案进行语义限制处理,得到包含语义受控候选答案的第三答案集;
从第三答案集中选择一个候选答案作为问题答案。
本发明实施例提供的一种语义受控的答案生成系统,能够接收用户提出的问题,获取问题的候选答案,提取问题中的结构化信息,所述结构化信息至少包括语义限制信息;其次,对问题的候选答案进行句法分析;然后,根据句法分析结果,利用语义限制信息对候选答案进行语义限制处理,得到语义受控的候选答案,最后,从候选答案中产生与问题具有语义关联的问题答案。实现了对现有技术的Seq2Seq模型生成的答案进行语义控制,解决了Seq2Seq模型生成的答案与问题无语义关联的问题。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。