

三行代碼,給你的論文自動生成摘要
以前寫過一篇關於論文降重的技術爽文,收到了不錯的反響。
畢業生的法寶,論文一鍵降重~!
最近對畢業論文方面的問答作了一個統計,發現除了降重,「摘要」的準備以及撰寫也是莘莘學子們重點關心的一個話題,那摘要有沒有可能用代碼實現的捷徑呢?
確實是有的,老K在這裏就給你們介紹一下:python
1. 首先導入須要的第三方庫
# encoding:utf-8
from gensim.summarization import summarize
import re
- 因爲咱們論文主要由漢字組成,爲了不編碼問題,如今腳本頭部寫上utf-8的聲明;
- 咱們會用到的,是一個叫作gensim的庫:
「gensim是一個用於天然語言處理的庫,最先是用來生成給定文章類似內容的工具,gensim自己就是「generate similar」的合成詞。
- 因此,想要實現摘要方面的功能,gensim是很適合的一個庫。
- 它會用到的依賴庫有numpy和smart_open。
2. 對文本進行預處理
text = re.sub(r'。|?|!', '. ', text)
- gensim的算法是基於句子進行的。
- 因爲gensim自己是針對英語文本的,因此爲了讓gensim能識別中文裏的「句子」概念。咱們作了一下以上的處理。
- 以「. 」結尾,使gensim能判斷此處爲一句的終止符號。
3. 一行代碼實現摘要
abstract = summarize(text)
- gensim的summarize模塊,是基於textrank的變體。
- textrank是以句子爲最小單位,計算句子與句子之間的關聯度,以此獲得最具表明性的文本。最具表明性的文本,自己也就是最適合用於總結概述一段長文的句子。
ex. 總結
# encoding:utf-8
from gensim.summarization import summarize
import re
def do_abstract(text):
text = re.sub(r'。|?|!', '. ', text)
abstract = summarize(text)
return abstratc
以上代碼能夠幫助你以最快的速度獲取論文的核心內容,你能夠用於:算法
- 快速獲取參考文獻的核心內容,以判斷該論文是否適合您的論文主題
- 快速生成您論文的摘要內容草稿,能夠直接從草稿開始修改,減小你從頭組織語言的麻煩
「textrank是源於google的pagerank算法啓發,應用到天然語言處理領域的結果。
- summarize模塊有不少參數能夠設置,以適應需求更加趨於個性化的現實環境。
- 對textrank感興趣的朋友,能夠百度Rada Mihalcea和Paul Tarau撰寫的論文《TextRank: Bringing Order into Texts》瞭解更詳細的原理。
- 不適應英文閱讀的朋友,也能夠關注個人公衆號《老K玩代碼》,後續我會針對這篇論文寫一篇我的的中文解析。
該代碼只能幫助您彙總文章核心內容,但不能徹底替代摘要的撰寫工做。
老K撰寫本文以技術分享爲初心,並仍然鼓勵畢業生自主進行論文創做。
往期精彩推薦:編程
數據可視化有什麼好的Python項目?
【熱薦】大佬們推薦的Python入門書綜述
深度學習,你們都看哪些社區論壇?
[推薦]10個免費python機器學習項目
手把手教新手安裝Anaconda配置開發環境機器學習
粉絲福利:
- 閱讀、分享《學好JavaScript基本功,老K推薦這幾本書》,有機會得到《JavaScript高級程序設計》1本
- 閱讀、分享《11本推薦新手自學入門Python的必看書目》,有機會得到《Python核心編程》1本
