文本信息生成方法、装置、存储介质及设备与流程

文档序号:15095790发布日期:2018-08-04 14:32阅读:184来源:国知局

本发明涉及互联网技术领域,特别涉及一种文本信息生成方法、装置、存储介质及设备。



背景技术:

AI(Artificial Intelligence,人工智能),是目前研究和开发用于模拟、延伸以及扩展人类智能的一门新兴科学技术。其中,AI的主要研究目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作,比如时下出现的文本信息自动生成程序便是对AI技术的一个实际应用。其中,上述提及的文本信息可涉及各种文学体裁,比如古诗、歌曲、剧本、小说等。众所周知,能否生成质量上乘的文本信息,对提升用户体验有着重要影响,因此,如何基于用户输入的关键字来自动生成文本信息,成为了时下本领域技术人员关注的一个焦点。



技术实现要素:

本发明实施例提供了一种文本信息生成方法、装置、存储介质及设备,解决了生成本文信息时效果不佳的问题。所述技术方案如下:

一方面,提供了一种文本信息生成方法,所述方法包括:

获取用于生成文本信息的第一关键字,所述第一关键字中包括一个或多个字符;

获取用于生成文本信息的目标主题信息;

根据所述目标主题信息以及所述第一关键字,生成目标文本信息。

另一方面,提供了一种文本信息生成装置,所述装置包括:

第一获取模块,用于获取用于生成文本信息的第一关键字,所述第一关键字包括一个或多个字符;

第二获取模块,用于获取用于生成文本信息的目标主题信息;

生成模块,用于根据所述目标主题信息以及所述第一关键字,生成目标文本信息。

另一方面,提供了一种文本信息生成方法,所述方法包括:

终端获取用户输入的第一关键字,所述第一关键字包括一个或多个字符;

所述终端向服务器发送网络请求,所述网络请求中包括所述第一关键字;

所述服务器在接收到所述网络请求后,获取用于生成文本信息的目标主题信息;

所述服务器根据所述目标主题信息以及所述第一关键字,生成目标文本信息;

所述服务器将所述目标文本信息发送给所述终端,所述终端展示所述目标文本信息。

另一方面,提供了一种存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的文本信息生成方法。

另一方面,提供了一种用于生成文本信息的设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述的文本信息生成方法。

本发明实施例提供的技术方案带来的有益效果是:

在获取到用户输入的由一个或多个字符组成的关键字后,本发明实施例能够根据输入的字符以及目标主题信息来生成文本信息,该种方式不但支持基于任意个数的字符来生成文本信息,而且生成的文本信息质量较优,所以该种文本信息生成方式,更具灵活性,智能性更优、效果更佳。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种文本信息生成方法所涉及的实施环境的示意图;

图2是本发明实施例提供的一种Char-RNN模型的网络结构的示意图;

图3是本发明实施例提供的一种Char-RNN模型的处理流程的示意图;

图4是本发明实施例提供的一种Char-RNN模型的展开形式的示意图;

图5是本发明实施例提供的第一种显示界面的示意图;

图6是本发明实施例提供的第二种显示界面的示意图;

图7是本发明实施例提供的一种文本信息生成方法的流程图;

图8是本发明实施例提供的一种文本信息生成方法的流程图;

图9是本发明实施例提供的一种解决OOV问题的流程示意图;

图10是本发明实施例提供的一种Char-RNN模型的展开形式的示意图;

图11A是本发明实施例提供的一种文本信息生成方法所涉及的结构示意图;

图11B是本发明实施例提供的第三种显示界面的示意图;

图11C是本发明实施例提供的第四种显示界面的示意图;

图12是本发明实施例提供的一种文本信息生成装置的结构示意图;

图13是本发明实施例提供的一种用于生成文本信息的设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

在对本发明实施例进行详细地解释说明之前,先对本发明实施例可能涉及到的一些名词进行解释说明。

QPS(Query Per Second,每秒查询率):指代对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

FIFO(First Input First Output,先入先出):即先入先出队列,FIFO是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。

RNN(Recurrent neural Network,循环神经网络):RNN的目的是用来处理序列数据。在传统的神经网络中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题是无能无力的。例如,要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。

而RNN之所以称为循环神经网路,是因为一个序列数据当前的输出与前面的输出也有关联。具体的表现形式为RNN会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再是无连接的,而是存在连接关系,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。

Char-RNN:指代字符级循环神经网络。如前所述,RNN非常擅长处理序列数据,那么对于文本信息而言,其也相当于一个序列数据,因为每句话均是由诸如单词或汉字这样的字符按照顺序组成的,所以也能够使用RNN对其进行处理,这种用于进行文本信息生成的RNN即为Char RNN。

其中,对Char RNN更为详细地介绍请参见后文描述。

LSTM(Long Short-Term Memory,长短期记忆神经网络):是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。

LSTM区别于RNN的地方主要在于:LSTM在算法中加入了一个判断信息有用与否的“处理器”,这个“处理器”作用的结构被称为cell,即LSTM cell。其中,一个LSTM cell中被放置了三扇门,分别为输入门、遗忘门和输出门。

HTML 5:指代第五代超文本标记语言。

OOV(Out Of Vocabulary,词典外词语):在本发明实施例中,OOV问题指代用户输入的用于生成文本信息的关键字未包含在词典中。

word2vec:指代一种基于神经网络求解词向量的算法。其中,word2vec也可称之为word embeddings,即词向量,其作用即是将自然语言中的字词转换为计算机可以理解的稠密向量(Dense Vector)。

下面对本发明实施例提供的文本信息生成方法所涉及的实施环境进行介绍。参见图1,其示出了本发明实施例提供的一种文本信息生成方法所涉及的实施环境的结构示意图。如图1所示,该实施环境中包括终端101以及服务器102。其中,终端101的类型包括但不限于智能手机、台式电脑、笔记本电脑、平板电脑等,本发明实施例对此不进行具体限定。

在本发明实施例中,终端101用于获取用户输入的关键字,并将获取到的关键字以网络请求的方式发送给服务器102,而服务器102用于根据终端101发送的关键字,采用改进的Char-RNN模型来生成文本信息,并将生成的文本信息返回给终端,进而由终端101将生成的文本信息展示给用户。

需要说明的是,本发明实施例提供的文本信息生成方法可用于生成古诗、歌曲、剧本、小说等等,本发明实施例对此不进行具体限定,仅需采用不同的训练样本数据进行模型训练即可。且,文本信息的语言形式既可以为中文,也可以为英文等其他语言,本发明实施例对此同样不进行具体限定,仅需采用不同语言形式的训练样本数据进行模型训练即可。

下面以生成古诗为例对上述文本信息生成方法进行举例说明。

在本发明实施例中,以技术在产品侧的落地为切入点,对基于AI技术的文本信息自动生成程序进行了主题应用层面的延伸拓展,具体如下所述:

(一)、本发明实施例可以全唐诗4万首+全宋诗28万首为训练样本数据,采用LSTM cell和三层隐藏层,来实现通过机器深度学习,支持自由写诗和藏头诗创作等。

(二)、在格律约束上,为尽量贴近古诗创作规则,本发明实施例以《平水韵》106部为范本,在softmax(分类)步骤介入候选韵脚筛选;同时,在平仄方面本发明实施例也按照古诗的规则进行严格筛选,以保证成诗效果满足古诗规范,生成的古诗的质量达到水准之上。

(三)、本发明还能够实现对古诗的主题的定向矫正和调整,具体方法如下:

对词典中与主题相关的候选主题字符进行加权处理,使得候选主题字符大概率出现在古诗的目标位置处,比如出现在古诗的开头部分,从而让古诗的上下文拥有了与主题相关的特征,借此矫正古诗的上下文,使得古诗的上下文在古诗的开头便向指定主题靠拢,这样生成的古诗的后半段便在这个语义上下文内,从而使得生成的古诗局限在指定主题内。

其中,上述词典中包含用于进行古诗生成的全部字符。而古诗的主题包括但不限于教师节、中秋节、春节、端午节、名人、重大事件等,本发明实施例对此不进行具体限定。

(四)、在本发明实施例中,为了使改进的Char-RNN模型能够按照关键字写诗,并且要求关键字出现在古诗的任意位置处而不仅局限于头部,本发明实施例同样对关键字使用候选加权的方法,实现在上下文中进行比较温柔的关键字加权处理。

(五)、由于现代汉语和古代汉语的措辞有不一致之处。因此,对于以全唐诗和全宋诗训练得到的Char-RNN模型,其用于生成古诗的词典中也局限于全唐诗和全宋诗中出现的字,存在无法满足根据任意现代汉语形势的关键字进行古诗生成的缺陷。为了解决这一问题,本发明实施例以《古代汉语字典》和《新华字典》为参考范本,分别获取古代汉语的现代释义和现代汉语的现代释义。需要说明的是,上述提及的各个字符的现代释义即指代各个字符在现代汉语中的含义。此外,本发明实施例又提供了一个word2vec模型,该word2vec模型的出现解决了OOV问题,基于古代汉语的现代释义和现代汉语的现代释义获取到了每一个单字的向量,通过寻找相似字的方式使得改进的Char-RNN模型可以支持任意现代汉语形式的关键字输入。

综上所述,本发明实施例提供的文本信息生成方法能够解决以下几个问题:

(1)、避免出现关键字和主题通过强插方式进入文本信息的现象,因为过于强硬会使得生成的文本信息涵义表达不通。

以关键字为例,强插的含义可为在文本信息的指定位置处强行指定出现关键字,比如要求在文本信息的开头2个字位置处插入关键字。

(2)、解决因为现代汉语和古代汉语用字不同的原因,不能插入任意现代汉语形式的关键字的问题。

(3)、解决了生成的文本信息形式无法控制,从字数到格律等均不能保证符合文本信息的格式要求的问题。

(4)、解决了因此深度学习算法非常耗费计算资源,从而导致的当访问量很大时服务几乎不可用或者不能即时进行审查保证文本信息质量的问题。

接下来对Char-RNN模型进行介绍。其中,让机器生成文本信息,本质上是需要一个语言模型,该语言模型可以用来评估一句话是自然语言的概率,即根据一句话中已观测到的词来预测下一个词出现的概率,也即是该语言模型要能够处理序列数据,并根据已有的序列数据,推断接下来可能的数据。在神经网络中,RNN天然适合用于处理序列数据,它可以提取任意长度序列(x(t),x(t-1),...,x(1))的摘要,选择性地精确保留过去序列的某些信息,而保留这些信息的方式则是通过RNN内部的隐藏状态。

以文本信息为古诗为例,在本发明实施例中,在进行古诗生成时使用字符级别的RNN训练了一个语言模型,用以在自然语言序列中预测一段字符的下一个字符是什么。而当用古诗做训练数据的时候,该语言模型便会学习写出与古诗相近的文本信息处来。其中,Char-RNN模型的网络结构如图2所示。在图2中,下面一行x1至x4指代输入,中间一行h0至h4为隐藏层,上面一行y1至y4为输出。

在另一个实施例中,众所周知创作古诗通常是有较为严格的格式要求的,比如一首古诗需要符合格律要求,同时还需保证行文流畅、句意优美,以及具有一定情感抒发以及主题性。而使用如图2所示的原生神经网络势必会带来功能和效果上的不足。为此,本发明实施例在原生的Char-RNN模型基础上加以改动,得到一种能够生成符合古诗格式要求、同时能够依照关键字生成古诗、且能够传递指定主题的新型算法。

在本发明实施例中,自动生成古诗的Char-RNN模型如图3所示:

针对自动写诗的场景,如前文所示,本发明实施例的Char-RNN模型使用了LSTM Cell和三层隐藏层,而训练样本数据为全唐诗4万首+全宋诗28万首。这样的Char-RNN模型可以支持自由写诗和创作藏头诗。

参见图3,输入一句话“锄禾日当午”作为输入序列,这句话中的每个字符均按照顺序进入Char-RNN模型,每个字符传入Char-RNN模型之后均能够得到一个输出,而这个输出便是这个字符在这句话中紧跟其后的一个字符,可以通过图3清晰地看到这一点。需要说明的是,一个序列中的第一个输入和最后一个输出可以有多种选择,比如在图3中将“^”作为第一个输入,而将“,”作为最后一个输出,本发明实施例对此不进行具体限定。

其中,生成文本信息的过程即是每个字符不断输入到Char-RNN模型中,然后将当前的输出作为下一次的输入,不断循环递归,直至文本信息达到一定长度。进一步地,参见图4,Char-RNN模型中包含输入单元(Input units)、输出单元(Output units)以及隐藏单元(Hidden units)。

其中,输入到输入单元的输入集可标记为{x0,x1,...,xt,xt+1,...},而输出单元输出的输出集则被标记为{y0,y1,...,yt,yt+1.,..},对于隐藏单元来说,可将其输出集标记为{s0,s1,...,st,st+1,...},而这些隐藏单元完成了最为主要的工作。在图4的左半部分中,有一条单向流动的信息流是从输入单元到达隐藏单元的,与此同时,另一条单向流动的信息流从隐藏单元到达输出单元。

在另一个实施例中,在传统的神经网络中,常常假设输入与输出之间是互相独立的,然而这在很多应用中是不切实际的,比如要想预测下一个将要出现的文本,那么上下文的作用便不容忽视。循环神经网络的设计思想即是利用这种上下文之间连续的信息,循环神经网络中“recurrent”的含义就是对序列中的每个元素都执行相同的任务,如图4中的右半部分所示,将循环神经网络展开成了一个全神经网络。

例如,对一个包含5个字符的语句,那么展开的网络便是一个五层的神经网络,每一层代表一个字符。对于该网络的计算过程如下:

1、xt表示第t步的输入。比如,x1为第二个词的one-hot向量。

其中,如图4中右半部分所示,x0为第一个词的one-hot向量。需要说明的是,使用计算机对自然语言进行处理,便需要将自然语言处理成为机器能够识别的符号,加上在机器学习过程中,因此需要将字符进行数值化,比如将任意一个字符均表示成一个one-hot向量。

2、st为隐藏层的第t步的状态,它是循环神经网络的记忆单元。st根据当前输入层的输出与上一步隐藏层的状态进行计算。

st=f(Uxt+Wst-1),其中f通常为非线性的激活函数,如tanh或ReLU。

需要说明的是,在计算s0即第一个字符的隐藏层状态时,需要用到s-1,但是其并不存在,在实现中一般将其置为0向量。

3、ot是第t步的输出,ot=softmax(Vst)。

需要说明的是,隐藏层状态st是网络的记忆单元,st可包含前面所有步的隐藏层状态,而输出层的输出ot可仅与当前步的st有关。在实践中,为了降低网络的复杂度,往往st仅包含前面若干步而非所有步的隐藏层状态。

在另一个实施例中,在传统的神经网络中,每一个网络层的参数是不共享的。而在循环神经网络中,每输入一步,每一层各自均共享参数U、V、W。其中,循环神经网络中的每一步均在做相同的事情,仅是输入不同而已,因此大大地降低了网络中需要学习的参数。换一种表达方式,传统的神经网络的参数是不共享的,并不是表示对于每个输入有不同的参数,而是在将网络展开变成多层的网络后,如果这是一个多层的传统神经网络,那么xt到st之间的U矩阵与xt+1到st+1之间的U矩阵是不同的,而在循环神经网络中却是一样的。同理,对于s层与s层之间的W矩阵、s层与o层之间的V矩阵在循环神经网络也是一样的。

需要说明的是,对于除了古诗以外的其他类型文本信息来说,上述Char-RNN模型也是同样适用的,本发明实施例对此不进行具体限定。

在另一个实施例中,下面站在产品侧角度对本发明实施例提供的文本信息生成方法进行举例说明。

以文本信息为古诗为例,本发明实施例提供的古诗生成方法可应用于教师节等节日场景中。如图5和图6所示,本方案可选择HTML5动画为展示场景,将自动生成古诗技术与教师节这一主题进行有机结合,通过与用户进行互动的形式,使用户拥有更真切、更新奇、更有趣的人工智能体验。详细的写诗流程可如下所示:

(1)情境渲染:在社交应用中,用户可选择打开有关于自动写诗的HTML5链接。

其中,社交应用支持单人或多人参与,支持用户发送语音、视频、图片和文字等。实质上,社交应用为人与人之间提供了一个信息交互平台。这个信息交互平台具体是指一种通过社交关系和/或共同兴趣将人与人之间联系起来的网络架构,而用户通过社交应用可以进行日常交流以及处理一些日常事务。其中,每个用户可以拥有用于为该信息交互平台上其他用户所辨识的网络身份。

在信息交互平台上,不同用户之间可以通过互相确认的方式以建立社交关系,例如,互相加好友或互相关注等。当两个用户建立了社交关系后,他们成为彼此的社交网络联系人。一组用户可以通过自行选择的方式,以形成具有彼此之间的社交关系,从而形成一个社交群组。该群组内的每个成员都是该群组内所有其他成员的社交网络联系人。

(2)字符识别:如图5所示,用户可在用于输入关键字的页面上进行关键字输入。

在图5中,用户既可以通过手写方式输入关键字,也可通过键盘方式输入关键字,本发明实施例对此不进行具体限定。以手写为例,用户手写的关键字经自动识别,便可成为AI作诗的原始素材。例如,用户在手写一个“松”字后,该字便会被终端识别为进行古诗创造的关键字。

(3)AI自动写诗:采集到用户输入的关键字,利用自动生成古诗技术,自动创作一首包含该关键字的古诗。

需要说明的是,在本发明实施例中,终端通过社交应用可仅进行关键字识别,而具体的自动写诗步骤则交由服务器进行处理。比如终端向服务器发送包括关键字在内的网络请求,以请求服务器根据该关键字进行古诗创作,本发明实施例对此不进行具体限定。

在画面上,如图6所示,生成的古诗中第二句的第二个字便为关键字“松”。此外,古诗的字体可为楷体、隶书或宋体等等,本发明实施例对此不进行具体限定。且在图6中还可以添加用户的身份标识作为落款,本发明实施例对此同样不进行具体限定。另外,终端还可支持用户直接转发创作的古诗或长按保存图片,以便将生成的古诗进行分享或传播。

在另一个实施例中,若用户对当前生成的古诗不满意,或者想重新体验古诗创作,则本发明实施例还支持用户再次触发古诗生成。比如,用户可再次进行关键字提交,以生成新的古诗。

下面从技术层面对本发明实施例提供的文本信息生成方法进行详细地解释说明。图7是本发明实施例提供的一种文本信息生成方法的流程图。以文本信息为古诗为例,参见图7,本发明实施例提供的方法包括:

701、终端获取用户输入的第一关键字,并向服务器发送网络请求,该网络请求中包括第一关键字。

在本发明实施例中,将用户输入的关键字称之为第一关键字。其中,第一关键字即为用户在诸如图5所示的界面中输入的字符。

需要说明的第一点是,除了手写输入形式外,还可采取通过键盘输入第一关键字的方式,本发明实施例对此不进行具体限定。

需要说明的第二点是,第一关键字可以为任意合法的现代汉语字符,且第一关键字的字数既可为1个,也可为多个,即第一关键字中包括一个或多个字符。本发明实施例支持基于任意个数的字符来进行文本信息的生成。

另外,在本发明实施例中具体的写诗过程通常是由服务器来完成的,所以终端还需将第一关键字发送给服务器,以使服务器基于第一关键字生成古诗。其中,终端可向服务器发送网络请求,以在该网络请求中携带第一关键字,该网络请求具体可为HTML5形式,本发明实施例对此不进行具体限定。

702、服务器在接收到该网络请求后,获取用于生成文本信息的目标主题信息。

以古诗为例,生成的古诗通常是围绕某一主题展开的,这个主题在本文中称之为目标主题信息。在本发明实施例中,生成古诗时还需参考主题信息。而针对按照主题信息进行写诗的过程来说,主题信息即指代古诗整体在阐述一个主题,古诗的含义和中心思想围绕某一主题展开,比如“水调歌头”便是围绕中秋节这一主题。

其中,目标主题信息可由开发人员事先预置,或者也可由服务器根据日期信息来自行确定,比如若当前时间临近中秋节,那么服务器便可将目标主题信息确定为中秋节,而若当前时间临近春节,那么服务器可将目标主题信息确定为春节,本发明实施例对此不进行具体限定。

703、服务器根据目标主题信息以及第一关键字,生成目标文本信息。

在本发明实施例中,服务器在根据主题信息以及关键字生成文本信息时,通常还会执行下述判断输入的关键字是否存在于词典中的步骤,即参见图8,本发明实施例还包括下述几个步骤:

703(a)、服务器判断第一关键字是否存在于词典中,该词典中包含的字符用于生成文本信息。

其中,词典在本发明实施例中指代用于生成古诗的字符库。在词典中可包含数千个古诗中出现的字符。由于本发明实施例旨在可以基于任意合法的现代汉语字符来生成古诗,而现代汉语和古代汉语在措辞或释义上是不太一致的,尤其是对于以全唐诗和全宋诗训练得到的Char-RNN模型来说,其用于生成古诗的词典中仅限于古诗中出现的字符,可能存在无法满足基于任意合法现代汉语字符进行生成古诗的需求,这即为前文提及的OOV问题。

为了解决OOV问题,本发明实施例采取了下述处理方式:获取第一类型数据中包含的每一个字符的释义;获取第二类型数据中包含的每一个字符的释义;根据词向量(word2vec)模型,对第一类型数据以及第二类型数据中各个字符的释义进行向量转换操作,得到各个字符的释义的向量。

其中,上述第一类型数据可为“古代汉语字典”,上述第二类型数据可为“新华字典”,上述释义即指代各个字符的现代释义,这样基于第一类型数据以及第二类型数据便可得到古代汉语的现代释义以及现代汉语的现代释义。

在此基础上,本发明实施例还训练了一个word2vec模型,这一word2vec模型通过对两个字典中的全部字符进行sent2vec操作,便可以得到每一个字符的向量。而由于古代汉语字符和现代汉语字符的向量是采用同一个word2vec模型得到的,所以二者的向量在同一语义空间下是可以计算距离以及进行比较的。即,本发明实施例通过向量之间的距离,来为上述至少一个字符寻找与其适配的字符,具体的说明过程请参见下述步骤703(b)。

703(b)、若第一关键字中的至少一个字符未存在于用于生成文本信息的词典中,则服务器在该词典中查找与至少一个字符相似的指定字符,并以指定字符替换至少一个字符,得到第二关键字,并根据第二关键字和目标主题信息,生成第一文本信息。

以第一关键字中包括一个字符,char指代第一关键字,char’指代第二关键字为例,针对存在OOV问题的char,本发明实施例使用上述word2vec模型,寻找到与char最接近的char’,并使用char’生成古诗,之后再在生成的古诗中使用char来替换char’,从而完成基于char的古诗生成。由于char’是和char的释义最接近的字符,所以在语义上保证了通顺。具体的执行流程可如图9所示:

(a)、处理流程开始,用户输入字符char。

(b)、判断字符char是否存在OOV问题;若不存在,则执行步骤(c);若存在,则执行步骤(d)至(e)。

(c)、若字符char不存在OOV问题,则基于字符char生成古诗。

(d)、若字符char存在OOV问题,则寻找字典中最接近char的char’,基于字符char’生成古诗。

(e)、在生成的古诗中将char’替换回char。

(f)、将生成的古诗返回给用户进行展示。

总结来说,在用户生成古诗的词典中查找与上述至少一个字符相似的指定字符时,具体涉及以下技术步骤:基于word2vec模型,获取上述至少一个字符的释义的第一向量;在词典中查找与第一向量在距离上最接近的第二向量;获取第二向量对应的释义,并将该释义所表征的字符确定为上述指定字符。其中,本段落中提及的释义与前文一致,也是指代字符的现代释义。

举一个例子来说,“鑫”字在现代汉语中属于常用字,但是“鑫”字在用于生成古诗的词典中却是存在OOV问题的,即作为训练样本数据的古诗中是没有出现“鑫”字的。采用word2vec模型寻找与“鑫”字最接近的字,得到“富”字。在“新华字典”中“鑫”字的现代释义是多金兴盛,在“古代汉语字典”中“富”字的现代释义为财产多、富裕、富足,二者的含义基本一致,所以采用“富”字生成古诗,而在生成的古诗中再将“富”替换回“鑫”,从而解决OOV的问题。

以上列举了第一关键字中包括一个字符的情形,对于第一关键字中包括多个字符的情形与上述处理方式类似,此处不再赘述。处理原则即为将不存在于词典中的字符全部进行替换,并基于字符替换后得到的第二关键字进行文本信息生成。此外,若第一关键字中的每一个字符均存在于词典中,则服务器直接根据目标主题信息以及第一关键字生成古诗,详见下述步骤703(d)。

在另一个实施例中,关键字作为与用户进行互动的一种形式,生成的古诗中是要包含输入的关键字的。而服务器在确定用于进行古诗生成的关键字后,便会通过改进的Char-RNN模型来基于目标主题信息和确定的关键字进行写诗。

在本发明实施例中,古诗生成的过程中,古诗本身是维护了一个上下文变量的,其保存了从古诗开头到当前的上下文的语义信息,为了让古诗的上下文能够局限在指定主题内(比如教师节),本发明实施例采用了与主题相关的字符的候选加权方式,比如在古诗的开头便对与主题相关的字符进行加权处理,从而使得与主题相关的字符依概率出现在古诗的开头,借此矫正古诗的上下文,使得古诗的上下文在古诗的开头便向指定主题靠拢,这样生成的古诗的后半段便在这个上下文内,从而实现了将生成的古诗局限在指定主题内。

其中,对与主题相关的字符进行加权处理的具体方式如下所述:根据目标主题信息在用于生成古诗的词典中确定候选主题字符;在生成古诗中目标位置处的字符时,对候选主题字符进行加权处理。

需要说明的第一点是,候选主题字符即为上述提及的与目标主题信息相关的字符。以目标主题信息为教师节为例,则候选主题字符可为老、师、先、生、恩、情等。上述目标位置可为古诗开头,比如最开始的第一个字或最开始的前两个字,本发明实施例对此不进行具体限定。

需要说明的第二点是,在对候选主题字符进行加权处理时,具体是将候选主题字符的权重值进行加大,比如由0.3加大至0.7。而在进行加权处理后,在生成目标位置处的字符时,候选主题字符便更有可能被softmax选中。换一种表达方式,候选主题字符在目标位置处出现的概率大于其他字符在目标位置处出现的概率。

针对按照关键字写诗过程来说,本发明实施例规定关键字出现在古诗的任意位置,而不限于开头位置。在循环神经中,可以在古诗中的任意位置强行指定关键字,但是这样对上下文进行强行扭转可能影响生成的古诗的质量或者效果,对此,本发明实施例同样使用对关键字进行候选加权的方法,实现比较温柔的插入关键字,而通过对关键字进行一定比例的加权,使得其能够更温柔地依上下文出现在生成的古诗中。

具体地,以前文提及的第一关键字为例,则在生成古诗中任意位置处的字符时,本发明实施例会对第一关键字进行加权处理,使其更可能被softmax选中,从而相对于词典中的其他字符而言更可能进入古诗。

详细来说,参见图10,原生的Char-RNN模型的输出为y=Softmax(Vh+c),如图10所示,上述预测值y的公式中并没有考虑某一个特定字符的权重,对此,本发明实施例将预测值y修正为y=Softmax(Vh+c+boosting)。其中,boosting即为增加的权重向量。即,对于用户输入的关键字,通过加大权重,使其更可能被softmax选中,从而更可能进入古诗。

综上所示,本发明实现了采用改进的Char-RNN模型,来根据加权处理后的候选主题字符、词典中的其他字符和加权处理后的第一关键字,生成第一文本信息;其中,其他字符为词典中除了候选主题字符和第一关键字之外的字符。

在另一个实施例中,本发明实施例还会对古诗的格律方面进行控制,以保证生成的古诗符合正常古诗的格式要求。

众所周知,古诗有其格律要求在,比如韵脚与平仄等在古诗中是有明确的规定的,然而训练出来的Char-RNN模型写出来的古诗有时候可能并不符合格律要求。对此,本发明实施例使用《平水韵》106部对古诗进行了格律方面的控制。其中,格律指代一系列中国古代诗歌独有、在创作时所应遵守的格式、音律等方面的准则。以格律诗为例,要求篇有定句(每首八句),句有定字(五字或七字),字有定声(平仄相对),联有定对(中间两联对仗)。

本发明实施例在进行格律控制时,具体方式是在softmax步骤生成候选字符的时候进行韵脚筛选,同样在平仄方面本发明实施例也对候选字符进行了筛选。

其中,韵脚是韵文(诗、词、歌、赋等)句末押韵的字。一篇(或首)韵文的部分(或全部)句子的最后一个字,采用韵腹和韵尾相同的字,这便叫做押韵。因为押韵的字一般都放在一句的最后,故称“韵脚”,引这些字的韵母要相似或相同。以《平水韵》106部为例,每个韵部均包含若干字,用作格律诗用韵,针对一首格律诗,其韵脚的字必须出自同一韵部,不能出韵、错用。

而平仄是中国诗词中用字的声调,“平”指平直,“仄”指曲折。在古诗中平仄的运用有一定格式,比如五言律诗有以下四种基本句式:仄仄平平仄(仄起仄收式)、平平仄仄平(平起平收式)、平平平仄仄(平起仄收式)、仄仄仄平平(仄起平收式)。

总结来说,在对生成的古诗进行格律方面的控制时,本发明实施例的处理过程可梳理为:在生成古诗中任意位置处的字符时,在softmax步骤获取格律控制规则并按照格律控制规则对与该位置匹配的字符进行筛选,从而得到位于该位置处的目标字符。重复执行上述生成任意位置处的目标字符的过程,便可得到古诗。

703(c)、服务器将第一文本信息中的第二关键字替换为第一关键字,得到目标文本信息。

本发明实施例将基于上述第一关键字生成的古诗称之为第一文本信息。由于用户想要获得包括上述第二关键字的古诗,所以还需将第一文本信息中出现的第二关键字再替换回第一关键字。

703(d)、若第一关键字中的每一个字符均存在于词典中,则服务器根据第一关键字和目标主题信息,生成目标文本信息。

本步骤的文本信息生成方式与上述步骤703(b)同理,此处不再赘述。

704、服务器将目标文本信息发送给终端,终端展示目标文本信息。

在本发明实施例中,终端可通过社交应用来展示目标文本信息。另外,终端在通过社交应用展示目标文本信息时,还可添加用户ID以表明用户身份。另外,本发明实施例还可提供诸如“重做一首”的按键,以便于用户在对当前展示的目标文本信息不满意时,可以触发重新写诗一首的流程。

进一步地,本发明实施例还可以在图6所示的页面上展示一个有关于自动写诗的图形标识码,以便于用户通过识别该图形标识码进行写诗或者分享该图形标识码给其他用户,本发明实施例对此不进行具体限定。

在另一个实施例中,对本发明实施例提供的文本信息生成方法的线上架构进行一下介绍说明。

上述基于Char-RNN模型进行古诗生成是一个CPU(Central Processing Unit,中央处理器)密集的行为,在高QPS的场景下可能遇到线上服务器不够而导致服务崩溃的情况,同时在进行扩容后可能需要机器数量也过多,出于风险控制和成本控制的考虑,本发明试试可仅考虑关键字为单字的写诗场景,由于中文单字有限的场景特点,所以可使用离线模型生成古诗+Redis中间存储的架构,以节省计算资源,具体架构如图11A所示。

需要说明的是,除了关键字为单字的写诗场景,本发明实施例还支持关键字为至少两个字的写诗场景,此处仅是以单字为例进行举例说明。

参见图11A,本发明实施例维护了一个Redis用于存储预先生成的古诗以及线上请求的关键字分布。其中,本发明实施例将预先生成的古诗称之为古诗库,而关键字分布在是表明了用户输入的关键字的分布情况。基于图11A所示的关键字分布情况可以得出,“师”字被输入了2879次,而“恩”字被输入了1891次,“他”字被输入了123次。

在另一个实施例中,在自动写诗服务上线前,服务器可预先按照常用字分布来对新华字典中所有非敏感字生成古诗,且生成的古诗数量依常用字的使用频率分布。从技术层面来讲,服务器会预先确定多个常用字符,且对于每一个个常用字符,服务器会按照每一个常用字符的使用频率,来为每一个常用字符生成古诗。其中,一个字符的使用频率越高,该字符对应的古诗数量也就越多。

而在自动写诗服务上线后,服务器在接收到终端发送的关键字后,会从古诗库中拉取与该关键字相应的多首候选古诗,并从这些候选古诗中进行目标古诗的选取。

即,前文步骤703(b)的根据第二关键字和目标主题信息,生成第一文本信息,还可以表述成下述过程:获取与第二关键字匹配的多项文本信息;根据目标主题信息,在与第二关键字匹配的多项文本信息中进行文本信息筛选,进而得到第一文本信息。

另外,本发明实施例还可依据用户的输入关键字情况来更新关键字分布。比如,服务器定期获取关键字分布情况,并按照关键字分布情况生成古诗。这样便可实现请求越多的关键字,古诗库里面的候选古诗的数量便越多,从而减小了返回重复古诗的可能性。

总结来讲,服务器每当获取到用户输入的一个关键字后,便可更新一次当前的关键字分布信息,其中该关键字分布信息中记录了请求的各个关键字以及各个关键字的输入次数;且,服务器还可周期性地获取当前的关键字分布信息,并根据当前的关键字分布信息,分别为每一个关键字生成至少一项文本信息。

另外,古诗库还是一个FIFO队列,最早生成的古诗越会被最先清理掉,从而实现进一步减小重复返回古诗的可能性。即,对于任意一个关键字,服务器会按照先入先出规则,周期性地对这个关键字对应的多项文本信息进行清理。

可扩展的是,还可以使用生成对抗网络(GAN)来代替Char-RNN模型,或者,还可以给Char-RNN模型加入Attention机制以增强模型表示能力,或者还可以采用遗传算法等启发式算法,将自动写诗问题看做状态空间搜索问题,本发明实施例对此均不作具体限定。

综上所述,本发明实施例提供的文本信息生成方法具有下述有益效果:

(1)、通过对与主题相关的字符以及用户输入的关键字进行候选加权,避免了出现关键字和主题通过强插方式进入古诗的现象,使得生成的古诗涵义表达更加顺畅,质量以及效果更佳。

(2)、解决了因现代汉语和古代汉语释义或者措辞不同的原因,而不能插入任意现代汉语形式的关键字的问题,且关键字中包括的字符个数既可为一个也可为多个,即本发明实施例支持输入任意现代汉语形式和任意字符个数的关键字。

(3)、生成的古诗形式可控,符合古诗的格律要求,确保了生成古诗的质量和水准。

即本发明实施例提供的文本信息生成方法,能够使得关键字以及候选主题字符平滑地插入生成的古诗中,且可以生成符合格律要求的古诗,且可以支持海量数据高并发,节省硬件压力。

在另一个实施例中,服务器生成的文本信息除了古诗形式以外,还可以为对联形式。下面以生成对联为例,对本发明实施例提供的文本信息生成方法进行举例说明。

与前文所述的古诗生成方式类似,针对对联来说,这项服务也可通过点击链接信息或者扫描图形标识码来触发。其中,图形标识码可为二维码或条形码等,本发明实施例对此不进行具体限定。

以扫描图形标识码触发生成对联的方式为例,终端在扫描用于触发生成对联的图形标识码后,终端上会弹出一个诸如图11B所示的关键字输入页面,用户在这个页面上便可输入关键字。

以选中链接信息触发生成对联的方式为例,当终端接收到他人分享或者系统推送的链接信息后,可向用户显示该链接信息,而终端在检测到用户对该链接信息的选中操作后,也会显示一个诸如图11B所示的关键字输入页面,同样用户在这个页面上也可输入关键字。

需要说明的是,终端在显示关键字输入页面之前,还可额外播放一段有关于生成对联服务的动画,本发明实施例对此不进行具体限定。另外,除了通过扫描图形标识码或者选中链接信息的方式触发生成对联外,还可采取其他方式,本发明实施例对此不进行具体限定。

在本发明实施例中,针对生成对联服务,具体的生成方式同前文所述的古诗生成方式类似,不同点在于生成的古诗至少要4句,而对联仅需生成上联和下联即可。且由于对联比较讲究对仗,因此输入的关键字通常为大于等于2个。

以将用户输入的关键字称之为第一关键字为例,则若第一关键字中包括2个字符,那么服务器在接收到终端发送的网络请求后,会先根据第一关键字中的第一部分字符、格律控制规则以及主题信息生成上联文本,其中第一部分字符可为2个关键字中的第一个关键字。比如用户输入了“未来”二字,那么“未”字便为第一部分字符。

之后,服务器可再根据第一关键字中的第二部分字符、上联文本、格律控制规则以及主题信息生成下联文本,其中第二部分字符为第一关键字中除了第一部分字符之外的其他字符。继续以“未来”二字为例,则“来”字便为第二部分字符。

在生成上联文本和下联文本后,服务器便可将这一上联文本和下联文本作为生成的对联返回给终端,以供终端展示给用户。

下面以一个具体例子对上述对联的生成过程进行描述。如图11C所示,用户输入的关键字为“未来”2字,则服务器生成的上联可为“未登瑶池宴”,下联可为“来成蟠桃仙”。需要说明的是,“未”字和“来”字除了出现在上联和下联的首字位置之外,还可出现在其他任意位置,本发明实施例对此不进行具体限定。

另外,本发明实施例还可为生成的对联匹配一个横联(也称为横批)。比如为上述生成的对联匹配一个“盛世新春”的横联。在本发明实施例中,对于一个主题来说,与其相关的横联数目众多,比如针对春节这一主题来说,横联包括但不限于盛世新春、狗年大吉、五福临门等等。其中,与一个对联匹配的横批,既可由服务器随机匹配,也可由服务器基于上下联的语义来匹配,本发明实施例对此不进行具体限定。

图12是本发明实施例提供的一种文本信息生成装置的结构示意图。参见图12,该装置包括:

第一获取模块1201,用于获取用于生成文本信息的第一关键字,所述第一关键字包括一个或多个字符;

第二获取模块1202,用于获取用于生成文本信息的目标主题信息;

生成模块1203,用于根据所述目标主题信息以及所述第一关键字,生成目标文本信息。

本发明实施例提供的装置,在获取到用户输入的由一个或多个字符组成的关键字后,能够根据输入的字符以及目标主题信息来生成文本信息,即本发明实施例不但支持基于任意个数的字符来生成文本信息,而且生成的文本信息质量较优,所以该种文本信息生成方式,更具灵活性,智能性更优、效果更佳。

在另一个实施例中,生成模块,用于当所述第一关键字中的至少一个字符未存在于词典中时,在所述词典中查找与所述至少一个字符相似的指定字符,并以所述指定字符替换所述至少一个字符,得到第二关键字,所述词典中包括的字符用于生成文本信息;根据所述第二关键字和所述目标主题信息,生成包括所述第二关键字的第一文本信息;将所述第一文本信息中的所述第二关键字替换为所述第一关键字,得到与所述第一关键字匹配的所述目标文本信息。

在另一个实施例中,生成模块,用于根据所述目标主题信息在所述词典中确定候选主题字符;在生成所述目标文本信息中目标位置处的字符时,对所述候选主题字符进行加权处理;在生成所述目标文本信息中任意位置处的字符时,对所述第一关键字进行加权处理;根据加权处理后的所述候选主题字符、所述词典中的其他字符和加权处理后的所述第一关键字,生成所述目标文本信息;其中,所述其他字符为所述词典中除了所述候选主题字符和所述第一关键字之外的字符。

在另一个实施例中,所述候选主题字符在所述目标位置处出现的概率大于所述其他字符在所述目标位置处出现的概率,所述目标位置为待生成的文本信息的开头位置。

在另一个实施例中,生成模块,用于在根据所述目标主题信息以及所述第一关键字生成所述目标文本信息中任意位置处的字符时,获取格律控制规则;按照所述格律控制规则,对与所述任意位置匹配的字符进行筛选,得到位于所述任意位置处的目标字符;重复执行上述生成所述任意位置处的目标字符的过程,得到所述目标文本信息。

在另一个实施例中,所述装置还包括:

第三获取模块,用于获取第一类型数据中包含的每一个字符的释义;获取第二类型数据中包含的每一个字符的释义;

处理模块,用于根据词向量模型,对所述第一类型数据以及所述第二类型数据中各个字符的释义进行向量转换操作,得到所述各个字符的释义的向量;

所述生成模块,还用于基于所述词向量模型,获取所述至少一个字符的释义的第一向量;在所述词典中查找与所述至少一个字符在距离上最接近的第二向量;获取所述第二向量对应的释义,并将所述释义所表征的字符确定为所述指定字符。

在另一个实施例中,生成模块,用于在已生成的文本信息中,获取与所述第一关键字匹配的至少一项文本信息;根据所述目标主题信息,在与所述第一关键字匹配的至少一项文本信息中进行文本信息筛选,得到所述目标文本信息。

在另一个实施例中,所述生成模块,还用于在获取所述第一关键字之前,确定至少一个常用字符;对于所述至少一个常用字符中的任意一个字符,按照所述任意一个字符的使用频率,为所述任意一个字符生成至少一项文本信息;其中,所述任意一个字符的使用频率越高,所述任意一个字符对应的文本信息数量越多。

在另一个实施例中,所述装置还包括:

更新模块,用于每当获取到用于生成文本信息一个关键字后,更新一次当前的关键字分布信息,所述关键字分布信息中记录了请求的各个关键字以及所述各个关键字的输入次数;

所述生成模块,还用于周期性地获取当前的关键字分布信息,并根据当前的关键字分布信息,分别为每一个关键字生成至少一项文本信息。

在另一个实施例中,所述装置还包括:

清理模块,用于对于任意一个关键字,按照先入先出规则,周期性地对所述任意一个关键字的至少一项文本信息进行清理。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的文本信息生成装置在生成文本信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的文本信息生成装置与文本信息生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图13是本发明实施例提供的一种用于生成文本信息的设备的结构示意图,该设备1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1301和一个或一个以上的存储器1302,其中,所述存储器1302中存储有至少一条指令,所述至少一条指令由所述处理器1301加载并执行以实现上述各个方法实施例提供的文本信息生成方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述实施例中的文本信息生成方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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