胡智喻,楊婉霞,楊泰康,王巧珍,徐明杰
(甘肅農業大學機電工程學院,甘肅蘭州 730070)
古詩詞作為滋養中華文脈的酣醇“養分”,在中華民族的“根”和“魂”中源遠流長,其重要地位更是不言而喻。古詩詞中,詩是中國古老而又獨具文化特色的文學形式,興盛于唐代;詞是中國數千年歷史文化寶庫中重要的文學精髓,起源于隋唐時期,宋代達到鼎盛,著名的“唐詩宋詞”由此而來。與句式整齊、結構嚴謹、韻律和諧的唐詩相比,宋詞行文風格更加靈活多變,用字用韻也各不相同。
宋詞雖已有千年歷史,然其對當今文化依然大有裨益。學習、研究、創作詩詞不僅能深入了解中華優秀傳統文化,還能提高漢字的審美內蘊、提升語言的優雅水平。中國是詩詞國度,無論在娛樂和教育領域,亦或是文化和信息方面,詩詞都能發揮其獨特作用。把古詩詞與現代信息技術相結合,將其融入當下最為熱門的人工智能,既能引發國內外研究者對中國古詩詞的討論與關注,也能讓更多的人領略到中華優秀傳統文化的獨特魅力。本文選擇宋詞作為研究對象,不僅在于宋詞擁有巨大的開發潛力,還在于宋詞與唐詩等生成任務相比更具挑戰性:①宋詞句式多樣,對其結構、用韻、平仄要求更為復雜;②詞體更長,在生成時對主題、語義的約束更為困難;③總體數量較少,模型訓練的語料不夠充分。正因如此,宋詞自動生成領域的專業研究可謂鳳毛麟角。
隨著深度學習的迅猛發展,自動生成領域獲得了長足進步,從神經元模型[1]的首次提出,到有記憶功能的循環神經網絡(Recurrent Neural Network,RNN)[2]雛形;從解決梯度消失梯度爆炸等問題的長短期記憶網絡(Long Short-Term Memory,LSTM)[3]出現,到有更長記憶能力的雙向網絡(Bi-directional LSTM,BiLSTM)[4]應用;從廣泛使用的序列(Sequence-to-Sequence,Seq2Seq)模型[5-6],到加入能增強語義關聯性的Attention 機制[7],都為其提供了強大的技術支持。以上深度學習方法的出現,使自動生成的宋詞在主題一致性和語義連貫性等方面有了一定提升。
本文在上述研究基礎上,創新地提出一種基于BERT(Bidirectional Encoder Representations from Transformers,BERT)詞嵌入結合注意力機制的編解碼(Encoder-Decod?er)模型以自動生成宋詞,其特點如下:①利用主題詞索引解決僅使用首句索引生成宋詞主題偏移問題;②應用最新BERT 詞嵌入技術來提升語義表達的多樣性;③運用BiL?STM 最大程度緩解快速遺忘問題,讓模型學習到更長的句子間語義信息;④通過Attention 機制為生成宋詞過程提供細粒度監管以及句式結構控制。實驗結果表明:該方式生成的宋詞在句子相關性和主題一致性方面效果顯著。
文本自動生成是自然語言處理的重要組成部分,而宋詞自動生成是文本自動生成的主要形式之一。目前對于宋詞自動生成的研究較少,但從詩詞生成的角度則該領域已經有數十年的發展歷程,相關研究可分為以下幾個階段:
(1)初代研究者主要使用基于規則和模板的方法生成詩詞,文獻[8]首次建立詩生成體系,但該體系只能根據語法規則隨機顯示單詞;通過構建詞匯、句子、韻律等語料庫的方式極大豐富了此方法自動生成詩的內容,如文獻[9]建立散文到詩的半自動生成系統(ASPERA),通過從大量已定義的結構、詩集、詞表模板中預選組合生成詩;文獻[10]建立了基于規則的日文俳句詩生成系統(Haiku sys?tem),即從6 種不同詞庫中隨機選取關聯詞生成詩?;谝巹t和模板方式生成的結果能滿足詩詞結構形式要求,但生成過程需要定義大量詩體結構、分類詩集、標注詞庫以實現約束,且生成的詩可讀性不足。
20 世紀末,統計機器學習的方法開始應用于詩詞生成。文獻[11]通過定義宋詞句法、語義、平仄的適應度函數、選擇策略、交叉因子和變異算子來生成宋詞;使用自動文本摘要的方式,文獻[12]將詩的生成轉換為從所有古詩詞語料庫中進行摘要的過程。這類方法優化了選詞,在保證結構形式要求的同時提高了生成詩詞的可讀性,但沒有兼顧句子之間的主題和語義相關性。而后,研究者探索出統計機器翻譯(Statistical Machine Translation,SMT)方法[13],即使用3 個不同的SMT 模型,從主題分類詩庫中選擇詞語生成詩的后三句,效果良好。相比統計機器學習方法,此方法在語義相關性方面有了顯著提升,但其首句仍然需要通過模板方式生成。
隨著深度學習的再次崛起,該領域邁入了神經網絡實現階段。文獻[14-15]首次將優化的RNN 和卷積網絡結合生成能滿足形式要求的詩,但句子的主題和語義仍有待提升;利用Seq2Seq 模型,文獻[16-18]設計了主題規劃方式,通過在生成的每個句子中加入相近關鍵詞約束,巧妙解決了主題偏移問題,但其生成的詩語義多樣性不足;結合At?tention 機制,有研究者利用Seq2Seq 模型生成了較好的集句詩[19-21];文獻[22-25]對已有詩生成模型進行改進,提升了生成質量,但模型針對性強,移植能力較差;文獻[26]首次采用GPT 預訓練語言模型,提升了詩的生成效果,驗證了預訓練語言模型應用于自動生成的可行性。綜上所述,基于神經網絡的詩詞生成方法已成為主流,該方式在生成詩詞的形式多樣性、主題一致性和語義相關性方面均有明顯改善,但從實際效果來看在語義相關性等方面仍有待提升。
本文在前人探索的基礎上,采用主流且效果更好的深度學習方式,進行了如下重要改進:①將主題索引方法運用于宋詞生成,解決生成更長句式的主題偏移問題;②將最新的BERT 詞嵌入技術用于宋詞生成,以提升詞句的語義多樣性和上下句子間的相關性;③使用BiLSTM+Atten?tion 機制為生成宋詞過程提供細粒度監管并對句式結構進行控制,以保證生成宋詞聲調的和諧性。
本文使用主題約束+BERT 詞嵌入+BiLSTM+Attention方法生成宋詞。首先從創作思想出發,使用用戶喜歡的句子或詞語作為輸入,并根據用戶輸入的信息提取或擴展相應主題詞;然后通過BERT 詞嵌入,將主題詞及已有句子轉換為具有動態語義的詞向量表示;最后利用主題詞約束方式生成宋詞的第一句,使用主題詞+已生成句子共同生成詞的下一句。其中句子的生成模型引入BiLSTM 和Atten?tion 機制提升宋詞的格式、韻律和語義效果。生成流程如圖1 所示。

Fig.1 Generating process of Song Ci圖1 詞生成過程
2.1.1 主題詞提取
古人作詞講究“意境”二字,即意象和境界,在后來的宋詞鑒賞中又被稱之為“主題”。意象是作者將內在思想通過外在的事物表達,境界則能將詞表達的思想上升為讀者的普遍感情。近代在宋詞的鑒賞中,讀者漸漸引用“主題”一詞來概括意境。在詞的創作過程中,主題和意境一樣,是作詞人在記事表意、言情述志、發表主張或反應生活現象時,通過作品內容所表達出來的基本觀點和中心思想,是詞的“靈魂”和“統帥”,一首詞只能有一個主題。為了將作者的創作意圖在宋詞中準確展現,本文從作者的輸入信息中提取最符合中心思想的一個主題詞,將其用于統領整首宋詞的生成。
主題詞提取分為以下兩個步驟:①將作者輸入的詩詞、句子、短語等進行分詞處理;②對分詞后的詞語進行重要性排序,以得到最符合中心思想的詞。本文分詞處理采用基于統計的隱馬爾可夫模型(Hidden Markov Model,HMM),其原理是:對于需分詞的句子,通過查詢詞典生成所有可能的切分,并采用動態規劃查得最大概率進而獲得基于統計詞頻的切分,而后使用HMM 模型和維特比(Viter?bi)算法,對標記詞(BEMS 狀態序列)切分。該方法相比單純基于詞典的各種分詞方法,其分詞結果更為高效精確。對于詞語重要性排序(即主題詞的查找),本文采用基于無監督的TextRank 算法篩選出候選詞,主要思想是構建詞圖和詞間的共現信息(Co-occurrence),根據詞間的共現信息設置權重,并使用公式(1)迭代各節點的權重直至收斂,最后對節點權重進行排序,從而得到主題詞。

其中,WS(Vi)表示句子i的權重,求和表示每個相鄰句子的貢獻程度,Wji表示兩個句子的相似度,Wjk表示上次迭代句子j的權重,d是阻尼系數。該公式中增加了權重項Wji用來獲取兩詞間的重要程度。相比基于有監督的方法,它不需要大量的標注詞庫,使用效果更準確、快速。
2.1.2 主題詞拓展
由于深度學習方法自動生成宋詞采用以字符為單位的預測方式,加之宋詞屬于長句式(一般為八句及以上),僅由單個主題控制生成后續所有詞句的方法會使遠離主題的句子更偏離主題,加劇生成詞的主題發散問題。為了使生成宋詞的每一句遵循相同主題,本文引入主題詞約束方法,以上一步提取的主題詞為基準,拓展與之相似的主題詞,用于控制后續每個句子的生成。
主題詞拓展思路為:首先訓練一個全宋詞語料向量表征模型,用以準確計算詞之間的相似度關系,然后依據詞的相似度,拓展與中心思想相近的主題詞。訓練向量表征模型原理是:利用給定詞,預測其前后出現的N 個詞,訓練并建立向量表征模型,代價函數如下:

其中,J(θ) 為最小化的代價函數,Wt表示t時刻主題,θ是待優化變量。
使用余弦相似度(Cosine)公式(3)計算兩個詞向量間夾角的余弦值衡量其相似性,最后得到需要拓展的N 個主題詞,為后續生成句子打下基礎。

在自然語言處理(NLP)相關任務中,原始語料是一系列符號的集合,無法使用計算機處理,因此需要將集合的粗粒度符號映射到新的多維空間,并用向量形式表征其中的字或詞,即詞嵌入(Word Embedding)。詞嵌入方法包括人工神經網絡、矩陣降維、概率模型以及上下文的顯式表示等,他們遵從一個基本原理,都是將相似的詞表征為相似的向量形式。這些傳統的向量表征方式雖然簡單高效,但表達單一固定,對于同字不同意的詞不能完全區分,即存在無法表征字或詞的多義性。最新的BERT 詞嵌入預訓練語言模型通過添加字的上下文位置信息,很好解決了難以表達一詞多義的語義關系問題。因此,本文采用BERT預訓練作為生成詞模型的語義向量轉換輸入部分,其結構由輸入、編碼、輸出3 個部分組成。
(1)輸入部分。結構如圖2 所示。通過使用分詞器(Tokenizer)與宋詞詞表(Vocabulary)查詢,得到對應輸入序列(Input ids)的一維字嵌入(Token Embeddings),并根據每個id 在句子中的不同位置對應加入一維的段嵌入(Seg?ment Embeddings)和位置嵌入(Position Embeddings)。
BERT 輸入部分生成過程如下:



Fig.2 BERT input part圖2 BERT 輸入部分
(2)編碼部分。使用深度雙向Transformer 對宋詞進行特征抽取,如圖3 所示,其原理是由h 個自注意力機制(Self-Attention)堆疊的多頭注意力機制(Multi-Head Atten?tion),將輸入的上下文信息轉化為相應的向量表示,然后整合成為前饋神經網絡(Feed Forward)輸入。

Fig.3 BERT encoder part圖3 BERT 編碼部分

結合縮放點積(Scaled Dot-Product)算法進行多維深層特征抽取,原理是:將轉換后的空間向量Q 和K 相乘,得到輸入的相似度信息,利用縮放因子dk將其控制在合理范圍內,最后經過softmax() 函數歸一化,得到概率分布,從而獲取嵌入信息的全部權重矩陣表示,其計算公式如下:

(3)輸出部分。結合整個Multi-Head Attention 的每個Attention 權重信息,使最終輸出的Word Embedding 融入全文語義信息。該方式不僅使生成的詞嵌入獲取更多的上下文語義信息,還能極大程度地增強語言模型的特征抽取能力,使之盡可能準確地表示出詞的原義,以用于后續的宋詞生成階段。
根據宋詞的結構靈活性、詞義多樣性等特點,本文構建了基于Attention 機制的Seq2Seq 模型用于宋詞生成。該模型生成的文本在語義性、連貫性、可讀性等方面普遍優于其它模型。因此,將Seq2Seq 模型應用于生成詞以得到更好的效果。
2.3.1 ncoder-Decoder
Seq2Seq 模型主要由編碼器(Encoder)和解碼器(De?coder)兩部分組成,本文結合宋詞的結構、語義和詞意等特點,在Seq2Seq 基礎上融合Attention 機制構建了宋詞生成模型,具體結構如圖4 所示。其中,詞嵌入采用BERT 預訓練模型,以獲得詞的動態信息以及句子級別的語義信息。Encoder 部分采用BiLSTM 模型對來自BERT 詞嵌入的輸出向量進行雙向編碼,以使模型獲取并保存更多的上下文信息。在生成目標序列的Decoder 部分使用LSTM 網絡將En?coder 部分的編碼結果解碼為對應的宋詞信息。

Fig.4 Encoder and decoder framework圖4 編碼—解碼器框架
2.3.2 Attention-based Seq2Seq Model
原始Seq2Seq 模型會將編碼的輸入序列壓縮為一個固定維度的語義向量C,由于C 的容量有限,很難保存全部的輸入序列信息,在用于長序列時易造成上下文信息丟失。為此,本文引入Attention 機制解決這一問題。對Encoder 每一時刻的輸入序列,通過Attention 機制從中選取與輸出更匹配的信息遞送Decoder,在保證輸入序列完整的同時獲取相關性更強的上下文信息。具體步驟如下:
(1)Attention 機制將解碼器隱藏層狀態(Decoder hid?den state)與編碼器隱藏層狀態(Encoder hidden state)state進行對比,根據兩者的相關性程度計算出一個值(score),然后采用softmax() 對得出的score 進行歸一化,獲得基于Decoder hidden state 的條件概率分布,即注意力權重(Atten?tion weights,Aw),公式如下:
建議:①外科醫生可根據術中情況選擇是否留置盆腔引流管,②可以不常規留置盆腔引流管,以利于減少疼痛及利于術后早期下床活動。

(2)利用Aw對所有的Encoder hidden state 進行加權求和,得到上下文信息(Context vector,Cv),輸出給Decoder 進行解碼,公式如下:

(3)將Context vector 與Decoder hidden state 融合作為注意力信息(Attention vector,Av),輸出給Decoder 進行解碼,公式如下:

本實驗的訓練和預測都是在帶有GPU 的服務器上進行,系統配置為Ubuntu,程序編寫語言為Python 并結合了Tensorflow 深度學習框架,具體配置如表1 所示。

Table 1 Experimental environment表1 實驗環境
實驗采用的數據集是從互聯網上收集而來的宋詞集合,共包含約兩萬首詞作,與唐圭璋所編《全宋詞》相當,該數據集涵蓋了大部分的宋詞語料。以此數據集按8∶2 比例隨機抽取得到訓練集、測試集,如表2 所示。

Table 2 Data set表2 數據集
采用困惑度(Perplexity)和交叉熵損失函數(Cross-En?tropy Loss Function)對訓練模型進行客觀評測,前者用來衡量模型分布與樣本經驗分布之間的契合程度,即模型預測語言樣本能力,后者用來量化模型預測和真實結果之間的差異。對于使用相同語料訓練的BERT 和Word2vec 詞嵌入模型,根據上述評價標準擇優用于后續詞生成,并采用BLEU、余弦相似度和BERT-Score 對其評測。
雙語評估工具(Bilingual Evaluation Understudy,BLEU)是基于N-gram 重疊的評估準則,以詞匯級別計算自動生成文本和人工參考文本之間的相似度。此方法簡單,計算量小,與人工對主題的測評有一定的相關度。
BERT-Score 是基于語言模型的評估準則,與只對詞匯變化敏感的BLEU 相比,它不僅能識別句子間的語義變化,而且更接近人工評估,評價指標的魯棒性也更好。具體過程為:首先對生成句和參考句分別使用BERT 提取特征;然后使用歸一化向量計算內積,得到其相似度矩陣?;谠摼仃嚨贸? 個評測結果,分別為精確率(Precision,P)、召回率(Recall,R)以及綜合Precision 和Recall 的F1 度量(F1 measure,F)。
本文采用預處理的宋詞語料對BERT 預訓練模型進行Fune-tuning,獲取富有宋詞結構及語義的詞嵌入向量。將BERT 詞嵌入和Word2vec 詞嵌入分別用于后續宋詞生成模型,并使用生成模型在不同輸入數據類型、超參數設置、優化算法等方面進行大量對比驗證,以得到最優的宋詞生成模型,并用BERT-Score 等不同測評方式驗證模型生成宋詞的質量,為后續選擇宋詞生成模型提供理論依據。
3.4.1 語料預處理
首先對收集的數據集進行詞體抽取,得到只包含宋詞的詞句,對其去除停用詞并按照字頻排序,選擇前8 000 個用于生成宋詞字典;其次對語料庫中的宋詞按字頻、格式、結構進行篩選并拆分成句;最后使用主題詞提取方法選出每個句子對應的主題詞,形成主題詞+句子的訓練語料,結果如表3 所示。

Table 3 Training set data表3 訓練集數據
3.4.2 BERT 詞嵌入訓練
BERT 詞嵌入訓練是利用無監督的宋詞語料,利用BERT 預訓練的掩蔽語言(Masked LM)和下句預測(Next Sentence Prediction)兩個任務進行Fune-tuning,調整其參數和語料,使模型生成的Embedding 具有面向宋詞語義結構的表示,讓生成的詞向量空間豐富多樣,以解決宋詞語料不夠充分的問題,如表4 所示。
為驗證輸入數據對模型訓練結果的影響,本文設計兩種不同的方式處理輸入BERT 模型語料,分別為對齊訓練數據(Align data)和非對齊訓練數據(UnAlign data)。其中對齊訓練數據是在語料預處理過程中引入最大句子長度(Max sequence length),用于與輸入訓練數據對比,并對其按照Max sequence length 進行補齊或截取。該處理方法的目的是使模型更好地記憶和學習到宋詞的結構特點,而非對齊訓練數據就沒有如此進行處理。

Table 4 Main parameters of BERT training表4 BERT 訓練主要參數
為了驗證BERT 詞嵌入向量作為詞生成模型輸入層的優越性,在語料相同的情況下,本文還訓練了基于Word2vec 詞嵌入的詞生成模型用以與之對比。Word2vec詞向量是目前文本生成領域應用最多的預訓練模型,但它的單項學習方式和靜態的向量表達使生成的文本語義不夠豐富和靈活。最后通過訓練模型的Loss 和生成詞的測評對最終的對比結果進行展示。
3.4.3 宋詞生成模型訓練
宋詞生成模型簡單來說就是輸入主題空間和輸出詞句空間的真實映射函數,模型的訓練就是使用語料的輸入空間預測輸出空間,通過學習準則和優化算法使映射函數能夠表達出最優效果。本文使用“回顧”的方式處理訓練模型的輸入數據,使模型能夠學習和表征上下文的語義關系,如表5 所示。同時,為了使訓練模型的結構經驗風險最小,Embedding size 等參數的合理設置非常關鍵,本實驗模型重要參數設置如表6 所示。

Table 5 Training data表5 訓練數據

Table 6 Parameter of Song Ci generation model表6 宋詞生成模型參數
為驗證不同模型參數對實驗結果的影響,本文首先根據經驗設置4 組相差較大的參數訓練模型,分別為Model1、Model2、Model3、Model4,如表7 所示,并對模型訓練結果進行比較驗證。
然后選出上述訓練結果的最優模型,對其中參數再進行細化,即固定其中兩個參數,只改變一個,分別訓練得到優化結果。例如:Mn-1(n 表示上述4 組Model 中的一個)的4 個模型分別使用不同的Batch size,Mn-2 分別使用不同的Learning rate,Mn-3 使用不同的Dropout rate。通過將多個不同參數下的模型訓練結果進行對比,可以較全面、準確地得到最優模型用于最終的宋詞生成。

Table 7 Parameters set by empirical method表7 經驗方法設置的參數
為了驗證不同優化器對實驗結果的影響,本文還訓練對比了多種不同優化器,分別為自適動量估計(Adaptive Moment Estimation,AdaM)、AdaDelta、RMSProp、梯度下降(GradientDescent)等。
3.4.4 宋詞生成模型預測
模型預測是用訓練好的模型生成一個完整的序列樣本。宋詞生成模型預測是將測試集數據輸入訓練好的模型,以生成完整的宋詞序列。生成模型解碼過程是從左到右的搜索(Search)過程,對于宋詞生成而言,即為每個字符的選取過程。為了驗證搜索算法對生成宋詞質量的影響,本文模型設計兩種不同的搜索方式,即貪婪搜索(Greedy Search,GS)和束搜索(Beam Search,BS)。GS 是在每個字符生成時選擇概率最大的作為輸出值;BS 則是一種啟發式的搜索方式,其在每一步的生成中都會選擇多個最可能的字符,依次組合為輸出序列,用于后續選擇。
3.5.1 詞嵌入模型的Loss 優化對比
本文在詞Embedding 層訓練中對比不同的輸入數據(Align data 和 UnAlign data)和不同模型(BERT 和Word2vec)的Loss 值隨Epoch 變化情況,如圖5 所示。實驗結果表明:BERT 和Word2vec 模型都能在600 個Epoch 左右達到最優。達到最優時,輸入數據為Align data 的BERT 模型Loss 值最低,其值穩定在約0.68;其次是Align data 的Word2vec 模型,其值穩定在約0.87;UnAlign data 的BERT模型效果不佳,其值達到3.22。
3.5.2 模型的困惑度(Perplexity)對比
在訓練宋詞生成模型時,為得到最優模型,本文對比分析了同為BERT 作為模型輸入的16 組參數訓練模型的Perplexity 值隨Epoch 的變化情況,結果如圖6 所示。其中圖6(a)為Model1-4 四組參數訓練結果,圖6(b)、(c)、(d)為如表8 參數所示訓練結果。圖6(a)顯示,Model2 經驗參數訓練模型收斂最快且值最優;圖6(b)、(c)、(d)分別對比了Model2 經驗參數下不同Batch size、Learning rate 和Dropout rate 對模型的影響,數據顯示:Learning rate 值對模型的訓練影響最大,Batch size 次之,但其與訓練所需時間成反比,Dropout rate 最低。

Fig.5 Loss rate圖5 損失率

Fig.6 Training results of different parameters圖6 不同參數訓練結果
選擇優化器過程如下:從上一步實驗中選取綜合最優模型Model2,固定其中所有參數,再通過AdaM、AdaDelta、RMSProp、GradientDescent(GD)四種不同優化器分別進行訓練,結果如圖7 所示。
實驗數據顯示,模型訓練參數為Batch size=64,Drop?out rate=0.3,Learning rate=0.000 2,Max Epochs=1 000,Opti?mizer=Adam 時,Perplexity 值收斂最快,且最優時值為2.78,明顯優于其他參數訓練下的模型,這表明使用上述模型參數訓練的宋詞生成模型預測語言的能力最強,最適合用于后續的宋詞生成。

Table 8 Different parameter settings表8 不同參數設置

Fig.7 Different optimizer training results圖7 不同優化器訓練結果
3.5.3 生成宋詞測評
本文選擇3 種方法從不同側面對模型生成宋詞的質量測評實驗進行評估,指標分別為BLEU、余弦相似度(Cosine Similarity)值和BERT-Score,見圖8。首先選擇思鄉(SX)、邊塞(BX)、抒情(SQ)、敘事(XS)和山水(SS)5 類主題生成詞,采用人工從這5 類不同主題的宋詞中選取主題詞,獲取25 組不同的主題詞用于已訓練好的模型輸入來生成宋詞。分別選取5 組不同主題用于模型輸入使用。然后選擇每組主題生成的10 首共計250 首宋詞用BLEU 和余弦相似度(Cosine Similarity)值對比,對比模型有:BERT 詞嵌入+Mod?el2 模型訓練參數+貪婪搜索方式(B-M2-GS)生成宋詞模型、BERT 詞嵌入+Model2 模型訓練參數+束搜索方式(BM2-BS)生成宋詞模型,Word2vec 詞嵌入+Model2 模型訓練參數+貪婪搜索方式(W-M2-GS)生成宋詞模型,Word2vec詞嵌入+Model2 模型訓練參數+束搜索方式(W-M2-BS)生成宋詞模型,測評結果如表9、表10 所示。

Fig.8 BLEU and similarity evaluation results圖8 BLEU 和相似度測評結果

Table 9 BLEU score表9 BLEU 值

Table 10 Cosine similarity score表10 余弦相似度值
另外,為了進一步體現BERT 詞嵌入模型對句子級語義的深層表示,對上述不同模型生成的5 組不同主題宋詞分別與原詞進行BERT-Score 測評對比,其結果如表11 所示。

Tab.11 BERT-score values of different models表11 不同模型BERT-Score 值
以上測評結果顯示,使用BERT 詞嵌入+Model2 模型訓練參數+貪婪搜索方式(B-M2-GS)模型生成的宋詞在BLEU、Similarity、BERT-Score 測評中都優于其他3 種模型的生成效果,其中BLEU Score 平均值為0.389,Similarity Score 平均值為0.275,BERT-Score 見表11。下面展示以相同主題詞,如山河、荒涼、西風、幽怨、金戈、黃昏、秋雨,使用不同模型(B-M2-GS,W-M2-GS)生成的詞。
(1)B-M2-GS。
涼生平秋雨,山河依舊,西風落日江城雨,黃昏院落梅花色。金井金戈,點指荒涼落色,幾面微風,幽怨何妨。
(2)W-M2-GS。
不知秋雨,如此山河,冷亂殘云,只恐黃昏。耳涌金戈,不知幽怨,幾度西風,已自荒涼一度。
本文使用不同輸入數據類型(Align data 和UnAlign da?ta),多組不同模型參數(Batch size、Learning rate 和Dropout rate)以及多種優化器(AdaM、AdaDelta、RMSProp、Gradient?Descent)訓練得到兩個最優宋詞生成模型,并通過兩種不同的預測方式(Greedy Search 和Beam Search)對生成效果進行不同角度(BLEU、Similarity、BERT-Score)評測,實驗結果表明:在生成模型都較優的情況下,對比BLEU 和BERTScore 測評數據綜合分析可以發現,使用BERT Attention-Seq2Seq-Greedy 模型生成的宋詞在主題一致性方面更有優勢,而Similarity 和BERT-Score 的測評數據則說明其句子間的相關性優于Word2vec 模型。
本文以深度學習為導向,構建了BERT Attention-Seq2Seq 的宋詞生成模型。
為解決自動生成宋詞中的句子間語義的差異性問題,本文引入BERT 詞嵌入的預訓練語言模型,以提升詞句的語義多樣性和上下句子間的相關性。為解決自動生成詞的主題偏移問題,設計了主題詞引導的Attention 機制生成詞句模型。為了體現本文設計模型生成宋詞的優勢,設置了兩種輸入數據類型、多組模型參數、4 個優化器分別訓練并得出最優模型,并與Word2vec 詞嵌入的詞生成模型進行對比。實驗結果顯示:本文構建的BERT-Attention-Seq2Seq 宋詞生成模型較Word2vec-Attention-Seq2Seq 模型,生成詞的上下句一致性和相關性都均有顯著提升。兩者生成詞的測評結果表明:前者的BLEU 較后者提高9%,BERT-Score 和余弦相關度較后者提高2%,充分說明BERT詞嵌入預訓練語言模型比Word2vec 詞嵌入更能深層次表征語句特征,將其運用于宋詞生成,可以提升生成詞的主題一致性和句子間的相關性。但自動生成宋詞仍有不足之處,如深度學習方法生成的宋詞仍存在詞意性不明確等問題。下一步的研究方向是設計算法對宋詞生成過程加以控制,使其在不同詞牌名下都能生成具有固定格律效果、更好語義相關的宋詞。