本文轉載自「itSaiD 它說」微信公眾號,「itSaiD 它說」來自鵬元評級旗下子公司深圳前海鵬元數據技術有限公司,想瀏覽更多債券及大數據金融風控資訊,請關注「itSaiD 它說」。
文章摘要是對文章內容的概括,在信息檢索中起著非常重要的作用。通過文章摘要可以快速高效地把握一篇文章的主要內容,有利於對文章的主要思想的理解。
本文基於TextRank算法對它說平臺發布的相關微信公眾號文章進行自動摘要及關鍵詞的提取。一定程度上可以減少人工編輯文章的工作量,特別針對海量文章的摘要的自動提取具有一定的參考價值。
自動摘要(Automatic Summarization)的方法主要有兩種:Extraction和Abstraction。其中Extraction是抽取式自動文摘方法,通過提取文檔中已存在的關鍵詞,句子形成摘要;Abstraction是生成式自動文摘方法,通過建立抽象的語意表示,使用自然語言生成技術,形成摘要。
由於生成式自動摘要方法需要複雜的自然語言理解和生成技術支持,應用領域受限。抽取式摘要成為現階段主流,它也能在很大程度上滿足人們對摘要的需求。
目前抽取式的主要方法:
•基於統計:統計詞頻,位置等信息,計算句子權值,再簡選取權值高的句子作為文摘,特點:簡單易用,但對詞句的使用大多僅停留在表面信息。
•基於圖模型:構建拓撲結構圖,對詞句進行排序。例如,TextRank/LexRank。
•基於潛在語義:使用主題模型,挖掘詞句隱藏信息。例如,採用LDA,HMM。
•基於線路規劃:將摘要問題轉為線路規劃,求全局最優解。
在python語言中用於文本摘要自動提取的庫包括goose,SnowNLP,TextTeaser,sumy,TextRank等。本文主要使用python的TextRank庫進行文章摘要的自動提取。下面主要介紹TextRank算法的主要思想:
TextRank算法是一種用於文本的基於圖的排序算法。其基本思想來源於谷歌的PageRank算法:
通過把文本分割成若干組成單元(單詞、句子)並建立圖模型, 利用投票機制對文本中的重要成分進行排序,僅利用單篇文檔本身的信息即可實現關鍵詞提取、文摘。和 LDA、HMM 等模型不同, TextRank不需要事先對多篇文檔進行學習訓練, 因其簡潔有效而得到廣泛應用。
TextRank一般模型可以表示為一個有向有權圖 G =(V, E), 由點集合 V和邊集合 E 組成, E 是V ×V的子集。圖中任兩點 Vi , Vj之間邊的權重為wji , 對於一個給定的點 Vi, In(Vi) 為指向該點的點集合 , Out(Vi) 為點 Vi 指向的點集合。點 Vi 的得分定義如下:
其中,d 為阻尼係數, 取值範圍為 0 到 1, 代表從圖中某一特定點指向其他任意點的概率, 一般取值為 0.85。使用TextRank算法計算圖中各點的得分時, 需要給圖中的點指定任意的初值, 並遞歸計算直到收斂,即圖中任意一點的誤差率小於給定的極限值時就可以達到收斂, 一般該極限值取 0.0001。
本文以它說平臺最近發布的微信公眾號文章名為「它說研究丨債券信用評級變動對到期收益率的影響」作為文本摘要自動提取的語料來源。原始的文章存在摘要及關鍵詞,因此需要去除原始的摘要及關鍵字,以便進行人工提取與算法自動提取的對比。
下面將從文本預處理,句子相似度計算,句子權重計算,抽取句,形成文摘,文摘關鍵字提取等方面進行文本摘要自動提取。
一、文本預處理
1.使用正則表達式去除文本多餘的換行符及空格,數字及英文字母;
2.文章分句:分句的依據為文章中出現句子結束符「.!?。!?」從而實現句子之間的切分;
3.使用python的中文分詞庫jieba進行句子分詞;
4.使用停用詞表去除停用詞;
5.TF_IDF特徵詞提取,最後候選關鍵詞表部分截圖如下:
6.特徵詞權重計算部分截圖如下:
二、句子相似度計算
構建圖G =(V,E),其中V為句子集,E為邊集。基於句子間的內容覆蓋率,給定兩個句子,採用如下公式進行計算:
若兩個句子之間的相似度大於給定的閾值,就認為這兩個句子語義相關並將它們連接起來,即邊的權值:
結果截圖如下:
其中(35,236)表示該文章總共有35個句子,236表示詞空間。該鏡像矩陣中元素為0表示句子與句子之間的相似度為0,兩個句子沒有交集,元素為1表明這兩個句子基本等價的。
三、句子權重計算
根據公式,通過pagerank迭代傳播權重計算各句子的得分,結果截圖如下:
四、抽取文摘句
將三得到的句子得分進行倒序排序,抽取重要度最高的T個句子作為候選文摘句。本文抽取重要程度最高的3個句子最為候選文摘句,結果如下:
說明評級公司關於債券信用級別的上調帶來了債券到期收益率的巨大波動,而市場投資者對這一反應的最終結果是不相信評級機構的信用級別調整。當債券信用級別上調時,投資者面臨更少的信用風險;當債券信用級別下調時,投資者面臨更多的信用風險。債券評級機構對債券信用級別的上調並沒有得到投資者的認可,反而在一定程度上給債券信用造成了負面的影響。
五、形成文摘
根據字數或句子數要求,從候選文摘句中抽取句子組成文摘。另外一方面為了保持文摘句的連貫性,符合中文語法要求,可以嘗試對文摘句進行詞性標註。本文採用jieba詞性標註工具(jieba.posseg)對文摘句進行標註,部分標註結果如下:
我們可以通過對文摘句進行詞性標註從而判斷文摘句的開頭是否為名詞結構,若不是便可以將其進一步簡化,本文文摘句以「說明」開頭,該詞語為動詞結構,可以嘗試通過詞性標註刪除該詞語,從而自動理順句子結構。最終結果如下:
評級公司關於債券信用級別的上調帶來了債券到期收益率的巨大波動,而市場投資者對這一反應的最終結果是不相信評級機構的信用級別調整。債券評級機構對債券信用級別的上調並沒有得到投資者的認可,反而在一定程度上給債券信用造成了負面的影響。
六、關鍵詞提取
使用jieba分詞提供的基於TextRank的關鍵詞提取工具(jieba.analyse.extract_tags)進行文摘句關鍵詞提取。本文提取前10個關鍵詞結果如下:債券,信用,級別,評級,上調,信用風險,投資者,面臨,機構,負面。
七、算法結果對比:
比較內容
人工編輯
TextRank算法自動提取
文本摘要
評級機構上調或下調債券信用級別,均會造成債券到期收益率的提高和波動短期內的加劇。債券評級機構對債券信用級別的上調並沒有得到投資者的認可,反而在一定程度上給債券信用造成了負面的影響
評級公司關於債券信用級別的上調帶來了債券到期收益率的巨大波動,而市場投資者對這一反應的最終結果是不相信評級機構的信用級別調整。債券評級機構對債券信用級別的上調並沒有得到投資者的認可,反而在一定程度上給債券信用造成了負面的影響。
關鍵詞
剩餘期限、到期收益率、債券信用級別
債券,信用,級別,評級,上調,信用風險,投資者,面臨,機構,負面
從以上表格可以看出基於TextRank算法的文本摘要及關鍵字提取也可以達到一個較好的結果。為後續的海量文章自動摘要的提取奠定了實踐基礎。
八、附jieba詞性標註表如下:
1. 名詞 (1個一類,7個二類,5個三類)
名詞分為以下子類:
n 名詞
nr 人名
nr1 漢語姓氏
nr2 漢語名字
nrj日語人名
nrf音譯人名
ns 地名
nsf音譯地名
nt機構團體名
nz其它專名
nl名詞性慣用語
ng名詞性語素
2. 時間詞(1個一類,1個二類)
t 時間詞
tg時間詞性語素
3. 處所詞(1個一類)
s 處所詞
4. 方位詞(1個一類)
f 方位詞
5. 動詞(1個一類,9個二類)
v 動詞
vd副動詞
vn名動詞
vshi動詞「是」
vyou動詞「有」
vf趨向動詞
vx形式動詞
vi 不及物動詞(內動詞)
vl動詞性慣用語
vg 動詞性語素
…