楊泰康 楊婉霞 劉燕 胡智喻 王巧珍 徐明杰



摘? 要:中國古詩因其嚴謹?shù)钠截啤⒀喉嵔Y構,精練傳神的用詞成為文本自動生成領域的挑戰(zhàn)問題之一。本文基于雙向多層轉換編解碼的空間向量,結合Attention機制建立了循環(huán)神經(jīng)網(wǎng)絡結構的詩自動生成模型。為解決自動生成詩的主題發(fā)散性問題,模型在生成每句詩時均增加了關鍵詞約束。此外,為了增強詩句之間的對仗性和語義的連貫性,模型雙向多層轉換編解碼的詞嵌入式輸入添加了詩句的對齊向量。實驗結果表明,相比于以詞轉換為向量的詞嵌入式的詩自動生成模型,本文設計的基于BERT的對齊向量輸入模型生成的詩不僅在機器評估和人工評估中性能較優(yōu),而且生成詩句相鄰句子的相關性也最好。這也進一步說明,當模型的輸入向量能充分表達詩詞的格式、內(nèi)容和語義時,雙向多層轉換編解碼的向量表示,即Attention機制+循環(huán)神經(jīng)網(wǎng)絡構建的詩生成模型可以生成較接近人工作的詩。
關鍵詞:Attention機制;雙向多層轉換編解碼;詩;自動生成;循環(huán)神經(jīng)網(wǎng)絡
中圖分類號:TP391? ? ?文獻標識碼:A
文章編號:2096-1472(2021)-04-15-07
Abstract: Chinese ancient poems have become one of the challenges in the field of automatic text generation because of their tonal patterns, rhyming structure, and vivid words. This paper proposes to establish an automatic poem generation model with a recurrent neural network structure. This model is combined with Attention and is based on space vector of two-way multi-layer conversion codec. In order to solve the problem of divergence of automatically generated poems, the model adds keyword constraints when generating each poem. In addition, in order to enhance antithesis between verses and semantic coherence, word embedded input of the model's two-way multi-layer conversion encoding and decoding adds alignment vector of the poem. The experimental results show that compared with word-embedded poem automatic generation model in which words are converted into vectors, poems generated by BERT-based aligned vector input model proposed in this paper, not only perform better in machine and manual evaluation, but also generate poetic sentences. The correlation between adjacent sentences and the generated verse is also the best. This also further shows that when input vector of the model can fully express the format, content and semantics of the poem, vector representation of the two-way multi-layer conversion codec, the Attention Mechanism + cyclic neural network construction of poem generation model can generate poems closer to human's works.
Keywords: Attention Mechanism; two-way multi-layer conversion codec; poem; automatic generation; Recurrent?Neural Network
1? ?引言(Introduction)
中國古詩詞源遠流長,大約有2000多年的歷史,是中國古典文學中最璀璨的明珠。不同時期的中國古詩詞主要發(fā)展為唐詩、宋詞和元曲等不同類型。這些古典詩詞中,以格律詩為主,主要是五言和七言的絕句和律詩,其突出特點是結構嚴謹,字數(shù)、行數(shù)、平仄、用韻都有一定的限制。例如,律詩一般講究平仄和押韻、押韻和對仗,其中最核心的是它的韻律,即所謂的押韻,就是在詩詞中的規(guī)定位置(一般在句末)放置相同韻部的字,以使聲韻和諧。句子押韻,不僅吟誦和記憶舒暢,更使作品具有節(jié)奏、聲調(diào)和諧之美,如“平平仄仄平平仄,仄仄平平仄仄平”。杜甫的《春望》是一首標準的律詩:
國破山河在,(仄仄平平仄)
城春草木深。(平平仄仄平)
感時花濺淚,(平平平仄仄)
恨別鳥驚心。(仄仄仄平平)
其中第二句的“深”和第四句的“心”押韻,第三句和第四句對仗。中國古詩詞除了傳承經(jīng)典的文化精髓,還有教育和啟示后人的作用。而在當今信息和數(shù)據(jù)時代,詩詞也被賦予了新的使命,它不僅是構成信息和數(shù)據(jù)的一員,更是承載信息的主要載體之一。所以機器創(chuàng)作和自動生成詩詞成為研究的熱點,它不但可以傳承和發(fā)展古代文化,更能滿足普通人進行詩詞創(chuàng)作的意愿,進一步激發(fā)人們學習和創(chuàng)作詩詞的熱情。然而由于受中國傳統(tǒng)詩詞嚴格的平仄押韻等格律限制,詩詞自動生成極具挑戰(zhàn)性。但隨著計算機技術和機器學習的發(fā)展,使詩詞的創(chuàng)作方式和生成手段發(fā)生了前所未有的改變,特別是深度學習的再次崛起,使詩詞創(chuàng)作成為可能,這也是本文關注的研究方向所在。
自20世紀90年代中期開始研究計算機輔助創(chuàng)作古詩詞以來,已在語料庫建立[1-2]、詞匯語義[3]、文本自動生成[4]等方面取得了一定的研究成果,并且能用多種方法生成符合一定格式要求的詩詞。但是,生成的詩詞不具有流暢性和連貫性,更沒有感情色彩。其主要原因是傳統(tǒng)的詩詞生成模型對生成詩詞的格律、語義等的約束一般由人工設計的規(guī)則和評估函數(shù)來實現(xiàn),很難全面地兼顧詞與詞、句子與句子、主題與內(nèi)容之間的相關性。近年來,隨著深度學習技術在自然語言處理方面的深入研究,出現(xiàn)了基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks, CNN)和循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)的詩詞生成模型,大大地提高了詩詞的生成質量。由于RNN存在梯度消失問題,對長序列的學習效果不佳,改進的門控單元(Gate Recurrent Unit, GRU)雖然能克服梯度消失的問題,然而由于不論輸入長短,它都將其編碼成一個固定長度的向量表示,這樣使得模型對長輸入序列的學習效果依然較差。后有研究者嘗試利用語義圖作為深度神經(jīng)網(wǎng)絡的輸入以提高生成文本的主題一致性和可控性,但還只是初步研究階段,有待進一步深入研究。所以本文提出一種基于BERT(Bidirectional Encoder Representation from Transformers,雙向多層轉換編解碼)詞向量的BiGRU+
Attention機制的編解碼模型來自動生成詩詞。實驗結果表明,本文設計的BERT詞向量結構模型能夠生成具有流暢性、連貫性的詩歌。
論文其余部分結構為:第二部分介紹了詩詞自動生成的研究現(xiàn)狀。第三部分構建了本文詩詞生成的結構過程并解釋了各模塊的功能實現(xiàn)原理。第四部分詳細描述了模型的訓練過程。第五部分是實驗的設計和實驗結果的評估。第六部分是結論。
2? ?相關研究(Related research)
縱觀詩詞自動生成發(fā)展過程,可將詩詞的生成大致分為三個階段:第一階段是基于模板和模式的生成方法,該方法簡單可靠,能輸出較高質量的結果,如利用詞的關聯(lián)規(guī)則生成日語詩[5],應用語義和語法模板生成西班牙語詩[6]。但這種方法不夠靈活,需要人工設計模板或模式,雖然后來的基于實例推理方法的模板是從現(xiàn)有詩詞庫檢索生成,但過程依然煩瑣。第二階段的詩詞生成主要以自然選擇為主,即利用遺傳進化算法優(yōu)化生成,如采用隨機搜索算法獲得更具匹配性詩句的方法[7],但這類算法需要精心設計評估函數(shù)來保證詩詞的語義性、連貫性和格律等要求,不僅難度大,生成詩詞的效率也較低。第三階段的詩詞生成主要基于統(tǒng)計機器翻譯(Statistical Machine Translation, SMT)算法,SMT將詩詞生成看成翻譯過程,首次成功應用于對聯(lián)的生成[8-9]。該類生成方法主要的遺憾是無法生成詩的第一句。上述方法在不斷地提高和完善的過程中,基本實現(xiàn)了符合一定語義性、連貫性和格律要求的詩詞自動生成系統(tǒng),但缺乏通用性,遷移能力比較差。隨著深度學習技術的進一步發(fā)展,通過訓練深層次的網(wǎng)絡對大量的詩詞進行學習,將學習到的詩詞的語義信息和格律訓練成模型,然后利用該模型生成具有一定主題的詩詞,去除了人工的參與和設計,真正意義上實現(xiàn)了詩詞的自動生成。如基于RNN神經(jīng)網(wǎng)絡的詩詞生成模型[10]能夠自動學習詩詞的字詞表示、組合選擇及詩句的內(nèi)容。然而它的結構有些復雜,由一個CNN和兩個RNN構成,不利于模型的擴展。有文獻提出了Attention機制的機器翻譯模式的宋詞自動生成方法[11-12],Attention機制的引入增強了語義的連貫性,但存在主題漂移的問題。為此,基于主題規(guī)劃的詩歌生成模型[13]解決了主題發(fā)散的問題,但缺乏自動評估。相關文獻將對抗式生成網(wǎng)絡(Generative Adversarial Nets, GAN)引入文本生成中[14-15],提出了具有生成器RNN和判別器CNN的SeqGAN(Sequence Generative Adversarial Nets)詩歌生成模型,解決了評估函數(shù)難以人工設計的問題,但還有很多值得探索和改進的地方。IOANNIS K等[16]直接將語義圖(Abstract Meaning Representation Graphs, AMR Graphs)作為seq2seq模型的輸入生成文本。它首先是利用深度優(yōu)先搜索將AMR變成序列,對該序列采用LSTM模型進行編碼,然后基于Encoder-Decoder生成文本。這種方法并沒有直接對圖形結構建模,而是對圖形結構的線性化和序列化編碼。SONG等[17]基于Graph LSTM(Long Short-Term Memory,長短期記憶)的門控圖神經(jīng)網(wǎng)絡(Gated Graph Neural Network, GGNN)對輸入圖形結構進行直接編碼來生成文本。但門控網(wǎng)絡會影響信息傳播,生成的文本主題出現(xiàn)不確定性。后GraphWriter模型對圖注意力網(wǎng)絡進行了擴展[18],能夠同時對文章標題和提取的知識圖進行編碼,解碼時輸出的概率表示與知識圖和標題相互關聯(lián),使生成文本在主題一致性上有所改進,但生成文本的上下文語義連貫性和主題可控性方面均有待提高。由此可見,高質量詩詞的自動生成仍然需要更進一步的研究。由上述分析可知,目前還沒有基于BERT詞向量的詩詞生成類的相關報道。為此,本文提出了BERT嵌入式詞向量的、關鍵詞監(jiān)督的、Attention機制的對齊模式詩生成模型。其主要特點是BERT在將文本轉換為空間向量時表達了動態(tài)的句子級語義信息,計算輸出的是實時的特征矢量。第二,每句詩的生成都有相應的關鍵詞引導,不僅僅受第一句的影響,以保持主題的一致性。第三,添加對齊序列向量輸入以增加生成詩句之間的對仗性,使生成的詩句保持語義上的連貫性和結構的流暢性。本文的主要貢獻點是將BERT動態(tài)詞向量引入詩生成模型,解決了模型對輸入句子的句子級語義理解問題。
3? ?詩詞生成(Generation of poems)
考慮到生成詩詞的主題一致性問題,本文詩詞生成主要分為三個模塊,即關鍵詞提取與擴展模塊(Keyword-Extract-Extend, KEE)、字生成詩句模塊(Word-To-Line,WTL)和關鍵詞引導的Attention機制詩句生成模塊(Context-To-Line, CTL)。詩詞的整個生成過程如圖1所示。下面將具體介紹每個模塊的構建和功能。
3.1? ?關鍵詞提取與擴展模塊(KEE)
本文詩句生成模型的訓練語料是關鍵詞加詩句結構,那么形成訓練語料的關鍵一步是提取每句詩的關鍵詞。目前,文本關鍵詞的提取分為無監(jiān)督和有監(jiān)督方法,有監(jiān)督方法需要有詩詞語料的關鍵詞標注數(shù)據(jù)的支持,但由于人工標注的成本較高,因此本文采用無監(jiān)督的關鍵詞提取方法。其過程是:首先對收集的詩詞語料采用結巴和詩學含英進行分詞,這里結合詩學含英分詞,主要是考慮到詩句中字詞語義表達的特殊性。然后用TextRank算法對詩句中的候選詞打分并排序,之后選取得分較高的N個詞作為關鍵詞,同時保留這些詞在原句中的順序。
關鍵詞的擴展是指當用戶輸入的關鍵詞太少,或已知句子太短無法提取出足夠的關鍵詞時,可采用輸入的關鍵詞或已提取的關鍵詞訓練Word2vec(Word to Vector, 詞轉換為向量)預訓練模型生成詞向量,然后利用詞向量計算相似度,獲得語義最近的詞,將其擴展為關鍵詞。作詩時,用戶根據(jù)要表達的主題和思想選定關鍵詞并輸入模型,此時,關鍵詞擴展模塊會根據(jù)用戶輸入的關鍵詞將其擴展到N(假設有N個詩句)。或者用戶可以輸入一個句子,關鍵詞提取模塊可以從用戶輸入的句子中提取關鍵詞并擴展至N個。因為本文此次訓練模型生成的是四言詩,所以最多擴展至四個關鍵詞。
3.2? ?字生成詩句模塊(WTL)
由研究現(xiàn)狀分析可知,基于統(tǒng)計(SMT-based)的機器翻譯方法是生成詩歌綜合性能較高的方法之一,但其最大的不足是自身無法生成第一句詩,其主要原因是語言要素的合理表達方式的欠缺。而本文模型結構采用BERT將所有輸入轉化為嵌入式詞矢量,那么詞和句子都將映射到相同的矢量空間,這些空間中的矢量表達了詞向量、詞的位置向量和分段向量的和,具有更深和更廣的語義關系。這樣,就可以將詩詞的生成系統(tǒng)簡化。也就是說,理論上本文的字生成詩句和詩句生成詩句這兩個模塊都可以基于Attention機制的RNN Encoder-Decoder一個結構實現(xiàn),但考慮到首句的生成只是依據(jù)關鍵詞,輸入相對較短,所以將該WTL模塊單獨訓練。其具體過程是根據(jù)擴展后的關鍵詞,WTL模塊生成與輸入的關鍵詞相關語義的首句。之后CTL模塊基于生成的第一句和第二句的關鍵詞生成詩的第二句。最后CTL以之前所有的生成詩句和本句關鍵詞生成整個詩詞。
3.3? ?關鍵詞引導的Attention機制詩句生成模塊(CTL)
基于Attention的seq2seq模型是由文獻[19]首次應用到自然語言處理中(NLP),之后出現(xiàn)了各種基于RNN的Attention的擴展模型,其主要是對RNN單元的改進和Attention矩陣計算方法變換的兩類擴展模式。不管哪種擴展模式,它們的基本結構都是相似的。本文以關鍵詞為導向的Attention機制詩句生成模塊結構如圖2所示。其中,BERT作為模型的詞嵌入用來提取詩句中詞的動態(tài)語義信息。它使用的是Transformer,捕捉到的是真正意義上的Bidirectional Context信息。Encoder部分由雙向GRU對輸入的詩詞向量進行編碼,Decoder的解碼由GRU+Attention機制完成,Attention的主要貢獻點在于根據(jù)與輸出的匹配程度,對GRU隱藏層的狀態(tài)進行加權變化,區(qū)別對待。本文模型的輸入數(shù)據(jù)除了上下文信息,特別添加了關鍵詞,即圖2中的,以增強主題的信息量。
該模塊的具體工作過程為:BERT將輸入的文本信息表示為深層語義向量,Encoder將輸入序列轉換為正反向隱藏狀態(tài)和,對于任意的,通過編碼形成的最終隱藏狀態(tài)是相應的正反向隱藏狀態(tài)的結合,這里,是非線性函數(shù),。這樣,隱藏狀態(tài)同時涵蓋了詞以及詩句的前后向語義關系,將獲得的詞語和詩句的全面完整信息用于后端的解碼。在本文模型中,詩的第一句僅由關鍵詞生成,即,由WTL模塊完成。Decoder的解碼端根據(jù)自身當前的狀態(tài)和編碼端輸出的隱藏狀態(tài),以字符的形式生成詩句。兩個模塊(WTL、CTL)的解碼端功能相同。具體公式為:
其中,是注意力機制中用來計算第個字符的隱藏狀態(tài)的,即
這里的反映了編碼端隱藏狀態(tài)對生成詩句的貢獻大小,表達了和的相似度,也稱為對齊度。解碼器依據(jù)確定哪一部分輸入更加重要,以分配更多的注意力,從而使生成詩的上下句之間的相應詞具有更好的關聯(lián)性。
4? ?模型的訓練(Model training)
4.1? ?詞嵌入向量模型的訓練
詞嵌入層是詩生成模型的輸入層,也是詩生成過程中最關鍵的一步。該層能否將詞或句子的語義和感情等特征映射到相應的語義空間,將直接決定整個生成模型的性能。考慮到詩詞的稀疏性以及詩句結構的特殊性(如對仗、押韻等),本文的詞嵌入向量采用BERT生成,如圖3所示。
通過訓練,BERT提取出輸入序列的token、位置和分割嵌入特征,將它們的特征和轉換為具有深層語義關系的字向量輸出。本文基于BERT訓練的模型主要有兩種,分別為對齊模型和普通模型。其中對齊輸入的詞向量模型是本文的一個突出點,主要是為了提取和學習詩句間的對仗性,即將詩句結合其對應的對仗數(shù)據(jù)列表共同作為BERT詞嵌入向量模型的訓練數(shù)據(jù),以得到詩上下句間更豐富的語義信息。具體為:第一個列表存放這首詩每一句的第一個字,第二個列表存放該詩每一句的第二個字,以此類推直到所有字放入列表中,列表的個數(shù)由詩的體裁決定,如表1所示。而普通模型的詞向量僅用詩句訓練BERT模型,將其轉化為嵌入式詞向量。
4.2? ?混合訓練
就句型而言,古詩一般有五言和七言之分,即每句詩有五個或七個字符。雖然在格式上它們有所不同,但意境、思想的表達所采用的字詞是相似的。為了豐富訓練集,參考已有文獻,選擇采用五言和七言的混合詩集來訓練同一模型。
4.3? ?詩生成模型的訓練
詩生成模型的訓練就是利用訓練集,通過最優(yōu)化方法確定一組使損失函數(shù)取值最小的參數(shù),確定參數(shù)后的函數(shù)就是訓練的結果。使損失函數(shù)取值最小的直接表達就是使預測值和原始值更加接近。就詩詞生成而言,是指生成詩句符合訓練詩句的格式,輸入句和生成句的主題保持一致,內(nèi)容關聯(lián),富含韻律和對仗。為此,本文選擇交叉熵損失函數(shù)來衡量Decoder輸出字符和真實輸入值之間的誤差。另外,為了提高模型訓練的效率,選擇最小批梯度下降(Mini-batch Gradient Descent)算法加快迭代次數(shù)和AdaDelta算法優(yōu)化學習效率。通過多次試驗,主要參數(shù)確定為batchsize為64、dropout為0.3、學習率為0.0001的訓練效果最優(yōu)。
5? 實驗及方法評估(Experiment and method evaluation)
這部分主要是數(shù)據(jù)集的獲取、實驗方法的設計和實驗結果的評估。首先介紹數(shù)據(jù)集的構成,其次是實驗方法以及與其他方法的比較,最后是對實施方法的評估。
5.1? ?數(shù)據(jù)集
本文的數(shù)據(jù)集是從互聯(lián)網(wǎng)上搜集的五言和七言律詩,其中五言四句詩有96,208 首,七言四句詩有175,603 首,共271,811 首,用來訓練GRU+Attention模型。據(jù)我們所知,該數(shù)據(jù)集已經(jīng)涵蓋了大量已有的詩句,并從中隨機選擇4,000首詩作為驗證集、4,000首詩作為測試集,剩下的詩為訓練集。
5.2? ?實驗步驟
本文詩生成實驗的具體步驟如下:
(1)首先對收集的數(shù)據(jù)集進行預處理,去除停用詞,按照詞頻排序,生成詞典。
(2)對語料庫中的詩進行解析,判斷其是否為五言或七言律詩以及這些詩是否在生成的詞典中。
(3)對解析后的所有詩按照3.1節(jié)的方法提取并擴展關鍵詞,對于每一行詩句,使用TextRank的方法選出每行得分最高的詞作為該行的關鍵詞。本文的訓練集為絕句,所以每首絕句被提取出有序的四個關鍵詞用來訓練關鍵詞擴展模型。
(4)用預處理的詩語料對BERT詞嵌入模型進行訓練,得到訓練語料的詞向量空間。
(5)訓練集的生成。按照圖1的詩生成方式處理并生成訓練集,如表2所示。
(6)采用4.3的參數(shù)及生成的訓練集訓練BERT+BiGRU+
Attention序列模型。
5.3? ?實驗設置
實驗重點設計了基于BERT對齊向量輸入的Attention機制詩生成模型,簡稱BERT對齊模型(B_AM)。為了對比BERT對詩及句子語義的動態(tài)深層次表示,實驗還訓練了基于Word2vec的對齊向量輸入模型(W_AM),以及目標句反轉輸入模型,簡稱反轉模型(W_RM)和普通模型(W_CM)。其中反轉模型是指在訓練時將目標句反轉輸入,其主要目的是為了增強上下詩句之間的局部一致性,但其負面影響是削弱了對詩句的韻律表征。普通模型是指按照詩句的正常順序輸入Word2vec及序列模型進行訓練。對每種模型,實驗均采用五言和七言詩混合訓練集進行訓練,本文系統(tǒng)是在Disiok的基礎上建立的。同時,為了對比本實驗設計的神經(jīng)網(wǎng)絡詩生成模型的優(yōu)劣性,將此次實驗設計的四種模型(B_AM、W_AM、W_RM、W_CM)與SMT以及無Attention機制的模型(No-Attention, NAT)在同一主題下作的詩進行了對比,其結果主要通過BLEU(Bilingual Evaluation Understudy,雙語互譯質量評估輔助工具)和人工兩方面進行評測。
5.4? ?詩的生成及評估
實驗按照詩學含英中對詩詞的分類,分別選取了思鄉(xiāng)、邊塞、抒情、敘事和山水田園五類主題的詩各5 首,從每首詩中人工選取1—4 個關鍵詞,分別用實驗設置中的模型及對比模型作詩,每類主題每個模型作10 首詩,每個模型共作各類主題的詩50 首,人工初選出各模型的30 首作評測。此次采用的評估方法主要有以下三種。
5.4.1? ?BLEU評測
首先對各模型生成的30首詩采用BLEU進行評測。BLEU原本是用來評價機器翻譯效果的,也有用BLEU評測詩詞的生成質量。該方法簡單,計算量小,最主要的是與人工評測的結果有一定的相似性,所以本文首先采用BLEU對生成的詩進行自動評估。表3是本文四種模型與SMT和NAT模型生成詩的BLEU結果。可以看出,BERT對齊模型生成詩的平均BLEU最高,其次是對齊向量輸入模型。而SMT模型生成的詩的BLEU相對較低,因為其主要采用模板或統(tǒng)計模型的填詞形式生成詩,所以生成詩句的語義連貫性不強,可讀性較低。
5.4.2? ?相關性評測
對于自動生成的詩,除了格式上符合要求以外,更重要的是語義上的流暢和連貫性。目前,這種性能的機器評測大多采用上下句的相關性進行衡量。本文借鑒BERTScore對自動生成文本或摘要的評價思想,即對兩個生成句和參考句分別用BERT提取特征,然后對這兩個句子的每一個詞分別計算內(nèi)積,可以得到一個相似性矩陣。基于這個矩陣,計算參考句和生成句的最大相似性得分的累加然后歸一化。文本在此思想上做了改進,側重于比較詩的上下句子之間的相似度,以衡量生成整首詩的流暢性。根據(jù)前面BLEU的評測結果,擇優(yōu)比較,本實驗只選取B_AM和W_AM兩種對齊模型和人工作的同一主題詩的上下句的相關性做了對比分析,結果如表4所示。為了更直觀地表達三者的關系,作了如圖4所示的曲線圖,從表4和圖4可以看出,基于BERT的對齊模型的詩句間的相關性要好于Word2vec對齊模型生成詩句的相關性,僅次于人工作詩。
5.4.3? ?人工評測
眾所周知,文本生成系統(tǒng)還沒有權威的、非常準確的評估標準,因為在已知上句時,有很多符合邏輯及語義關系的下句可以對應。而且,詩除了具有一般文本的相關屬性外,還應有其特殊的嚴謹?shù)慕Y構,如平仄、押韻等,更重要的是詩的用意,這一點是無法用BLEU評測的。目前最好的辦法是人工評測,本文參考之前的相關工作(文獻[10]和[11])制定了五條人工評測標準:詩意性、流暢性、連貫性、意義性及聲調(diào)和押韻的和諧性。因為詩區(qū)別于一般文本的主要特點是它的結構和聲調(diào)及押韻等,所以本文在人工評測中加了聲調(diào)和押韻的和諧性。其中,每一條標準的打分范圍是3—5 分。將每種模型生成的30 首詩由五名文學專家分別對每條標準進行打分,計算它們的平均得分作為最終結果,如表5所示。
從表5可以看出,本文的BERT詞嵌入式對齊模型在后四個指標中較SMT有一定的優(yōu)勢,在詩意性方面有些欠缺,可能的原因是SMT的每一句詩的詞是擇優(yōu)選擇填充,甚至SMT的第一句可能是原詩而并非機器學習自動生成。但較Word2vec對齊模型、反轉模型、普通模型和NAT模型,BERT對齊模型的優(yōu)勢較為明顯,NAT模型整體性能欠佳。
6? ?結論(Conclusion)
本文采用sequence-to-sequence結構生成詩句序列,基于GRU+Attention機制建立詩的生成模型。為了從句子級別表達上下文動態(tài)的語義信息,本文自動生成模型的向量轉換采用BERT詞嵌入。為解決自動生成詩的主題發(fā)散性問題,建立了關鍵詞導向的Attention機制的詩生成模型,即在生成每一句詩時均有關鍵詞的監(jiān)督和引導。為了增強詩句之間的對仗性和語義的連貫性,在原有數(shù)據(jù)(詩句)的基礎上增加了對仗數(shù)據(jù)列表作為輸入訓練BERT模型生成嵌入式詞向量,將該詞向量作為詩生成模型的輸入生成詩的下句。為了證明本實驗設計模型生成詩的優(yōu)劣性,將此次實驗設計的三種模型(B_AM、W_AM和W_RM)與經(jīng)典SMT模型在同一主題下作的詩進行了對比,主要從自動(BLEU)、人工和上下詩句的相關性三方面進行評估。從對各模型所作詩的各種評估結果分析可知,無論是BLEU值與原詩的對比評估,還是人工的五方面指標的評估,BERT對齊模型生成詩的效果均較優(yōu)。特別是對生成詩的上下句相關性而言,BERT對齊模型優(yōu)勢明顯,僅次于人工作詩;其次是Word2vec對齊模型;Word2vec反轉模型由于在音調(diào)上的控制,整體性能高于普通模式。這也進一步說明,只要能使模型的輸入序列充分表達詩句的格律、押韻和對仗,以及豐富的上下文內(nèi)容和語義等信息,Attention機制可以生成較接近人工的詩。另外,從對比模型(NAT)的各方評測可以看出,基于神經(jīng)網(wǎng)絡的深度學習模型生成文本的質量關鍵在于語義的轉換和編碼部分,如果模型的編碼輸入部分能獲得全面的、深層次的語義信息,結合Attention機制,深度學習模型可自動生成主題一致、滿足格律要求的詩等各類文本,那么未來的工作可以嘗試BERT預訓練的文本或詩生成模型的建立及實驗。
參考文獻(References)
[1] 林倩,文華婷,楊靜,等.中文詞語內(nèi)部層次結構標注語料庫的建立[J/OL].廈門大學學報(自然科學版),2020,59(02):225-230.
[2] 劉揚,林子,康司辰.漢語的語素概念提取與語義構詞分析[J].中文信息學報,2018,32(02):12-21.
[3] WANG S, ZHANG J, ZONG C Q. Exploiting word internal structures for generic Chinese sentence representation[C]. Proceedings of the Conference on Empirical Methods in Natural Language Processing, Copenhagen, EMNLP, 2017:298-303.
[4] MOU L, YAN R, LI G, et al. Backward and forward language modeling for constrained sentence generation[J]. Computer Science, 2016, 4(6):473-482.
[5] YAEL N, DAVID G, YOAV G, et al. Generating haiku with word associations norms[C]. Proceedings of the Workshop on Computational Approaches Linguistic Creativity, 2009:32-39.
[6] HUGO G O, TIAGO M, ANA B, et al. Co-PoeTryMe: Interactive poetry generation[J]. Cognitive Systems Research, 2019, 54:199-216.
[7] ZHOU C L, YOU W, DING X. Genetic algorithm and its implementation of automatic generation of Chinese songci[J]. Journal of Software, 2010, 21(3):427-437.
[8] LONG J, MING Z. Generating Chinese couplets using a statistical MT approach[C]. In Proceedings of the 22nd International Conference on Computational Linguistics, Manchester, UK: AC, 2008:18-22.
[9] JING H, MING Z, LONG J. Generating Chinese classical poems with statistical machine translation models[C]. In Proceedings of the 26th AAAI Conference on Artificial Intelligence, Toronto, Canada, 2012:22-26.
[10] ZHANG X, Lapata M. Chinese poetry generation with recurrent neural networks[C]. In: Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), Doha, 2014:25-29.
[11] WAGN Q, LUO T, WANG D. Chinese song lambics generation with neural attention-based model[C]. In: IJCAI'6, New York, 2016:9-15.
[12] YI X Y, LI R Y, SUN M S. Generating Chinese classical poems with RNN encoder-decoder[C]. Chinese Computational Linguistics Internaional Symposium on Natural Language Processing Based on Naturally Annotated Big Data, The 16th China National Conference, Nanjing, CCL, 2017:13-15.
[13] WANG Z, HE W, WU H, et al. Chinese poetry generation with planning based neural network[C]. The 26th International Conference on Computational Linguistics, Osaka, Japan, 2016:1051-1060.
[14] YU L, ZHANG W, WANG J, et al. Sequence generative adversarial nets with policy gradient[C]. Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence, San Francisco, California, USA, 2017:2852-2858.
[15] ZHE H T, WANG W, CHEN W, et al. Automatic generation of news comments based on gated attention neural networks[J]. IEEE Access, 2018(6):702-710.
[16] IOANNIS K, SRINIVASAN I, MARK Y, et al. Neural AMR: Sequence-to-sequence models for parsing and generation[C]. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics, Vancouver, Canada, 2017:146-157.
[17] SONG L, ZHANG Y, WANG Z G, et al. A graph-to-sequence model for AMR-to-text generation[C]. Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics, Melbourne, Australia, 2018:1616-1626.
[18] RIK K, DHANUSH B, LUAN Y, et al. Text generation from knowledge graphs with graph transformers[C]. Proceedings of the Conference of the North American Chapter of the Association for Computational Linguistics, 2019:2284-2293.
[19] DZMITR B, KYUNGHYUN C, YOSHUA B. Neural machine translation by jointly learning to align and translate[C]. CoRR, 2014:1-15.
作者簡介:
楊泰康(1991-),男,碩士生.研究領域:自然語言處理,信息安全.
楊婉霞(1979-),女,博士,副教授.研究領域:信息處理,自動控制.本文通訊作者.
劉? 燕(1987-),女,碩士,講師.研究領域:信息處理.
胡智喻(1995-),男,碩士生.研究領域:自然語言處理.
王巧珍(1996-),女,碩士生.研究領域:自然語言處理,信息安全.
徐明杰(1998-),男,碩士生.研究領域:自然語言處理.