Python TextRank4ZH 應(yīng)用TextRank算法提取中文文本關(guān)鍵詞、關(guān)鍵詞組、關(guān)鍵句

關(guān)鍵詞提取有很多種方法,目前比較常用的兩種方法,一種是TFIDF算法,一種是TextRank算法。

本文此次采用的是TextRank算法。TextRank算法是一種文本排序算法,由網(wǎng)頁重要性排序算法PageRank算法改進(jìn)而來,它能夠從一個(gè)給定的文本中提取出該文本的關(guān)鍵詞、關(guān)鍵詞組,并使用抽取式的自動(dòng)文摘方法提取出該文本的關(guān)鍵句。

本文將基于TextRank算法提取中文文本的關(guān)鍵詞、關(guān)鍵詞組、關(guān)鍵句。

其中主要運(yùn)用到的是TextRank4ZH模塊,TextRank4ZH是針對中文文本的TextRank算法的Python算法實(shí)現(xiàn)。

1、準(zhǔn)備工作

(1)安裝TextRank4ZH模塊

pip install textrank4zh

(2)準(zhǔn)備需要分析的文本

以上文本保存命名為 test.txt ,編碼格式選擇 ANSI 。

2、實(shí)踐代碼

(1)提取關(guān)鍵詞

代碼如下:

from textrank4zh import TextRank4Keyword, TextRank4Sentence      #導(dǎo)入textrank4zh模塊

with open('C:\\Users\\DRF\\Desktop\\test.txt','r') as fileread:  #打開讀取test.txt
    test_text = fileread.read()                                  #文本內(nèi)容保存在變量test_text中

tr4w = TextRank4Keyword()
tr4w.analyze(text=test_text, lower=True, window=2)               #文本小寫,窗口為2

for item in tr4w.get_keywords(20, word_min_len=1):               #20個(gè)關(guān)鍵詞且每個(gè)的長度最小為1
    print(item.word, item.weight)

運(yùn)行結(jié)果:

(2)提取關(guān)鍵詞組

代碼如下:

from textrank4zh import TextRank4Keyword, TextRank4Sentence      #導(dǎo)入textrank4zh模塊

with open('C:\\Users\\DRF\\Desktop\\test.txt','r') as fileread:  #打開讀取test.txt
    test_text = fileread.read()                                  #文本內(nèi)容保存在變量test_text中

tr4w = TextRank4Keyword()
tr4w.analyze(text=test_text, lower=True, window=2)               #文本分析,文本小寫,窗口為2

for phrase in tr4w.get_keyphrases(keywords_num=20, min_occur_num=2):  #20個(gè)關(guān)鍵詞組,詞組在原文中出現(xiàn)次數(shù)最少為2
    print(phrase)

運(yùn)行結(jié)果:

(3)提取關(guān)鍵句

代碼如下:

from textrank4zh import TextRank4Keyword, TextRank4Sentence      #導(dǎo)入textrank4zh模塊

with open('C:\\Users\\DRF\\Desktop\\test.txt','r') as fileread:  #打開讀取test.txt
    test_text = fileread.read()                                  #文本內(nèi)容保存在變量test_text中

tr4s = TextRank4Sentence()
tr4s.analyze(text=test_text, lower=True, source = 'all_filters') #文本小寫,使用words_all_filters生成句子之間的相似性

for item in tr4s.get_key_sentences(num=3):                       #num=3表示為提取3個(gè)關(guān)鍵句
    print(item.index, item.weight, item.sentence)                #index是語句在文本中索引位置,weight是權(quán)重系數(shù)

運(yùn)行結(jié)果:

參考文獻(xiàn):https://github.com/letiantian/TextRank4ZH

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容