当前位置:   article > 正文

基于Textrank算法的两种关键词提取_textrank 获取句子的关键词

textrank 获取句子的关键词

1.PageRank算法 

 

2.TextRank算法

3.两种代码实现

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

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

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

  1. def keywords_extraction(text):
  2. tr4w = TextRank4Keyword(allow_speech_tags=['n', 'nr', 'nrfg', 'ns', 'nt', 'nz'])
  3. # allow_speech_tags --词性列表,用于过滤某些词性的词
  4. tr4w.analyze(text=text, window=2, lower=True, vertex_source='all_filters', edge_source='no_stop_words',
  5. pagerank_config={'alpha': 0.85, })
  6. # text -- 文本内容,字符串
  7. # window -- 窗口大小,int,用来构造单词之间的边。默认值为2
  8. # lower -- 是否将英文文本转换为小写,默认值为False
  9. # vertex_source -- 选择使用words_no_filter, words_no_stop_words, words_all_filters中的哪一个来构造pagerank对应的图中的节点
  10. # -- 默认值为`'all_filters'`,可选值为`'no_filter', 'no_stop_words', 'all_filters'
  11. # edge_source -- 选择使用words_no_filter, words_no_stop_words, words_all_filters中的哪一个来构造pagerank对应的图中的节点之间的边
  12. # -- 默认值为`'no_stop_words'`,可选值为`'no_filter', 'no_stop_words', 'all_filters'`。边的构造要结合`window`参数
  13. # pagerank_config -- pagerank算法参数配置,阻尼系数为0.85
  14. keywords = tr4w.get_keywords(num=6, word_min_len=2)
  15. # num -- 返回关键词数量
  16. # word_min_len -- 词的最小长度,默认值为1
  17. return keywords

 3.3 

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

 4、运行结果

5.补充 

  1. # import jieba.analyse
  2. # from textrank4zh import TextRank4Keyword,TextRank4Sentence
  3. #关键短语抽取
  4. def keyphrases_extraction(text):
  5. tr4w = TextRank4Keyword()
  6. tr4w.analyze(text=text, window=2, lower=True, vertex_source='all_filters', edge_source='no_stop_words',
  7. pagerank_config={'alpha': 0.85, })
  8. keyphrases = tr4w.get_keyphrases(keywords_num=6, min_occur_num=1)
  9. # keywords_num -- 抽取的关键词数量
  10. # min_occur_num -- 关键短语在文中的最少出现次数
  11. return keyphrases
  12. #关键句抽取
  13. def keysentences_extraction(text):
  14. tr4s = TextRank4Sentence()
  15. tr4s.analyze(text, lower=True, source='all_filters')
  16. # text -- 文本内容,字符串
  17. # lower -- 是否将英文文本转换为小写,默认值为False
  18. # source -- 选择使用words_no_filter, words_no_stop_words, words_all_filters中的哪一个来生成句子之间的相似度。
  19. # -- 默认值为`'all_filters'`,可选值为`'no_filter', 'no_stop_words', 'all_filters'
  20. # sim_func -- 指定计算句子相似度的函数
  21. # 获取最重要的num个长度大于等于sentence_min_len的句子用来生成摘要
  22. keysentences = tr4s.get_key_sentences(num=3, sentence_min_len=6)
  23. return keysentences

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/424268
推荐阅读
相关标签
  

闽ICP备14008679号