關(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


以上文本保存命名為 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