美文网首页NLP
Python TextRank4ZH 应用TextRank算法提

Python TextRank4ZH 应用TextRank算法提

作者: YUENFUNGDATA | 来源:发表于2019-08-25 18:05 被阅读0次

    关键词提取有很多种方法,目前比较常用的两种方法,一种是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是权重系数
    
    运行结果:

    参考文献:https://github.com/letiantian/TextRank4ZH

    相关文章

      网友评论

        本文标题:Python TextRank4ZH 应用TextRank算法提

        本文链接:https://www.haomeiwen.com/subject/eplkectx.html