一、文本摘要(Document Summarization,Toolkit工具)
文本摘要是指通過各種技術,對文本或者是文本集合,抽取、總結或是精煉其中的要點信息,用以概括和展示原始文本(集合)的主要內容或大意。作爲文本生成任務的主要方向之一,從本質上而言,這是一種信息壓縮技術。
文本摘要的目的是爲了讓用戶在當今世界海量的互聯網數據中找到有效的信息。實現這一點的有兩種不同的方式,一是以百度爲代表的搜索引擎方案,可以理解爲用戶主動行爲。可以發現,當我們進行關鍵詞搜索的時候,除了標題,高亮展示的便是約爲top100個字符,這個可以看成一個簡單的Lead3算法;另外一種方案便是信息流,該方案的集大成者是今日頭條。該方案可以理解爲用戶被動行爲,是在移動互聯網上的一種推薦系統。
二、文本摘要分類
大致瞭解了什麼是文本摘要,接下來我們來介紹一下文本摘要的分類。
2.1 按照輸入文本類型的不同,可以分爲單文檔文本摘要和多文檔文本摘要;
2.2 按照實現技術方案的不同,可以分爲抽取式文本摘要、生成式文本摘要、混合式文本摘要;
2.3 按照摘要目的的不同,可以分爲關鍵詞摘要、短語摘要、句子摘要、段落摘要等。
github項目: https://github.com/yongzhuo/nlg-yongzhuo
三、文本摘要技術
我們按照實現技術方案的不同(抽取式、生成式、混合式),大致講解一下文本摘要的實現技術。
3.1 抽取式文本摘要
抽取式文本摘要, 顧名思義,就是從文檔,或者文檔集中抽取其中一句話,或者幾句話,構成摘要。這種方案的好處在於簡單實用,不會完全脫離於文檔本身。換言之,域值比較好判斷,不容易產生完全偏離文章主旨的點。
抽取式文本摘要的主要方法有:
A. 基於經驗(nous_base)的Lead3算法、keyword算法;
B. 基於特徵(feature_base)的word_significance算法、text_pronouns算法、text_teaser算法等;
C. 基於圖(graph_base)的textrank算法、lex_rank算法等;
D. 基於主題模型(topic_base)的NMF算法、LSI算法、LDA算法;
E. 基於規則(rule_base)的Grammer算法;
F. 基於有監督學習(supervised_machine_learning_base)的傳統機器學習算法、SummaRuNNer算法;
G. 基於有監督學習(supervised_deeplearning_learning_base)的深度學習算法,如Bertsum;
H. 基於中心度(centroid_base)的centroid bow算法;
I. 基於信息冗餘(information_base)的mmr算法。
3.2 生成式文本摘要
抽取式文本摘要, 儘管有其優點,但也可能有着生成摘要不連貫、字數不好控制、目標句主旨不明確等缺點,甚至可以說,其摘要好壞決定於原文。
而生成式文本摘要就沒有這樣的問題,因爲生成式文本摘要是一個端到端的過程,這種技術方案,趨同於翻譯任務和對話任務,從而可以吸收、借鑑翻譯任務和對話任務的成功經驗。
生成式文本摘要的主要方法有:
A. 早期的LSTM;
B. 早期的encode-decode模型,如lstm2lstm;
C. Seq2seq + Attention模型,注意力機制的思想是NLP技術上的一次大的飛躍;
D. Self-Attention和Transformer,自注意力機制;
E. 預訓練+微調,例如Bert與PreSumm,Bert的誕生,是NLP歷史上的里程碑事件。
3.3 生成-抽取式文本摘要
凡事都還還想着兩全齊美呢。
四、文本摘要評價指標
文本摘要的主要評價指標是Rouge-N,當然也可以用BLUE。
Rouge-N,由預測摘要與真實摘要N-gram信息的交集與並集的商可得(N爲1,2,3,4......)。由其含義可知,rouge(recall-oriented understanding for gisting evaluation),與召回率相似。
不過,從實踐經驗來看,無論是rouge-n還是blue,對於英文還勉強,適配中文完全不靠譜,重點還是人去看,自己評估。
五、文本摘要工具tookit
常見工具
1.https://github.com/miso-belica/sumy
參考&感謝:
1. 文本自動生成研究進展與趨勢: https://blog.csdn.net/jinhao_2008/article/details/78695508
2. 文本摘要簡述: https://www.jiqizhixin.com/articles/2019-03-25-7
3. 大衆點評信息流基於文本生成的創意優化實踐: https://my.oschina.net/meituantech/blog/3022851
4. awesome-text-summarization: https://github.com/icoxfog417/awesome-text-summarization
希望對你有所幫助!