Python文本统计功能之西游记用字统计操作示例


Posted in Python onMay 07, 2018

本文实例讲述了Python文本统计功能之西游记用字统计操作。分享给大家供大家参考,具体如下:

一、数据

xyj.txt,《西游记》的文本,2.2MB

致敬吴承恩大师,4020行(段)

二、目标

统计《西游记》中:

1. 共出现了多少个不同的汉字;
2. 每个汉字出现了多少次;
3. 出现得最频繁的汉字有哪些。

三、涉及内容:

1. 读文件;
2. 字典的使用;
3. 字典的排序;
4. 写文件

四、效果

Python文本统计功能之西游记用字统计操作示例

五、源代码

# coding:utf8
import sys
reload(sys)
sys.setdefaultencoding("utf8")
fr = open('xyj.txt', 'r')
characters = []
stat = {}
for line in fr:
  # 去掉每一行两边的空白
  line = line.strip()
  # 如果为空行则跳过该轮循环
  if len(line) == 0:
    continue
  # 将文本转为unicode,便于处理汉字
  line = unicode(line)
  # 遍历该行的每一个字
  for x in xrange(0, len(line)):
    # 去掉标点符号和空白符
    if line[x] in [' ','', '\t', '\n', '。', ',', '(', ')', '(', ')', ':', '□', '?', '!', '《', '》', '、', ';', '“', '”', '……']:
      continue
    # 尚未记录在characters中
    if not line[x] in characters:
      characters.append(line[x])
    # 尚未记录在stat中
    if not stat.has_key(line[x]):
      stat[line[x]] = 0
    # 汉字出现次数加1
    stat[line[x]] += 1
print len(characters)
print len(stat)
# lambda生成一个临时函数
# d表示字典的每一对键值对,d[0]为key,d[1]为value
# reverse为True表示降序排序
stat = sorted(stat.items(), key=lambda d:d[1], reverse=True)
fw = open('result.csv', 'w')
for item in stat:
  # 进行字符串拼接之前,需要将int转为str
  fw.write(item[0] + ',' + str(item[1]) + '\n')
fr.close()
fw.close()
Python 相关文章推荐
Python中使用hashlib模块处理算法的教程
Apr 28 Python
用Python程序抓取网页的HTML信息的一个小实例
May 02 Python
约瑟夫问题的Python和C++求解方法
Aug 20 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
pytorch程序异常后删除占用的显存操作
Jan 13 Python
Pygame的程序开始示例代码
May 07 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
使用Python将语音转换为文本的方法
Aug 10 Python
python爬虫请求头的使用
Dec 01 Python
python中sys模块的介绍与实例
Apr 17 Python
python manim实现排序算法动画示例
Aug 14 Python
Python中的函数作用域
May 07 #Python
Php多进程实现代码
May 07 #Python
Python格式化输出%s和%d
May 07 #Python
python获取代理IP的实例分享
May 07 #Python
对python使用http、https代理的实例讲解
May 07 #Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 #Python
python使用代理ip访问网站的实例
May 07 #Python
You might like
六酷社区论坛HOME页清新格调免费版 下载
2007/03/07 PHP
详解PHP队列的实现
2019/03/14 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python获取网页上图片下载地址的方法
2015/03/11 Python
python实现中文输出的两种方法
2015/05/09 Python
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
基于python实现名片管理系统
2018/11/30 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
python 实现多维数组(array)排序
2020/02/28 Python
让IE9以下版本的浏览器兼容HTML5的方法
2014/03/12 HTML / CSS
什么是虚拟内存?虚拟内存有什么优势?
2012/02/19 面试题
《自然之道》教学反思
2014/02/11 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
食品安全承诺书范文
2014/08/29 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
学生通报表扬范文
2015/05/04 职场文书
运动会宣传稿100字
2015/07/23 职场文书
Python django中如何使用restful框架
2021/06/23 Python
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
Win11快速关闭所有广告推荐
2022/04/19 数码科技