语义向量的处理方法及装置与流程

文档序号:17090635发布日期:2019-03-13 23:25阅读:277来源:国知局
语义向量的处理方法及装置与流程

本申请涉及自然语言处理领域,具体而言,涉及一种语义向量的处理方法及装置。



背景技术:

语义向量,是指将文本的符号表示转换为语义空间中的向量的过程。

发明人发现,在人机对话场景中当接收到的用户请求中的问题相似度较高时,机器人无法准确地分辨出问题所属知识点。进一步,对于相似度较低的问题,无法进行有效地区分。

针对相关技术中文本语义相似时处理效果较差的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请的主要目的在于提供一种语义向量的处理方法及装置,以解决文本语义相似时处理效果较差的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种语义向量的处理方法。

根据本申请的语义向量的处理方法包括:接收用户请求;通过对所述用户请求执行预设处理得到词向量;以及将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量。

进一步地,所述预设句向量编码模型包括:构造训练数据集,所述构造训练数据集包括:将知识库中划分的知识点按照分类标签分为多层级结构,其中,所述多层级结构至少包括:一级标签和二级标签;将同一知识点下的相似问题作为正样本;将不同知识点下的相似问题作为负样本;以及根据所述相似问题挑选句对并构造出训练数据集。

进一步地,将不同知识点下的相似问题作为负样本包括如下一种或多种操作:随机选择任意两个不同的知识点下的相似问题作为矛盾关系的负样本;选择一级标签相同以及二级标签不同的知识点的相似问题作为矛盾关系的负样本。

进一步地,所述预设句向量编码模型包括:训练句向量编码模型,所述训练句向量编码模型包括:根据自然语言推理任务训练分类器判断输入的两个句子的语义向量;判断两个句子的蕴含、中立或矛盾的关系;其中,在训练过程中根据分类器输出结果调整句向量编码模型的权重,训练好的模型中的编码器部分得到可用于语义向量编码的模型。

进一步地,将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量包括:将经过预设处理得到词向量依次通过bilstm后得到多个隐藏状态向量;对所述隐藏状态向量做池化处理到的句子语义向量。

为了实现上述目的,根据本申请的另一方面,提供了一种语义向量的处理装置。

根据本申请的语义向量的处理装置包括:接收模块,用于接收用户请求;预处理模块,用于通过对所述用户请求执行预设处理得到词向量;以及句向量模型模块,用于将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量。

进一步地,所述句向量模型模块包括:构造训练数据集模块,所述构造训练数据集模块包括:标签单元,用于将知识库中划分的知识点按照分类标签分为多层级结构,其中,所述多层级结构至少包括:一级标签和二级标签;正样本处理单元,用于将同一知识点下的相似问题作为正样本;负样本处理单元,用于将不同知识点下的相似问题作为负样本;以及挑选单元,用于根据所述相似问题挑选句对并构造出训练数据集。

进一步地,所述负样本处理单元中包括如下一种或多种操作:随机选择任意两个不同的知识点下的相似问题作为矛盾关系的负样本;选择一级标签相同以及二级标签不同的知识点的相似问题作为矛盾关系的负样本。

进一步地,所述句向量模型模块包括:训练句向量编码模型模块,所述训练句向量编码模型模块包括:分类器单元,用于根据自然语言推理任务训练分类器判断输入的两个句子的语义向量;编码器判断单元,判断两个句子的蕴含、中立或矛盾的关系;其中,在训练过程中根据分类器输出结果调整句向量编码模型的权重,训练好的模型中的编码器部分得到可用于语义向量编码的模型。

进一步地,所述句向量模型模块包括:分析单元,用于将经过预设处理得到词向量依次通过bilstm后得到多个隐藏状态向量;池化单元,用于对所述隐藏状态向量做池化处理到的句子语义向量。

在本申请实施例中,采用接收用户请求的方式,通过通过对所述用户请求执行预设处理得到词向量,达到了将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量的目的,从而实现了得到准确得到句子的语义向量的技术效果,进而解决了文本语义相似时处理效果较差的技术问题。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请第一实施例的语义向量的处理方法示意图;

图2是根据本申请第二实施例的语义向量的处理方法示意图;

图3是根据本申请第三实施例的语义向量的处理方法示意图;

图4是根据本申请第四实施例的语义向量的处理方法示意图;

图5是根据本申请第一实施例的语义向量的处理装置示意图;

图6是根据本申请第二实施例的语义向量的处理装置示意图;

图7是根据本申请第三实施例的语义向量的处理装置示意图;

图8是根据本申请第四实施例的语义向量的处理装置示意图;

图9是根据本申请优选实施例的语义向量的处理方法流程示意图;

图10是句向量模型采用infersent模型的原理示意图;

图11是句向量模型训练流程示意图;以及

图12是训练数据集构造流程示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

如图1所示,该方法包括如下的步骤s102至步骤s106:

步骤s102,接收用户请求;

用户请求通常是问题,通过在后台服务器端可以接收到用户请求。

在用户请求中包含了文本信息、文本信息含义等。

步骤s104,通过对所述用户请求执行预设处理得到词向量;

通过对用户请求执行预处理操作后可以得到词向量。

具体地,预处理部分主要是对用户请求做分词、去停用词等操作,然后再将得到的词通过查询预先训练好的embedding矩阵,转换成词向量。

需要注意的是,本申请中的预处理部分并不限定于上述的操作,还可以包括其他预处理操作,本领域技术人员可以根据不同的使用场景进行选择,在本申请中并不进行限定。

步骤s106,将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量。

根据上述步骤中得到的词向量,将所述词向量输入预设句向量编码模型中,通过预设句向量编码模型可以输出句子的语义向量。

具体地,通过输入预设句向量编码模型能够对词向量进行处理得到编码后的语义向量。编码后的语义向量可以用于计算两个问题之间的相似度,进而用于构建知识库的问答系统。

如图9所示,是本申请实施例中的流程示意图。句子的语义向量编码主要步骤主要有数据预处理与句向量编码。其中,预处理部分主要是对用户请求做分词、去停用词等操作,然后将得到的词通过查询预先训练好的embedding矩阵,转换成词向量;句向量编码模型则根据输入的词向量,计算得到最终句子的语义向量。

从以上的描述中,可以看出,本申请实现了如下技术效果:

在本申请实施例中,采用接收用户请求的方式,通过通过对所述用户请求执行预设处理得到词向量,达到了将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量的目的,从而实现了得到准确得到句子的语义向量的技术效果,进而解决了文本语义相似时处理效果较差的技术问题。

根据本申请实施例,作为本实施例中的优选,如图2所示,所述预设句向量编码模型包括:构造训练数据集,所述构造训练数据集包括:

步骤s202,将知识库中划分的知识点按照分类标签分为多层级结构,其中,所述多层级结构至少包括:一级标签和二级标签;

具体地,训练数据集时可以使用问答知识库构建,在知识库中的知识点根据分类标签分为很多层级,从知识点的相似问中挑选句对,进而可以构造数据集。

步骤s204,将同一知识点下的相似问题作为正样本;

具体地,对于同一知识点下的相似问题构成蕴含关系,作为正样本。

比如,问题a“如何避免失眠”和问题b“晚上睡不着”构成蕴含关系。

步骤s206,将不同知识点下的相似问题作为负样本;

具体地,不同知识点下的相似问题构成矛盾关系,作为负样本。

比如,问题a“新生儿不喝奶”和问题b“孕妇容易失眠”构成矛盾关系。

步骤s208,根据所述相似问题挑选句对并构造出训练数据集。

通过相似问题可以挑选出问题句子对即至少包括:一组相似的句子。

根据本申请实施例,作为本实施例中的优选,请参考图12,将不同知识点下的相似问题作为负样本包括如下一种或多种操作:

随机选择任意两个不同的知识点下的相似问题作为矛盾关系的负样本;

选择一级标签相同以及二级标签不同的知识点的相似问题作为矛盾关系的负样本。

具体地,请参考图12本方案用到的数据集,使用问答知识库构建,知识库中的知识点根据分类标签分为很多层级,从知识点的相似问中挑选句对,构造数据集。同一知识点下的相似问题构成蕴含关系,作为正样本。不同知识点下的相似问题构成矛盾关系,作为负样本。其中,负样本的选取有2种方式,一种是随机选择2个不同知识点下的相似问构成矛盾关系,另一种是选择一级标签相同、二级标签不同的知识点相似问构成矛盾关系。

根据本申请实施例,作为本实施例中的优选,如图3所示,所述预设句向量编码模型包括:训练句向量编码模型,所述训练句向量编码模型包括:

步骤s302,根据自然语言推理任务训练分类器判断输入的两个句子的语义向量;

训练句向量编码模型时,可以参考参考自然语言推理任务,通过训练分类器判断输入的两句话蕴含(entailment),中立(neutral),或者矛盾(contradiction)。

步骤s304,判断两个句子的蕴含、中立或矛盾的关系;

在训练过程中根据分类器输出结果调整句向量编码模型的权重,训练好的模型中的编码器部分得到可用于语义向量编码的模型。

具体地,如图11所示首先,通过句向量编码模型得到两句话的语义向量u和v;然后对u和v进行拼接、相减和相乘等操作,得到新的特征向量输入全连接层;最后,根据全连接层提取的特征,输出最终的分类结果,本方案中为两类:蕴含和矛盾。

根据本申请实施例,作为本实施例中的优选,如图4所示,将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量包括:

步骤s402,将经过预设处理得到词向量依次通过bilstm后得到多个隐藏状态向量;

通过构建的神经网络中的词法分析网络,能够对预设处理得到词向量分析得到多个隐藏状态向量。

步骤s404,对所述隐藏状态向量做池化处理到的句子语义向量。

对隐藏状态向量输入max-pooling层进行池化处理得到句子语义向量。

具体地,可以参考图10所示句向量模型的一种方案是infersent模型,主要结构为bilstm和max-pooling。预处理后的词向量,依次通过bilstm得到若干hiddenstate隐藏状态向量,再对这些向量做max-pooling得到最终的句子语义向量。

需要注意的是,在本申请实施例中将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量的方式可以包括多种,在本申请中优选了infersent模型,并不作为本申请中的限定。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本申请实施例,还提供了一种用于实施上述方法的语义向量的处理装置,如图5所示,该装置包括:接收模块10,用于接收用户请求;预处理模块20,用于通过对所述用户请求执行预设处理得到词向量;以及句向量模型模块30,用于将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量。

本申请实施例的接收模块10中用户请求通常是问题,通过在后台服务器端可以接收到用户请求。

在用户请求中包含了文本信息、文本信息含义等。

本申请实施例的预处理模块20中通过对用户请求执行预处理操作后可以得到词向量。

具体地,预处理部分主要是对用户请求做分词、去停用词等操作,然后再将得到的词通过查询预先训练好的embedding矩阵,转换成词向量。

需要注意的是,本申请中的预处理部分并不限定于上述的操作,还可以包括其他预处理操作,本领域技术人员可以根据不同的使用场景进行选择,在本申请中并不进行限定。

本申请实施例的句向量模型模块30中根据上述步骤中得到的词向量,将所述词向量输入预设句向量编码模型中,通过预设句向量编码模型可以输出句子的语义向量。

具体地,通过输入预设句向量编码模型能够对词向量进行处理得到编码后的语义向量。编码后的语义向量可以用于计算两个问题之间的相似度,进而用于构建知识库的问答系统。

根据本申请实施例,作为本实施例中的优选,如图6所示,所述句向量模型模块30包括:构造训练数据集模块301,所述构造训练数据集模块301包括:标签单元3011,用于将知识库中划分的知识点按照分类标签分为多层级结构,其中,所述多层级结构至少包括:一级标签和二级标签;正样本处理单元3012,用于将同一知识点下的相似问题作为正样本;负样本处理单元3013,用于将不同知识点下的相似问题作为负样本;以及挑选单元3014,用于根据所述相似问题挑选句对并构造出训练数据集。

本申请实施例的标签单元3011中具体地,训练数据集时可以使用问答知识库构建,在知识库中的知识点根据分类标签分为很多层级,从知识点的相似问中挑选句对,进而可以构造数据集。

本申请实施例的正样本处理单元3012中具体地,对于同一知识点下的相似问题构成蕴含关系,作为正样本。

比如,问题a“如何避免失眠”和问题b“晚上睡不着”构成蕴含关系。

本申请实施例的负样本处理单元3013中具体地,不同知识点下的相似问题构成矛盾关系,作为负样本。

比如,问题a“新生儿不喝奶”和问题b“孕妇容易失眠”构成矛盾关系。

本申请实施例的挑选单元3014中通过相似问题可以挑选出问题句子对即至少包括:一组相似的句子。

根据本申请实施例,作为本实施例中的优选,请参考图12,将不同知识点下的相似问题作为负样本包括如下一种或多种操作:

随机选择任意两个不同的知识点下的相似问题作为矛盾关系的负样本;

选择一级标签相同以及二级标签不同的知识点的相似问题作为矛盾关系的负样本。

根据本申请实施例,作为本实施例中的优选,如图7所示,所述句向量模型模块30包括:训练句向量编码模型模块302,所述训练句向量编码模型模块302包括:分类器单元3021,用于根据自然语言推理任务训练分类器判断输入的两个句子的语义向量;编码器判断单元3022,判断两个句子的蕴含、中立或矛盾的关系;其中,在训练过程中根据分类器输出结果调整句向量编码模型的权重,训练好的模型中的编码器部分得到可用于语义向量编码的模型。

本申请实施例的分类器单元3021中训练句向量编码模型时,可以参考参考自然语言推理任务,通过训练分类器判断输入的两句话蕴含(entailment),中立(neutral),或者矛盾(contradiction)。

本申请实施例的编码器判断单元3022中在训练过程中根据分类器输出结果调整句向量编码模型的权重,训练好的模型中的编码器部分得到可用于语义向量编码的模型。

具体地,如图11所示首先,通过句向量编码模型得到两句话的语义向量u和v;然后对u和v进行拼接、相减和相乘等操作,得到新的特征向量输入全连接层;最后,根据全连接层提取的特征,输出最终的分类结果,本方案中为两类:蕴含和矛盾。

根据本申请实施例,作为本实施例中的优选,如图8所示,所述句向量模型模块30包括:分析单元301,用于将经过预设处理得到词向量依次通过bilstm后得到多个隐藏状态向量;池化单元302,用于对所述隐藏状态向量做池化处理到的句子语义向量。

本申请实施例的分析单元301中通过构建的神经网络中的词法分析网络,能够对预设处理得到词向量分析得到多个隐藏状态向量。

本申请实施例的池化单元302中对隐藏状态向量输入max-pooling层进行池化处理得到句子语义向量。

具体地,可以参考图10所示句向量模型的一种方案是infersent模型,主要结构为bilstm和max-pooling。预处理后的词向量,依次通过bilstm得到若干hiddenstate隐藏状态向量,再对这些向量做max-pooling得到最终的句子语义向量。

需要注意的是,在本申请实施例中将所述词向量输入预设句向量编码模型并输出所述用户请求中的句子的语义向量的方式可以包括多种,在本申请中优选了infersent模型,并不作为本申请中的限定。

显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1