论文来源:ACL2017 链接:Automatically Generating Rhythmic Verse with Neural Networks
文章提出了
两种方法
用于生成有韵律的诗歌:
1. 神经网络训练语音编码,学习英文诗的隐性表示,形式和内容上的。这种方法可以学习韵脚,节奏和头韵
2. 第二种方法将生成诗歌看作一个有限制约束的问题,神经语言模型的任务是学习内容的表示和基于形式的约束加权有限状态机。
生成诗歌可被分为两个问题:
1. content,内容,即诗歌的语义 。 2. form,形式,即规则
需要关注的是what is being written(content) and how it is being written(form)
语音level的模型:
语音编码是将语言代表的信息编码到40个左右的声学的符号,可以使模型学习pronunciation的表示,包括rhyme和rhythm
但是有两个问题:(1)信息丢失,有相同发音的词cannot be perfectly reconstructed from the corresponding phonemes(相应的音素). 这表示需要额外的概率模型来根据a sequence of phonemes确定最有可能的词。(2)诗歌的多样性,可利用的很多,rhyme, rhythm, repetition意味着根据所有诗歌训练的模型,采样的诗歌可能不能有内部一致性。
因此,模型包括三步:(1)音译正交序列的语音表示 (2) 根据phonetic encoding训练语言模型(3)decoding,从语音到拼写象征
第一步:phonetic encoding,根据CMU pronunciation dictionary和letter-to-sound rules for handling out-of-vocabulary words.
第二步:LSTM
第三步:Orthographic decoding正交解码,根据语音找到最可能的词
从语音解读到正交解码可以用HMM
限制字符级(Character-level)模型:
构建一个pipleline包括一个生成模型代表content,一个判别模型代表form。This allows us to represent the problem of creating poetry as a constraint satisfaction problem, where we can modify constraints to restrict the types of poetry we generate.
Character Language Model:
首先关注内容content,用三层LSTM
Rhythm Modeling:
需要额外的分类器来约束模型,接受或者拒绝采样的lines based on the presence or absence of these features.
所有的词是等概率的
将一行诗歌看作cascade of Weighted Finite State Transducers(WFST)(这里不懂...还得继续学习)
约束模型(constraining the model):
当从模型采样词时,全部的生成序列传递给分裂期一个新词,pronunciation模型返回一个整个行within the specified meter,如果新词被拒绝,状态返回到上一次接受的行,移除拒绝的词。
主题:
生成主题模型评估方法:
Intrinsic evaluation:评估模型的质量和生成的诗歌
extrinsic evaluation:使用human annotators人类注解,和人生成的诗作对比
最后,作者将代码开源了https://github.com/JackHopkins/ACLPoetry
网友评论