基于Textrank算法的两种关键词提取

本文介绍了PageRank和TextRank算法的应用,展示了如何使用结巴分词工具和TextRank4zh库在Python中实现TextRank算法,包括关键词抽取、关键短语提取以及关键句抽取的过程。
摘要由CSDN通过智能技术生成

1.PageRank算法 

 

2.TextRank算法

3.两种代码实现

3.1采用结巴分词工具的方式实现 TextRank 算法

def keywords_textrank(text):
    keywords = jieba.analyse.textrank(text, topK=6)
    return keywords

 3.2采用 TextRank4zh 的方式实现 TextRank 算法

def keywords_extraction(text):
    tr4w = TextRank4Keyword(allow_speech_tags=['n', 'nr', 'nrfg', 'ns', 'nt', 'nz'])
    # allow_speech_tags   --词性列表,用于过滤某些词性的词
    tr4w.analyze(text=text, window=2, lower=True, vertex_source='all_filters', edge_source='no_stop_words',
                 pagerank_config={'alpha': 0.85, })
    # text    --  文本内容,字符串
    # window  --  窗口大小,int,用来构造单词之间的边。默认值为2
    # lower   --  是否将英文文本转换为小写,默认值为False
    # vertex_source  -- 选择使用words_no_filter, words_no_stop_words, words_all_filters中的哪一个来构造pagerank对应的图中的节点
    #                -- 默认值为`'all_filters'`,可选值为`'no_filter', 'no_stop_words', 'all_filters'
    # edge_source  -- 选择使用words_no_filter, words_no_stop_words, words_all_filters中的哪一个来构造pagerank对应的图中的节点之间的边
    #              -- 默认值为`'no_stop_words'`,可选值为`'no_filter', 'no_stop_words', 'all_filters'`。边的构造要结合`window`参数

    # pagerank_config  -- pagerank算法参数配置,阻尼系数为0.85
    keywords = tr4w.get_keywords(num=6, word_min_len=2)
    # num           --  返回关键词数量
    # word_min_len  --  词的最小长度,默认值为1
    return keywords

 3.3 

from textrank4zh import TextRank4Keyword    # 导入相关模块
import jieba.analyse 
if __name__ == '__main__':         # 定义要提取的文本 
    text = (" 燕山大学是河北省人民政府、教育部、工业和信息化部、国家国防科技工业局四方共建的全国重点大学,河北省重点支持的国家一流大学和世界一流学科建设高校,北京高科大学联盟成员。") 
    tr4w = TextRank4Keyword()     # 关键词提取 
#采用 TextRank4zh 的方式实现 TextRank 算法 
    tr4w.analyze(text=text, lower=True, window=5)  
    print(' 关键词 :') 
    for item in tr4w.get_keywords(10, word_min_len=1): 
        print(item['word'], item['weight'])

#利用采用结巴分词工具的方式实现 TextRank 算法 
result = jieba.analyse.textrank(text,topK=5) 
print(result)

 4、运行结果

5.补充 

# import jieba.analyse
# from textrank4zh import TextRank4Keyword,TextRank4Sentence
#关键短语抽取
def keyphrases_extraction(text):
    tr4w = TextRank4Keyword()
    tr4w.analyze(text=text, window=2, lower=True, vertex_source='all_filters', edge_source='no_stop_words',
                 pagerank_config={'alpha': 0.85, })
    keyphrases = tr4w.get_keyphrases(keywords_num=6, min_occur_num=1)
    # keywords_num    --  抽取的关键词数量
    # min_occur_num   --  关键短语在文中的最少出现次数
    return keyphrases

#关键句抽取
def keysentences_extraction(text):
    tr4s = TextRank4Sentence()
    tr4s.analyze(text, lower=True, source='all_filters')
    # text    -- 文本内容,字符串
    # lower   -- 是否将英文文本转换为小写,默认值为False
    # source  -- 选择使用words_no_filter, words_no_stop_words, words_all_filters中的哪一个来生成句子之间的相似度。
    # 		  -- 默认值为`'all_filters'`,可选值为`'no_filter', 'no_stop_words', 'all_filters'
    # sim_func -- 指定计算句子相似度的函数

    # 获取最重要的num个长度大于等于sentence_min_len的句子用来生成摘要
    keysentences = tr4s.get_key_sentences(num=3, sentence_min_len=6)
    return keysentences

 参考链接:http://t.csdnimg.cn/NbtVc飞桨AI Studio星河社区-人工智能学习与实训社区

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轻晃痛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值