文本自动化生成方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 10:00:31
技术领域
本发明涉及人工智能技术领域,尤其涉及一种文本自动化生成方法、装置、电子设备及存储介质。
背景技术
目前,基于人工智能(Artificial Intelligence,AI)实现的文本生成是自然语言处理领域的一项具有挑战性的任务,其目的是让计算机能够像人一样写出高质量的文章。这就要求采用的模型拥有更强大的理解、生成文本的能力。传统的文本生成方法有两种,一种是基于规则和模板的生成方法,一种是基于抽取的生成方法,这两种方法生成的文本格式都比较固定,不能生成内容丰富、风格多样的文本。
发明内容
本发明实施例提供一种文本自动化生成方法、装置、电子设备及存储介质,用以解决现有技术中存在的缺陷。
本发明实施例提供一种文本自动化生成方法,包括:
分别获取待生成文本的关键词以及估算语句数量;
基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;
基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。
根据本发明一个实施例的文本自动化生成方法,所述基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词,具体包括:
若判断获知所述关键词以及所述估算语句数量满足第一条件,则确定所述段落数量为默认数量,并基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表;
对所有关键词对应的相关词语列表进行汇总,确定主题词语列表;
基于所述估算语句数量,确定词语保留数量,并基于所述主题词语列表中所述词语保留数量的词语,确定所述段落主题词。
根据本发明一个实施例的文本自动化生成方法,所述基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词,具体包括:
若判断获知所述关键词以及所述估算语句数量满足第二条件,则确定所述段落数量为默认数量,并基于所述词语关联图谱,确定与每个关键词具有相关关系的词语数量;
若任一所述关键词对应的所述词语数量小于等于第一预设阈值,则基于所述词语关联图谱,确定所述任一关键词具有相似关系的相似词语,并基于所述词语关联图谱,确定每个相似词语的相关词语列表;
对所有相关词语列表进行汇总,确定主题词语列表;
若判断获知所述主题词语列表中的词语数量大于等于第二预设阈值,则基于所述主题词语列表中的词语,确定所述段落主题词。
根据本发明一个实施例的文本自动化生成方法,所述基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词,具体包括:
若判断获知所述关键词以及所述估算语句数量满足第三条件,则基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表;
对所有关键词对应的相关词语列表进行汇总,确定主题词语列表;
基于所述估算语句数量,确定词语保留数量,并基于所述主题词语列表中所述词语保留数量的词语,确定所述段落主题词;
对所述段落主题词进行聚类,并基于聚类的结果确定所述段落数量。
根据本发明一个实施例的文本自动化生成方法,所述基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词,具体包括:
若判断获知所述关键词以及所述估算语句数量满足第四条件,则基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表;
对所有关键词对应的相关词语列表进行汇总,确定主题词语列表;
若判断获知所述主题词语列表中的词语数量大于等于第二预设阈值,则基于所述主题词语列表中的词语,确定所述段落主题词;
对所述段落主题词进行聚类,并基于聚类的结果确定所述段落数量。
根据本发明一个实施例的文本自动化生成方法,所述词语关联图谱具体通过如下方法构建:
获取语料库中每个样本词语的语义向量,并计算任意两个样本词语的语义向量之间的相似度,所述相似度用于表征所述任意两个样本词语的相似关系;
对所述语料库中所述任意两个样本词语进行依存分析,确定所述任意两个样本词语的依赖关系,所述依赖关系用于表征所述任意两个样本词语的相关关系;
基于所述任意两个样本词语的相似关系以及所述任意两个样本词语的相关关系,构建所述词语关联图谱。
根据本发明一个实施例的文本自动化生成方法,所述估算语句数量具体通过如下方法获取:
确定所述待生成文本的目标字数;
基于所述目标字数,确定所述估算语句数量。
本发明实施例还提供一种文本自动化生成装置,包括:获取模块、确定模块以及文本生成模块。其中,
获取模块,用于分别获取待生成文本的关键词以及估算语句数量;
确定模块,用于基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;
文本生成模块,用于基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述文本自动化生成方法的步骤。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述文本自动化生成方法的步骤。
本发明实施例提供的文本自动化生成方法、装置、电子设备及存储介质,首先分别获取待生成文本的关键词以及估算语句数量;然后基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;最后基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。这是通过Transformer模型实现的一种新型的文本生成方法,引入了段落主题词的筛选确定,可以实现对生成文本主题的扩展与约束,使得生成的文本具有核心思想;同时利用Transformer模型,可以使生成的文本不再像传统方法生成的文本那样内容单一、格式固定,可以广泛应用于报告生成、文学创作、智能问答等多方面领域。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种文本自动化生成方法的流程示意图;
图2是本发明实施例提供的一种文本自动化生成方法中确定待生成文本的段落数量以及段落主题词的流程示意图;
图3是本发明实施例提供的一种文本自动化生成方法的完整流程示意图;
图4是本发明实施例提供的一种文本自动化生成装置的结构示意图;
图5是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于传统的文本生成方法生成的文本格式都比较固定,不能生成内容丰富、风格多样的文本。为此,本发明实施例中提供了一种文本自动化生成方法,以解决现有技术中存在的问题。
图1为本发明实施例中提供的一种文本自动化生成方法的流程示意图,如图1所示,所述方法包括:
S1,分别获取待生成文本的关键词以及估算语句数量;
S2,基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;
S3,基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。
具体地,本发明实施例中提供的文本自动化生成方法,其执行主体为服务器,既可以是本地服务器也可以是云端服务器,本地服务器可以是计算机等,本发明实施例中对此不作具体限定。
首先执行步骤S1。其中,需要获取待生成文本的关键词以及估算语句数量,关键词是指用于生成待生成文本所需要的关键词,关键词可以由用户输入信息中的关键词相关信息确定,关键词相关信息可以包括单个关键词、多个关键词或者包含有一个语句或多个语句的一段文本等。当关键词相关信息为单个关键词或多个关键词时,输入的关键词即为待生成文本的关键词;当关键词相关信息为一段文本时,可以首先从用户输入的一段文本中提取出比较重要的词语,词语的提取既可以通过提取算法实现,也可以通过句法分析算法实现。其中,提取算法可以包括tf-idf算法和textrank算法等。本发明实施例中,为了保证最后文本生成的效果,可以通过传递参数的方式控制使用哪种方法进行提取。例如,用户输入信息中还可以包括提取参数,该提取参数的不同取值表示用户选择使用的不同提取方法。然后,将提取出的词语进行去停用词处理,即去除其中停止使用的词语,得到待生成文本的关键词。
估算语句数量是指估算得到的待生成文本中可能存在的语句数量,估算语句数量也可以由用户输入信息确定。此处,用户输入信息中还可以包括待生成文本的目标字数,本发明实施例中对训练预料进行句长统计,并取平均值,可以得到句长均值在包含33到34个字之间,因此默认句长为包含33个字,则可以通过目标字数与默认句长的比值,确定出估算语句数量。需要说明的是,本发明实施例中的默认句长并非表示生成的文本中每个语句都包含33个字,而且估算语句数量也只是一个前期的估算值。特别地,如果用户输入的目标字数小于33,则默认估算语句数量为1。
然后执行步骤S2,根据关键词、估算语句数量以及预先构建的词语关联图谱,确定待生成文本的段落数量以及段落主题词。由于关键词数量以及估算语句数量不同,可以采用不同的处理模式确定出待生成文本的段落数量以及段落主题词。因此本发明实施例中可以先根据关键词数量以及估算语句数量符合的条件,确定出对应的处理模式,然后根据该处理模式,结合预先构建的词语关联图谱,即可确定出待生成文本的段落数量以及段落主题词。其中,词语关联图谱是基于训练预料预先构建的,用于表征词语之间的关联关系。词语之间的关联关系可以包括相似关系和相关关系,相似关系用于表征两个词语之间的相似性,可以通过两个词语之间的相似度确定,相关关系用于表征两个词语之间的依赖关系,可以通过对两个词语所在的语句进行依存分析确定,本发明实施例中对此不作具体限定。
最后执行步骤S3,根据Transfromer模型、待生成文本的段落数量以及段落主题词,生成待生成文本。其中,Transfromer模型用于结合待生成文本的段落数量以及段落主题词,通过每一段落中的前面语句确定出后一语句。Transfromer模型可以包含四项输入:
第一项输入:前一语句的语义向量,如果前面没有语句,这一项输入的语义向量为对应维度的0向量。
第二项输入:随机抽取的段落主题词的词向量。
第三项输入:所有关键词的词向量的总和。
第四项输入:结束句判断向量。例如,如果是结束句,就是对应维度的数字8常数向量,如果不是,就是对应维度的数字1常数向量。
所有的输入项向量都是在最后一个维度进行拼接到一起的。然后送入到Transfromer模型之中。Transfromer模型基于前文的语义,输出的是基于文章的当前语句。在输出当前语句的同时输出当前句话的语义向量。
假设前一语句的语义向量用A表示,当前语句的语义向量用B表示,则Transfromer模型的下一次输入的语义向量A’=A*0.1+B*0.9。
文本的字数会在每一次Transfromer模型运行后进行统计,如果字数接近当前段落目标字数,就会改变输入第四项,进行段落结束语输出。
需要说明的是,本发明实施例中对于单词、语句,在使用过程中都会转成文本向量的形式。转换方式有很多种,作为优选方案,可以通过bert预训练模型进行文本语义向量转换。本发明实施例中的文本自动化生成方法,可以基于Python进行开发实现。
本发明实施例中提供的文本自动化生成方法,首先分别获取待生成文本的关键词以及估算语句数量;然后基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;最后基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。这是通过Transformer模型实现的一种新型的文本生成方法,引入了段落主题词的筛选确定,可以实现对生成文本主题的扩展与约束,使得生成的文本具有核心思想;同时利用Transformer模型,可以使生成的文本不再像传统方法生成的文本那样内容单一、格式固定,可以广泛应用于报告生成、文学创作、智能问答等多方面领域。
在上述实施例的基础上,若用户输入信息中并不包含关键词相关信息,则可以随机从热门词库中抽选词语作为待生成文本的关键词。热门词库可以通过日常收集热门词语得到,可以进行定期更新维护。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成方法,所述估算语句数量具体通过如下方法获取:
确定所述待生成文本的目标字数;
基于所述目标字数,确定所述估算语句数量。
具体地,在确定估算语句数量时,可以先确定待生成文本的目标字数,该目标字数可以由用户输入,即用户输入信息中可以包含有目标字数。然后根据目标字数,即可确定出估算语句数量,具体可以将目标字数与默认句长的比值作为估算语句数量。
本发明实施例中在确定估算语句数量时,引入目标字数,可以使生成的文本也不再是随机字数,而是能根据用户的需求,生成用户想要的字数的文本。
在上述实施例的基础上,若用户输入信息中并不包含目标字数,则可以随机从500到5000选取一个数字作为目标字数。需要说明的是,生成文本的真实字数和目标字数并不一定完全相等,当目标字数小于500时,生成文本的真实字数可能会有上下50个字的偏差;当目标字数大于500时,生成文本的真实字数可能会有50个字到200个字的偏差,这均在可控范围内。同时,如果目标字数过小,例如小于33个字,则只生成一个语句,该语句的生成完全基于步骤S1中待生成文本的关键词的语义。
如图2所示,为本发明实施例中当关键词以及估算语句数量满足不同条件时选择不同处理模式的流程示意图,具体结合以下实施例进行说明。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成方法,所述基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词,具体包括:
若判断获知所述关键词以及所述估算语句数量满足第一条件,则确定所述段落数量为默认数量,并基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表;
对所有关键词对应的相关词语列表进行汇总,确定主题词语列表;
基于所述估算语句数量,确定词语保留数量,并基于所述主题词语列表中所述词语保留数量的词语,确定所述段落主题词。
具体地,本发明实施例中,当估算语句数量小于15时,这时目标字数大约是500字左右。对于这样的文本,如果关键词足够多(可以默认大于等于2),那么关键词数量足够筛选出段落主题词,这时可以进行第一种处理模式来确定最终的段落数量和段落主题词。当没有足够多的关键词时,如果要生成的语句数量过少(可以默认少于等于8个),那么也认为是可以筛选出段落主题词的,因此也进行第一种处理模式。也就是说,第一条件可以是关键词数量大于等于第一阈值且估算语句数量小于第二阈值,或者关键词数量小于第一阈值且估算语句数量小于第三阈值。第一阈值、第二阈值以及第三阈值可以根据需要进行设定,且第三阈值小于第二阈值,例如第一阈值可以为2,第二阈值可以为15,第三阈值可以为8。第一条件与第一种处理模式相对应,即如果关键词以及估算语句数量满足第一条件,则通过第一种处理模式确定出待生成文本的段落数量以及段落主题词。如图2所示。
第一种处理模式具体为:首先确定段落数量为默认数量,默认数量可以根据需要以及第一条件的具体内容进行设定,例如可以设定为1。然后根据词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表,假设关键词数量为n,则分别将n个关键词输入到词语关联图谱中,查询时通过关系筛选,得到只和输入的关键词具有相关关系的词语。可以将每个关键词查询到的结果都分别存储到一个列表中,则会得到n个查询结果列表,查询结果列表即为与每个关键词具有相关关系的词语构成的相关词语列表。可以新建一个空的主题字典,对上述n个查询结果列表进行汇总、去重后存储到主题字典中,主题字典的键是去重后的单个词语,字典的值统一默认是0。然后统计主题字典中的每个词出现在n个列表中的次数,出现一次,主题字典中对应词的值加1。最后,可以对主题字典进行一次按照值的大小从大到小的排序。由于在python中字典是无序的,所以排序后,存储格式又可以转为列表形式,即得到主题词语列表。例如:[(词语1,7),(词语2,7),(词语3,5),(词语4,2)]。主题词语列表中是元组的格式,每个元组包括两个值,词语本身和词语出现的次数。
然后根据估算语句数量,确定词语保留数量。具体可以对估算语句数量乘以0.6得到的值进行向上取整,得到词语保留数量。对主题词语列表按照词语保留数量进行截取,截取出来的词语即为段落主题词。在此基础上,可以将段落主题词都添加到一个新的列表里面中,这个新的列表就是段落主题词列表。因为只有这一个段落,所以段落主题词列表也只有一个。
本发明实施例中提供了一种确定待生成文本的段落数量以及段落主题词的方法,即通过第一种处理模式实现,可以使得在没有套用模板的情况下,生成文本能够智能划分段落。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成方法,所述基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词,具体包括:
若判断获知所述关键词以及所述估算语句数量满足第二条件,则确定所述段落数量为默认数量,并基于所述词语关联图谱,确定与每个关键词具有相关关系的词语数量;
若任一所述关键词对应的所述词语数量小于等于第一预设阈值,则基于所述词语关联图谱,确定所述任一关键词具有相似关系的相似词语,并基于所述词语关联图谱,确定每个相似词语的相关词语列表;
对所有相关词语列表进行汇总,确定主题词语列表;
若判断获知所述主题词语列表中的词语数量大于等于第二预设阈值,则基于所述主题词语列表中的词语,确定所述段落主题词。
具体地,本发明实施例中,当估算语句数量大于等于8且小于15时,如果没有足够多的关键词(这里默认小于2个即只有1个关键词),将进行第二种处理模式来确定最终的段落数量和段落主题词。此时未采用第一种处理模式的根本原因是因为关键词数量过少,可能会造成获得的段落主题词数量过少,限制文章主题的自由度。也就是说,第二条件可以是关键词数量小于第一阈值,估算语句数量小于第二阈值且大于等于第三阈值。第二条件与第二种处理模式相对应,即如果关键词以及估算语句数量满足第二条件,则通过第二种处理模式确定出待生成文本的段落数量以及段落主题词。如图2所示。
第二种处理模式具体为:首先确定段落数量为默认数量,默认数量可以根据需要以及第二条件的具体内容进行设定,例如可以设定为1。然后这一个关键词输入词语关联图谱中,进行相关关系查询,确定出与该关键词具有相关关系的词语数量。
若该关键词对应的词语数量小于等于第一预设阈值,则需要对关键词进行扩展,进而将这个关键词输入到词语关联图谱中,进行相似关系查询,确定该关键词具有相似关系的相似词语,通过相似词语对关键词进行扩展。其中,第一预设阈值可以是估算语句数量的0.6倍。默认筛选的相似度值为0.98,如果查询不到相似词语,这个相似度阈值会不断的减0.01,直到能够获取到和查询到相似词语。假如找到k个相似词语,对这k个词语分别进行相关词语查询,就获取到k个相关词语列表,这k个相关词语列表中所有的词统一到一起,去重后放入到一个新的列表中,这个新的列表即为主题词语列表。若主题词语列表中的词语数量大于等于第二预设阈值,则可以直接将主题词语列表中的词语作为确定段落主题词,即该主题词语列表为段落主题词列表。其中,第二预设阈值可以是估算语句数量的0.6倍。如果主题词语列表中的词语数量小于第二预设阈值,则继续对相似度阈值减0.01,重新获取到新的相似词语,重复上面的计算操作,直到主题词语列表中的词语数量大于等于第二预设阈值。
若该关键词对应的词语数量大于第一预设阈值,则不需要对关键词进行扩展,此时等价于第一种处理模式。
本发明实施例中提供了一种确定待生成文本的段落数量以及段落主题词的方法,即通过第二种处理模式实现,可以使得在没有套用模板的情况下,生成文本能够智能划分段落。而且,第二种处理模式适用于关键词数量过少的情况,可以保证获得的段落主题词数量适中,提高文章主题的自由度。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成方法,所述基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词,具体包括:
若判断获知所述关键词以及所述估算语句数量满足第三条件,则基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表;
对所有关键词对应的相关词语列表进行汇总,确定主题词语列表;
基于所述估算语句数量,确定词语保留数量,并基于所述主题词语列表中所述词语保留数量的词语,确定所述段落主题词;
对所述段落主题词进行聚类,并基于聚类的结果确定所述段落数量。
具体地,本发明实施例中,当估算语句数量大于等于15时,会对估算语句数量和关键词数量进行对比,如果估算语句数量小于等于1.5倍的关键词数量,则通过第三种处理方式来确定段落数量和段落主题词。也就是说,第三条件可以是估算语句数量大于等于第二阈值,且估算语句数量小于等于预设倍数的关键词数量。第三条件与第三种处理模式相对应,即如果关键词以及估算语句数量满足第三条件,则通过第三种处理模式确定出待生成文本的段落数量以及段落主题词。如图2所示。
第三种处理模式具体为:类似于第一种处理模式。直接对每个关键词在词语关联图谱中查询,假如关键词数量是k个,那么将获取到k个相关词语列表。直接对这k个相关词语列表里面的词语进行汇总去重后,就获得了主题词语列表。然后对估算语句数量乘以0.6,用得到的数值去截取主题词语列表。最后截取到的词语列表就是段落主题词列表,其中包含的词语即为段落主题词。
对段落主题词列表里面的词语进行聚类,通过聚类的结果即可确定段落数量。段落数量的确定如公式所示:
段落数量=max(3,聚类数量)
由于单独一个主题词无法作为一个类别,它会被归属到最近的类别之中。段落数量确定好后,每一类别的词语分别对应一个段落,这样段落与段落主题词列表就一一对应了。
本发明实施例中提供了一种确定待生成文本的段落数量以及段落主题词的方法,即通过第三种处理模式实现,可以使得在没有套用模板的情况下,生成文本能够智能划分段落。而且,第三种处理模式适用于估算语句数量较大的情况,可以保证计算结果的准确性。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成方法,所述基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词,具体包括:
若判断获知所述关键词以及所述估算语句数量满足第四条件,则基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的列表;
对所有关键词对应的列表进行汇总,确定主题词语列表;
若判断获知所述主题词语列表中的词语数量大于等于第二预设阈值,则基于所述主题词语列表中的词语,确定所述段落主题词;
对所述段落主题词进行聚类,并基于聚类的结果确定所述段落数量。
具体地,本发明实施例中,当估算语句数量大于等于15时,会对估算语句数量和关键词数量进行对比,如果估算语句数量大于1.5倍的关键词数量,则通过第四种处理方式来确定段落数量和段落主题词。也就是说,第四条件可以是估算语句数量大于等于第二阈值,且估算语句数量大于预设倍数的关键词数量。第四条件与第四种处理模式相对应,即如果关键词以及估算语句数量满足第四条件,则通过第四种处理模式确定出待生成文本的段落数量以及段落主题词。如图2所示。
第四种处理模式具体为:段落主题词的确定类似于第二种处理模式,段落数量的确定类似于第三种处理模式。首先对所有的关键词分别搜索相关词语,得到分别对应的相关词语列表,并将所有相关词语列表中的词语进行汇总去重后放入到一个列表中,该列表为主题词语列表。如果主题词语列表中的词语数量大于等于第二预设阈值,此时情况类似于第三种处理模式,对主题词语列表进行词语聚类处理,按照第三种处理模式的方式获取到段落数量以及段落对应的段落主题词。如果主题词语列表中的词语数量小于第二预设阈值,则需要进行相似词语匹配。对每一个关键词按照第二种处理模式的方式进行相似词语匹配,用匹配出的相似词语再进行相关词语匹配,最后把所有的相关词语统计到一起,放入到一个列表中,该列表为主题词语列表。如果主题词语列表中的词语数量小于第二预设阈值,就减小相似度匹配阈值重新获取相关词语,如果主题词语列表中的词语数量大于第二预设阈值且第二预设阈值大于6(第二预设阈值不超过6的主题词语列表为所需),则以主题词语列表中的词语为主,从主题词语列表中的词语中随机不放回抽取,直到控制最后主题词语列表中的词语数量除以0.6再减去估算语句数量后,数值在0到10之间。这样获得的主题词语列表中的词语就是段落主题词。然后对这个主题词语列表聚类,最终得到文章的段落数量以及每个段落对应的主题列表。
本发明实施例中提供了一种确定待生成文本的段落数量以及段落主题词的方法,即通过第四种处理模式实现,可以使得在没有套用模板的情况下,生成文本能够智能划分段落。而且,第四种处理模式适用于估算语句数量较大的情况,可以保证计算结果的准确性。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成方法,本发明实施例中的第一种处理模式和第二种处理模式可以合并成一种,以第二种处理模式为主;第三种处理模式和第四种处理模式可以合并成一种,以第四种处理模式为主。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成方法,所述词语关联图谱具体通过如下方法构建:
获取语料库中每个样本词语的语义向量,并计算任意两个样本词语的语义向量之间的相似度,所述相似度用于表征所述任意两个样本词语的相似关系;
对所述语料库中所述任意两个样本词语进行依存分析,确定所述任意两个样本词语的依赖关系,所述依赖关系用于表征所述任意两个样本词语的相关关系;
基于所述任意两个样本词语的相似关系以及所述任意两个样本词语的相关关系,构建所述词语关联图谱。
具体地,词语关联图谱里面的实体是词语,实体之间的关系分为两种,一种是相似关系,一种是相关关系。对于相似关系的三元组对的获取方式:通过语料库训练得到bert语义模型,然后通过bert语义模型,将一个一个词语转化为目标维度的语义向量,目标维度的选取可以通过参数控制,具体可以取值为64、128、256、512等。获取到词语所代表的语义向量后,对每两个语义向量计算一次余弦相似度,余弦相似度的值就是这两个语义向量所代表词语之间的相似度。获取到的相似度的值,会作为对应两个词语的相似关系的属性存储在图数据库中,以方便使用查询;对于相关关系的三元组对的获取方式:通过对语句进行依存分析,获取到词语和词语之间的依赖关系,然后将存在依赖关系的词语作为相关关系三元组存储在图数据库中。
本发明实施例中采用的图数据库是neo4j数据库,开发语言是python,通过py2neo库的接口调用cypher语言,进行对数据库的增删改查操作。
由于词语关联图谱的构建,所以基于默认参数判断的情况下,在使用过程中不存在主题词语不足的情况。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成方法,还包括:对生成文本进行校验。
具体地,对生成文本进行校验即是进行对错分析以及校正,以使生成文本符合现在的语法规则,使得语句通顺。
首先,语句首字不能出现类似于的,了,地,啊等助词或语气词。建立一个包含类似上述词语的词典,如果生成文本的语句首字包含在词典内,那么该语句会经过Transfromer模型重新生成新的语句。并进行对原语句的替换处理。
其次,在汉语中,词语之间的搭配都是有一定语法结构的,比如形容词后接名词,动词后面接副词等。本系统将生成的文本进行依存句法分析以及词性标注(ltp、hanlp库都能实现),按照既定规则(动宾结构应对应动词与名词,状语对应副词形容词等)进行评判,对不符合的语句重新用Transfromer模型生成。
如图3所示,为本发明实施例中提供的文本自动化生成方法的完整流程示意图。图3中,首先,一方面获取用户输入的关键词信息以及目标数量,然后确定出待生成文本的关键词,并确定出估算语句数量;另一方面,通过对语料库中的相似词语抽取以及相关词语抽取,构建得到词语关联图谱。然后,基于关键词、估算语句数量以及构建的词语关联图谱,确定待生成文本的段落数量以及段落主题词。然后,通过Transfromer模型生成待生成文本。最后,对生成的文本进行校验。
如图4所示,在上述实施例的基础上,本发明实施例中提供了一种文本自动化生成装置,包括:获取模块41、确定模块42和文本生成模块43。其中,
获取模块41用于分别获取待生成文本的关键词以及估算语句数量;
确定模块42用于基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;
文本生成模块43用于基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。
具体地,本发明实施例中提供的文本自动化生成装置中各模块的作用与上述方法类实施例中各步骤的操作流程是一一对应的,实现的效果也是一致的,具体参见上述实施例,本发明实施例中对此不再赘述。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成装置,所述确定模块,具体用于:
若判断获知所述关键词以及所述估算语句数量满足第一条件,则确定所述段落数量为默认数量,并基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表;
对所有关键词对应的相关词语列表进行汇总,确定主题词语列表;
基于所述估算语句数量,确定词语保留数量,并基于所述主题词语列表中所述词语保留数量的词语,确定所述段落主题词。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成装置,所述确定模块,具体用于:
若判断获知所述关键词以及所述估算语句数量满足第二条件,则确定所述段落数量为默认数量,并基于所述词语关联图谱,确定与每个关键词具有相关关系的词语数量;
若任一所述关键词对应的所述词语数量小于等于第一预设阈值,则基于所述词语关联图谱,确定所述任一关键词具有相似关系的相似词语,并基于所述词语关联图谱,确定每个相似词语的相关词语列表;
对所有相关词语列表进行汇总,确定主题词语列表;
若判断获知所述主题词语列表中的词语数量大于等于第二预设阈值,则基于所述主题词语列表中的词语,确定所述段落主题词。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成装置,所述确定模块,具体用于:
若判断获知所述关键词以及所述估算语句数量满足第三条件,则基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表;
对所有关键词对应的相关词语列表进行汇总,确定主题词语列表;
基于所述估算语句数量,确定词语保留数量,并基于所述主题词语列表中所述词语保留数量的词语,确定所述段落主题词;
对所述段落主题词进行聚类,并基于聚类的结果确定所述段落数量。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成装置,所述确定模块,具体用于:
若判断获知所述关键词以及所述估算语句数量满足第四条件,则基于所述词语关联图谱,确定与每个关键词具有相关关系的词语构成的相关词语列表;
对所有关键词对应的相关词语列表进行汇总,确定主题词语列表;
若判断获知所述主题词语列表中的词语数量大于等于第二预设阈值,则基于所述主题词语列表中的词语,确定所述段落主题词;
对所述段落主题词进行聚类,并基于聚类的结果确定所述段落数量。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成装置,还包括:图谱构建模块,用于:
获取语料库中每个样本词语的语义向量,并计算任意两个样本词语的语义向量之间的相似度,所述相似度用于表征所述任意两个样本词语的相似关系;
对所述语料库中所述任意两个样本词语进行依存分析,确定所述任意两个样本词语的依赖关系,所述依赖关系用于表征所述任意两个样本词语的相关关系;
基于所述任意两个样本词语的相似关系以及所述任意两个样本词语的相关关系,构建所述词语关联图谱。
在上述实施例的基础上,本发明实施例中提供的文本自动化生成装置,所述获取模块,具体用于:
确定所述待生成文本的目标字数;
基于所述目标字数,确定所述估算语句数量。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行文本自动化生成方法,该方法包括:分别获取待生成文本的关键词以及估算语句数量;基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的文本自动化生成方法,该方法包括:分别获取待生成文本的关键词以及估算语句数量;基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的文本自动化生成方法,该方法包括:分别获取待生成文本的关键词以及估算语句数量;基于所述关键词、所述估算语句数量以及预先构建的词语关联图谱,确定所述待生成文本的段落数量以及段落主题词;基于Transfromer模型、所述待生成文本的段落数量以及段落主题词,生成所述待生成文本。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 文本自动化生成方法、装置、电子设备及存储介质
- 一种自动化文本生成方法、装置及计算机可读存储介质