如下图,是红楼梦的本文小说,现在我们要提取出红楼梦每卷排名前十的关键词

为了更顺利的完成要求,我们将任务拆解为以下四个节点
-
将这个文件中上下卷共120卷拆分开,每一卷内容保存为一个新的文本文件,文件名是相应卷名 ,所有卷放入文件夹 .\红楼梦
-
打印出每卷地址与内容
-
对每一卷进行分词
-
计算TF-IDF值,保存每卷TOP10关键词
(快速跳转)
拆分红楼梦120卷并另存
步骤:
-
按卷分割文件:
-
代码通过检测每一行是否包含
卷 第,来判断是否需要开始一个新的分卷文件。 -
每个分卷文件以卷名命名,并保存在
红楼梦分卷目录下。
-
-
初始文件:
-
代码会先创建一个临时文件
红楼梦开头.txt,用于保存尚未分卷的内容。 -
如果发现
卷 第后,会关闭临时文件,并开始按卷保存内容。
-
-
文件路径:
-
使用
os.path.join生成分卷文件的完整路径,确保路径跨平台兼容。
-
-
文件操作:
-
使用
open()打开文件,write()写入文件,close()关闭文件。
-
代码:
import os
# 打开《红楼梦》的原始文本文件,指定编码为utf-8
file = open('红楼梦.txt', encoding='utf-8')
# 设置一个标志变量flag,用于判断是否需要创建新的分卷文件
flag = 0
# 打开一个临时文件'红楼梦开头.txt',用于保存未分卷的内容
chapter_file = open('.\红楼梦开头.txt', 'w', encoding='utf-8')
# 逐行读取《红楼梦》的原始文件
for line in file:
# 检查当前行是否包含“卷 第”,这是分卷的标志
if '卷 第' in line:
# 提取卷名,并去掉空白字符,生成分卷文件的名称
chapter_name = line.strip() + '.txt'
# 生成分卷文件的完整路径,保存在`红楼梦分卷`目录下
path = os.path.join('.\\红楼梦分卷\\', chapter_name)
print(path) # 打印分卷文件的路径
# 如果flag为0,表示这是第一个分卷,直接创建并写入文件
if flag == 0:
chapter_file = open(path, 'w', encoding='utf-8')
flag = 1 # 将flag置为1,表示已开始分卷
else:
# 如果flag不为0,表示之前已经有分卷文件了,先关闭当前文件
chapter_file.close()
# 再创建一个新的分卷文件
chapter_file = open(path, 'w', encoding='utf-8')
# 跳过本行,不将分卷标志行写入分卷文件
continue
# 将当前行写入分卷文件
chapter_file.write(line)
# 循环

最低0.47元/天 解锁文章
1105

被折叠的 条评论
为什么被折叠?



