python 小说词频统计,jieba库实例

以《我的微信连三界》这本小说为例,进行字符统计

  • 对中文、英文、标点符号、数字等分别统计, 统计结果暂时储存在字典 countchr 中
  • 用jieba库的分词功能将文本中所有可能的词(和字符)分离出来,统计每个词(和字符)出现频率,降序排列并保存
  • “词频”保存在 “jieba lcut.txt” 中, "字符频率"保存在 “jieba lcut1.txt” 中
  • 将高频字词和countchr一起保存在 “countchar.txt” 中

运行结果如下在这里插入图片描述在这里插入图片描述

这样看着不是很舒服, 用excel处理了下
在这里插入图片描述
因为小说里有很多微信聊天的情景, 平均每个段落才21字, 比较短
主角名字占了20万字的篇幅, 有点小惊讶, "的"字出现频率最高, 这个在预料之中

在网上随机找了十几本小说试了下, 有如下规律

  1. 标点符号约占五分之一
  2. 主角名出现次数一般是最多的
  3. “的”、“了”、“是”、“他”这四个字使用频率都很高
  4. 平均每章2000~3000字, 按掌阅一章1毛多一点计算, 平摊下来5分/千字. 假设作者每分钟可以码60字, 每天稳定更两章, 每天需要码字2小时.

完整代码如下

import os
import time
import jieba
import asyncio

# hs中不储存标点符号,标点符号只统计总数,不分别统计?
pcd = {
   
    3: '·、【】!¥—~……();‘’:“”《》,。?、',
    4: ''' `~!@#$%^&*()_+-={}|:%<>?[]\;',./×''',
}  # uncuaion
hs0 = {
   
    1: 0,  # 中文
    2: 0,  # english letter
    3: 0,  # 中文标点符号
    4: 0,  # english punctuation marks
    5: 0,  # 数字
    6: 0,  # 行数
    7: 0,  # 中文字数占总字符数的比例?
}  # 效仿word的字符统计,因中文文章中空格较少,故不统计空格?

path = input('please input the path of your file: ')
print(os.path.isfile(path))
if not os.path.isfile(path):
    path = r'C:\Users\QQ\Desktop\ls\py\我的微信连三界 狼烟新书\我的微信连三界 狼烟新书.txt' # 设置默认词?
    rootpath = r'C:\Users\QQ\Desktop\ls\py\我的微信连三界 狼烟新书'
    print(rootpath)
else:
    rootpath = os.path.dirname(path)
    print(rootpath)
def wdwxlsj():
    #path = rootpath + r'\我的微信连三界 狼烟新书.txt'
    sl = ['林海', '凡间', '地仙', '地府', '天仙', '散仙', '金仙', '天劫', '馨月', '林儿',
            '脸皮', '不好意思', '齐天大圣', '微信', '手机'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值