論文來源:ACL2017 ? ?鏈接:Automatically Generating Rhythmic Verse with Neural Networks
文章提出了
兩種方法
用于生成有韻律的詩歌:
1. 神經(jīng)網(wǎng)絡(luò)訓(xùn)練語音編碼拣挪,學(xué)習(xí)英文詩的隱性表示伞广,形式和內(nèi)容上的。這種方法可以學(xué)習(xí)韻腳栅螟,節(jié)奏和頭韻
2. 第二種方法將生成詩歌看作一個(gè)有限制約束的問題寝贡,神經(jīng)語言模型的任務(wù)是學(xué)習(xí)內(nèi)容的表示和基于形式的約束加權(quán)有限狀態(tài)機(jī)。
生成詩歌可被分為兩個(gè)問題:
1. content,內(nèi)容堰酿,即詩歌的語義 。 ? ? ? 2. form张足,形式触创,即規(guī)則
需要關(guān)注的是what is being written(content) and how it is being written(form)
語音level的模型:
語音編碼是將語言代表的信息編碼到40個(gè)左右的聲學(xué)的符號(hào),可以使模型學(xué)習(xí)pronunciation的表示为牍,包括rhyme和rhythm
但是有兩個(gè)問題:(1)信息丟失哼绑,有相同發(fā)音的詞cannot be perfectly reconstructed from the corresponding phonemes(相應(yīng)的音素). 這表示需要額外的概率模型來根據(jù)a sequence of phonemes確定最有可能的詞。(2)詩歌的多樣性碉咆,可利用的很多抖韩,rhyme, rhythm, repetition意味著根據(jù)所有詩歌訓(xùn)練的模型,采樣的詩歌可能不能有內(nèi)部一致性疫铜。
因此茂浮,模型包括三步:(1)音譯正交序列的語音表示 (2) 根據(jù)phonetic encoding訓(xùn)練語言模型(3)decoding,從語音到拼寫象征
第一步:phonetic encoding壳咕,根據(jù)CMU pronunciation dictionary和letter-to-sound rules for handling out-of-vocabulary words.
第二步:LSTM
第三步:Orthographic decoding正交解碼席揽,根據(jù)語音找到最可能的詞
從語音解讀到正交解碼可以用HMM
限制字符級(jí)(Character-level)模型:
構(gòu)建一個(gè)pipleline包括一個(gè)生成模型代表content,一個(gè)判別模型代表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:
首先關(guān)注內(nèi)容content幌羞,用三層LSTM
Rhythm Modeling:
需要額外的分類器來約束模型,接受或者拒絕采樣的lines based on the presence or absence of these features.?
所有的詞是等概率的
將一行詩歌看作cascade of Weighted Finite State Transducers(WFST)(這里不懂...還得繼續(xù)學(xué)習(xí))
約束模型(constraining the model):
當(dāng)從模型采樣詞時(shí)竟稳,全部的生成序列傳遞給分裂期一個(gè)新詞属桦,pronunciation模型返回一個(gè)整個(gè)行within the specified meter熊痴,如果新詞被拒絕,狀態(tài)返回到上一次接受的行聂宾,移除拒絕的詞愁拭。
主題:
模型評(píng)估方法:
Intrinsic evaluation:評(píng)估模型的質(zhì)量和生成的詩歌
extrinsic evaluation:使用human annotators人類注解,和人生成的詩作對(duì)比
最后亏吝,作者將代碼開源了https://github.com/JackHopkins/ACLPoetry