分章节统计词频(zip函数的应用)

  • 以c12文件夹下面的“八十天环游世界.txt”为例
  • 在这里插入图片描述

正则表达式获取标题和区分段落

import re
f = open("八十天环游地球.txt",'r',encoding='utf8')
lines = f.read()
title = re.findall('(第.{1,3}章.*)\\n',lines)
parts = re.sub('(第.{1,3}章.*)','@',lines) #将章节题目替换成一个标记符号
part = parts.split('@') #根据标记符号切分全文
part = part[1:] #因为切分后part[0]是一个空字符,这样切分是为了让标题和段落一一对应

zip函数提取获取每一个章节的词频

  • 这里是获取每章出现最多的词频。
import jieba
for i,j in zip(title,part):
    counts = {}
    words = jieba.lcut(i + j)
    for word in words:
        if word in '\n ':
            continue
        elif len(word) >=2:
            counts[word] = counts.get(word,0) + 1
    lt = list(counts.items())
    lt.sort(key=lambda x: x[1],reverse=True)
    charter = re.findall('(第.*章)',i)[0] 
    print("{} {} {}".format(charter,lt[0][0],lt[0][1]))
第一章 福克 26
第二章 路路通 18
第三章 福克 27
第四章 福克 28
第五章 福克 31
第六章 克斯 21
第七章 领事 15
第八章 克斯 15
第九章 先生 18
第十章 福克 16
第十一章 福克 40
第十二章 他们 23
第十三章 他们 36
第十四章 路路通 18
第十五章 福克 42
第十六章 克斯 23
第十七章 路路通 29
第十八章 福克 21
第十九章 路路通 50
第二十章 先生 43
第二十一章 福克 39
第二十二章 路路通 28
第二十三章 演员 26
第二十四章 先生 26
第二十五章 福克 43
第二十六章 火车 24
第二十七章 一个 19
第二十八章 路路通 30
第二十九章 福克 30
第三十章 福克 32
第三十一章 雪橇 36
第三十二章 福克 25
第三十三章 福克 52
第三十四章 福克 22
第三十五章 福克 39
第三十六章 福克 23
第三十七章 福克 25
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值