張明西,馬悅榮,林啟新
(上海理工大學 出版印刷與藝術設計學院,上海 200093)
詞匯輸入預測[1]通過理解文本并依據上下文在給定一組詞匯的情況下預測下一個詞匯,進而達到提高用戶輸入效率的目的。在新聞行業,新聞時效性是體現新聞價值的重要因素。詞匯輸入預測可應用于撰寫新聞報道來提高寫稿效率。
長短期記憶網絡(long short-term memory,LSTM)作為典型的時間序列預測模型,已經廣泛應用于交通流速預測[2]、語音識別[3]、新冠走勢預測[4]等不同領域的時序數據研究,同時為詞匯輸入預測提供一種有效解決思路。首先,LSTM利用長距離的時序信息預測后序時間序列。用戶輸入詞匯具有前后順序,符合LSTM輸入序列在時間維度上的遞歸結構。其次,LSTM訓練采用基于時間的反向傳播算法,通過不斷調整參數加強輸入至輸出的映射,能夠根據輸入找出規律,輸出合適的詞匯。再次,LSTM的記憶機制綜合考慮了存儲歷史序列信息的長期記憶和保留近期輸入序列信息的短期記憶,因此輸出的結果符合用戶的用詞習慣。
在領域新聞中,用戶的難點在于通用的停用詞比較容易輸出,而與行業相關的高頻詞匯則不易輸出。例如,當用戶輸入“比賽”時,會優先推薦“了”、“的”等通用的停用詞,但在體育新聞中常用于“比賽”序列后的高頻詞匯如“獲勝”等則不會優先推薦。LSTM模型依據用戶習慣、輸入序列,對于不同行業里使用的高頻詞匯缺少考慮。
為此,文中結合樣本修剪在LSTM模型上開展領域新聞詞匯輸入預測研究。依據領域新聞文本中詞匯前后序列間的強弱關系進行詞匯關系的修剪,采用優化后的文本數據訓練LSTM來生成詞匯輸入預測序列,對記者輸入的詞匯預測下一個詞匯,提高準確率的同時提高了輸入效率。
近些年來,大量的研究者在詞匯輸入預測方面開展研究。典型的詞匯預測方法包括N-gram模型、RNN模型、LSTM模型等。
基于統計語言模型的詞匯預測利用序列中詞匯的概率分布進行預測。Yazdani等[5]引入Tri-gram語言模型進行文本預測,通過顯示下一個詞匯的建議列表,減少用戶輸入文本時的打字時間消耗。Goulart等[6]提出基于樸素貝葉斯和潛在語義分析(LSA)理論的混合詞匯預測模型,考慮詞匯之間的句法/語義規則來減少訓練時間,通過梯度下降技術優化參數進而提高預測的準確率。Tofique等[7]提出新術語“相互語境”,通過用戶雙方的4個語境屬性生成相互語境,考慮用戶之間的相關性。
基于深度學習的方法利用語料庫進行神經網絡訓練來實現詞匯預測。Barman等[8]利用RNN對標音轉錄的阿薩姆語進行訓練得到更好的下一個詞匯預測效果。Habib等[9]提出LSTM-CONV1D模型,用于遠程醫療服務中的下一個單詞預測,簡化阿拉伯語環境下醫生的醫療建議書寫過程。Ghosh等[10]提出了CLSTM(上下文LSTM)模型,通過將上下文向量附加到輸入的詞匯上,利用詞匯和主題作為特征來提高詞匯輸入預測的性能。趙璐偲等[11]引入基于BERT特征的LSTM網絡用于電子病歷輸入文本的句子推薦。張楠等[12]基于Transformer翻譯模型, 提出神經機器翻譯方法用來聯合預測小寫形式英文單詞及其對應大小寫屬性。Sukhbataa等[13]引入遞歸神經網絡來預測文本序列的下一個詞匯,通過端到端訓練減少訓練過程中需要的監督,更普遍地適用于詞匯輸入預測的現實環境。
面向領域新聞的詞匯輸入預測系統的流程框架如圖1所示,主要分為離線和在線兩個階段。其中,離線階段主要是刪除領域新聞數據集文本詞匯間的弱關系,具體步驟為:文本預處理,對文本進行分句、清洗、去停用詞、分詞等;構建詞匯網絡,基于文本的詞匯前后序列關系構建詞匯網絡;前后兩個詞匯的相關度計算,借鑒TFIDF思想構建詞匯相關度度量模型計算詞匯之間的相關度,并設置閾值去除網絡中相關性弱的關系;刪除詞匯之間的弱關系,提取弱關系詞匯,在原文本中進行詞匯關系的分割與刪除。

圖1 系統的流程框架
在線階段主要是為用戶輸入的詞匯預測下一個詞匯,具體步驟為:詞匯輸入預測模型,使用刪除弱關系的文本數據訓練LSTM模型直至訓練完成;下一個詞匯排序并推薦,根據用戶輸入的詞匯,模型預測下一個詞匯的概率由大到小排序,取topk的建議列表推薦給用戶;用戶根據詞匯建議列表選擇合適的詞匯,若還未完成輸入,則模型根據被選擇的詞匯再次預測下一個詞匯,直至用戶輸入完成并輸出結果。
面向領域新聞的詞匯輸入預測系統根據記者撰寫新聞報道的領域來提供與該領域相關的詞匯,通過構建網絡、相關度計算、去噪等操作更加準確地提供與輸入詞匯相關度高的下一個詞匯,提高記者的寫稿質量和速度。
為了消除領域新聞中詞頻對詞匯預測準確率的影響,需優化文本數據來進一步明確輸入序列表示。主要通過詞匯序列間的關系構建詞匯網絡,借鑒TFIDF思想構建詞匯相關度度量模型刪除詞匯間的弱關系實現去噪,再還原為相應的文本數據。
領域新聞文本數據量龐大,通過構建詞匯網絡來快速且精確地得到整個文本的詞匯序列關系。TextRank[14]是一種基于圖的排序算法,通過把文本分割成若干詞匯,利用共現窗口構建詞匯之間的關系建立詞圖模型。因此,可以借鑒TextRank算法建立詞圖的思想,基于原文中詞匯前后序列的關系建立詞匯有向圖,進而構建詞匯網絡。主要步驟如下:
步驟1 對領域新聞文本R依據分離句子結束符進行分句,得R1=[S1,S2,S3,…,Sn];
步驟2 對文本R1依次去停用詞、數字、特殊字符來清洗文本,采用基于字典的分詞方法對每個句子進行分詞即Si=[w1,w2,w3,…,wm], 得R2=[w1,w2,w3,…,wn];
步驟3 基于文本R2中的詞序關系,以前一個詞匯指向后一個詞匯的順序遍歷R2建立有向詞圖。
上述步驟建立有向詞圖G=(V,E), 其中V為詞匯節點的集合,即步驟2得到的詞匯R2=[w1,w2,w3,…,wn],E為有向邊的集合,即由節點wi→wj構造有向邊。每次以當前詞匯位置依據先后順序向右遍歷全文得到兩個詞匯之間相同有向邊的總數量,即兩個節點之間的權值,從而構建詞匯網絡,如圖2所示。

圖2 構建詞匯網絡
圖2中左邊為原始文本,右邊為構建的詞匯網絡。每個詞匯都為一個節點,兩個節點間的連接則為邊。對于原始文本中的一個詞匯,定義這個詞匯在文本前后序列中的后一個詞匯為后繼詞匯。在原始文本中,詞匯“世界杯”的后繼詞匯分別有“冠軍”和“小組賽”,所以在相應的詞匯網絡中詞匯“世界杯”指向詞匯“冠軍”和“小組賽”;詞匯“歐洲”的后繼詞匯只有“冠軍”,所以詞匯“歐洲”只指向“冠軍”;詞匯“冷門”和“魔咒”沒有后繼詞匯,所以在相應的詞匯網絡中沒有指向任何一個詞匯。
詞匯網絡中存在許多相關性弱的關系,在預測時未考慮這些噪音的干擾,以致預測結果的準確率較低,因此,需計算詞匯之間的相關性大小進而達到去噪的目的。TF-IDF用以評估一字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度,廣泛應用于數據挖掘、文本處理和信息檢索等領域[15,16]。同樣,可以借鑒這種思想來構建詞匯相關度度量模型計算文本中詞匯之間的相關性,來評估一個詞匯對另一個詞匯的重要程度。一個詞匯的重要性隨著它作為另一個詞匯的后繼詞匯出現的次數成正比增加,但同時會隨著它作為所有詞匯的后繼詞匯出現的頻率成反比下降。
F為給定的詞匯b作為詞匯a的后繼詞匯所出現的頻率。fb為詞匯b作為詞匯a的后繼詞匯所出現的次數。mb為詞匯a所有的后繼詞匯出現次數總和。F值可計算為
(1)
定義D為詞匯b普遍重要性的度量。如果詞匯b作為不同詞匯的后繼詞匯出現的頻率越低,D也就越大。用 |W| 表示文本中所有詞匯的總數,用 |Q| 表示文本中后繼詞匯為詞匯b的詞匯a總數。D值可計算為
(2)
如果詞匯b為詞匯的后繼詞匯出現的頻率高,并且作為其它詞匯的后繼詞匯出現次數少,則說明詞匯b對詞匯a的重要程度高,相關度高。定義T為F與D的乘積,乘積越大,則說明兩個詞匯之間的相關度越高。T值可計算為
T=F×D
(3)
文本中詞匯的后繼詞匯包括許多相關性低的無用詞匯,不僅降低預測準確度同時也增加了計算的開銷。系統通過設置閾值的方式去除詞匯間的弱關系,通過去噪達到優化詞匯網絡的目的。用Y表示去除詞匯a序列后的噪聲詞匯而設置的閾值,可計算為
Y=(Tmax-Tmin)×μ+Tmin
(4)
式中:Tmax為詞匯a的后繼詞匯中最大的T值;Tmin為詞匯a的后繼詞匯中最小的T值;μ∈[0,1]是用來控制去除數據的范圍;當詞匯b在詞匯a序列后的T值大于Y,則保留兩個詞匯之間的關系;否則,去除兩個詞匯之間的關系。通過設置閾值修剪詞匯關系,實現詞匯網絡的優化。參數μ取值越大,產生的閾值就越大,詞匯網絡也就會越稀疏,反之亦然。
對于優化后的詞匯網絡需還原為文本數據,對原文本中詞匯之間的弱關系進行分割與刪除。主要步驟如下:
步驟1 在詞匯網絡中提取出T值低于閾值的兩個詞匯之間的關系。
步驟2 基于詞匯前后序列關系,每次以當前位置開始向右遍歷文本R2的過程中,對步驟1所提取出的弱關系詞匯使用分割符在詞匯之間進行分割得到文本R3。
步驟3 對文本R3再進一步修剪,若兩個分割符中間只存在一個詞匯時,則刪除這個詞匯以及只留下一個分割符,最后得到文本R4。
在遍歷完整個文本的同時刪除了所有詞匯之間的弱關系,得到優化后的文本數據,從而明確輸入序列表示。
詞匯輸入序列具有前后時間順序的結構特點,LSTM的輸入序列在時間維度上呈遞歸結構,因此,LSTM適用于詞匯輸入預測,能夠根據用戶輸入的詞匯來返回下一個詞匯的topk建議列表。
LSTM網絡是由Hochreiter & Schmidhuber[17]提出能夠學習長期依賴關系的特殊RNN。與標準RNN在神經網絡的重復模塊具有簡單的單層結構不同,LSTM的重復模塊通過4個神經網絡層結構以非常特殊的方式進行交互[18],如圖3所示。

圖3 LSTM結構

ft=σ(Wf·[ht-1,xt]+bf)
(5)
it=σ(Wi·[ht-1,xt]+bi)
(6)
(7)
(8)
ot=σ(Wo·[ht-1,xt]+bo)
(9)
ht=ot*tanh(Ct)
(10)

基于LSTM的詞匯輸入預測模型的整體架構如圖4所示,模型主要由輸入層、隱藏層、輸出層組成,其中隱藏層由三層LSTM層和一層DROPOUT層組成。根據文本數據中詞匯出現的頻率為每一個詞匯進行編號來構建字典,同時生成逆序字典以解碼 LSTM輸出數值為相應詞匯。在使用優化的文本數據訓練LSTM過程中,LSTM的輸入為詞匯對應的整數向量,輸出為Softmax激活函數歸一化后的預測概率向量,采用Adam優化器達到最小損失函數的目的,通過不斷更新迭代模型權重得到最優模型。根據用戶輸入的詞匯,模型依據預測概率向量,通過對概率進行逆序排序,并使用逆序字典解碼得到相應的topk詞匯建議列表。

圖4 基于LSTM的詞匯輸入預測模型
4.2.1 分類交叉熵損失函數
交叉熵損失函數通過最小化交叉熵得到目標概率分布之間的差異來衡量人工神經網絡(artificial neural networks,ANN)的預測值與實際值,其中分類交叉熵損失函數(categorical_crossentropy)適用于多分類問題,而詞匯輸入預測任務相當于把每個詞匯當作一個類別,通過預測下一個詞匯即某個類別的概率大小進行排序推薦,因此也可看作為一個多分類問題。損失是多類標簽與Softmax()函數計算得到的預測值之間的交叉熵大小,能夠準確衡量模型的訓練程度以便于后續優化,公式如下定義
(11)

4.2.2 Adam優化器
Adam優化器集成Ada Grad和RMSProp算法的優勢, 能夠計算不同參數的適應性學習率同時消耗更少存儲資源,經過偏置校正后,對于每個迭代學習率都有一個固定的范圍來穩定參數,并通過梯度的一階矩估計和二階矩估計動態調整學習率。計算公式[20]如下所示
(12)

5.1.1 實驗環境
實驗使用的CPU是Intel(R)Core(TM)i5-8250U,內存是8 GB。優化數據集算法部分由Java編寫,開發的環境為Eclipse Java 2019。詞匯輸入預測部分由Python編寫,開發的環境為PyCharm 2019。
5.1.2 實驗數據及參數設置
實驗所用的數據集見表1。實驗中模型的LSTM隱藏層節點數設置為512,初始學習率設置為0.001,數據批處理量batch_size設置為128,dropout層損失率設置為0.2。

表1 實驗數據集
5.1.3 評估方法
評估語言模型的直接方法是映射其準確性,所以在實驗中隨機選擇100個中文詞匯進行實驗效果評估。其ground truth為原始數據集文本去掉通用停用詞后的文本序列中前后兩個詞匯的關系。采用平均精度均值(mean ave-rage precision,MAP)來評估詞匯輸入預測結果的準確性。首先平均精度均值(MAP)定義為
(13)
式中:Z為詞匯輸入的次數;Lk(Wi) 為詞匯Wi輸入后預測結果的前k個詞匯的平均精度函數。Lk(Wi) 定義為
(14)
式中:n為處于預測結果的位置j時的相關詞匯數量;rel(j) 表示位置j上的詞匯是否相關,不相關為0,相關為1。
LSTM-opt為文中所提方法的模型,圖5(a)、圖6(a)為取不同參數μ的LSTM-opt模型對應的MAP值,其中k分別為5,10,15。參數μ是用來控制去除詞匯關系網絡中弱關系的范圍,減少噪音對詞匯輸入預測的影響。當μ取值為0.1時,MAP值最高,隨著μ的持續增長,由于刪除過多詞匯之間的關系,網絡過于稀疏,導致MAP值快速下降。

圖5 體育新聞數據集對應的MAP值

圖6 財經新聞數據集對應的MAP值
圖5(b)、圖6(b)、圖7和圖8分別為不同數據集的參數k對應的MAP值。通過觀察可知,隨著k的不斷增加,MAP值呈不斷下降趨勢。因為當k的取值較小時,檢索結果的范圍小,檢索出的相關詞匯與輸入詞匯都有較高的相關性,所以MAP值較大。但是隨著k的不斷增加,檢索范圍的擴大,檢索出來的弱相關詞匯也隨之增加,導致MAP值持續下降。從而可知返回結果中越靠前的詞匯與輸入詞匯的相關性越大,進一步說明本文方法返回的預測結果具有合理的排序。

圖7 娛樂新聞數據集參數k對應的MAP值

圖8 時政新聞數據集參數k對應的MAP值
其次,隨著k的增加,LSTM-opt(μ=0.1)模型的MAP值皆大于基準的LSTM模型的MAP值,這是因為基準LSTM模型訓練的數據集的詞匯網絡中存在許多的弱關系,不僅增加相關性計算的開銷,并且在詞匯輸入預測結果中產生噪音詞匯,導致準確率偏低。與之不同的是LSTM-opt(μ=0.1)模型由于刪去了部分詞匯之間的弱關系,實現了一定的去噪,優化了詞匯網絡,從而顯著地提高詞匯輸入預測的準確率。
通過隨機選擇4個詞匯進行實例展示來更清晰直觀地觀察實驗結果。面向體育新聞的詞匯輸入預測返回的結果見表2。由于訓練的數據集是體育領域新聞報道,所以返回的詞匯都與體育領域緊密相關。例如,當輸入“比分”時,返回的詞匯依次為“扳平”、“改寫”、“差距”等。在體育新聞中,“比分扳平”、“比分改寫”、“比分差距”等都是常用的高頻詞組搭配,兩個詞匯之間存在較高的相關性,因此非常符合體育新聞記者的寫稿習慣及要求。類似地,“球員”、“決賽”、“媒體”的返回結果也都滿足體育新聞記者的需求。

表2 面向體育新聞的詞匯輸入預測返回的詞匯序列
面向財經新聞的詞匯輸入預測返回的結果見表3。當輸入“股市”時,返回的詞匯依次為“大跌”、“上漲”、“下滑”等,而“股市大跌”、“股市上漲”、“股市下滑”在財經新聞中也都為常用詞組搭配,因此也完全符合財經新聞記者的寫稿習慣及要求。通過實例研究與分析,本文的方法能夠更加準確地返回記者所期望的結果,提高作者的寫稿速度。

表3 面向財經新聞的詞匯輸入預測返回的詞匯序列
文中研究與設計了一種面向領域新聞的詞匯輸入預測方法,實現了領域新聞記者的輸入預測功能?;陬I域新聞文本的詞序關系構建詞匯網絡,借鑒TFIDF模型的思想構建詞匯相關度度量模型,通過修剪詞匯關系來優化詞匯網絡,進一步優化用來訓練LSTM的文本數據。利用訓練好的LSTM模型,根據輸入詞匯得出前k個最相關的詞匯。通過大量實驗結果表明,與傳統LSTM模型相比,文中結合樣本修剪的方法有效地提高了領域新聞詞匯輸入預測的準確率,滿足了各領域新聞記者寫稿需求。在未來工作中,將著重于優化模型結構方面來進一步提高模型預測的準確率。