CN109635150B - 文本生成方法、装置以及存储介质 - Google Patents
文本生成方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN109635150B CN109635150B CN201811566589.6A CN201811566589A CN109635150B CN 109635150 B CN109635150 B CN 109635150B CN 201811566589 A CN201811566589 A CN 201811566589A CN 109635150 B CN109635150 B CN 109635150B
- Authority
- CN
- China
- Prior art keywords
- image
- text
- text generation
- preset
- target image
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种文本生成方法、装置以及存储介质。本申请可以获取目标图像;对所述目标图像进行图像分类,得到所述目标图像的图像类别;当所述图像类别属于预设类别集合时,根据所述图像类别,在预设词库中筛选得到所述目标图像对应的关键词;根据所述关键词对应的语义信息生成对应的文本片段;根据所述文本片段生成文本。在该方案中,可以识别目标图像的类别并确定对应的关键词,然后根据目标图像对应的关键词生成文本,由此,得到了契合该图像表达内容的文本,提高了根据图像生成文本技术的通用性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种文本生成方法、装置以及存储介质。
背景技术
近年来,随着深度神经网络技术在人工智能领域的大热,基于图像生成文本的技术取得了长足的进展。普遍来说,现有的基于图像生成文本的技术常常需要使用大量的图像及其对应的对齐语料来训练一个可以广泛使用的文本生成模型,将该目标图像输入该模型后会得到其对应风格、主题的文本。
在对现有技术的研究和实践过程中,本申请的发明人发现:在某些特定领域下相关的图像数量较少,这些特定领域图像所对应的对齐语料数量也较少,或者根本没有相应的对齐语料库,在没有足够的材料支持下,无法训练出可用的文本生成模型,可以看出,目前的文本生成技术通用性较差。
发明内容
本申请实施例提供一种文本生成方法、装置以及存储介质,旨在提高根据图像生成文本技术的通用性。
本申请实施例提供一种文本生成方法,包括:
获取目标图像;
对所述目标图像进行图像分类,得到所述目标图像的图像类别;
当所述图像类别属于预设类别集合时,根据所述图像类别,在预设词库中筛选得到所述目标图像对应的关键词;
根据所述关键词对应的语义信息生成对应的文本片段;
根据所述文本片段生成文本。
本申请实施例提供一种文本生成装置,包括:
在一些实施例中,所述根据所述关键词对应的语义信息生成对应的文本片段,包括:
采用文本生成模型,根据所述文本生成模型内的预设字典,将所述关键词映射为关键词向量,其中所述文本生成模型是基于循环神经网络的模型;
根据所述关键词向量以及文本生成模型编码时刻的隐层状态,生成语义向量;
根据所述语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段。
在一些实施例中,所述根据所述关键词向量及文本生成模型编码时刻的隐层状态,生成语义向量,包括:
确定所述文本生成模型中当前编码时刻的上一时刻,获取所述上一时刻的向前隐层状态,根据所述关键词和向前隐层状态计算当前编码时刻的向前隐层状态;
确定所述当前时刻的下一时刻,获取所述下一时刻的向后隐层状态,根据所述关键词和向后隐层状态计算当前编码时刻的向后隐层状态;
根据所述当前编码时刻的向前隐层状态和向后隐层状态,计算得到语义向量。
在一些实施例中,所述文本片段包括多个子文本片段,所述根据所述语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段,包括:
确定所述文本生成模型中当前解码时刻的上一时刻,获取所述上一时刻的隐层状态以及上一时刻的子文本片段;
根据所述上一时刻的隐层状态、上一时刻的子文本片段以及语义向量,计算得到当前时刻的子文本片段。
在一些实施例中,所述根据所述语义向量以及解码时刻的隐层状态,计算得到文本片段,包括:
根据所述语义向量以及预设的注意力权重,计算得到注意力语义向量;
根据所述注意力语义向量以及解码时刻的隐层状态,计算得到文本片段。
在一些实施例中,所述根据所述语义向量以及解码时刻的隐层状态,计算得到文本片段,包括:
根据预设文本生成规则、所述语义向量以及解码时刻的隐层状态,计算文本片段。
在一些实施例中,所述采用文本生成模型,之前还包括:
根据所述图像类别,确定所述目标图像的图像风格;
根据所述图像风格,在预设的模型候选组中选择文本生成模型。
在一些实施例中,所述对所述目标图像进行图像分类,得到所述目标图像的图像类别,包括:
获取预设的训练图像,及其对应的图像类别;
提取所述训练图像的特征向量;
根据所述训练图像的特征向量及其对应的图像类别,训练图像分类器;
采用所述图像分类器对所述目标图像进行图像分类,得到所述目标图像的图像类别。
本申请实施例提供一种文本生成装置,包括:
图像分类模块,用于获取目标图像,将所述目标图像输入图像分类器,得到所述图像分类器输出的图像类别;
关键字模块,用于若所述图像类别属于预设类别集合,则根据所述图像类别,在预设词库中筛选得到所述目标图像对应的关键词;
片段生成模块,用于采用文本生成模型,生成所述关键词对应的文本片段;
文本生成模块,用于根据所述文本片段,生成文本。
本申请实施例提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~8任一项所述的文本生成方法
在本申请实施例中,可以识别目标图像的类别并确定对应的关键词,然后根据目标图像对应的关键词生成文本,由此,得到了契合该图像表达内容的文本,提高了根据图像生成文本技术的通用性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的文本生成方法流程图;
图2是本申请实施例提供的文本生成应用场景示意图;
图3是本申请实施例提供的具体的文本生成应用场景示意图;
图4是本申请实施例提供的文本生成装置结构示意图;
图5是本申请实施例提供的另一文本生成装置结构示意图;
图6是本申请实施例提供的网络设备结构示意图;
图7是本申请实施例提供的训练图像及其对应图像类别和标签的关系示意图;
图8是本申请实施例提供的长短时记忆网络节点示意图;
图9是本申请实施例提供的双向长短时记忆网络示意图;
图10是本申请实施例提供的带有注意力机制的解码端示意图;
图11是本申请实施例提供的文本生模型示意图;
图12是本申请实施例提供的resnet差残块结构示意图;
图13是本申请实施例提供的resnet50差残块结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种文本生成方法、装置以及存储介质,图2为本申请实施例提供的文本生成应用场景示意图,如图所示,获取目标图像;对目标图像进行图像分类,得到目标图像的图像类别;当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词;根据关键词对应的语义信息生成对应的文本片段;根据文本片段生成文本。
其中,该文本生成装置具体可以集成在网络设备如终端和服务器等设备中,例如网络服务器、移动终端、个人电脑(PC,Personl Computer)等等。
由此,在该方案中,可以识别目标图像的类别并确定对应的关键词,然后根据目标图像对应的关键词生成文本,由此,得到了契合该图像表达内容的文本,提高了根据图像生成文本技术的通用性。
以下分别进行详细说明,需说明的是,以下实施例的顺序不作为对实施例优选顺序的限定。
在本实施例中,将从文本生成装置的角度进行描述。其中,该文本生成装置具体可以集成在网络设备如服务器、移动终端以及个人电脑等设备中。
本申请实施例提供一种文本生成装置方法,包括:
获取目标图像;对目标图像进行图像分类,得到目标图像的图像类别;当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词;根据关键词对应的语义信息生成对应的文本片段;根据文本片段生成文本。
图1为本申请实施例提供的文本生成方法流程图,如图1所示,该文本生成方法的具体流程可以如下:
S101、获取目标图像。
目标图像可以是预先存储在文本生成装置的本地内存里,文本生成装置直接从本地内存中读取获得;也可以是通过网络与其他网络服务器通信,从其他网络服务器中获取;还可以是通过网络与移动终端通信,从移动终端中获取,等等。例如,用户使用移动终端拍摄图像后,将拍摄图像发送至网络服务器,文本生成装置通过网络,与网络服务器通信,从而获取用户拍摄的图像。
S102、对目标图像进行图像分类,得到目标图像的图像类别。
对目标图像进行图像分类的方式有多种,例如,使用预设的图像分类器进行图像分类。其中,图像分类器可以据不同图像的图像信息中所反映的不同特征,识别不同图像的所属类别。同样的,图像分类器可以预先保存在文本生成装置的本地内存里,当需要判别图像类别时再调用。
可以理解的是,获取目标图像以及图像分类器的方式多种,不应对目标图像以及图像分类器的来源作出限定。
图像特征是某一张图像区别于其他类图像的相应特点或特性,或是这些特点和特性的集合。每一幅图像都具有能够区别于其他类别图像的自身特征,例如亮度、边缘、纹理和色彩等。
而图像特征向量则可以是将一种或多种图像特征组合在一起,形成一个向量来代表该类对象,例如只有单个特征,则该特征向量为一个一维向量,例如是n个特征的组合,则为一个n维特征向量。
常用的图像特征有方向梯度直方图(Histogram of Oriented Gradient,HOG)、灰度共生矩阵(Gray-Level Co-occurrence Matrix,GLCM)以及尺度不变特征转换(ScaleInvariant Feature Transform,SIFT)等等,以下对它们作出详细介绍:
HOG特征是通过计算和统计图像局部区域的梯度方向直方图来构成图像特征,提取HOG特征可以包括以下几个步骤:
首先把输入的彩色图像转换为灰度图像,然后对图像进行平方根Gamma压缩(Gamma编码),从而达到归一化的目的。
然后,首先用一维离散微分模版[-1,0,1]及其转置分别对归一化后的图像进行卷积运算,得到水平方向的梯度分量以及垂直方向的梯度分量,根据当前像素点的水平梯度和垂直梯度,得到当前像素点的梯度幅值和梯度方向,即得到了图像梯度。
再然后,把一个图像分为多个细胞单元(cell),再把梯度方向限定在[0,梯度,并将梯度方向平均分为多个区间(bin),对细胞单元内每个像素用梯度方向在直方图中进行加权投影,得到这些细胞单元的梯度方向直方图。
再然后把细胞单元组合成大的块(block),块内归一化梯度直方图。
最后,采用滑动窗口的方法,用块对样本图像进行扫描,扫描步长为一个细胞单元,把所有归一化后的块特征串联起来得到HOG特征向量。
GLCM指的是一种通过研究灰度的空间相关特性来描述纹理的常用方法,由于纹理是由灰度分布在空间位置上反复出现而形成的,因而在图像空间中相隔某距离的两像素之间会存在一定的灰度关系,即图像中灰度的空间相关特性。提取GLCM特征可以包括以下步骤:
首先将彩色图像转换为灰度图象,求出分别代表RGB(red,green,blue)的单波段,选择其中的一个波段进行计算纹理特征。
然后,将原影像的灰度级压缩到较小的范围,这样进行了直方图均衡化之后,再将灰度除以32,取整之后便可以将0~255的灰度级变换为0~7的灰度级。
再然后,选择一定大小的滑动窗口和合适的步距,取0然、45后、90后和135选四个方向的平均值作为最终的特征值共生矩阵。
最后,采用滑动窗口的方法,用每一个滑动窗口形成的子影像,通过纹理特征计算程序计算滑动窗口影像灰度共生矩阵和纹理特征值。
SIFT可以用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,提取它的步骤可以包括:
搜索所有尺度上的图像位置,通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点,从而完成尺度空间极值检测。
然后,在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度,关键点的选择依据于它们的稳定程度。
再然后,基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向,所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
最后,在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度,这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。
判断图像类别的基本步骤是,首先,提取该目标图像的图像特征向量,然后判别该图像特征向量属于各个类别的概率,概率最大的类别即可记为该目标图像的图像类别。
在一些实施例中,目标图像属于特定的领域,在该领域中,相关图像数量较少或缺少其相应的对齐语料。例如,敦煌壁画、古代东西方世界名画以及名胜古迹等领域。该特定领域的图像由于数量少、相应的对其语料少,无法作为训练数据来训练相应的模型,或者训练出的模型精确度不高、效率低下。故可以采用图像分类器先对该领域目标图像进行图像分类,并提取对应的关键词,即可根据该关键词生成对应的文本片段。其中,该图像分类器可以具有识别目标图像是否属于特定领域的能力。
在一些实施例中,文本生成装置可以根据预设的特定领域范围的训练图像及其对应的图像类别和标签,预先训练得到的图像分类器,使得该制备的图像分类器可以判别目标图像是否属于特定领域,并且使得判断结果更加准确,具体可以如下:
(1)获取预设的特定领域范围的训练图像及其对应的图像类别和标签。
如前文所述,特定领域是指诸如敦煌壁画、古代东西方世界名画以及名胜古迹等等所属图像数量较少或者所属图像缺少相应的对齐语料的领域。预设的特定领域范围是指多个特定领域的集合,例如某个预设的领域范围可以包括敦煌壁画领域、世界名画领域以及世界著名建筑照片领域。
图7是本实施例提供的训练图像及其对应图像类别和标签的关系示意图,如图7所示,每个图像都有其所对应的一个类别,而每个类别对应多个标签。
预设的特定领域范围的训练图像及其对应的图像类别和标签可以提前由技术人员按自定义比例分为分类训练集和分类测试集,以方便之后训练图像分类器使用。
预设的特定领域范围的训练图像及其对应的图像类别和标签可以组成数据包存储在本地内存中,文本生成装置可以直接从本地内存中读取该数据包获得;也可以是通过网络与其他网络服务器通信,从其他网络服务器中获取。
(2)提取训练图像的特征向量。
图像特征向量是将一种或多种图像特征组合在一起,形成一个向量来代表该类对象,例如只有单个特征,则该特征向量为一个一维向量,如果是n个特征的组合,则为一个n维特征向量。
具体的图像特征提取模型众多,例如利用AlexNet、VGG(Visual Geometry GroupNetwork,VGG)以及深度残差网络(Deep residual network,ResNet)等模型,以下简单介绍这些模型:
Alexnet是由5个卷积层和三个全连接层组成,一共8个权重层(由于池化层没有参数,故不属于权重层),其中线性整流函数(Rectified Linear Unit,ReLU)作用在每个卷积层和全连接层上,在第一个卷积层和第二个卷积层后面连接一个局部响应规范化层,最大池化层作用在第一个卷积层,第二个卷积层和第五个卷积层的输出上。
VGG一共有六种不同的网络结构,但是每种结构都有含有5组卷积,每组卷积都使用3×3的卷积核,每组卷积后进行一个2×2最大池化,接下来是三个全连接层。
ResNet引入了一个恒等快捷连接(identity shortcut connection),直接跳过一个或多个层,使得梯度可以在该模型中畅通无阻地通过快速连接到达之前的任意一层。
(3)根据训练图像的特征向量及其对应的图像类别和标签,训练图像分类器。
通过上述方法,提取出了所有的训练图像的特征向量,根据这些图像所对应的特征向量、类别以及标签,可以使用K最近邻(K-NearestNeighbor,KNN,)以及支持向量机(Support Vector Machine,SVM)等方式来训练图像分类器,以下仅对这些算法的原理做出简单介绍:
SVM主要是用来解决两类分类的问题,在两类中寻找一个最优超分平面将两类分开,来提高分类的正确率。
线性SVM就是一种线性分类的方法。它的基本思路是:输入x,输出y,每一个样本的权重是w,偏置项bias是b,某类别的得分函数s越大,则图像越可能属于该类别:
s=wx+b
将分类训练集的特征向量作为X输入该函数,训练后可以得到w与b,即可得到最粗糙的SVM图像分类器,然后使用测试集得到合适的w与b,即得到一个可用的SVM图像分类器。
KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。
(4)采用图像分类器对目标图像进行图像分类,得到目标图像的图像类别。
采用图像分类器提取该目标图像的图像特征向量,然后判别该图像特征向量属于各个类别的概率,概率最大的类别即可记为该目标图像的图像类别。
S103、当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词。
首先,获取图像分类器输出的目标图像所属类别。由于每个类别可以包括任意多个标签,在预设词库中每个标签下可以包括多个相关字符组,从对应的标签下的相关字符组中按照预设规则挑选出关键词。
其中,预设词库和预设规则都可以由技术人员预先保存在本地内存中,预设词库和预设规则都可以由技术人员搭建、规定。
例如,假设预设规则为:从随机抽取4个标签,每个标签下的第一个相关字符组都记为关键词。得到了该目标图像的类别后,从该类别下包括的A、B、C、D以及E等等标签中随机抽取出4个标签,分别是:A、B、C和D。再从预设词库的A、B、C和D这4个标签下分别取第一个相关字符组:a、b、c和d。记a、b、c和d为该目标图像的关键词。
在一些实施例中,在步骤“采用文本生成模型”之前,还可以包括:
根据图像类别,确定目标图像的图像风格;
根据图像风格,在预设的模型候选组中选择文本生成模型。
其中,图像风格可以包括时代风格等等,例如古代风格和现代风格。
其中,预设的模型候选组可以是预先存储在文本生成装置的本地内存里,由文本生成装置直接从本地内存中读取获得;也可以是通过网络与其他网络服务器通信,从其他网络服务器中获取。
该预设的模型候选组中可以包括多个文本生成模型,每一个文本生成模型都可以对应一种或多种图像类别,该对应方式保存在预设挑选规则中。其中,预设挑选规则可以由技术人员预先规定并保存在本地内存中。
例如,A类文本生成模型可以对应敦煌飞仙、敦煌神兽、长城等类别;B类文本生成模型可以对应古希腊柱式建筑、雅典卫城、庞贝巴洛克壁画等类别。
S104、根据关键词对应的语义信息生成对应的文本片段。
为了自动生成准确的文本片段,可以使用文本生成模型来根据关键词对应的语义信息生成对应的文本片段。其中,常常会使用序列到序列模型(sequence to sequencemodel,seq2seq)作为文本生成模型来进行文本处理。seq2seq模型可以读取一序列并产生另一序列作为输出。通常,seq2seq模型使用两个循环神经网络(Recurrent NeuralNetwork,RNN)实现,分别用作编码端和解码端。
文本生成模型可以将关键词转换为独热码(One-Hot Encoding)的形式,再对其进行降维处理,每次对结果的计算都会根据上一次输出的结果,计算这些处理结果进行后再次转换为字符组。
独热码地原理是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效,即有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。对于每一个特征,如果它有m个可能值,那么经过独热编码后,就变成了m个二元特征。并且,这些特征互斥,每次只有一个激活。因此,数据会变的稀疏,能够非常直观地对特征进行表现。
然而,使用one-hot词片段并不是一个好选择。一个主要的原因是,one-hot词片段无法表达不同词之间的相似度。例如,任何一对词的one-hot向量的余弦相似度都为0。
而word2vec(word to vector,词成向量法)可以很好的解决这些问题:
word2vec是为一群用来产生词片段的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系,该向量为神经网络的隐藏层。
在一些实施例中,步骤“采用文本生成模型,生成关键词对应的文本片段”可以包括:
采用文本生成模型,根据文本生成模型内的预设字典,将关键词映射为关键词向量,其中文本生成模型是基于循环神经网络的模型;
根据关键词向量以及文本生成模型编码时刻的隐层状态,生成语义向量;
根据语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段。
其中,关键词(key words)可以是一个词语、一个字以及一串字符串等等。
其中,文本片段可以是一个或者多个字符。
其中,文本生成模型可以是seq2seq模型,包括一个编码端以及一个解码端,在文本生成模型中,关键字字符组依次输入该文本生成模型的编码端,可以从该编码端获得一个不变的语义向量C:
(1)采用文本生成模型,根据文本生成模型内的预设字典,将关键词映射为关键词向量,其中文本生成模型是基于循环神经网络的模型。
当文本生成模型的编码端接收到关键词时,可以根据文本生成模型内的预设字典将该关键词转换为向量。其中,在该预设字典中每一个字都与一个向量一一对应。
所述文本生成模型内的字典可以作为文本生成模型的一部分保存在该文本生成装置的本地内存中,也可以通过网络与网络服务器通信以获得。
(2)根据关键词向量以及文本生成模型编码时刻的隐层状态,生成语义向量。
首先,编码端可以把关键词向量组转换成一个定长的语义向量c,该语义向量包含了输入解码端的关键词向量组的信息,常用的编码端可以是循环神经网络(RecurrentNeural Network,RNN)以及长短期记忆网络(Long Short-Term Memory,LSTM)等等。隐藏变量来源与当前时刻的输入和上一时刻的隐藏变量,而语义向量就是总结输入层中关键词向量组所对应的各个隐藏层变量。
例如,编码过程使用了LSTM记忆的功能,通过上下文的序列关系,将关键词向量组依次输入网络。对于BiLSTM,每一次都会输出一个结果,即只保留最后一个隐层状态,将其存为一个内容向量以供之后的解码器使用。
在一些实施例中,为了解决了自然语言句子向量化的难题,使得计算机对语言的处理进一步深入到语义理解的层面,使得生成的文本语义通顺,每个字词都与上下文契合,编码端可以是双向长短时记忆网络,关键词向量组包括多个关键词向量,故步骤“根据关键词向量组生成语义向量”具体可以包括:
如图11所示,是一个文本生成模型示意图,该文本生成模型基于seq2seq模型,它的编码端可以为双向长短时记忆网络(Bi-directional Long Short-Term MemoryRecurrent Neural Network,BiLSTM),它的解码端可以为单向长短时记忆网络(LongShort-Term Memory Recurrent Neural Network,LSTM),在编码端与解码端之间存在语义向量C。此外,它的编码端与解码端可以使用不限于BiLSTM与LSTM的任一循环神经网络(Recurrent Neural Network,RNN)。
图8是本申请实施例提供的长短时记忆网络节点示意图,如图8所示,LSTM模型是由t时刻的输入xt,细胞状态(cell state)Ct,临时细胞状态Ct’,隐层状态ht,遗忘门ft,记忆门it,输出门ot组成。LSTM的计算过程可以概括为,通过对细胞状态中信息遗忘和记忆新的信息使得对后续时刻计算有用的信息得以传递,而无用的信息被丢弃,并在每个时间步都会输出隐层状态,其中遗忘,记忆与输出由通过上个时刻的隐层状态和当前输入计算出来的遗忘门,记忆门,输出门来控制。
这种结构可以使之前输入的信息保存在网络中,并一直向前传递,输入门打开时新的输入才会改变网络中保存的历史状态,输出门打开时保存的历史状态会被访问到,并影响之后的输出,忘记门用于清空之前保存的历史信息。
在单向的长短时记忆网络中,ft被称为遗忘门,可以选择需要被遗忘的信息,遗忘门的值由前一时刻的隐层状态和当前时刻的输入决定:
ft=σ(Wf[ht-1,xt]+bf)
记忆门决定什么样的新信息被存放在细胞状态中,当输入前一时刻的隐层状态和当前时刻的输入后,记忆门能够输出记忆门的值以及临时细胞状态:
it=σ(Wi[ht-1,xt]+bi)
Ct’=tanh(WC[ht-1,xt]+bC)
当前时刻的细胞状态可以由记忆门的值、遗忘门的值、临时细胞状态以及上一刻细胞状态决定:
Ct=ft*Ct-1+it*Ct’
ot被称作输出门,决定了输出的值,它可以由前一时刻的隐层状态和当前时刻的输入词决定:
ot=σ(Wo[ht-1,xt]+bo)
当前时刻的隐层状态可以由当前时刻的细胞状态和当前时刻的输入门值决定:
ht=ot*tanhCt
其中,W以及b是模型通过训练阶段与预测阶段习得的参数。
最终,可以得到隐层状态序列{h0,h1,...,hn-1}。
向前的LSTM与向后的LSTM可以结合成BiLSTM,是本申请实施例提供的双向长短时记忆网络示意图,如图所示,BiLSTM包括两个LSTM,在图中,下方为向前的LSTM,上方为向后的LSTM,两个方向的LSTM之间互不影响。
例如,向前的LSTM将关键词向量组依次正向输入得到向量{hL0,hL1,hL2},向后的LSTM将关键词向量组依次反向输入得到向量{hR0,hR1,hR2},将其拼接得到{[hL0,hR2][hL1,hR1][hL2,hR0]},即{h0,h1,h2}。
(2.1)确定文本生成模型中当前编码时刻的上一时刻,获取上一时刻的向前隐层状态,根据关键词和向前隐层状态计算当前编码时刻的向前隐层状态
(2.2)确定当前时刻的下一时刻,获取下一时刻的向后隐层状态,根据关键词和向后隐层状态计算当前编码时刻的向后隐层状态。
其中,在步骤2.1中,上一时刻的向前隐层状态是指上一次输入当前关键词向量的时刻的的向前隐层状态,例如,在图9中为下方的S0;在步骤2.2中,下一时刻的向后隐层状态是指下一次输入当前关键词向量的时刻的向后隐层状态,例如,在图9中为上方的S0。
将当前关键词输入编码端,编码端会根据上一时刻的编码端向前的隐层状态计算当前时刻的编码端向前隐层状态,然后根据下一时刻的编码端向后的隐层状态计算当前时刻的编码端向后的隐层状态。
若关键词是首次输入编码端,即当前编码端没有上一时刻的向前隐层状态和下一时刻的向后隐层状态,则上一时刻的向前隐层状态为为预设向前隐层阈值0,该阈值常常为0;下一时刻的向后隐层状态为预设向后隐层阈值,该阈值可以由技术人员预先设定,除此之外,该阈值常常也为0。
(2.3)根据当前编码时刻的向前隐层状态和向后隐层状态,计算得到语义向量。
语义向量C可以是编码端隐层状态h的联合,也可以是当前时刻输出的隐层状态,还可以是对所有隐层状态做某种变换,在此不做限定。
(3)根据语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段。
在文本生成模型的解码端中,可以根据语义向量计算得到文本片段,其中,文本片段可以包括文本子片段,文本子片段为单个或多个字符:
当前时刻解码端的输出可以根据上一时刻的解码端输出、上一时刻编码端的隐层状态以及语义向量决定。
例如,解码端和编码端的网络结构几乎一样,唯一不同的是在解码过程中,解码端可以根据之前解码结果来得到当前的解码结果。即解码过程则是根据上一次的输出S和语义向量C,依次根据上一次的解码结果计算当前的解码结果。
在一些实施例中,文本片段包括多个子文本片段,获取文本生成模型解码时刻的隐层状态,根据语义向量以及解码时刻的隐层状态,计算得到文本片段,具体可以包括:
(3.1)确定文本生成模型中当前解码时刻的上一时刻,获取上一时刻的隐层状态以及上一时刻的子文本片段。
当首次将语义向量C输入解码端时,解码端并不具有上一时刻的解码端的隐层状态,故取预设隐层阈值作为上一时刻的解码端的隐层状态,其中,该预设隐层阈值可以由技术人员预先设置。
在解码端中,可以根据语义向量与上一时刻的隐层状态,计算当前时刻的隐层状态。
(3.2)根据上一时刻的隐层状态、上一时刻的子文本片段以及语义向量,计算得到当前时刻的子文本片段。
类似步骤“采用文本生成模型,根据文本生成模型内的预设字典,将关键词映射为关键词向量”中的方法,字符向量也可以根据预设字典转换为字符,则解码端根据文本生成模型内的预设字典,将上一时刻的产生的文本片段转换为文本片段向量。将该文本片段向量以及上一时刻的隐层状态输入当前解码端,再根据语义向量C,解码端可以计算得到当前输出的的文本片段。
S105、根据文本片段生成文本。
可以根据预设的文本模板将文本片段生成为文本。
其中,预设的文本模板可以是五言、六言、七言唐诗,也可以是宋词、现代诗歌、总-分-总格式的散文等等。
比如七言唐诗,每过七个字增加一个逗号,然后分段,直到第28个字时使用句号结尾并且不再分段。
该预设的文本模板可以是预先存储在文本生成装置的本地内存里,文本生成装置直接从本地内存中读取获得;也可以是通过网络与其他网络服务器通信,从其他网络服务器中获取。
由上可知,本申请实施例获取目标图像;对目标图像进行图像分类,得到目标图像的图像类别;当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词;根据关键词对应的语义信息生成对应的文本片段;根据文本片段生成文本。在该方案中,可以识别目标图像的类别并确定对应的关键词,然后根据目标图像对应的关键词生成文本,由此,得到了契合该图像表达内容的文本,提高了根据图像生成文本技术的通用性。
根据前面实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以该文本生成装置具体可以集成在网络设备如个人电脑、服务器以及移动终端等设备中来进行说明。
本申请实施例还提供另一种文本生成方法,具体流程可以如下:
S201、获取目标图像。
由于,步骤“获取目标图像”已在步骤S101中有详细描述,故在此不做赘述。
S202、对目标图像进行图像分类,得到目标图像的图像类别。
由于,步骤“对目标图像进行图像分类,得到目标图像的图像类别”已在步骤S102中有详细描述,故在此不做赘述。
S203、当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词。
由于,步骤“当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词”已在步骤S103中有详细描述,故在此不做赘述。
S204、根据图像类别,确定目标图像的图像风格。
根据步骤S202中获得的图像类别,文本生成装置可以从风格列表中查询当前图像类别所对应的图像风格,其中,图像风格可以包括图像的时代风格等等。表1是图像时代风格列表的示例,如下表所示:
表1
S205、根据图像风格,在预设的模型候选组中选择文本生成模型。
每一个文本生成模型都可以对应一个或图像风格。
预设的模型候选组可以是预先存储在文本生成装置的本地内存里,由文本生成装置直接从本地内存中读取获得;也可以是通过网络与其他网络服务器通信,从其他网络服务器中获取。
在一些实施例中,当对文本生成模型生成的文本有极高的时代风格要求时,文本生成装置可以根据预设的不同时代的文本,可以由文本生成装置制备可用的不同时代风格的字典,使得该制备的文本生成模型使用该字典时,可以根据关键词生成文本,并且使得生成的文本具有浓厚的时代风格。
S206、根据关键词对应的语义信息生成对应的文本片段。
由于需要较好的文本转换处理功能,常常会采用基于seq2seq的模型作为文本生成模型来执行步骤S206。
其中,seq2seq模型可以读取一序列并产生另一序列作为输出。通常,seq2seq模型使用两个循环神经网络(Recurrent Neural Network,RNN)实现,分别用作编码端和解码端。
在一些实施例中,“根据关键词对应的语义信息生成对应的文本片段”可以包括:
采用文本生成模型,根据文本生成模型内的预设字典,将关键词映射为关键词向量,其中文本生成模型是基于循环神经网络的模型;
根据关键词向量以及文本生成模型编码时刻的隐层状态,生成语义向量;
根据语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段。
其中,文本生成模型可以是seq2seq模型,包括一个编码端以及一个解码端,在文本生成模型中,关键字字符组依次输入该文本生成模型的编码端,可以从该编码端获得一个不变的语义向量C:
(1)采用文本生成模型,根据文本生成模型内的预设字典,将关键词映射为关键词向量。
当文本生成模型的编码端接收到关键词时,可以根据文本生成模型内的预设字典将该关键词转换为向量。其中,在该预设字典中每一个字都与一个向量一一对应。
(2)根据关键词向量以及文本生成模型编码时刻的隐层状态,生成语义向量。
首先,编码端可以把关键词向量组转换成一个定长的语义向量c,该语义向量包含了输入解码端的关键词向量组的信息。
(3)根据语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段。
在一些实施例中,为了使得文本各句之间语义趋于连贯一致,可以在解码端中分配注意力机制,故步骤“根据语义向量以及解码时刻的隐层状态,计算得到文本片段”可以包括:
根据语义向量以及预设的注意力权重,计算得到注意力语义向量;
根据注意力语义向量以及解码时刻的隐层状态,计算得到文本片段。
以下对注意力(Attention)机制作出详细介绍:
在seq2seq模型结构中,编码端把所有的输入序列都编码成一个统一的语义向量C,因此,对于每一个解码端输出的文本片段,其使用的C都是一样的。这显然不合理。
注意力机制通过在每个时间将解码端中输入不同的语义向量C来解决这个问题,图10是带有注意力机制的解码端示意图,如图所示:
每一个语义向量C会自动的去选取与当前所要输出的文本片段s最合适的上下文信息。具体来说,这里可以引入注意力权重aij来衡量编码端中j时刻的隐层状态hj和解码端中i阶段的隐层状态Si的相关性,最终解码端中第i阶段的输入的语义向量Ci就来自于所有隐层状态hj对注意力权重aij的加权和。
在文本生成模型中,注意力权重aij是在文本生成模型的训练阶段习得的,它实际和解码端的第i-1阶段的隐层状态Si-1、编码端第j个阶段的隐层状态hj有关。
这样,解码端在生成每个文本片段时,将会根据编码端最相关的信息,从而使得生成的文本语义连贯合理。
在一些实施例中,为了使得文本按照文本生成规则生成,步骤“根据语义向量以及解码时刻的隐层状态,计算得到文本片段”可以包括:
根据预设文本生成规则、语义向量以及解码时刻的隐层状态,计算文本片段。
其中,文本生成规则可以包括押韵规则与预设平仄规则。
在诗词歌赋中,某些诗句的末一字用韵母相同或相近的字,使音调和谐优美。而押韵(压韵、叶韵),就是指把相同韵部的字放在规定的位置上。所谓韵部,则是将相同韵母的字归纳到一类,这种类别即为韵部。
平仄,是中国文本中用字的声调。汉语有四种声调,称为平、上、去、入。除了平声,其余三种声调有高低的变化,故统称为仄声。
表2是文本生成规则参照表,类似下表所示:
预设押韵规则可以包括多种文本押韵规则,例如可以首句押韵、首句不押韵、一韵到底等等。
预设平仄规则可以包括多种文本平仄规则,例如可以是五绝平起、五绝仄起、七绝平起、七绝仄起等等。
其中,每种文本生成规则都可以由一种预设平仄规则与一种预设押韵规则决定,文本生成装置在所述解码端中,获取预设押韵规则与预设平仄规则后,可以根据文本生成规则参照表选取文本生成规则。
其中,该文本生成规则参照表可以提前由技术人员设置并保存在本地内存中,也可以是文本生成装置通过网络与网络服务器通信获取。
表2
在解码端中,文本生成装置可以按照文本生成规则,将语义向量组转换为文本片段,故在一些实施例中,步骤“根据预设文本生成规则、语义向量以及解码时刻的隐层状态,计算文本片段”可以与步骤“根据语义向量以及预设的注意力权重,计算得到注意力语义向量;根据注意力语义向量以及解码时刻的隐层状态,计算得到文本片段”结合:
根据语义向量以及预设的注意力权重,计算得到注意力语义向量;
根据预设的文本生成规则、注意力语义向量以及解码时刻的隐层状态计算文本片段。
在另一些实施例中,上述步骤“根据语义向量以及预设的注意力权重,计算得到注意力语义向量;根据预设的文本生成规则、注意力语义向量以及解码时刻的隐层状态计算文本片段”还可以与步骤“根据语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段”结合:
确定文本生成模型中当前解码时刻的上一时刻,获取上一时刻的隐层状态以及上一时刻的子文本片段;
根据语义向量以及预设的注意力权重,计算得到注意力语义向量;
根据上一时刻的隐层状态、上一时刻的子文本片段、预设的文本生成规则以及注意力语义向量,计算得到当前时刻的子文本片段。
需要注意的是,按照文本生成规则,将语义向量组转换为文本片段时文本生成装置需要参考预设的生成候选词库。
S207、根据文本片段,生成文本。
由于,步骤“根据文本片段,生成文本”已在步骤S104中有详细描述,故在此不做赘述。
由上可知,本申请实施例获取目标图像;对目标图像进行图像分类,得到目标图像的图像类别;当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词;根据图像类别,确定目标图像的图像风格;根据图像风格,在预设的模型候选组中选择文本生成模型;根据关键词对应的语义信息生成对应的文本片段;根据文本片段生成文本。在该方案中,可以根据图像的图像风格选择相应的文本生成模型,从而使得目标图像与其生成的文本风格一致。由此,得到了契合该图像表达内容的文本,提高了根据图像生成文本技术的通用性。
根据前面实施例所描述的方法,本实施例将提供一种文本的应用场景,本实施例以该文本生成装置集成在服务器中进行具体的说明。
在本实施例中,服务器获取目标图像;然后,服务器对目标图像进行图像分类,得到目标图像的图像类别;当图像类别属于预设类别集合时,服务器根据图像类别,在预设词库中筛选得到目标图像对应的关键词;服务器根据关键词对应的语义信息生成对应的文本片段;服务器根据文本片段生成文本。
图3为本实施例提供的具体的文本生成应用场景示意图,如图3所示,该文本生成方法的具体流程可以如下:
(一)获取目标图像。
服务器通过网络与移动终端通信,获取该移动终端的用户拍摄并上传的图像作为目标图像。
(二)对目标图像进行图像分类,得到目标图像的图像类别。
在本实施例中,服务器首先会训练一个KNN图像分类器以便之后使用:
(1)数据预处理。
首先,准备用于训练KNN图像分类器的训练集与测试集:
读取技术人员事先准备并保存在服务器本地内存中关于的敦煌壁画的训练集与测试集。该训练集与测试集中的敦煌壁画图像均是由技术人员提前人工分为5类,并为每一类分配与之内容匹配的10个标签。训练集中包括3000张敦煌壁画,测试集中包括500张。
(2)利用ResNet50提取训练集图像的特征向量。
首先如下式所示,服务器把训练集与测试集中的所有图像转换为灰度图像。其中,Gray为目标图像转换为灰度图像的灰度值,R为目标图像的红色通道值,G为绿色通道值,B为蓝色通道值。
Gray=(R*30+G*59+B*11+50)/100
然后对所有图像进行平方根Gamma压缩(Gamma编码),从而达到归一化的目的。
再然后,首先用一维离散微分模版[-1,0,1]及其转置分别对归一化后的图像进行卷积运算,得到水平方向的梯度分量以及垂直方向的梯度分量,根据当前像素点的水平梯度和垂直梯度,得到当前像素点的梯度幅值和梯度方向,即得到了图像梯度。
再然后,把一个图像分为多个细胞单元(cell),再把梯度方向限定在[0,梯度,并将梯度方向平均分为多个区间(bin),对细胞单元内每个像素用梯度方向在直方图中进行加权投影,得到这些细胞单元的梯度方向直方图。把细胞单元组合成大的块(block),块内归一化梯度直方图。
最后,采用滑动窗口的方法,用块对样本图像进行扫描,扫描步长为一个细胞单元,把所有归一化后的块特征串联起来得到HOG特征向量,从而得到所有训练集与测试集的图像特征。
图12是ResNet的差残块结构示意图,如图所示,它可以包括两层,如下表达式,其中σ代表线性整流函数(Rectified Linear Unit,ReLU):
F=W2σ=W1x)
然后通过一个捷径(shortcut)和第二个ReLU,获得输出y:
y=F(x,{Wi})+x
当需要对输入和输出维数进行变化时(如改变通道数目),可以在shortcut时对x做一个线性变换Ws,如下式
y=F(x,{Wi})+Wsx
在本实施例中,考虑计算的成本,使用resnet50提取训练集图像的特征向量,resnet50对残差块做了计算优化,即将两个3x3的卷积层替换为1x1+3x3+1x1,图13是本申请实施例提供的resnet50差残块结构示意图,如图所示,这种结构中的中间3x3的卷积层首先在一个降维1x1卷积层下减少了计算,然后在另一个1x1的卷积层下做了还原,既保持了精度又减少了计算量。
(3)根据训练图像的特征向量及其对应的图像类别,训练图像分类器。
通过上述方法,提取出了所有的训练图像的特征向量,根据这些图像所对应的特征向量、类别以及标签,使用KNN方法来训练图像分类器。
首先,生成KNN分类器,在此选择3为K值、曼哈顿距离(L1距离)为距离的度量。
曼哈顿距离在KNN中是样本特征每一个维度上的差值的和:
d1(I1,I2)=sqr(∑=s1 p-I2 p|)
由于数据总量不大,选择k折交叉验证,将原始数据分为3份,轮流使用其中2份作为训练数据,剩下的1份作为交叉验证数据,我们可以得到3个准确率,取均值作为预测准确率。
(4)得到目标图像的图像类别。
然后,服务器将目标图像输入进图像分类器中,图像分类器可以根据resnet50网络提取该目标图像的HOG特征作为目标图像的特征向量,然后服务器再使用训练好的图像分类器判别该目标图像特征向量属于各个类别的概率,将概率最大的类别即记为该目标图像的图像类别,获取该图像分类器输出的图像类别。下表(表3)是目标图像特征向量属于各个类别的概率,由表可知,该目标图像敦煌飞仙的概率最大,故该目标图像的图像类别是敦煌飞仙:
类别 | 敦煌飞仙 | 敦煌神兽 | 敦煌佛陀 | 敦煌舞女 | 敦煌经变 |
概率 | 0.62 | 0.0 | 0.11 | 0.27 | 0.0 |
表3
(三)当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词;。
首先,获取图像分类器输出的目标图像所属类别。
从敦煌飞仙对应的标签下随机抽取4个标签,例如,从西域、神佛、菩萨、礼赞、歌舞、仙子、飞神、香间神、极乐以及彩云中随机抽取出神佛、歌舞、礼赞和吉祥作为标签。
再从预设词库的神佛、礼赞、歌舞和吉祥4个标签下分别取第一个相关字符组:佛陀、菩萨、舒展和祥瑞。记佛陀、菩萨、舒展和祥瑞为该目标图像《飞天》的关键词。
(四)根据关键词对应的语义信息生成对应的文本片段。
在本实施例中,采用文本生成模型,据关键词对应的语义信息生成文本片段。
其中,文本生成模型从预设的模型候选组中挑选出。
其中,预设的模型候选组是通过网络与其他网络服务器通信,从其他网络服务器中获取,然后存储在文本生成装置的本地内存里,由文本生成装置直接从本地内存中读取获得。
该预设的模型候选组中包括3个文本生成模型,其中,A模型对应长城图像类别,B模型对应敦煌神兽图像类别,C模型对应敦煌佛陀和敦煌经变图像类别。其中,A、B、C模型除了在参数上可以有不同以外,其内嵌的词典、其编码端和解码端所使用的注意力机制也可以有所不同。
挑选出的文本生成模型基于seq2seq模型,它的上一个网络的状态输出可以作为下一个网络的状态输入,其初始状态为零,后续输入状态都是上一次的输出状态。
由于敦煌飞仙类别在风格列表中查询得出属于古风,故字典选择古风字典。
在本实施例中,文本生成模型如图11所示,包括双向长短期记忆网络的编码端和长短期记忆网络的解码端。
在本实施例中还可以使用word2vec模型来映射每个词到一个向量,该文本生成模型可以根据每个字符出现的概率,将每一次解码求出的最大概率所对应的字符记为关键词。在本实施例汇总,关键词为:佛陀、菩萨、舒展和祥瑞。
向前的LSTM与向后的LSTM可以结合成BiLSTM,编码端使用了BiLSTM记忆的功能,通过上下文的序列关系,将关键词向量组依次输入网络,得到每一次的隐层状态h和语义向量C。
其中遗忘门ft、记忆门it、输出门ot、临时细胞状态Ct’、当前时刻的细胞状态Ct以及当前时刻的隐层状态ht可以由下式求出:
ft=σ(Wf[ht-1,xt]+bf)
it=σ(Wi[ht-1,xt]+bi)
Ct’=tanh(WC[ht-1,xt]+bC)
Ct=ft*Ct-1+it*Ct’
ot=σ(Wo[ht-1,xt]+bo)
ht=ot*tanhCt
其中,W以及b是模型通过训练阶段与预测阶段习得的参数。
最终,可以得到编码端隐层状态序列{h0,h1,...,hn-1}。
除此之外,解码时服务器需要获取预设的注意力权重,然后,在解码端中根据语义向量以及预设的注意力权重,计算文本片段。
在解码端获取隐层状态h8与语义向量C,当前时刻解码端的输出可以根据上一时刻的解码端输出、语义向量C得到每一次的隐层状态S以及输出y。
类似的,根据上述公式可以计算出解码端的隐层状态S序列{S0,S1,...,Sn-1}。
(五)根据文本片段生成文本。
将文本片段填入预设的文本模板,得到目标文本。
其中,预设的文本模板可包括五言、六言、七言唐诗。
由于在步骤(四)中的文本生成模型是七言绝句文本生成模型,故根据佛陀、菩萨、舒展和祥瑞的关键词生成一共28个片段,每个片段1个汉字,分别为:
安、乐、一、生、三、百、年、禅、王、自、古、是、非、缘、福、灵、有、幸、来、相、伴、上、寿、何、时、再、续以及前。
七言绝句的文本模板是每过七个字增加一个逗号,然后分段,直到第28个字时使用句号结尾并且不再分段,于是得到了目标文本:
安乐一生三百年,
禅王自古是非缘,
福灵有幸来相伴,
上寿何时再续前。
该文本模板预先存储在文本生成装置的本地内存里,文本生成装置直接从本地内存中读取获得。
由上可知,本申请实施例中服务器获取目标图像;然后,服务器对目标图像进行图像分类,得到目标图像的图像类别;当图像类别属于预设类别集合时,服务器根据图像类别,在预设词库中筛选得到目标图像对应的关键词;服务器根据关键词对应的语义信息生成对应的文本片段;服务器根据文本片段生成文本。在该方案中,服务器可以识别目标图像的类别并确定对应的关键词,然后根据目标图像对应的关键词生成文本,由此,得到了契合该图像表达内容的文本,提高了根据图像生成文本技术的通用性。
在以下的说明中,本申请的具体实施例将参考由一部或多部装置所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由装置执行,本文所指的装置执行包括了由代表了以一结构化型式中的数据的电子信号的装置处理单元的操作。此操作转换该数据或将其维持在该装置的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该装置的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下这些的多种步骤及操作亦可实施在硬件当中。
本文这些的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。
为了更好地实施以上方法,本申请实施例还提供文本生成装置,该文本生成装置具体可以集成在网络设备,比如终端或服务器等设备中,以下将分别进行详细说明。
例如,图4是本申请实施例提供的文本生成装置结构示意图,如图所示,该文本生成装置的结构包括图像获取模块401、图像分类模块402、关键字模块403、片段生成模块404以及文本生成模块405,如下:
(一)图像获取模块401:
图像获取模块401用于获取目标图像。
(二)图像分类模块402:
图像分类模块402,用于对目标图像进行图像分类,得到目标图像的图像类别。
识别图像类别的基本步骤是,首先提取该目标图像的图像特征向量,然后判别该图像特征向量属于各个类别的概率,概率最大的类别即记为该目标图像的图像类别。
(三)关键字模块403:
关键字模块403,用于当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词。
其中,由于每个类别可以包括任意多个标签,在预设词库中每个标签下可以包括多个相关字符组,故关键字模块403可以从对应的标签下的相关字符组中按照预设规则挑选出关键词。
(四)片段生成模块404:
片段生成模块404,用于根据关键词对应的语义信息生成对应的文本片段。
图5是本申请实施例提供的另一文本生成装置结构示意图,如图所示,在一些实施例中,段生成模块404可以包括向量模块4041、语义模块4042以及片段生成子模块4043:其中
向量模块4041,用于采用文本生成模型,根据文本生成模型内的预设字典,将关键词映射为关键词向量,其中文本生成模型是基于循环神经网络的模型;
语义模块4042,用于根据关键词向量以及文本生成模型编码时刻的隐层状态,生成语义向量;
其中,语义模块4042具体可以用于确定文本生成模型中当前编码时刻的上一时刻,获取上一时刻的向前隐层状态,根据关键词和向前隐层状态计算当前编码时刻的向前隐层状态;确定当前时刻的下一时刻,获取下一时刻的向后隐层状态,根据关键词和向后隐层状态计算当前编码时刻的向后隐层状态;根据当前编码时刻的向前隐层状态和向后隐层状态,计算得到语义向量。
片段生成子模块4043,用于根据语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段。
其中,文本片段包括多个文本子片段,片段生成子模块4043具体可以用于确定文本生成模型中当前解码时刻的上一时刻,获取上一时刻的隐层状态以及上一时刻的子文本片段;根据上一时刻的隐层状态、上一时刻的子文本片段以及语义向量,计算得到当前时刻的子文本片段。
除此之外,片段生成子模块4043还可以具体用于根据语义向量以及预设的注意力权重,计算得到注意力语义向量;根据注意力语义向量以及解码时刻的隐层状态计算文本片段。
除此之外,片段生成子模块4043还可以具体用于根据预设的文本生成规则、语义向量以及解码时刻的隐层状态计算文本片段。
(五)文本生成模块405:
文本生成模块405,用于根据文本片段生成文本。
文本生成模块405可以根据预设的文本模板将文本片段生成为文本。
由上可知,在本申请实施例中,图像获取模块401获取目标图像;图像分类模块402对目标图像进行图像分类,得到目标图像的图像类别;关键字模块403当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词;片段生成模块404根据关键词对应的语义信息生成对应的文本片段;文本生成模块405根据文本片段生成文本。在该方案中,可以识别目标图像的类别并确定对应的关键词,然后根据目标图像对应的关键词生成文本,由此,得到了契合该图像表达内容的文本,提高了根据图像生成文本技术的通用性。
本申请实施例还提供一种网络设备,如图6所示,为本申请实施例所涉及的网络设备的结构示意图,其集成了本申请实施例所提供的任一种文本生成装置,该网络设备可以为服务器或终端等设备,具体来讲:
该网络设备可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、电源603和输入单元604等部件。本领域技术人员可以理解,图6中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
网络设备还包括给各个部件供电的电源603,优选的,电源603可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源603还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该网络设备还可包括输入单元604,该输入单元604可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,网络设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,网络设备中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:
获取目标图像;
对目标图像进行图像分类,得到目标图像的图像类别;
当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词;
根据关键词对应的语义信息生成对应的文本片段;
根据文本片段生成文本。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种文本生成存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种文本生成方法中的步骤。例如,该指令可以执行如下步骤:
获取目标图像;
对目标图像进行图像分类,得到目标图像的图像类别;
当图像类别属于预设类别集合时,根据图像类别,在预设词库中筛选得到目标图像对应的关键词;
根据关键词对应的语义信息生成对应的文本片段;
根据文本片段生成文本。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)随机存取记忆体(RAM,Random Access Memory)磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种的文本生成方法中的步骤,因此,可以实现本申请实施例所提供的任一种文本生成方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种文本生成方法、装置以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种文本生成方法,其特征在于,包括:
获取目标图像;
对所述目标图像进行图像分类,得到所述目标图像的图像类别;
当所述图像类别属于预设类别集合时,根据所述图像类别所对应的标签,在预设词库的所述标签所对应的多个相关字符组中筛选得到所述目标图像对应的关键词;
根据所述图像类别,确定所述目标图像的图像风格;
根据所述图像风格,在预设的模型候选组中选择文本生成模型,其中,所述预设的模型候选组中包括多个基于循环神经网络结构的模型;
采用所述图像风格对应的文本生成模型,根据所述关键词对应的语义信息生成对应的文本片段;
根据所述文本片段生成文本。
2.如权利要求1所述方法,其特征在于,所述采用所述文本生成模型,根据所述关键词对应的语义信息生成对应的文本片段,包括:
采用文本生成模型,根据所述文本生成模型内的预设字典,将所述关键词映射为关键词向量;
根据所述关键词向量以及文本生成模型编码时刻的隐层状态,生成语义向量;
根据所述语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段。
3.如权利要求2所述方法,其特征在于,所述根据所述关键词向量及文本生成模型编码时刻的隐层状态,生成语义向量,包括:
确定所述文本生成模型中当前编码时刻的上一时刻,获取所述上一时刻的向前隐层状态,根据所述关键词和向前隐层状态计算当前编码时刻的向前隐层状态;
确定所述当前时刻的下一时刻,获取所述下一时刻的向后隐层状态,根据所述关键词和向后隐层状态计算当前编码时刻的向后隐层状态;
根据所述当前编码时刻的向前隐层状态和向后隐层状态,计算得到语义向量。
4.如权利要求2所述方法,其特征在于,所述文本片段包括多个子文本片段,所述根据所述语义向量以及文本生成模型解码时刻的隐层状态,计算得到文本片段,包括:
确定所述文本生成模型中当前解码时刻的上一时刻,获取所述上一时刻的隐层状态以及上一时刻的子文本片段;
根据所述上一时刻的隐层状态、上一时刻的子文本片段以及语义向量,计算得到当前时刻的子文本片段。
5.如权利要求2所述方法,其特征在于,所述根据所述语义向量以及解码时刻的隐层状态,计算得到文本片段,包括:
根据所述语义向量以及预设的注意力权重,计算得到注意力语义向量;
根据所述注意力语义向量以及解码时刻的隐层状态,计算得到文本片段。
6.如权利要求2所述方法,其特征在于,所述根据所述语义向量以及解码时刻的隐层状态,计算得到文本片段,包括:
根据预设文本生成规则、所述语义向量以及解码时刻的隐层状态,计算文本片段。
7.如权利要求1-6任一项所述方法,其特征在于,所述对所述目标图像进行图像分类,得到所述目标图像的图像类别,包括:
获取预设的训练图像,及其对应的图像类别;
提取所述训练图像的特征向量;
根据所述训练图像的特征向量及其对应的图像类别,训练图像分类器;
采用所述图像分类器对所述目标图像进行图像分类,得到所述目标图像的图像类别。
8.一种文本生成装置,其特征在于,包括:
图像获取模块,用于获取目标图像;
图像分类模块,用于对所述目标图像进行图像分类,得到所述目标图像的图像类别;
关键字模块,用于当所述图像类别属于预设类别集合时,根据所述图像类别,在预设词库的标签所对应的多个相关字符组中筛选得到所述目标图像对应的关键词;
片段生成模块,用于根据所述图像类别,确定所述目标图像的图像风格;根据所述图像风格,在预设的模型候选组中选择文本生成模型,其中,所述预设的模型候选组中包括多个基于循环神经网络结构的模型,采用所述图像风格对应的文本生成模型,根据所述关键词对应的语义信息生成对应的文本片段;
文本生成模块,用于根据所述文本片段生成文本。
9.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1~7任一项所述的文本生成方法。
10.一种终端,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~7任一项所述的文本生成方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811566589.6A CN109635150B (zh) | 2018-12-19 | 2018-12-19 | 文本生成方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811566589.6A CN109635150B (zh) | 2018-12-19 | 2018-12-19 | 文本生成方法、装置以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109635150A CN109635150A (zh) | 2019-04-16 |
CN109635150B true CN109635150B (zh) | 2021-07-02 |
Family
ID=66076022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811566589.6A Active CN109635150B (zh) | 2018-12-19 | 2018-12-19 | 文本生成方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109635150B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913648B (zh) | 2019-05-09 | 2021-08-17 | 深圳大普微电子科技有限公司 | 一种固态硬盘的数据处理方法及装置 |
CN110276081B (zh) * | 2019-06-06 | 2023-04-25 | 百度在线网络技术(北京)有限公司 | 文本生成方法、装置及存储介质 |
CN110377750B (zh) * | 2019-06-17 | 2022-05-27 | 北京百度网讯科技有限公司 | 评论生成及评论生成模型训练方法、装置及存储介质 |
CN110472242A (zh) * | 2019-08-05 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 一种文本处理方法、装置和计算机可读存储介质 |
CN110891201B (zh) * | 2019-11-07 | 2022-11-01 | 腾讯科技(深圳)有限公司 | 文本生成方法、装置、服务器和存储介质 |
CN111291644B (zh) * | 2020-01-20 | 2023-04-18 | 北京百度网讯科技有限公司 | 用于处理信息的方法和装置 |
CN111666434B (zh) * | 2020-05-26 | 2021-11-02 | 武汉大学 | 基于深度全局特征的街景图片检索方法 |
CN112507109A (zh) * | 2020-12-11 | 2021-03-16 | 重庆知识产权大数据研究院有限公司 | 一种基于语义分析与关键词识别的检索方法和装置 |
CN113590858B (zh) * | 2021-06-30 | 2023-10-03 | 北京百度网讯科技有限公司 | 目标对象的生成方法、装置、电子设备以及存储介质 |
CN113918802B (zh) * | 2021-12-14 | 2022-03-08 | 腾讯科技(深圳)有限公司 | 导航方法、装置、设备、介质及产品 |
CN114282515B (zh) * | 2022-02-18 | 2022-07-08 | 北京语言大学 | 一种基于增量式片段预测的端到端词汇受限文本生成方法 |
CN114781393B (zh) * | 2022-04-20 | 2023-05-26 | 平安科技(深圳)有限公司 | 图像描述生成方法和装置、电子设备及存储介质 |
CN114818644B (zh) * | 2022-06-27 | 2022-10-04 | 北京云迹科技股份有限公司 | 文本模板生成方法、装置、设备及存储介质 |
CN115080786A (zh) * | 2022-08-22 | 2022-09-20 | 科大讯飞股份有限公司 | 基于图片作诗的方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740402A (zh) * | 2016-01-28 | 2016-07-06 | 百度在线网络技术(北京)有限公司 | 数字图像的语义标签的获取方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9875258B1 (en) * | 2015-12-17 | 2018-01-23 | A9.Com, Inc. | Generating search strings and refinements from an image |
CN107688821B (zh) * | 2017-07-11 | 2021-08-06 | 西安电子科技大学 | 基于视觉显著性与语义属性跨模态图像自然语言描述方法 |
CN107632981B (zh) * | 2017-09-06 | 2020-11-03 | 沈阳雅译网络技术有限公司 | 一种引入源语组块信息编码的神经机器翻译方法 |
CN107563498B (zh) * | 2017-09-08 | 2020-07-14 | 中国石油大学(华东) | 基于视觉与语义注意力相结合策略的图像描述方法及系统 |
CN109002852B (zh) * | 2018-07-11 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机可读存储介质和计算机设备 |
-
2018
- 2018-12-19 CN CN201811566589.6A patent/CN109635150B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740402A (zh) * | 2016-01-28 | 2016-07-06 | 百度在线网络技术(北京)有限公司 | 数字图像的语义标签的获取方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于深度学习的图像语义标注与描述研究;郑永哲;《中国优秀硕士学位论文全文数据库信息科技辑》;20180115;第2-4章 * |
Also Published As
Publication number | Publication date |
---|---|
CN109635150A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109635150B (zh) | 文本生成方法、装置以及存储介质 | |
CN111476284B (zh) | 图像识别模型训练及图像识别方法、装置、电子设备 | |
JP7193252B2 (ja) | 画像の領域のキャプション付加 | |
CN110363049B (zh) | 图形元素检测识别和类别确定的方法及装置 | |
CN111475622A (zh) | 一种文本分类方法、装置、终端及存储介质 | |
CN112632226B (zh) | 基于法律知识图谱的语义搜索方法、装置和电子设备 | |
CN111079374B (zh) | 字体生成方法、装置和存储介质 | |
CN111695527A (zh) | 一种蒙古文在线手写体识别方法 | |
Wu et al. | Scale-invariant visual language modeling for object categorization | |
US11373043B2 (en) | Technique for generating and utilizing virtual fingerprint representing text data | |
CN110929640A (zh) | 一种基于目标检测的宽幅遥感描述生成方法 | |
CN114328988A (zh) | 多媒体数据的特征提取方法、多媒体数据检索方法及装置 | |
CN112163114A (zh) | 一种基于特征融合的图像检索方法 | |
Nongmeikapam et al. | Handwritten Manipuri Meetei-Mayek classification using convolutional neural network | |
CN110728147A (zh) | 一种模型训练方法及命名实体识别方法 | |
CN111898704A (zh) | 对内容样本进行聚类的方法和装置 | |
KR102083786B1 (ko) | 문자열 식별 방법 및 장치, 그리고 이를 이용한 디스플레이 영상 식별 시스템 | |
CN111445545B (zh) | 一种文本转贴图方法、装置、存储介质及电子设备 | |
CN110705274B (zh) | 基于实时学习的融合型词义嵌入方法 | |
CN112307749A (zh) | 文本检错方法、装置、计算机设备和存储介质 | |
US20230237435A1 (en) | Apparatuses and methods for parsing and comparing video resume duplications | |
Li et al. | Deep neural network with attention model for scene text recognition | |
CN113095072A (zh) | 文本处理方法及装置 | |
Vijayaraju | Image retrieval using image captioning | |
CN113723111B (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 |