李 晨,趙燕清,于俊鳳,張銘君,DMYTRO LANDE,2
(1.齊魯工業大學(山東省科學院)情報研究所,濟南 250014;2.烏克蘭國立技術大學信息與計算機科學學院,基輔 03056)
政策通常是指政府、機構、組織為實現目標而訂立的計劃。政策文獻是政策的物化載體,是政府處理公共事務的真實反映和行為印跡,是對政策系統與政策過程客觀的、可獲取的、可追溯的文字記錄[1]。關鍵詞是對文本的高度概括和抽象,能夠幫助人們快速了解政策全文信息。因為政策本身的特殊性,原文中并不會設置關鍵詞字段,如果可以采用自動的方式提取出與主題相關的詞語或短語,則可以更好地輔助政策解讀。
目前政策文本關鍵詞提取算法大都以開源分詞工具為基礎,結合詞頻統計和人工輔助來實現。如吳賓等[2]利用開源工具人工提取海洋工程裝備制造業政策主題詞;吳愛萍等[3]運用扎根理論從政策樣本中提取高頻關鍵詞。如果可以利用機器學習的方式自動抽取政策關鍵詞,那么就可以進一步提高政策分析效率。現有的基于機器學習的關鍵詞提取算法大體可以分為兩類,分別是有監督提取方法和無監督提取方法。有監督的提取方法是一種分類方法,需要人工提前設置好訓練集,然后訓練出分類模型,最后通過分類模型完成關鍵詞提取。如果訓練集質量較高,用此方法可以得到比較好的結果,但是這種方式需要人工的參與,總體來說效率低、代價大。無監督的關鍵詞抽取方式目前主要有三種:基于統計方法(TF?IDF)的抽取方式、基于主題模型(LDA[4])的抽取方式和基于圖模型(TextRank)的抽取方式。
基于TF?IDF 的抽取算法是較為簡單的一種實現。該方法以詞頻統計為基礎,按照某個詞在單篇文檔中出現的次數和在所有文檔中出現的文檔頻率進行計算。該方法可以過濾一些常見的無關緊要的詞語,同時還能保留區分度較高的重要詞語。張驍等[5]就利用TF-IDF 算法結合實際對科技服務業政策文本的關鍵詞進行了提取。方法雖然易于實現但是缺點也很明顯,單純以詞頻衡量詞的重要性,不夠全面,同時也不能反映詞的位置信息。為了克服這些缺點,很多人對TF?IDF 算法進行了改進。張瑾[6]在原有的算法基礎上加入位置權值及詞跨度權值,避免了單純采用TF?IDF 算法產生的偏差。
LDA 模型在自然語言領域被大規模應用,該技術同樣也適用于文本關鍵詞抽取。基于LDA 的實現方式需要對數據集進行訓練得到主題模型,選取能夠反映主題的詞語作為候選關鍵詞,這種方式抽取的關鍵詞很大程度上依賴訓練數據的主題分布情況。
基于圖模型的關鍵詞提取算法近年來研究較多,借鑒PageRank[7]算法思想進行改進與擴展。該方法是將文本轉化為相關詞的詞語網絡圖,該圖的節點是詞,邊是詞語之間的共現關系,該類算法無需引入外部語料進行訓練,只需對圖進行隨機游走即可實現詞語排序和關鍵詞抽取。TextRank[8]借鑒了PageRank 算法思想,首次實現了對詞圖上的關鍵詞評分并根據評分結果完成關鍵詞提取,成為了無監督關鍵詞抽取方法的典型代表。為了進一步改進TextRank算法的提取效果,很多人對該算法進行了改進。夏天[9]以TextRank 為基礎,引入詞語位置信息加權計算鄰接詞語的影響力轉移矩陣,有效提高了抽取效果;李航等[10]提出一種綜合考慮詞性、詞語位置信息、詞語對文檔集重要程度的改進TextRank 方法;劉嘯劍等[11]利用LDA 構建主題模型,計算詞語相似度并以此相似度為權重構建圖的邊,以短語作為圖的節點,選擇top-k個詞作為文章的關鍵詞。
隨著詞向量技術的產生,越來越多的人開始研究將詞向量與TextRank 結合進行關鍵詞提取。詞向量技術可以挖掘出詞與詞之間的語義關系,然后將這種語義關系引入到TextRank 算法的計算過程當中,從而解決TextRank 只考慮詞共現的缺陷。周錦章等[12]通過構建詞向量,基于隱含主題分布思想和詞匯的語義差異構建轉移矩陣,將詞向量與TextRank融合。
本文在已有研究基礎之上以維基百科作為外部知識庫結合互聯網獲取的政策文本構建詞向量,根據《國務院公文主題詞表》為詞語初始化權重,再利用詞向量計算詞語之間語義相似度,結合政策文本位置權重共同構建TextRank轉移矩陣,最終選擇K個關鍵詞。
詞向量是指用來表示詞語的向量,如比較簡單的One?hot representation。由Mikolov 提出的word2vec 是至今比較有名的詞向量表示方式。word2vec 的出現解決了傳統詞袋模型的缺點,而word2vec 再生成詞向量的時候會把每個詞當成原子,忽略詞內部的形態特征。相對于word2vec,fastText 添加 了subwords 特 性,使 用字符級的n?grams 來表示單詞,這樣每個單詞除保留了本身外還被表示成多個n?grams。對于每一個單詞,fastText 在拆分成n?grams 表示的時候,還在單詞前后端加入“<”和“>”,用于區分前綴和后綴,如單詞hello采用3?grams可以表示為:
本文利用開源的fastText 工具,將維基百科和政策內容融合共同構建詞向量。
利用TextRank 進行關鍵詞抽取的思想比較簡單:首先根據詞共現關系構建無向帶權圖,然后利用PageRank 循環迭代計算節點權值,排序權值即可得到最終關鍵詞。TextRank 算法的核心計算公式如式(2)所示:
其中:WS(Vi)表示節點Vi的權值;ln(Vi)表示指向Vi的節點集合;Out(Vj)表示節點Vj指向的節點集合;wji表示兩個節點之間邊的權重;WS(Vj)表示節點Vj的權值;d為阻尼系數,一般取值0.85。基于TextRank的關鍵詞抽取步驟如下:
(1)文本預處理。包括按句子進行文本分割、分詞、詞性標注、去停用詞。
(2)構建詞圖。文本預處理之后的詞語構成節點集合,根據詞語的共現關系構建邊集。邊的構建采用滑動窗口機制,即當兩個節點在長度為K的窗口中共現,它們之間才會存在邊。
(3)根據公式(2)迭代各節點的權重,直到結果收斂。
(4)對結果進行排序,得到top?k關鍵詞。
(5)對所得到的關鍵詞進行組合,如果組合的詞匯在政策全文中出現,則選擇該組合詞作為一個關鍵短語。
本文通過引入詞向量等方式對上述步驟進行修改,從而達到面向政策文獻的關鍵詞抽取。
對于步驟(1),在進行分詞的時候引入《國務院公文主題詞表》作為詞庫,同時剔除此表中無區分度的詞語,如:章程、條例、辦法、細則、規定、命令、決定、決議、公告、通告、通知、通報、報告、請示、批復、函、會議紀要、答復等。
當關鍵詞出現在詞表中的時候,在原有權重的基礎上再乘1.5。
對于步驟(2),在構建此圖邊集的時候綜合考慮詞語的位置信息和詞語之間的語義相似度,共同構建轉移矩陣。圖中任意兩個節點vi和vj之間的權重轉移是通過邊wij來完成的,wij的構建如公式(3)所示:
其中,ft(i,j)計算方式如下:
vsim(i,j)表示vi和vj的的語義相似度,將兩者的詞向量取出,按照余弦相似度進行計算,coc(i,j)表示二者共現次數。pos(i,j)表示政策文本位置信息的重要影響程度,其計算方式如下所示,pj表示詞語出現的位置權重:
本文以我國“雙創”政策為例,驗證提出方法的有效性和實用性。首先從互聯網相關網站搜索以國務院以及各部委為發文主體,以“雙創”為內容的政策文件共計163 篇(如表1 所示)。

表1 “雙創”政策(部分)
根據本文提出的算法,對上述政策列表進行關鍵詞提取,剔除權重小于1.0 的關鍵詞,最終得到關鍵詞192 個(見表2)。從關鍵詞列表和詞云可以看出,國家以創新創業為核心制定多項保障措施,如政府工作改革、提供支持政策、加強科技支持、培養創新孵化企業、優化稅收政策、提供貸款資金支持等。

表2 “雙創”政策關鍵詞列表(部分)
精確率方面,本文使用維基百科中文語料和從互聯網采集到的163篇“雙創”政策作為詞向量訓練文本(參數維度設置為100,窗口大小為5),選擇其中50 條政策作為測試集,采用多人交叉標注的方式為每篇政策選擇10個關鍵詞。實驗指標采用精準率P、召回率R和F1 值進行評測,其中N1表示人工標注合集,N2表示算法抽取合集。
實驗選擇提取5、8、10 個關鍵詞對不同的方法進行對比,結果如表3 所示。具體包括引入政策文本位置信息的TF?IDF 方法(方法1)、TextRank 方法(方法2)、基于Word2Vector 的關鍵詞抽取方法(方法3)。

表3 不同提取方法的比較結果
為了能夠更直觀地查看對比結果,采用折線圖的方式將準確率P、召回率R和F1 值進行展示,如圖1所示。

圖1 對比結果
從圖1可以看出,實現方式最簡單的是方法1,其實驗結果要優于方法2 和方法3。對于方法2,它的實現雖然不依賴于語料環境,但是在沒有任何改進的情況下也不能取得較好的結果。在未加入外部語料和只考慮詞語相似度的情況下,方法3雖然引入了詞向量技術,但是實驗結果卻是最差。本文提出的方法在關鍵詞抽取個數不同的情況下相對其他幾種算法效果都有明顯的提升,準確率、召回率和F1 值均高于其他三種方法,驗證了提出方法的有效性和實用性。
當對政策文本進行主題分析時,往往需要提取政策文本的關鍵詞匯,而由于其本身的特殊性,并不會直接提供關鍵詞字段,所以就要對政策關鍵詞進行提取。本文提出了一種將外部知識庫和政策庫融合共同構建詞向量,利用《國務院公文主題詞表》修改詞語權重,綜合考慮位置信息和詞語相似度構建TextRank 轉移矩陣的政策文本關鍵詞抽取方法。以“雙創”政策為例,提取政策關鍵詞,結果表明本文提出的方法具有較好的效果,可用于政策文本主題分析,為政策研究人員提供輔助支持。