1. 程式人生 > >使用TextRank演算法為文字生成關鍵字和摘要

使用TextRank演算法為文字生成關鍵字和摘要

TextRank演算法基於PageRank,用於為文字生成關鍵字和摘要。其論文是: 
Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Association for Computational Linguistics, 2004.

先從PageRank講起。 

PageRank


PageRank最開始用來計算網頁的重要性。整個www可以看作一張有向圖圖,節點是網頁。如果網頁A存在到網頁B的連結,那麼有一條從網頁A指向網頁B的有向邊。

構造完圖後,使用下面的公式:


S(Vi)是網頁i的中重要性(PR值)。d是阻尼係數,一般設定為0.85。In(Vi)是存在指向網頁i的連結的網頁集合。Out(Vj)是網頁j中的連結存在的連結指向的網頁的集合。|Out(Vj)|是集合中元素的個數。

PageRank需要使用上面的公式多次迭代才能得到結果。初始時,可以設定每個網頁的重要性為1。上面公式等號左邊計算的結果是迭代後網頁i的PR值,等號右邊用到的PR值全是迭代前的。

舉個例子:


上圖表示了三張網頁之間的連結關係,直覺上網頁A最重要。可以得到下面的表:

   結束\起始
A
B
C
A
0
1
1
B
0
0
0
C
0
0
0

橫欄代表其實的節點,縱欄代表結束的節點。若兩個節點間有連結關係,對應的值為1。 

根據公式,需要將每一豎欄歸一化(每個元素/元素之和),歸一化的結果是: 

   結束\起始
A
B
C
A
0
1
1
B
0
0
0
C
0
0
0

上面的結果構成矩陣M。我們用matlab迭代100次看看最後每個網頁的重要性: ?
1 2 3 4 5 6 7 8 9 10 11 M = [0 1 1 0 0 0 0 0 0]; PR = [1; 1 ; 1]; for iter = 1:100 PR = 0.15 + 0.85*M*PR; disp(iter); disp(PR); end
執行結果(省略部分): 

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ...... 95 0.4050 0.1500 0.1500

相關推薦

使用TextRank演算法文字生成關鍵字摘要

TextRank演算法基於PageRank,用於為文字生成關鍵字和摘要。其論文是:  Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Association for Computational Linguistics, 200

NLP—TextRank演算法獲取文字關鍵詞摘要

TextRank演算法主要用來生成文字的關鍵詞和摘要,其來源於PageRank演算法,下面先介紹PageRank。PageRank在搜尋領域有廣泛的應用,最開始用來計算網頁的重要性。可以把整個網路看成有向圖,網頁是結點,如果網頁A中存在一條連結指向網頁B,則認為A到B存在一條

基於關鍵詞的文字生成----思路思考

文字生成是最近研究的熱點,他的生成源有很多,如:圖片、文字、視訊等。本文想針對一些特殊場合的需要關鍵詞的文字生成工作,在這裡把思路記錄一下。這裡使用的是傳統方式,有機會會嘗試深度學的方式。(1)依賴的語法選擇如果想讓句子讀起來通順,就需要一定的語法框架,但是常規的語法會有較多

今日頭條文章js生成cpas引數轉換phppython演算法【原創】

今日頭條js生成cp和as引數轉換為php和python演算法 【原創】 cp 和 as 引數實際是對當前時間戳的加密後得到的 JS !function(t) {     var i = {};    

Python的jieba分詞及TF-IDFTextRank 演算法提取關鍵字

參考文章:Github上的專案———jieba 中文分詞 對於NLP(自然語言處理)來說,分詞是一步重要的工作,市面上也有各種分詞庫,11款開放中文分詞系統比較。 1.基於詞典:基於字典、詞庫匹配的分詞方法;(字串匹配、機械分詞法) 2.基於統計:基於詞頻度統計的分詞方法;&n

Word2vec加TextRank演算法生成文章摘要

依賴包:https://download.csdn.net/download/dreamzuora/10853874 程式碼: String document = "演算法可大致分為基本演算法、資料結構的演算法、數論演算法、計算幾何的演算法、圖的演算法、動態規劃以及數值分析、加密演

caption標簽,表格添加標題摘要

用戶 閱讀器 優化 標題 特殊 reg tips image 語法 caption標簽,為表格添加標題和摘要 表格還是需要添加一些標簽進行優化,可以添加標題和摘要。代碼如下: 摘要 摘要的內容是不會在瀏覽器中顯示出來的。它的作用是增加表格的可讀性(語義化),使搜索引擎

關於VLOOKUP中,數字單元格格式化為文字在數字單元格中增加單引號轉換數字文字的區別

今天遇到一個問題。使用VLOOKUP函式時,明明可以看到“完全相同”的列值,但是在VLOOKUP中結果卻是N/A。 從巨硬社群中找到了相應的答案: 原文連結:https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel

CentOS 7.x下最簡單的nginx生成維護網站https簽名

1、在 CentOS 7.x 下使用yum方式安裝cerbot yum install -y certbot 之前使用wget 的 certbot-auto 指令碼,經常出現一些異常:比如python版本問題,作業系統平臺依賴包不相容等問題。 2、安裝certbot之後,還要安裝一個

關鍵詞抽取演算法介紹:TF-IDFTextRank

一、前言 關鍵詞抽取就是從文本里面把跟這篇文件意義最相關的一些詞抽取出來。這個可以追溯到文獻檢索初期,當時還不支援全文搜尋的時候,關鍵詞就可以作為搜尋這篇論文的詞語。因此,目前依然可以在論文中看到關鍵詞這一項。 除了這些,關鍵詞還可以在文字聚類、分類、自動摘要等領域中有著重要的作用。

【NLP】【十一】基於RNNtf.keras 實現文字生成

【一】宣告 本文源自TensorFlow官方指導(https://tensorflow.google.cn/tutorials/sequences/text_generation),增加了部分細節說明。 【二】綜述 1. tf.keras與keras有如下三個較大的不同點 1):op

textRank演算法原理介紹與摘要提取

TextRankTextRank 公式在 PageRank 公式的基礎上,為圖中的邊引入了權值的概念:wijwij 就是是為圖中節點 ViVi 到 VjVj 的邊的權值 。dd 依然為阻尼係數,代表從圖中某一節點指向其他任意節點的概率,一般取值為0.85。In(Vi)In(V

如何用Python以太坊比特幣生成vanity虛榮地址

今天,我們將編寫一個非常簡單的python指令碼來生成虛榮地址,這些地址是以某個短語或字母序列開頭的加密貨幣地址。該過程涉及生成私鑰並檢查目標短語的地址,直到找到滿意的地址。 安裝包 首先,我們需要安裝一些可以執行計算的軟體包,以便從私鑰生成有效的公共地址。要生

textrank演算法原理與提取關鍵詞、自動提取摘要PYTHON

首先介紹原理與概念 TextRank 演算法是一種用於文字的基於圖的排序演算法。其基本思想來源於谷歌的 PageRank演算法(其原理在本文在下面), 通過把文字分割成若干組成單元(單詞、句子)並建立圖模型, 利用投票機制對文字中的重要成分進行排序, 僅利用單

[NLP][Python]基於kerasLSTM的文字生成

RNN and LSTM 學習如何使用RNN來預測和序列處理。 迴圈神經網路除了用於預測模型(做出預測)之外,他們還可以學習問題的序列,然後為問題域生成全新的合理序列。 初次嘗試將問題分解為三個子問題。 - 1.下載一個免費的文字語料庫,您可以使用它來訓

POI設定EXCEL單元格格式文字、小數、百分比、貨幣、日期、科學計數法中文大寫

第一種:日期格式 cell.setCellValue(new Date(2008,5,5)); //set date format HSSFCellStyle cellStyle = demoWork

VS2013中C++程式生成libdll檔案

dll的優點 程式碼複用是提高軟體開發效率的重要途徑。只要某部分程式碼具有通用性,就可將它構造成相對獨立的功能模組並在之後的專案中重複使用。比較常見的例子是各種應用程式框架,ATL、MFC等,它們都

文字新增下劃線中劃線

Android開發中如何給文字新增下劃線和中劃線呢,先看一下效果圖: 下劃線: 中劃線: 方式一: //新增下劃線 // textView.getPaint().setFl

Python生成漢字字型檔文字,以及轉換文字圖片

筆者小白在收集印刷體漢字的深度學習訓練集的時候,一開始就遇到的了一個十分棘手的問題,就是如何獲取神經網路的訓練集資料。通過上網搜素,筆者沒有找到可用的現成的可下載的漢字的訓練集,於是筆者採用了程式碼自建漢字的訓練集資料。 這裡採用的是python編寫程式,需要

基於RNN的文字生成演算法的程式碼運轉

“什麼時候能自動生成部落格?” 前言 RNN相對於傳統的神經網路來說對於把握上下文之間的關係更為擅長,因此現在被大量用在自然語言處理的相關任務中,例如生成與訓練文集相似的文字、序列標註、中文分詞等。 此文列出兩種基於RNN的文字生成演算法,以供參考。 正文 基於字元的文字生成演算法 此程式碼為