yingxiong0523 2022-03-27 18:05 采纳率: 50%
浏览 33
已结题

textrank“批量”提取摘要

目前,已有提取单篇txt摘要的代码,不知道怎么分别提取多篇txt的摘要(所有txt都在一个文件夹里)

import sys 
from imp import reload

try:
    reload(sys)
    sys.setdefaultencoding('utf-8')
except:
    pass
 
import codecs
from textrank4zh import TextRank4Keyword, TextRank4Sentence

file = r'/Users/xiongying/Desktop/有关农业经济的几个问题_许涤新.txt'
 
# 打开并读取文本文件
 
text = codecs.open(file, 'r', 'utf-8').read()

 
# 创建分词类的实例
 
tr4w = TextRank4Keyword()
 
# 对文本进行分析,设定窗口大小为2,并将英文单词小写
 
tr4w.analyze(text=text, lower=True, window=2)

"""输出"""
 
print('关键词为:')
 
# 从关键词列表中获取前20个关键词
 
for item in tr4w.get_keywords(num=20, word_min_len=1):
    print(item.word, item.weight)
    print('\n')
    print('关键短语为:')
# 从关键短语列表中获取关键短语
 
for phrase in tr4w.get_keyphrases(keywords_num=20, min_occur_num=2):
    print(phrase)
    print('\n')
# 创建分句类的实例
 
tr4s = TextRank4Sentence()
 
# 英文单词小写,进行词性过滤并剔除停用词
 
tr4s.analyze(text=text, lower=True, source='no_filter')
 
print('摘要为:')
 
# 抽取3条句子作为摘要
 
for item in tr4s.get_key_sentences(num=3):

# 打印句子的索引、权重和内容
 print(item.index, item.weight, item.sentence)

  • 写回答

2条回答 默认 最新

  • 陈年椰子 2022-03-27 18:54
    关注

    大概调整了一下,加了个读目录文件的方法。
    试试, 看行不行

    import sys
    from imp import reload
    import os
    
    try:
        reload(sys)
        sys.setdefaultencoding('utf-8')
    except:
        pass
    
    import codecs
    from textrank4zh import TextRank4Keyword, TextRank4Sentence
    
    def work(file):
        # file = r'/Users/xiongying/Desktop/有关农业经济的几个问题_许涤新.txt'
    
        # 打开并读取文本文件
    
        text = codecs.open(file, 'r', 'utf-8').read()
    
        # 创建分词类的实例
    
        tr4w = TextRank4Keyword()
    
        # 对文本进行分析,设定窗口大小为2,并将英文单词小写
    
        tr4w.analyze(text=text, lower=True, window=2)
    
        """输出"""
    
        print('关键词为:')
    
        # 从关键词列表中获取前20个关键词
    
        for item in tr4w.get_keywords(num=20, word_min_len=1):
            print(item.word, item.weight)
            print('\n')
            print('关键短语为:')
        # 从关键短语列表中获取关键短语
    
        for phrase in tr4w.get_keyphrases(keywords_num=20, min_occur_num=2):
            print(phrase)
            print('\n')
        # 创建分句类的实例
    
        tr4s = TextRank4Sentence()
    
        # 英文单词小写,进行词性过滤并剔除停用词
    
        tr4s.analyze(text=text, lower=True, source='no_filter')
    
        print('摘要为:')
    
        # 抽取3条句子作为摘要
    
        for item in tr4s.get_key_sentences(num=3):
            # 打印句子的索引、权重和内容
            print(item.index, item.weight, item.sentence)
    
    def check_all_files(check_path):
        list_files = []
        # 列出文件夹下所有文件
        cur_list = os.listdir(check_path)
        for i in range(0 ,len(cur_list)):
            file_path = os.path.join(check_path, cur_list[i])
            if os.path.isfile(file_path):
                if cur_list[i].upper()[-4:]=='.TXT':
                    list_files.append([cur_list[i], file_path])
        return list_files
    
    
    f_lst = check_all_files(r"/Users/xiongying/Desktop")
    
    for f in f_lst:
        print("处理",f[0])
        work(f[1])
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月4日
  • 已采纳回答 3月27日
  • 创建了问题 3月27日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来