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实现SVN的目录周期性备份实例
Jul 17 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
python+matplotlib绘制饼图散点图实例代码
Jan 20 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
django 将model转换为字典的方法示例
Oct 16 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
基于python及pytorch中乘法的使用详解
Dec 27 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
在django项目中导出数据到excel文件并实现下载的功能
Mar 13 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 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
PHP5 安装方法
2006/10/09 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
详解PHP归并排序的实现
2016/10/18 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
js常用排序实现代码
2010/12/28 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
JavaScript基本数据类型及值类型和引用类型
2015/08/25 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
Python实现感知机(PLA)算法
2017/12/20 Python
目前最全的python的就业方向
2018/06/05 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
2019/07/03 Python
python SVD压缩图像的实现代码
2019/11/05 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
2020/01/08 Python
css3翻牌翻数字的示例代码
2020/02/07 HTML / CSS
CK美国官网:Calvin Klein
2016/08/26 全球购物
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
商场消防演习方案
2014/02/12 职场文书
环保建议书200字
2014/05/14 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
大学生十八大感想
2015/08/11 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
解决sql server 数据库,sa用户被锁定的问题
2021/06/11 SQL Server
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android