语句获取方法及装置
文献发布时间:2023-06-19 09:44:49
技术领域
本申请涉及数据处理技术领域,尤其涉及一种语句获取方法及装置。
背景技术
随着计算机应用领域的不断扩大,自然语言处理受到了人们的高度重视,比喻是一种常用的修辞手法,是指用跟本体有相似之点的喻体来描写或说明本体,在书写和交谈中使用比喻句,可以体现语言水平的较高层次,一直是自然语言处理的难点之一。随着近年智能化技术的发展,聊天机器人或创作机器人在从“准确性”向“开放性”和“拟人性”进化。一般地,在对话或文本中使用比喻句,能大幅提高用户的好感度,促使用户持续交谈或阅读。
现有的聊天机器人中,通过先收集语料库中的比喻句,该语料库包括聊天日志或评论日志,接着识别所收集的比喻句中的本体词和喻体词,并将本体词和对应的比喻句存储在数据库中,在接收到用户输入的本体词时,可直接使用与该本体词对应的比喻句。
但是,上述生成比喻句的语料库是有限的,从而数据库中存储的比喻句的数量不多,会存在反复使用的情况,用户体验不高。
发明内容
本申请提供一种语句获取方法及装置,可以得到汉语所有常用词汇的可用比喻句,大幅增加比喻句的数量。
第一方面,本申请提供一种语句获取方法,包括:
获取本体词;
根据所述本体词,从数据库中确定与所述本体词对应的至少一个比喻句,所述数据库中包括多个本体词以及与每个本体词对应的至少一个比喻句,所述与每个本体词对应的至少一个比喻句根据至少一个三元组和预设的比喻句模板生成,所述至少一个三元组根据本体词集合、喻体词集合、修饰词集合和三元组的相关性距离确定,所述三元组包括本体词、喻体词和修饰词,所述相关性距离根据本体词与修饰词的第一向量余弦距离、喻体词与修饰词的第二向量余弦距离和所述第一向量余弦距离与所述第二向量余弦距离的差值确定,向量余弦距离根据两个单词的嵌入向量计算得到;
将所述至少一个比喻句发送给终端设备。
可选的,所述方法还包括:
对接收到的语料进行分词处理,得到单词样本集,并根据预设的训练模型,确定与所述单词样本集对应的单词嵌入向量索引,所述单词嵌入向量索引用于存储每个单词的嵌入向量;
根据所述单词嵌入向量索引与所述喻体词集合确定所述喻体词嵌入向量索引,并根据所述单词嵌入向量索引和所述修饰词集合确定所述修饰词嵌入向量索引;
对所述本体词集合中的每个本体词,根据所述喻体词嵌入向量索引和所述修饰词嵌入向量索引确定出M个三元组,所述M为预设正整数;
根据所述M个三元组中每个三元组的相关性距离和预设的比喻句模板生成至少一个比喻句。
可选的,所述根据所述多个三元组中每个三元组的相关性距离和预设的比喻句模板生成至少一个比喻句,包括:
分别计算所述M个三元组中每个三元组的的相关性距离;
从所述M个三元组中确定出所述相关性距离最小的P个三元组,所述P为预设正整数;
根据所述P个三元组和预设的比喻句模板生成所述至少一个比喻句。
可选的,所述根据所述喻体词嵌入向量索引和所述修饰词嵌入向量索引确定出M个三元组,包括:
通过所述修饰词嵌入向量索引确定出与所述本体词的向量余弦距离最小的N个修饰词,所述N为预设正整数;
对所述N个修饰词中的每个修饰词,通过所述喻体词嵌入向量索引确定出与所述修饰词的向量余弦距离最小的Q个喻体词,并通过所述喻体词嵌入向量索引确定出与所述修饰词的向量余弦距离小于或等于第一距离的S个喻体词,所述第一距离为所述本体词与所述修饰词的向量余弦距离;
根据所述Q个喻体词、所述S个喻体词和所述N个修饰词得到所述M个三元组,所述M=Q*N+S*N。
可选的,所述相关性距离通过如下公式计算:
Dist
其中,Dist
可选的,所述根据所述单词嵌入向量索引与所述喻体词集合确定喻体词嵌入向量索引,包括:
从所述单词嵌入向量索引中找出所述喻体词集合中的所有喻体词的单词嵌入向量,根据所有喻体词的单词嵌入向量得到所述喻体词嵌入向量索引;
所述根据所述单词嵌入向量索引和所述修饰词集合确定修饰词嵌入向量索引,包括:
从所述单词嵌入向量索引中找出所述修饰词集合中的所有修饰词的单词嵌入向量,根据所有修饰词的单词嵌入向量得到所述修饰词嵌入向量索引。
可选的,所述方法还包括:
获取本体词语料库、喻体词语料库和修饰词语料库;
分别从所述本体词语料库、喻体词语料库和修饰词语料库中提取出所述本体词集合、所述喻体词集合和所述修饰词集合。
第二方面,本申请提供一种语句获取装置,包括:
获取模块,用于获取本体词;
处理模块,用于根据所述本体词,从数据库中确定与所述本体词对应的至少一个比喻句,所述数据库中包括多个本体词以及与每个本体词对应的至少一个比喻句,所述与每个本体词对应的至少一个比喻句根据至少一个三元组和预设的比喻句模板生成,所述至少一个三元组根据本体词集合、喻体词集合、修饰词集合和三元组的相关性距离确定,所述三元组包括本体词、喻体词和修饰词,所述相关性距离根据本体词与修饰词的第一向量余弦距离、喻体词与修饰词的第二向量余弦距离和所述第一向量余弦距离与所述第二向量余弦距离的差值确定,向量余弦距离根据两个单词的嵌入向量计算得到;
发送模块,用于将所述至少一个比喻句发送给终端设备。
可选的,所述装置还包括:
分词模块,用于对接收到的语料进行分词处理,得到单词样本集,并根据预设的训练模型,确定与所述单词样本集对应的单词嵌入向量索引,所述单词嵌入向量索引用于存储每个单词的嵌入向量;
第一确定模块,用于根据所述单词嵌入向量索引与所述喻体词集合确定所述喻体词嵌入向量索引,并根据所述单词嵌入向量索引和所述修饰词集合确定所述修饰词嵌入向量索引;
第二确定模块,用于对所述本体词集合中的每个本体词,根据所述喻体词嵌入向量索引和所述修饰词嵌入向量索引确定出M个三元组,所述M为预设正整数;
生成模块,用于根据所述M个三元组中每个三元组的相关性距离和预设的比喻句模板生成至少一个比喻句。
可选的,所述生成模块用于:
分别计算所述M个三元组中每个三元组的的相关性距离;
从所述M个三元组中确定出所述相关性距离最小的P个三元组,所述P为预设正整数;
根据所述P个三元组和预设的比喻句模板生成所述至少一个比喻句。
可选的,所述第二确定模块用于:
通过所述修饰词嵌入向量索引确定出与所述本体词的向量余弦距离最小的N个修饰词,所述N为预设正整数;
对所述N个修饰词中的每个修饰词,通过所述喻体词嵌入向量索引确定出与所述修饰词的向量余弦距离最小的Q个喻体词,并通过所述喻体词嵌入向量索引确定出与所述修饰词的向量余弦距离小于或等于第一距离的S个喻体词,所述第一距离为所述本体词与所述修饰词的向量余弦距离;
根据所述Q个喻体词、所述S个喻体词和所述N个修饰词得到所述M个三元组,所述M=Q*N+S*N。
可选的,所述相关性距离通过如下公式计算:
Dist
其中,Dist
可选的,所述第一确定模块用于:
从所述单词嵌入向量索引中找出所述喻体词集合中的所有喻体词的单词嵌入向量,根据所有喻体词的单词嵌入向量得到所述喻体词嵌入向量索引;
从所述单词嵌入向量索引中找出所述修饰词集合中的所有修饰词的单词嵌入向量,根据所有修饰词的单词嵌入向量得到所述修饰词嵌入向量索引。
可选的,所述获取模块还用于:
获取本体词语料库、喻体词语料库和修饰词语料库;
所述处理模块还用于:分别从所述本体词语料库、喻体词语料库和修饰词语料库中提取出所述本体词集合、所述喻体词集合和所述修饰词集合。
本申请提供的语句获取方法及装置,通过获取到本体词后,根据该本体词从数据库中确定与该本体词对应的至少一个比喻句,然后将至少一个比喻句发送给终端设备,由于本实施例中数据库中的本体词为汉语的所有常用词汇,数据库中与每个本体词对应的至少一个比喻句为根据至少一个三元组和预设的比喻句模板生成,至少一个三元组根据本体词集合、喻体词集合、修饰词集合和三元组的相关性距离确定,因此数据库存储的是汉语所有常用词汇的可用比喻句,比喻句的数量大幅增加,避免了反复使用的情况,提高了比喻句的多样性,扩大了应用场景的范围,提高了用户体验。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的一种应用场景示意图;
图2为本申请提供的一种语句获取方法实施例的流程图;
图3为本申请提供的一种语句获取方法实施例的流程图;
图4为接收到语料后训练Word2vec模型的过程示意图;
图5为一种单词嵌入向量索引的示意图;
图6为根据单词嵌入向量索引得到喻体词嵌入向量索引和修饰词嵌入向量索引的过程示意图;
图7为本体词、喻体词和修饰词的相关性示意图;
图8为本申请提供的确定本体词集合中的每个本体词对应的M个三元组的过程示意图;
图9为本申请提供的一种语句获取装置的结构示意图;
图10为本申请提供的一种语句获取装置的结构示意图;
图11为本申请提供的电子设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,下面对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
1、Word2vec,是一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学的词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。训练完成之后,word2vec模型可用来映射每个词到一个向量,向量可用来表示词与词之间的关系,该向量为神经网络的隐藏层。
2、TensorFlow,是一个基于数据流编程(dataflow programming)的符号数学系统,广泛应用于各类机器学习(machine learning)算法的编程实现。
3、单词嵌入向量索引,单词嵌入向量索引存储每一单词的嵌入向量,根据单词样本集使用Tensorflow训练Word2vec模型,多次训练完成后,神经网络的隐藏层参数W即为单词样本集中所有单词的嵌入(Embedding)向量。本申请中单词嵌入向量索引可以使用任一向量存储引擎来实现,例如Faiss或者Milvus。输入任意单词的嵌入向量v以后,单词嵌入向量索引可以在数毫秒内找到与v距离最近的若干单词及其嵌入向量。
4、向量余弦距离,是指两个单词之间的向量余弦距离,单词嵌入向量索引存储每一单词的嵌入向量,两个单词之间的向量余弦距离根据两个单词的嵌入向量计算得到,向量余弦距离计算公式为:
5、三元组,指包括一个本体词、一个喻体词和一个修饰词的组合。
在现有的语句获取方法中,是通过识别收集到的语料库中的比喻句的本体词和喻体词,并将本体词和对应的比喻句存储在数据库中,是根据收集到的已有的比喻句得到数据库中的比喻句,而已有的比喻句是有限的,因此数据库中存储的比喻句的数量不多,在人机交互时,会存在反复使用的情况,用户体验不高。为解决这一问题,本申请提供一种语句获取方法及装置,本申请中数据库中的本体词为汉语的所有常用词汇,数据库中与每个本体词对应的至少一个比喻句根据至少一个三元组和预设的比喻句模板生成,至少一个三元组根据本体词集合、喻体词集合、修饰词集合和三元组的相关性距离确定,因此数据库存储的是汉语所有常用词汇的可用比喻句,比喻句的数量大幅增加,避免了反复使用的情况,提高了比喻句的多样性,扩大了应用场景的范围,提高了用户体验。下面结合附图通过具体实施例,对本申请实施例的语句获取方法的具体实现过程进行详细说明。
本申请提供的语句获取方法及装置可应用于机器生成文本、聊天机器人(如客服机器人)等场景中,以客服机器人为例,图1为本申请的一种应用场景示意图,如图1所示,本申请的应用场景中涉及终端设备和服务器,终端设备例如为手机、个人计算机等电子设备,图1中所示的终端设备的界面为用户与客服机器人的聊天界面,例如,用户在聊天界面输入语句“新月什么样”,服务器根据用户输入的该语句可获取到本体词“新月”,根据该本体词“新月”从数据库中查询是否有该本体词,若有该本体词,则向终端设备发送与该本体词对应的至少一个比喻句,例如发送比喻句:“新月就像镰刀/新月就像鱼钩”,若没有该本体词,则向终端设备发送“无效本体”,终端设备接收到至少一个比喻句,则显示所接收到的比喻句,从而用户可以看到显示的内容,本申请中的数据库存储的是汉语所有常用词汇的可用比喻句,比喻句的数量大幅增加,避免了反复使用的情况,提高了比喻句的多样性,扩大了应用场景的范围,提高了用户体验。
图2为本申请提供的一种语句获取方法实施例的流程图,本实施例的执行主体可以为图1所示的服务器,如图2所示,本实施例的方法可以包括:
S101、获取本体词。
具体地,用户通过终端设备输入语句或直接输入本体词,本体词为名词,通过对用户输入的语句或单词进行分析,从而获取到本体词,例如用户输入生活,生活即为本体词,又例如用户输入语句“新月什么样”,则新月为本体词。
S102、根据本体词,从数据库中确定与本体词对应的至少一个比喻句,数据库中包括多个本体词以及与每个本体词对应的至少一个比喻句,与每个本体词对应的至少一个比喻句根据至少一个三元组和预设的比喻句模板生成,至少一个三元组根据本体词集合、喻体词集合、修饰词集合和三元组的相关性距离确定,三元组包括本体词、喻体词和修饰词,相关性距离根据本体词与修饰词的第一向量余弦距离、喻体词与修饰词的第二向量余弦距离和第一向量余弦距离与第二向量余弦距离的差值确定。
具体地,数据库中包括多个本体词,每个本体词对应至少一个比喻句,服务器根据S101获取的本体词,在数据库中查找是否有该本体词,若有该本体词,则向终端设备发送与该本体词对应的至少一个比喻句,例如发送比喻句:“新月就像镰刀/新月就像鱼钩”,若没有该本体词,则向终端设备发送发送“无效本体”,终端设备根据接收到的内容进行显示,从而实现与用户的互动。本实施例中与每个本体词对应的至少一个比喻句可以是服务器或比喻句生成装置根据本体词集合、喻体词集合、修饰词集合和三元组的相关性距离确定出多个三元组后,根据多个三元组和预设的比喻句模板生成的。其中,该多个三元组的个数可以是根据服务器的运算能力和实际需求预设的,对于每个三元组而言,三元组包括本体词、喻体词和修饰词,三元组的相关性距离根据本体词与修饰词的第一向量余弦距离、喻体词与修饰词的第二向量余弦距离和第一向量余弦距离与第二向量余弦距离的差值确定,三元组的相关性距离用于表征三元组可以用作比喻句的可能性,三元组的相关性距离越小,则三元组可以用作比喻句的可能性越大。
需要说明的是,与每个本体词对应的至少一个比喻句可以是服务器生成的,也可以是其它比喻句生成装置生成的,若是服务器生成的,则服务器在生成后将多个本体词以及与每个本体词对应的至少一个比喻句存储在数据库中;若是其它比喻句生成装置生成的,则服务器将其它比喻句生成装置生成的多个本体词以及与每个本体词对应的至少一个比喻句存储在数据库中。
其中,本体词集合、喻体词集合和修饰词集合是三个不同的单词集合,本体词和喻体词都是名词,修饰词为动词和形容词,在一种可实施的方式中,本体词集合、喻体词集合和修饰词集合可以是预先存储的,比喻句的本体词一般是较难理解的抽象事物,如“生活”、“爱情”等,而喻体词一般是常见的形象事物,例如“蜂蜜”、“海市蜃楼”,因此本实施例中,本体词集合中的本体词可以是现代诗集、现代散文集和文学杂志集中的单词,喻体词集合中的喻体词可以是聊天日志或评论日志中的单词,修饰词集合中的修饰词可以是形容词字典、动词字典或名词字典中的单词。在另一种可实施的方式中,本体词集合、喻体词集合和修饰词集合可以是在线获取的,此时本实施例的方法在S101之前,还可以包括:获取本体词语料库、喻体词语料库和修饰词语料库,分别从本体词语料库、喻体词语料库和修饰词语料库中提取出本体词集合、喻体词集合和修饰词集合,例如,本体词语料库可以是现代诗集、现代散文集和文学杂志集,通过分词系统对本体词语料库中的所有语料进行分词处理,得到本体词集合;喻体词语料库可以是聊天日志或评论日志,通过分词系统对喻体词语料库中的所有语料进行分词处理,得到喻体词集合;修饰词语料库可以是形容词字典、动词字典或名词字典,字典中的单词可以直接作为修饰词,得到修饰词集合。
其中,两个单词之间的向量余弦距离根据两个单词的嵌入向量计算得到,本实施例中,每个单词的嵌入向量可以是根据单词样本集使用Tensorflow训练Word2vec模型,多次训练完成后,神经网络的隐藏层参数W即为单词样本集中所有单词的嵌入(Embedding)向量。本申请中单词嵌入向量索引可以使用任一向量存储引擎来实现,例如Faiss或者Milvus。输入任意单词的嵌入向量ν以后,单词嵌入向量索引可以在数毫秒内找到与v距离最近的若干单词及其嵌入向量。
S103、将至少一个比喻句发送给终端设备。
具体地,终端设备接收到至少一个比喻句后,根据接收到的内容进行显示,从而实现与用户的互动。
本实施例提供的语句获取方法,通过获取到本体词后,根据该本体词从数据库中确定与该本体词对应的至少一个比喻句,然后将至少一个比喻句发送给终端设备,由于本实施例中数据库中的本体词为汉语的所有常用词汇,数据库中与每个本体词对应的至少一个比喻句根据至少一个三元组和预设的比喻句模板生成,至少一个三元组根据本体词集合、喻体词集合、修饰词集合和三元组的相关性距离确定,因此数据库存储的是汉语所有常用词汇的可用比喻句,比喻句的数量大幅增加,避免了反复使用的情况,提高了比喻句的多样性,扩大了应用场景的范围,提高了用户体验。
图1所示实施例中数据库中存储的多个本体词以及与每个本体词对应的至少一个比喻句可以是预先生成后存储,后期还可以按照上述生成方法进行更新,还可以在线生成,生成后直接存储在数据库中,则在S101之前,还可以包括与每个本体词对应的至少一个比喻句的生成过程,下面结合图2详细说明与每个本体词对应的至少一个比喻句的生成过程。
图3为本申请提供的一种语句获取方法实施例的流程图,本实施例的执行主体可以为图1所示的服务器,如图3所示,本实施例的方法可以包括:
S201、对接收到的语料进行分词处理,得到单词样本集,并根据预设的训练模型,确定与单词样本集对应的单词嵌入向量索引,单词嵌入向量索引用于存储每个单词的嵌入向量。
其中,接收到的语料可以是商品评论、聊天日志和用户创作文档,可以理解的是,接收到的语料包括多个语句,具体可以通过分词系统对每个语句进行分词处理,得到单词样本集,单词样本集中为分词后得到的多个单词,例如一条语句为“今天天气晴朗”,分词处理后得到“今天”、“天气”和“晴朗”,单词样本集中的单词是按照语句的自然顺序存储的。接着,根据预设的训练模型确定与单词样本集对应的单词嵌入向量索引,其中预设的训练模型可以是Word2vec模型,为Word2vec模型时,具体是根据单词样本集使用Tensorflow训练Word2vec模型,图4为接收到语料后训练Word2vec模型的过程示意图,如图4所示,对单词样本集训练Word2vec模型,多次训练完成后,得到神经网络的输入层、隐藏层和输出层,神经网络的隐藏层参数W(大小为D×300,D为单词样本集中的单词总数),即为单词样本集中所有单词的嵌入(Embedding)向量。本实施例中例如可以设置隐藏层宽度为300(也为训练得到单词嵌入向量的长度),选词窗口宽度例如可以设为8,D为样本集不同的单词总数,一般可以为数万至数十万之间。得到单词样本集中所有单词的嵌入向量后,将所有单词的嵌入向量存储在向量存储引擎中,即可得到单词嵌入向量索引,本申请中单词嵌入向量索引可以使用任一向量存储引擎来实现,例如Faiss或者Milvus,其中,Faiss是为稠密向量提供高效相似度搜索和聚类的框架,Milvus是一款开源的、针对海量特征向量的相似性搜索引擎。图5为一种单词嵌入向量索引的示意图,如图5所示,单词嵌入向量索引中存储每一单词和单词的嵌入向量,例如单词生活对应的嵌入向量为“0.23576 0.81324 0.33255 -0.27385……”。
S202、根据单词嵌入向量索引与喻体词集合确定喻体词嵌入向量索引,并根据单词嵌入向量索引和修饰词集合确定修饰词嵌入向量索引。
具体地,作为一种可实施的方式,图6为根据单词嵌入向量索引得到喻体词嵌入向量索引和修饰词嵌入向量索引的过程示意图,根据S201得到单词嵌入向量索引后,可以将喻体词集合与单词嵌入向量索引求交集,得到喻体词嵌入向量索引;可以将修饰词集合与单词嵌入向量索引求交集,得到修饰词嵌入向量索引。
S203、对本体词集合中的每个本体词,根据喻体词嵌入向量索引和修饰词嵌入向量索引确定出M个三元组,M为预设正整数。
具体地,根据喻体词嵌入向量索引和修饰词嵌入向量索引确定出M个三元组,即就是确定出可以构成比喻句的M个三元组,一般来说,本体词和喻体词的相关性并不强(例如“生活”和“蜜”),但是它们一定具备共性(“甜”),这个共性可以用修饰词来表达。图7为本体词、喻体词和修饰词的相关性示意图,如图7所示,本体词为“生活”,可以通过喻体词嵌入向量索引找到与本体词“生活”的向量余弦距离最小的四个喻体词,例如为“红色”、“甜”、“勇敢”、“痛苦”,每两个词之间的数字为向量余弦距离(如生活与红色之间的向量余弦距离为0.816),接着可以通过修饰词嵌入向量索引确定与所确定出的每个喻体词的向量余弦距离最小的修饰词,例如确定出三个修饰词“密”、“鲜血”和“地狱”。通过本体词与这些喻体词和修饰词的组合可以得到多个三元组。
作为一种可实施的方式,S203具体可以为:
S2031、通过修饰词嵌入向量索引确定出与本体词的向量余弦距离最小的N个修饰词,N为预设正整数。
S2032、对N个修饰词中的每个修饰词,通过喻体词嵌入向量索引确定出与修饰词的向量余弦距离最小的Q个喻体词,并通过喻体词嵌入向量索引确定出与修饰词的向量余弦距离小于或等于第一距离的S个喻体词,第一距离为本体词与修饰词的向量余弦距离。
S2033、根据Q个喻体词、S个喻体词和N个修饰词得到M个三元组,M=Q*N+S*N。
S204、根据M个三元组中每个三元组的相关性距离和预设的比喻句模板生成至少一个比喻句。
具体地,S204具体可以包括:
S2041、分别计算M个三元组中每个三元组的相关性距离。
其中,以本体词α、喻体词β和修饰词γ为例,相关性距离可以通过如下公式计算:
Dist
其中,Dist
S2042、然后从M个三元组中确定出相关性距离最小的P个三元组,P为预设正整数。
S2043、根据P个三元组和预设的比喻句模板生成至少一个比喻句。
具体地,预设的比喻句模板可以是一个或多个,如下表一为三个比喻句模板和对应比喻句的示例:
具体地,根据P个三元组,将每个三元组的本体词、喻体词和修饰词代替模板中对应的通配符【】即可生成一个完整的比喻句。例如三元组(“生活”、“蜜”、“甜”)代入模板“【本体】就像【喻体】一样【形容词修饰词】”,生成比喻句“生活就像蜜一样甜”。
本实施例提供的语句获取方法,通过对接收到的语料进行分词处理得到单词样本集,并根据预设的训练模型确定与单词样本集对应的单词嵌入向量索引,然后根据单词嵌入向量索引与喻体词集合和修饰词集合分别确定喻体词嵌入向量索引和修饰词嵌入向量索引,接着对本体词集合中的每个本体词,根据喻体词嵌入向量索引和修饰词嵌入向量索引确定出M个三元组,最后根据M个三元组中每个三元组的相关性距离和预设的比喻句模板生成至少一个比喻句,从而可根据接收到的语料生成汉语所有常用词汇的可用比喻句,可以智能地发现任意词的潜在比喻关系,还可以发现许多人类想象不到的比喻句,拓展文本形象化的边界,其泛化能力强,生成的比喻句通顺性也可以近似于与人类手写的比喻句,适合用在机器生成文本、聊天机器人等场景时,可以提升用户体验。
图8为本申请提供的确定本体词集合中的每个本体词对应的M个三元组的过程示意图,本实施例中以N为100、Q为10以及S为10为例,则相应地M=Q*N+S*N=10*100+10*100=2000,如图8所示,确定M个三元组的过程可以包括:
S301、判断本体词集合中是否还有未取词。
若是,则执行S302,若否,则终止。
S302、从本体词集合中取一个本体词,设为W。
S303、通过修饰词嵌入向量索引确定出与本体词的向量余弦距离最小的100个修饰词。
S304、对100个修饰词中的每个修饰词,通过喻体词嵌入向量索引确定出与修饰词的向量余弦距离最小的10个喻体词。
S305、通过喻体词嵌入向量索引确定出与修饰词的向量余弦距离小于或等于第一距离的10个喻体词,第一距离为本体词W与修饰词的向量余弦距离。
S306、根据本体词W、10个喻体词、10个喻体词和100个修饰词得到2000个三元组。
图9为本申请提供的一种语句获取装置的结构示意图,如图9所示,本实施例的装置可以包括:获取模块11、处理模块12和发送模块13,其中,
获取模块11用于获取本体词;
处理模块12用于根据本体词,从数据库中确定与本体词对应的至少一个比喻句,数据库中包括多个本体词以及与每个本体词对应的至少一个比喻句,与每个本体词对应的至少一个比喻句根据至少一个三元组和预设的比喻句模板生成,至少一个三元组根据本体词集合、喻体词集合、修饰词集合和三元组的相关性距离确定,三元组包括本体词、喻体词和修饰词,相关性距离根据本体词与修饰词的第一向量余弦距离、喻体词与修饰词的第二向量余弦距离和第一向量余弦距离与第二向量余弦距离的差值确定,向量余弦距离根据两个单词的嵌入向量计算得到;
发送模块13用于将至少一个比喻句发送给终端设备。
本申请实施例提供的装置,可执行上述图2所示方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图10为本申请提供的一种语句获取装置的结构示意图,如图10所示,本实施例的装置在图9所示装置的基础上,进一步地,还可以包括:分词模块14、第一确定模块15、第二确定模块16和生成模块17,其中,
分词模块14用于对接收到的语料进行分词处理,得到单词样本集,并根据预设的训练模型,确定与单词样本集对应的单词嵌入向量索引,单词嵌入向量索引用于存储每个单词的嵌入向量;
第一确定模块15用于根据单词嵌入向量索引与喻体词集合确定喻体词嵌入向量索引,并根据单词嵌入向量索引和修饰词集合确定修饰词嵌入向量索引;
第二确定模块16用于对本体词集合中的每个本体词,根据喻体词嵌入向量索引和修饰词嵌入向量索引确定出M个三元组,M为预设正整数;
生成模块17用于根据M个三元组中每个三元组的相关性距离和预设的比喻句模板生成至少一个比喻句。
进一步地,生成模块17用于:
分别计算M个三元组中每个三元组的的相关性距离;
从M个三元组中确定出相关性距离最小的P个三元组,P为预设正整数;
根据P个三元组和预设的比喻句模板生成至少一个比喻句。
进一步地,第二确定模块16用于:
通过修饰词嵌入向量索引确定出与本体词的向量余弦距离最小的N个修饰词,N为预设正整数,对N个修饰词中的每个修饰词,通过喻体词嵌入向量索引确定出与修饰词的向量余弦距离最小的Q个喻体词,并通过喻体词嵌入向量索引确定出与修饰词的向量余弦距离小于或等于第一距离的S个喻体词,第一距离为本体词与修饰词的向量余弦距离,根据Q个喻体词、S个喻体词和N个修饰词得到M个三元组,M=Q*N+S*N。
可选的,相关性距离通过如下公式计算:
Dist
其中,Dist
进一步地,第一确定模块15用于:
从单词嵌入向量索引中找出喻体词集合中的所有喻体词的单词嵌入向量,根据所有喻体词的单词嵌入向量得到喻体词嵌入向量索引;
从单词嵌入向量索引中找出修饰词集合中的所有修饰词的单词嵌入向量,根据所有修饰词的单词嵌入向量得到修饰词嵌入向量索引。
进一步地,获取模块11还用于:
获取本体词语料库、喻体词语料库和修饰词语料库;
处理模块还用于:分别从本体词语料库、喻体词语料库和修饰词语料库中提取出本体词集合、喻体词集合和修饰词集合。
本申请实施例提供的装置,可执行上述图3所示方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图11为本申请提供的电子设备的硬件结构示意图。如图11所示,本实施例的电子设备20可以包括:存储器21和处理器22;
存储器21,用于存储计算机程序;
处理器22,用于执行存储器存储的计算机程序,以实现上述实施例中的打印方法。具体可以参见前述方法实施例中的相关描述。
可选地,存储器21既可以是独立的,也可以跟处理器22集成在一起。
当存储器21是独立于处理器22之外的器件时,电子设备20还可以包括:
总线23,用于连接存储器21和处理器22。
可选地,本实施例还包括:通信接口24,该通信接口24可以通过总线23与处理器22连接。处理器22可以控制通信接口23来实现电子设备20的上述的接收和发送的功能。
本实施例提供的电子设备可用于执行上述的方法,其实现方式和技术效果类似,本实施例此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述计算机可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
- SQL语句的验证方法、数据获取方法、设备及存储装置
- 相同意图语句的获取方法及装置