关键词提取有很多种方法,目前比较常用的两种方法,一种是TFIDF算法,一种是TextRank算法。
本文此次采用的是TextRank算法。TextRank算法是一种文本排序算法,由网页重要性排序算法PageRank算法改进而来,它能够从一个给定的文本中提取出该文本的关键词、关键词组,并使用抽取式的自动文摘方法提取出该文本的关键句。
本文将基于TextRank算法提取中文文本的关键词、关键词组、关键句。
其中主要运用到的是TextRank4ZH模块,TextRank4ZH是针对中文文本的TextRank算法的Python算法实现。
1、准备工作
(1)安装TextRank4ZH模块
pip install textrank4zh
(2)准备需要分析的文本
以上文本保存命名为 test.txt ,编码格式选择 ANSI 。
2、实践代码
(1)提取关键词
代码如下:
from textrank4zh import TextRank4Keyword, TextRank4Sentence #导入textrank4zh模块
with open('C:\\Users\\DRF\\Desktop\\test.txt','r') as fileread: #打开读取test.txt
test_text = fileread.read() #文本内容保存在变量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个关键词且每个的长度最小为1
print(item.word, item.weight)
运行结果:
(2)提取关键词组
代码如下:
from textrank4zh import TextRank4Keyword, TextRank4Sentence #导入textrank4zh模块
with open('C:\\Users\\DRF\\Desktop\\test.txt','r') as fileread: #打开读取test.txt
test_text = fileread.read() #文本内容保存在变量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个关键词组,词组在原文中出现次数最少为2
print(phrase)
运行结果:
(3)提取关键句
代码如下:
from textrank4zh import TextRank4Keyword, TextRank4Sentence #导入textrank4zh模块
with open('C:\\Users\\DRF\\Desktop\\test.txt','r') as fileread: #打开读取test.txt
test_text = fileread.read() #文本内容保存在变量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个关键句
print(item.index, item.weight, item.sentence) #index是语句在文本中索引位置,weight是权重系数
运行结果:
网友评论