本溪棋牌

本溪棋牌|7383棋牌游戏中心|千炮捕鱼怎么赚钱

注册
登录机器人系统
登录在线客服系统

机器写诗

2018-08-03 15:04

基于传统方法的诗歌生成


诗歌是人类文学皇冠上的明珠。我国自《诗经》以后,两千年来的诗篇灿若繁星。让机器自动生成诗歌,一直是人工智能领域一个有挑战性的工作。机器诗歌生成的工作,始于20世纪70年代。传统的诗歌生成方法,主要有以下几种:


基于深度学习技术的诗歌生成


传统方法非常依赖于诗词领域的专业知识,需要专家设计大量的人工规则,对生成诗词的格律和质量进行约束。同时迁移能力也比较差,难以直接应用到其他文体(唐诗,宋词等)和语言(英文,日文等)。随着深度学习技术的发展,诗歌生成的研究进入了一个新的阶段。


RNNLM


基于RNN语言模型[4]的方法,将诗歌的整体内容,作为训练语料送给RNN语言模型进行训练。训练完成后,先给定一些初始内容,然后就可以按照语言模型输出的概率分布进行采样得到下一个词,不断重复这个过程就产生完整的诗歌。Karpathy有一篇文章,讲的很详细:http://karpathy.github.io/2015/05/21/rnn-effectiveness/


Chinese Poetry Generation with Recurrent Neural Networks


RNNPG模型[5],首先由用户给定的关键词生成第一句,然后由第一句话生成第二句话,由一,二句话生成第三句话,重复这个过程,直到诗歌生成完成。模型的模型由三部分组成:

Convolutional Sentence Model(CSM):CNN模型,用于获取一句话的向量表示。

Recurrent Context Model(RCM):句子级别的RNN,根据历史生成句子的向量,输出下一个要生成句子的Context向量。

Recurrent Generation Model(RGM):字符级别RNN,根据RCM输出的Context向量和该句之前已经生成的字符,输出下一个字符的概率分布。解码的时候根据RGM模型输出的概率和语言模型概率加权以后,生成下一句诗歌,由人工规则保证押韵。

模型结构如下图:

模型生成例子如下图:


Chinese Song Iambics Generation with Neural Attention-based Model


模型[6]是基于attention的encoder-decoder框架,将历史已经生成的内容作为源语言序列,将下一句要生成的话作为目标语言序列。需要用户提供第一句话,然后由第一句生成第二句,第一,二句生成第三句,并不断重复这个过程,直到生成完整诗歌。 基于Attention机制配合LSTM,可以学习更长的诗歌,同时在一定程度上,可以提高前后语义的连贯性。

模型结构如下图:

模型生成例子如下图:


Chinese Poetry Generation with Planning based Neural Network


模型[8]是一个端到端的模型,不需要专家领域知识。它试图模仿人类写作前先规划一个写作大纲的过程。整个诗歌生成框架由两部分组成:规划模型和生成模型。

规划模型:将代表用户写作意图的Query作为输入,生成一个写作大纲。写作大纲是一个由主题词组成的序列,第i个主题词代表第i句的主题。

生成模型:基于encoder-decoder框架。有两个encoder,其中一个encoder处理主题词,另外一个encoder处理历史生成的句子,decoder负责生成下一句话。decoder生成的时候,利用Attention机制,对主题词和历史生成内容的向量一起做打分,由模型来决定生成的过程中各部分的重要性。

前面介绍的几个模型,用户的写作意图,基本只能反映在第一句,随着生成过程往后进行,后面句子和用户写作意图的关系越来越弱,就有可能发生主题漂移问题。而规划模型可以使用户的写作意图直接影响整首诗的生成,因此在一定程度上,避免了主题漂移问题,使整首诗的逻辑语义和情感更为连贯。

总体框架图如下:


生成模型框架图如下:


诗歌图灵测试例子: