• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于神經(jīng)網(wǎng)絡(luò)的集句詩(shī)自動(dòng)生成

      2019-04-17 03:56:28梁健楠孫茂松矣曉沅陳慧敏劉正皓
      中文信息學(xué)報(bào) 2019年3期
      關(guān)鍵詞:集句詩(shī)句語(yǔ)義

      梁健楠,孫茂松,矣曉沅,楊 成,陳慧敏,劉正皓

      (1. 清華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,北京,100084; 2. 清華大學(xué) 人工智能研究院,北京,100084 3. 清華大學(xué) 智能技術(shù)與系統(tǒng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京,100084)

      0 引言

      隨著中華文化的復(fù)興,越來(lái)越多的人開始關(guān)注、學(xué)習(xí)中國(guó)古典文化。而古詩(shī)詞作為中國(guó)優(yōu)秀古典文化的結(jié)晶,在數(shù)千年的歷史長(zhǎng)河中對(duì)中華民族的發(fā)展有著深遠(yuǎn)影響。

      近年來(lái),中國(guó)古典詩(shī)歌自動(dòng)生成的研究逐漸成為熱點(diǎn),吸引了國(guó)內(nèi)外越來(lái)越多研究者的注意。研究者們對(duì)中國(guó)古典絕句[1-2]和宋詞[3-4]的自動(dòng)生成任務(wù)提出了很多不同的模型和方法。這些研究大都集中在絕句和宋詞的自動(dòng)生成。本文著重關(guān)注一種特殊的中國(guó)古典詩(shī)歌形式——集句詩(shī)。集句詩(shī)作為一種別出機(jī)杼的詩(shī)歌再創(chuàng)造方式,是對(duì)不同時(shí)期、不同詩(shī)人創(chuàng)作的不同詩(shī)篇中已有句子進(jìn)行選取,并重新組合形成的新詩(shī)。詩(shī)句雖然是前人所寫且各有其出處,但過(guò)渡流暢,具備完整的內(nèi)容和新穎的主旨意境,渾然天成且無(wú)強(qiáng)拼硬湊之感。圖1給出了一首明代著名文學(xué)家湯顯祖所作的集句詩(shī)示例。

      圖1 湯顯祖《牡丹亭》中所作七言集句詩(shī)

      集句詩(shī)的歷史可以上溯到西晉,而興盛于宋代。集句創(chuàng)作需要?jiǎng)?chuàng)作者博聞強(qiáng)識(shí),有大量的詩(shī)歌儲(chǔ)備作為再創(chuàng)作素材。同時(shí)要求創(chuàng)作者有很強(qiáng)的詩(shī)詞理解和鑒賞能力,只有充分理解前人不同作品中每一詩(shī)句表達(dá)的內(nèi)容與意境,才能在對(duì)詩(shī)句進(jìn)行有機(jī)的重新組合的同時(shí)而不破壞集成的整首詩(shī)的連貫完整性。在中國(guó)古代眾多詩(shī)人中,只有王安石、蘇軾、辛棄疾等詩(shī)文大家才有能力創(chuàng)作出高質(zhì)量的集句詩(shī)。

      隨著硬件技術(shù)的發(fā)展,現(xiàn)代計(jì)算機(jī)具備了海量存儲(chǔ)和快速檢索能力,計(jì)算機(jī)能夠“記憶”的詩(shī)作數(shù)量遠(yuǎn)遠(yuǎn)高于人類。近年來(lái)神經(jīng)網(wǎng)絡(luò),尤其是基于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的模型得到了極大的發(fā)展,且在圖像識(shí)別、語(yǔ)音識(shí)別、機(jī)器翻譯等任務(wù)上取得了顯著突破。RNN能夠自動(dòng)從大規(guī)模語(yǔ)料庫(kù)中,學(xué)習(xí)到質(zhì)量較高的句子語(yǔ)義表示。前人的工作已經(jīng)表明,RNN能夠用于英文詩(shī)歌[5-6]和中國(guó)古典詩(shī)歌[2,4,7]的自動(dòng)生成,且能取得不錯(cuò)的效果。

      本文提出了一種新穎的結(jié)合計(jì)算機(jī)索引能力和神經(jīng)網(wǎng)絡(luò)語(yǔ)義表示能力的自動(dòng)集句詩(shī)生成模型。模型采取逐句生成的方式,根據(jù)用戶輸入的一句首句,依次選取古詩(shī)庫(kù)中上下文語(yǔ)義、意境關(guān)聯(lián)性最強(qiáng)的詩(shī)句作為當(dāng)前生成句,并將生成句作為輸入詩(shī)句。以此類推,逐步生成一首完整的集句詩(shī)。首先,我們?cè)O(shè)計(jì)了一套格律和韻腳檢測(cè)方法,剔除詩(shī)庫(kù)中不符合格律押韻要求的詩(shī)句,從而減小模型的搜索空間。然后,基于整個(gè)古詩(shī)庫(kù),根據(jù)上下文的大小不同,我們訓(xùn)練了兩個(gè)帶Attention機(jī)制的Neural Sequence-to-Sequence[8]模型,用以生成詩(shī)句的向量表示,通過(guò)句向量來(lái)衡量集句質(zhì)量最重要的標(biāo)準(zhǔn)是整首詩(shī)的上下文連貫性和關(guān)聯(lián)性。基于此,我們?cè)O(shè)計(jì)了三種不同的方法來(lái)計(jì)算一句詩(shī)句和已生成的上文多個(gè)詩(shī)句之間的關(guān)聯(lián)性,用于當(dāng)前候選詩(shī)句的選取。我們采用信息檢索中常用的MRR(Mean Reciprocal Rank)指標(biāo)用于評(píng)價(jià)集句詩(shī)生成模型。實(shí)驗(yàn)結(jié)果表明,我們的模型相對(duì)基于統(tǒng)計(jì)互信息的自動(dòng)集句生成模型有較大提升。

      綜上,本文的貢獻(xiàn)如下:

      (1) 我們首先提出集句詩(shī)的自動(dòng)生成任務(wù),并設(shè)計(jì)了相應(yīng)的自動(dòng)評(píng)價(jià)指標(biāo);

      (2) 我們?cè)O(shè)計(jì)了一種基于Sequence-to-Sequence神經(jīng)網(wǎng)絡(luò)的自動(dòng)生成集句詩(shī)模型。模型利用句向量自動(dòng)學(xué)習(xí)詩(shī)句語(yǔ)義,測(cè)量語(yǔ)義相似性;

      (3) 自動(dòng)評(píng)測(cè)和人工評(píng)測(cè)結(jié)果都表明,給定一句用戶輸入的首句,我們的模型能生成質(zhì)量較高的集句詩(shī)。相對(duì)于基于統(tǒng)計(jì)互信息的自動(dòng)集句詩(shī)生成模型有很大提升。

      1 相關(guān)工作

      詩(shī)歌生成是研究計(jì)算機(jī)自動(dòng)分析、理解和使用人類語(yǔ)言的一個(gè)重要切入點(diǎn)。國(guó)內(nèi)外在這一領(lǐng)域的研究已經(jīng)持續(xù)了數(shù)十年。從方法上,相關(guān)的研究工作可以分為三個(gè)階段:

      早期的詩(shī)歌生成模型都是基于規(guī)則和模板。例如,ASPERA 詩(shī)歌生成系統(tǒng)[9]和日文俳句生成系統(tǒng)[10]。

      第二個(gè)階段大約從上世紀(jì)90年代開始。在這一階段,統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法陸續(xù)被用到詩(shī)歌生成上。Levy[11]和Manurung[12]先后探索利用遺傳算法來(lái)進(jìn)行詩(shī)歌生成。與此同時(shí),一些研究者也開始利用其他類型的文本生成模型。Yan 等人提出利用自動(dòng)文本摘要的方式進(jìn)行詩(shī)歌生成,將詩(shī)歌的生成過(guò)程看作是從整個(gè)古詩(shī)庫(kù)進(jìn)行摘要的過(guò)程[13]。另一個(gè),在詩(shī)歌生成任務(wù)上提升顯著的模型是統(tǒng)計(jì)機(jī)器翻譯(Statistical Machine Translation,SMT)模型。Jiang 和 Zhou 首先將SMT模型用于中文對(duì)聯(lián)的生成[14],取得了良好的效果。隨后,He進(jìn)一步將此模型應(yīng)用于中文絕句的生成[14]。

      隨著人工神經(jīng)網(wǎng)絡(luò)的發(fā)展,這一領(lǐng)域邁進(jìn)了第三個(gè)階段——基于神經(jīng)網(wǎng)絡(luò)的詩(shī)歌生成。大部分研究者都采用RNN或者其變體進(jìn)行詩(shī)歌生成。Zhang 和 Lapata 最早將RNN應(yīng)用到了中文絕句生成任務(wù)上[2]。他們使用一個(gè)卷積語(yǔ)句模型將生成的每句詩(shī)向量化然后壓縮到一個(gè)上下文向量中,用以捕捉詩(shī)歌的上下文信息。但是,他們的模型較為簡(jiǎn)單。為了提升詩(shī)歌的連貫性和通順性,他們的模型還需要和兩個(gè)額外的SMT特征以及一個(gè)基于n-gram的語(yǔ)言模型相結(jié)合。隨后,Yan 提出了polish模型[15],使用RNN進(jìn)行絕句的生成。不同之處在于,Yan的模型會(huì)對(duì)一首詩(shī)進(jìn)行多次生成。每次生成時(shí),會(huì)考慮上一次生成的詩(shī)歌,以模擬人類在創(chuàng)作詩(shī)歌時(shí),不斷修改潤(rùn)色的過(guò)程,從而提升詩(shī)歌的質(zhì)量。Yi 等人第一次提出用結(jié)合了注意力機(jī)制的Sequence-to-Sequence模型[7]來(lái)進(jìn)行詩(shī)歌生成[8]。他們針對(duì)絕句中不同的位置訓(xùn)練了不同的模型,以此來(lái)提升詩(shī)歌的上下文關(guān)聯(lián)性。隨后,在絕句生成任務(wù)上,Wang等人提出了Planning模型[16],該模型預(yù)先規(guī)劃一首絕句里四個(gè)句子每一句對(duì)應(yīng)的關(guān)鍵詞,然后用對(duì)應(yīng)的模型生成每一句。以往的模型生成的詩(shī)歌大多缺乏新穎性,故Zhang等人提出了利用記憶網(wǎng)絡(luò)來(lái)進(jìn)行詩(shī)歌生成[17]。為了提升生成詩(shī)歌的新穎性,他們將數(shù)百首古人創(chuàng)作的詩(shī)歌存入一個(gè)外部的Memory,以提供更豐富的外部知識(shí)來(lái)引導(dǎo)模型生成。同時(shí),通過(guò)控制Memory中存儲(chǔ)的詩(shī)歌風(fēng)格,他們的模型也能實(shí)現(xiàn)對(duì)生成的詩(shī)歌風(fēng)格的簡(jiǎn)單控制。Yi 等人同樣提出利用Memory模型[18]。他們使用三個(gè)不同的Memory來(lái)模擬人類進(jìn)行詩(shī)歌創(chuàng)作時(shí)的寫作和記憶習(xí)慣。同時(shí),他們提出了一種體裁向量,能夠?qū)⒃?shī)歌的格律和結(jié)構(gòu)信息與詩(shī)歌內(nèi)容在一定程度上分離。從而,使一個(gè)訓(xùn)練好的模型能生成不同體裁的詩(shī)歌。如絕句、宋詞、現(xiàn)代詩(shī)等等。神經(jīng)信息檢索也為我們提供了另外的思路用以詩(shī)句相關(guān)程度的評(píng)判[19]。

      上述模型的詩(shī)歌生成都集中在絕句和宋詞這兩種體裁上。這些模型由于要同時(shí)考慮詩(shī)歌的通順性、上下文關(guān)聯(lián)性、語(yǔ)義豐富性等等,難以做到兼顧所有方面,往往會(huì)顧此失彼。在這篇論文中,我們提出了一種全新的詩(shī)歌生成任務(wù)——集句詩(shī)自動(dòng)生成。由于詩(shī)句是詩(shī)庫(kù)中古人創(chuàng)作的現(xiàn)有句子,這些句子本身有較好的通順性和語(yǔ)義豐富度。因此,集句詩(shī)自動(dòng)生成模型可以忽略這些方面,而專注于把握不同語(yǔ)句之間的上下文語(yǔ)義、主題、內(nèi)容的連貫性和一致性,這也是對(duì)詩(shī)歌這種的文學(xué)性文本最為關(guān)鍵的評(píng)價(jià)指標(biāo)之一。

      2 模型設(shè)計(jì)

      2.1 任務(wù)及模型概述

      我們首先將集句詩(shī)自動(dòng)生成的任務(wù)形式化描述如圖2所示。

      圖2 模型結(jié)構(gòu)圖注: “+”為句子相加,即兩個(gè)句子首尾相連拼接起來(lái)。

      我們定義一個(gè)評(píng)分函數(shù)R(L1:i-1,Sn),用以計(jì)算詩(shī)庫(kù)中的每一候選句和上文的連貫性得分。則集句詩(shī)的第i句選取為:

      (1)

      從上述過(guò)程可以看出,平仄和韻腳可以通過(guò)規(guī)則限制進(jìn)行篩選,一首集句詩(shī)的好壞取決于式(1)中定義的評(píng)分函數(shù)的效果。我們希望找到合適的評(píng)分函數(shù),使得生成的集句效果最佳。

      以下將介紹本文設(shè)計(jì)的三種評(píng)分函數(shù)。

      2.2 基于生成結(jié)果語(yǔ)義相似性的評(píng)分函數(shù)

      不同于其他體裁(如絕句、宋詞等)的生成,集句詩(shī)生成要求選取與上文連貫的古人詩(shī)句,而非依靠模型生成全新的詩(shī)句。前人的工作表明,帶注意力機(jī)制的序列到序列模型(Sequence-to-Sequence with attention mechanism)[8]生成的詩(shī)句有不錯(cuò)的上下文關(guān)聯(lián)性[7,16]。因此,我們的第一種評(píng)分函數(shù)的思路是,第一步使用神經(jīng)網(wǎng)絡(luò)生成模型根據(jù)上文生成一句全新的當(dāng)前詩(shī)句。第二步使用特定的方法從詩(shī)庫(kù)中檢索一句與該生成句語(yǔ)義最相似的古人詩(shī)句。

      具體地,我們使用基于雙向長(zhǎng)短時(shí)記憶(Long Short-Term Memory,LSTM)[20-21],帶Attention的編碼-解碼器(Encoder-Decoder)。定義X為輸入到Encoder的序列,X=x1x2…xTx;Y為Decoder端生成的序列,Y=y1y2…yTy。其中,Tx和Ty分別為Encoder和Decoder端的序列長(zhǎng)度。給定L1:i-1,則Decoder端生成的詩(shī)句Gi計(jì)算如式(3)~式(5)所示。

      其中,st和ht分別為第t個(gè)時(shí)間步的Encoder和Decoder端的隱狀態(tài)向量,e(yt-1)為對(duì)應(yīng)的word embedding,f為線性變換層。ct為Attention機(jī)制中的attention向量,具體計(jì)算參考文獻(xiàn)[8]。

      值得關(guān)注的是,式(2)中,我們把L1:i-1拼接為一個(gè)長(zhǎng)序列輸入到Encoder中。參照文獻(xiàn)[7]中的方法,當(dāng)上文包含不同數(shù)目的詩(shī)句時(shí),我們分別訓(xùn)練不同的生成模型來(lái)進(jìn)行生成。通常,我們使用1句生成1句來(lái)產(chǎn)生詩(shī)歌的第二句,2句生成1句來(lái)生成集句的詩(shī)歌的其他句子。

      得到Sequence-to-Sequence模型生成的句子Gi之后,我們使用兩種方法來(lái)度量詩(shī)庫(kù)中的古人詩(shī)句Sn和Gi的語(yǔ)義相似性。

      基于最大公共子序列(LongestCommonSubsequence,LCS)的相似性度量。第一種方法,我們假設(shè)兩個(gè)句子之間匹配的子序列越大,兩個(gè)句子的語(yǔ)義相似性就越高。即:

      R(L1:i-1,Sn)=LCS(Gi,Sn)

      (6)

      在這里,我們考慮了實(shí)字和虛字對(duì)語(yǔ)義貢獻(xiàn)度的不同。在匹配過(guò)程中,虛字匹配給予比實(shí)字低的分?jǐn)?shù)。

      R(L1:i-1,Sn)=cos(v(Gi),v(Sn))

      (7)

      2.3 基于上下文生成概率的評(píng)分函數(shù)

      2.2節(jié)中的方法采取了先生成新詩(shī)句Gi,然后再和古人詩(shī)句匹配的方式。在實(shí)際中,式(5)的概率最大值很難取到,因無(wú)法遍歷整個(gè)搜索空間。通常采用greedy search或者beam search進(jìn)行搜索,但這無(wú)法保證生成的詩(shī)句Gi是在給定上下文的情況下最優(yōu)的。因此,我們可以利用Sequence-to-Sequence模型直接對(duì)古人詩(shī)句和上文詩(shī)句的關(guān)聯(lián)性進(jìn)行建模。具體如式(8)所示。

      (8)

      其中,Tn為Sn的長(zhǎng)度,ct為Sn中的每個(gè)字。

      式(8)中,我們實(shí)際度量的是,給定上文L1:i-1,神經(jīng)網(wǎng)絡(luò)模型生成某句古人詩(shī)句Sn的概率。對(duì)訓(xùn)練充分的Sequence-to-Sequence模型,我們?cè)谝欢ǔ潭壬峡梢哉J(rèn)為,有更大概率生成的句子,其與上文的語(yǔ)義關(guān)聯(lián)就更緊密。

      2.4 多方法結(jié)合的評(píng)分函數(shù)

      在實(shí)際實(shí)驗(yàn)中,即使預(yù)先根據(jù)格律對(duì)詩(shī)庫(kù)進(jìn)行篩選,初步得到的候選句的規(guī)模N非常大,通常在數(shù)萬(wàn)的量級(jí)。使用式(8)計(jì)算時(shí),由于LSTM隱狀態(tài)的計(jì)算以及Softmax等操作耗時(shí)極大,在實(shí)際應(yīng)用中難以接受?;谏山Y(jié)果的語(yǔ)義相似性評(píng)分的方法計(jì)算速度較快,LCS和句向量的余弦值的計(jì)算耗時(shí)較少,但是上下文關(guān)聯(lián)性上表現(xiàn)欠佳。

      圖3 多方法結(jié)合評(píng)分結(jié)構(gòu)圖

      因此,我們結(jié)合2.2和2.3的兩種方法,先使用生成結(jié)果的語(yǔ)義相似性評(píng)分作為初步篩選,從古詩(shī)庫(kù)中篩選出評(píng)分較高的候選子集。在候選子集中,再使用基于上下文生成概率的評(píng)分函數(shù)進(jìn)行重排序,然后選取得分最高的一句。在第3節(jié)我們的實(shí)驗(yàn)結(jié)果表明,這種結(jié)合能取得生成速度和生成效果二者很好的平衡。

      2.5 格律和押韻控制

      在集句詩(shī)自動(dòng)生成中,對(duì)古詩(shī)庫(kù)詩(shī)句的格律和韻腳識(shí)別是非常重要的一部分工作,識(shí)別錯(cuò)誤將導(dǎo)致集句效果大打折扣。難點(diǎn)在于一句詩(shī)句格律不明顯和一字多韻的情況。

      格律的識(shí)別是以整首詩(shī)的格律來(lái)確定詩(shī)中某一句的格律,這樣可以一定程度上容錯(cuò),但不影響集句效果。對(duì)于一字多韻的情況,同樣根據(jù)一整首詩(shī)的整體確定一句話的韻腳。此外,我們做了單句的韻腳識(shí)別器,使用句尾詞統(tǒng)計(jì)方法來(lái)確定一句詩(shī)的韻腳——考慮句尾兩個(gè)字或三個(gè)字的情況下,在古詩(shī)庫(kù)中的出現(xiàn)次數(shù),選取出現(xiàn)次數(shù)較多的韻作為韻腳。

      3 實(shí)驗(yàn)

      3.1 實(shí)驗(yàn)數(shù)據(jù)和設(shè)置

      本次實(shí)驗(yàn)數(shù)據(jù)收集了唐代到近現(xiàn)代的五言和七言詩(shī),共389 857首詩(shī),2 537 168句詩(shī)句。

      從中隨機(jī)選擇5 000首詩(shī)歌作為驗(yàn)證集,五言和七言各占2 500首。除去測(cè)試集(測(cè)試集構(gòu)造在3.2.2中詳述)和驗(yàn)證集,其余詩(shī)歌作為訓(xùn)練集,用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型。

      本文的實(shí)驗(yàn)代碼使用python和tensorflow1.4實(shí)現(xiàn)。在帶Attention的Sequence to Sequence模型網(wǎng)絡(luò)中,hidden size為512,word embedding size為256,激活函數(shù)為tanh。采用的優(yōu)化算法是Adam,初始學(xué)習(xí)率為0.001,訓(xùn)練過(guò)程中使用的batch size為64。當(dāng)模型在驗(yàn)證集上的損失函數(shù)收斂時(shí)停止訓(xùn)練。在我們的數(shù)據(jù)集上,約訓(xùn)練10個(gè)epoch左右能收斂。

      3.2 實(shí)驗(yàn)與分析

      3.2.1 評(píng)分函數(shù)的相關(guān)性分析

      本文在生成句選取最佳匹配句的時(shí)候,使用了基于LCS和基于句向量的兩種評(píng)分函數(shù),以下將對(duì)兩種評(píng)分函數(shù)的結(jié)果求Spearman相關(guān)系數(shù)。

      這里選取了20個(gè)生成句,對(duì)生成句取基于LCS評(píng)分函數(shù)排序后的Top100候選句和基于句向量評(píng)分函數(shù)的Top100候選句,取這200句候選句并集求Spearman相關(guān)系數(shù)。實(shí)驗(yàn)得Spearman相關(guān)系數(shù)為-0.104。由此可見,使用基于LCS數(shù)和基于句向量評(píng)分函數(shù)的結(jié)果相關(guān)性并不大。

      3.2.2 MRR評(píng)測(cè)

      MRR(Mean Reciprocal Rank),即把標(biāo)準(zhǔn)答案在被評(píng)價(jià)系統(tǒng)給出結(jié)果中的名次取倒數(shù)后作為該答案的準(zhǔn)確度,對(duì)所有標(biāo)準(zhǔn)答案的準(zhǔn)確度取均值,以此來(lái)衡量評(píng)價(jià)系統(tǒng)的準(zhǔn)確度。如式(9)所示。

      (9)

      將在古人創(chuàng)作的絕句中,我們分別選用第一句、第一和第二句、第一至三句作為輸入, 第二、第三和第四句作為對(duì)應(yīng)的標(biāo)準(zhǔn)答案。另外,以三種不同的篩選方法分別在數(shù)據(jù)集中選擇999句同言數(shù)的詩(shī)句,給每個(gè)標(biāo)準(zhǔn)答案匹配對(duì)應(yīng)的三組非標(biāo)準(zhǔn)答案集合。然后,通過(guò)計(jì)算標(biāo)準(zhǔn)答案在1 000句詩(shī)句中的準(zhǔn)確度來(lái)評(píng)價(jià)不同的評(píng)分函數(shù)的效果。

      所使用的三種篩選非標(biāo)準(zhǔn)答案的方法分別為:

      1. 在數(shù)據(jù)集中隨機(jī)選取同言數(shù)的詩(shī)句,記為測(cè)試集1;

      2. 在數(shù)據(jù)集中隨機(jī)選取句同言數(shù)、同格律、同韻腳(若押韻)的詩(shī)句,記為測(cè)試集2;

      3. 在數(shù)據(jù)集中隨機(jī)選取同言數(shù)、同格律、同韻律、與標(biāo)準(zhǔn)答案匹配兩個(gè)字以上的詩(shī)句,記為測(cè)試集3。

      在基于句向量的評(píng)分函數(shù)中,我們?cè)O(shè)計(jì)了基于1句生成1句的Sequence-to-Sequence模型和基于2句生成1句的Sequence-to-Sequence模型生成,分別用這兩個(gè)模型的Encoder生成詩(shī)句向量?;?句生成1句的Sequence-to-Sequence模型是以古詩(shī)庫(kù)中連續(xù)的兩句詩(shī)句分為作為輸入和目標(biāo)訓(xùn)練得到的模型。基于2句生成1句的Sequence-to-Sequence模型是以古詩(shī)庫(kù)中連續(xù)的兩句作為輸入,緊接的第三句作為目標(biāo)訓(xùn)練得到的模型。下面我們對(duì)以上兩個(gè)模型使用測(cè)試集1進(jìn)行MRR評(píng)測(cè)。原則上,2生1模型需要輸入2句得到句向量,這里我們使用向2生1模型Encoder端輸入一句話和同一句話輸入兩次的方法,求得兩種不同的句向量。

      從表1中可以看出,使用1生1模型的Encoder得到句向量和2生1模型(重復(fù)輸入)的Encoder得到句向量能有比較好的MRR值。

      我們對(duì)基于句向量的集句模型和基于生成概率的集句模型進(jìn)行MMR評(píng)測(cè)。此外,我們引入了基于互信息的集句模型作為基線。對(duì)于上文L和候選句Sn,計(jì)算它們之間的互信息作為排序的依據(jù)。互信息的計(jì)算公式如式(10)所示。

      (10)

      其中,l和s分別為上文以及候選句中的單字,p(l,s)為古詩(shī)庫(kù)中l(wèi),s同時(shí)出現(xiàn)在同一首詩(shī)的概率,p(l)為古詩(shī)庫(kù)中l(wèi)出現(xiàn)的概率。

      由于基于LCS的集句模型的評(píng)分函數(shù)是非連續(xù)的,計(jì)算時(shí)無(wú)法得到一個(gè)準(zhǔn)確的名次,故在本實(shí)驗(yàn)中并沒(méi)有討論。

      表格1 基于句向量的評(píng)分函數(shù) MRR評(píng)測(cè)結(jié)果

      由表格2可見,基于生成概率(Prob)的集句模型計(jì)算得到的MRR值明顯高于其他模型?;谏筛怕?Prob)的集句模型和基于句向量(Vec)的集句模型在五言中的得分明顯好于在七言中的得分。而在生成第三句時(shí),我們的兩個(gè)模型MRR值明顯有降低。分析原因,是由于在絕句中,一般第三句都是起轉(zhuǎn)折的地方,因此神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)的效果會(huì)比其他位置的句子稍差。

      表格2 MRR評(píng)測(cè)結(jié)果

      3.2.3 集句效率分析

      為了提高集句詩(shī)的生成效率,我們對(duì)古詩(shī)庫(kù)的詩(shī)歌根據(jù)格律和韻進(jìn)行劃分建表,以便快速查找。對(duì)于LCS的計(jì)算,我們引入了倒排索引來(lái)大規(guī)??焖儆?jì)算LCS。對(duì)于句向量的計(jì)算,我們預(yù)先計(jì)算每個(gè)句子對(duì)應(yīng)的句向量并保存到內(nèi)存中以提升計(jì)算速度,但由此也帶來(lái)存儲(chǔ)空間占用大的問(wèn)題。以句向量是由1 024維的32位浮點(diǎn)數(shù)組成為例,存儲(chǔ)250萬(wàn)句詩(shī)句對(duì)應(yīng)的句向量存儲(chǔ)空間將達(dá)到9.6GB。

      根據(jù)實(shí)驗(yàn)統(tǒng)計(jì),基于生成概率的集句模型平均集一首詩(shī)需要2 105.14秒,基于LCS的集句模型平均集一首詩(shī)需要62.83秒,基于LCS和生成概率相結(jié)合的模型平均集一首詩(shī)需要93.74秒,基于句向量的集句模型平均集一首詩(shī)需要4.91秒,基于句向量和生成概率結(jié)合的模型平均集一首詩(shī)需要5.99秒。

      3.2.4 人工評(píng)測(cè)

      我們收集了50首古人創(chuàng)作的集句詩(shī)。其中,五言絕句25首,七言絕句25首。對(duì)于每一首人創(chuàng)作的集句詩(shī),我們以同樣的首句作為輸入,分別使用Jiju(LCS)、Jiju(LCS&Prob)、Jiju(Vec)、Jiju(Vec&Prob)四種集句模型進(jìn)行集句生成,得出四首機(jī)器自動(dòng)生成的集句詩(shī)。將古人創(chuàng)作的集句詩(shī)和自動(dòng)生成的詩(shī)歌放在一起,組成50組,每組包含5首集句詩(shī)(組內(nèi)順序隨機(jī)打亂)的人工測(cè)試集。

      我們請(qǐng)了5位中國(guó)古典詩(shī)詞的專家對(duì)該人工測(cè)試集進(jìn)行打分。根據(jù)集句的上下文語(yǔ)義的連貫性、主題和意境是否鮮明進(jìn)行打分,每首詩(shī)最高分5分,最低分1分。每位專家獨(dú)立評(píng)分,相互之間不允許交流。同時(shí),我們要求每位專家在打分時(shí)集中在詩(shī)歌質(zhì)量上,忽略“詩(shī)歌是機(jī)器還是人類創(chuàng)作”這一因素。

      由表3可見,使用聯(lián)合生成概率的集句模型平均比非聯(lián)合生成概率的集句模型得分明顯要高。而基于句向量的集句模型會(huì)比基于LCS的集句模型略好,但無(wú)顯著差距。

      表格3 人工評(píng)測(cè)結(jié)果,平均評(píng)價(jià)得分

      3.2.5 個(gè)例分析

      我們隨機(jī)選取了一些不同模型生成的集句詩(shī)(表格4)。對(duì)生成的七言集句詩(shī), LCS生成的結(jié)果中,上下文有明顯的矛盾。第三句“春在江山無(wú)限好”寫春景, 第四句卻寫秋色,從而造成了季節(jié)上的矛盾。這是因?yàn)長(zhǎng)CS僅僅考慮了句子局部子序列的匹配。如第四句,生成模型生成的原句是“夜深風(fēng)雨不勝愁”,此句與上文并無(wú)矛盾之處。LCS進(jìn)行匹配時(shí),匹配了“夜深風(fēng)雨”四個(gè)字,又因僅僅考慮本句的局部,忽略了上文,所以匹配句中帶來(lái)了“秋”這一矛盾。

      表格4 集句實(shí)例

      對(duì)比之下,通過(guò)句向量相似度生成的集句詩(shī)整體質(zhì)量上提升明顯。第二句“不識(shí)花前人醉否”,點(diǎn)明了季節(jié)為春季。同時(shí),第三句中“東風(fēng)”緊扣“春”,“零落”也很好地承接了前一句的“花前”。第四句“擬于何處說(shuō)來(lái)由”在語(yǔ)義上收束前三句,寫出了詩(shī)人心中愁苦,于春花前借酒澆愁,但是這份苦痛卻不知應(yīng)該從何道起。

      LCS&Prob模型對(duì)詩(shī)句整體的一致性和連貫性有所提升。第二句“芳草青青”點(diǎn)明春季,第四句“對(duì)花”也緊扣“春”。因生成概率本身對(duì)上下文關(guān)聯(lián)性起到了約束作用,故模型在基于LCS考慮局部語(yǔ)義相似時(shí),也能在一定程度上避免上下文矛盾。此外,Vec&Prob模型生成的集句詩(shī)比起單純用句向量求近似的Vec模型,在整體意境上也有所提升。第一句描寫閑適的春日景色。在這樣的景致中,第二句里詩(shī)人卻感嘆,春風(fēng)是不能理解自己的愁緒的。第三句借落花凋零,流水匆匆形象地展現(xiàn)了自己內(nèi)心的愁苦,第四句借用王粲的典故,收束全篇,點(diǎn)出自己愁苦的原因——懷才不遇。這首詩(shī)完整描述了一個(gè)郁郁不得志的詩(shī)人形象,比起Vec模型的結(jié)果,Vec&Prob模型選擇的句子意境更豐富,整首詩(shī)句子間的過(guò)渡也更好。

      對(duì)生成的五言詩(shī), Vec模型的結(jié)果中,前三句關(guān)聯(lián)性較好,但是第四句“唯尋相鶴經(jīng)”和上文內(nèi)容無(wú)關(guān)。Vec&Prob模型則在上下文一致性上有明顯提升?!盎ā?、“蝶”、“柳”、“鳥啼”、“曉霞”, 整首詩(shī)描繪了一副微寒的春晨,靜謐野外的景致。使用LCS模型的結(jié)果中,前兩句寫景,后兩句抒情,但景和情之間缺少聯(lián)系,轉(zhuǎn)折過(guò)于突兀,從而破壞了連貫性。LCS&Prob的結(jié)果和Vec&Prob的結(jié)果類似,都是描繪了春季景色。區(qū)別在于,Vec&Prob的結(jié)果中,第四句“曉霞”點(diǎn)明了時(shí)間是清晨,很好地映照了第一句“花寒”的“寒”字,交代了花寒的原因。但是LCS&Prob的結(jié)果沒(méi)有體現(xiàn)出這一點(diǎn),因此稍遜一籌。

      從上述分析可以較為直觀地看出,生成模型概率能緊密約束上下文關(guān)聯(lián)性,對(duì)局部字串匹配帶來(lái)的信息丟失也能起到一定的緩解作用。

      4 結(jié)論與未來(lái)工作

      本文探究了深度神經(jīng)網(wǎng)絡(luò)在集句任務(wù)中的應(yīng)用?;谏窠?jīng)網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)詩(shī)句的語(yǔ)義表示,我們?cè)O(shè)計(jì)了一種結(jié)合生成結(jié)果語(yǔ)義和上下文生成概率的評(píng)分方法,提出了一種高效率、高質(zhì)量的自動(dòng)集句生成模型。

      試驗(yàn)結(jié)果表明,將生成模型計(jì)算候選詩(shī)句的生成概率作為集句候選的標(biāo)準(zhǔn),可以有效地自動(dòng)選擇出效果比較好的集句。計(jì)算句向量近似可以在保證質(zhì)量的前提下,提高集句的生成效率。

      我們將繼續(xù)探究詩(shī)句相似性的評(píng)價(jià)算法。當(dāng)前神經(jīng)信息檢索方法通過(guò)核函數(shù)計(jì)算句對(duì)之間的相似度,我們?cè)诮窈蟮墓ぷ飨M軌蚴褂孟嚓P(guān)方法更好的計(jì)算詩(shī)句之間的相似度。

      猜你喜歡
      集句詩(shī)句語(yǔ)義
      六一來(lái)了
      可以“吃”的詩(shī)句,你見過(guò)嗎
      讀詩(shī)句,寫成語(yǔ)
      語(yǔ)言與語(yǔ)義
      施議對(duì)論詞集句例話(十章選三)
      《張遷碑集句》
      清風(fēng)明月本無(wú)價(jià),近水遙山皆有情——天成集句類
      “上”與“下”語(yǔ)義的不對(duì)稱性及其認(rèn)知闡釋
      認(rèn)知范疇模糊與語(yǔ)義模糊
      論新加坡集句詩(shī)人林俊堅(jiān)和他的集陸詩(shī)
      乌拉特后旗| 奉贤区| 丽江市| 福安市| 金坛市| 上饶县| 隆德县| 宁陕县| 犍为县| 汕头市| 西藏| 兰坪| 三亚市| 密云县| 喀喇沁旗| 渭南市| 红原县| 汾西县| 合川市| 务川| 德阳市| 平利县| 孟连| 南部县| 临澧县| 兴海县| 高陵县| 凤城市| 辽中县| 商都县| 常熟市| 静宁县| 沙湾县| 集贤县| 乌恰县| 克什克腾旗| 准格尔旗| 诸城市| 廉江市| 重庆市| 开鲁县|