Py之textrank4zh:textrank4zh的简介、安装、使用方法之详细攻略

举报
一个处女座的程序猿 发表于 2021/03/28 01:32:15 2021/03/28
【摘要】 Py之textrank4zh:textrank4zh的简介、安装、使用方法之详细攻略       目录 textrank4zh的简介 原理 关键词提取 关键短语提取 摘要生成 textrank4zh的安装 textrank4zh的使用方法       textrank4zh的简介       TextRank算法可以用来从文本中提取关键词和摘...

Py之textrank4zh:textrank4zh的简介、安装、使用方法之详细攻略

 

 

 

目录

textrank4zh的简介

原理

关键词提取

关键短语提取

摘要生成

textrank4zh的安装

textrank4zh的使用方法


 

 

 

textrank4zh的简介

      TextRank算法可以用来从文本中提取关键词和摘要(重要的句子)。TextRank4ZH是针对中文文本的TextRank算法的python算法实现。

 

原理

TextRank的详细原理请参考:

Mihalcea R, Tarau P. TextRank: Bringing order into texts[C]. Association for Computational Linguistics, 2004.

关于TextRank4ZH的原理和使用介绍:使用TextRank算法为文本生成关键字和摘要

 

 

关键词提取

将原文本拆分为句子,在每个句子中过滤掉停用词(可选),并只保留指定词性的单词(可选)。由此可以得到句子的集合和单词的集合。

每个单词作为pagerank中的一个节点。设定窗口大小为k,假设一个句子依次由下面的单词组成:

w1, w2, w3, w4, w5, ..., wn

 

w1, w2, ..., wkw2, w3, ...,wk+1w3, w4, ...,wk+2等都是一个窗口。在一个窗口中的任两个单词对应的节点之间存在一个无向无权的边。

基于上面构成图,可以计算出每个单词节点的重要性。最重要的若干单词可以作为关键词。

 

 

关键短语提取

参照关键词提取提取出若干关键词。若原文本中存在若干个关键词相邻的情况,那么这些关键词可以构成一个关键词组。

例如,在一篇介绍支持向量机的文章中,可以找到关键词支持向量,通过关键词组提取,可以得到支持向量机

 

 

摘要生成

将每个句子看成图中的一个节点,若两个句子之间有相似性,认为对应的两个节点之间有一个无向有权边,权值是相似度。

通过pagerank算法计算得到的重要性最高的若干句子可以当作摘要。

 

 

textrank4zh的安装

pip install textrank4zh==0.3
pip install textrank4zh

 

 

textrank4zh的使用方法

1、测试


  
  1. #-*- encoding:utf-8 -*-
  2. from __future__ import print_function
  3. import sys
  4. try:
  5. reload(sys)
  6. sys.setdefaultencoding('utf-8')
  7. except:
  8. pass
  9. import codecs
  10. from textrank4zh import TextRank4Keyword, TextRank4Sentence
  11. text = codecs.open('../test/doc/01.txt', 'r', 'utf-8').read()
  12. tr4w = TextRank4Keyword()
  13. tr4w.analyze(text=text, lower=True, window=2) # py2中text必须是utf8编码的str或者unicode对象,py3中必须是utf8编码的bytes或者str对象
  14. print( '关键词:' )
  15. for item in tr4w.get_keywords(20, word_min_len=1):
  16. print(item.word, item.weight)
  17. print()
  18. print( '关键短语:' )
  19. for phrase in tr4w.get_keyphrases(keywords_num=20, min_occur_num= 2):
  20. print(phrase)
  21. tr4s = TextRank4Sentence()
  22. tr4s.analyze(text=text, lower=True, source = 'all_filters')
  23. print()
  24. print( '摘要:' )
  25. for item in tr4s.get_key_sentences(num=3):
  26. print(item.index, item.weight, item.sentence) # index是语句在文本中位置,weight是权重

 

 

 

 

 

文章来源: yunyaniu.blog.csdn.net,作者:一个处女座的程序猿,版权归原作者所有,如需转载,请联系作者。

原文链接:yunyaniu.blog.csdn.net/article/details/96484201

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。