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

一、数据

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

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

二、目标

统计《西游记》中:

1. 共出现了多少个不同的汉字;

2. 每个汉字出现了多少次;

3. 出现得最频繁的汉字有哪些。

三、涉及内容:

1. 读文件;

2. 字典的使用;

3. 字典的排序;

4. 写文件

四、效果

五、源代码

# 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文本统计功能之西游记用字统计操作示例相关推荐

  1. python简单计算器综合实验报告_Python实现的简单计算器功能详解

    本文实例讲述了Python实现的简单计算器功能.分享给大家供大家参考,具体如下: 使用python编写一款简易的计算器 计算器效果图 首先搭建计算器的面板: 计算器面板结构 建造一个继承于wx.Fra ...

  2. python字典的应用实验报告_Python字典应用的一个例子

    #!/usr/bin/env python #定义一个空字典 db = {} def newuser(): prompt = '--login desired: ' while True: name ...

  3. python猜数游戏实验报告_python实现猜数游戏

    本文实例为大家分享了python实现猜数游戏的具体代码,供大家参考,具体内容如下 一.问题描述: 使用python开发一个猜数小游戏,程序随机产生0~1024之间的数字,用户输入猜测数字,程序告诉用户 ...

  4. python学生成绩管理系统实验报告_Python实现学生成绩管理系统

    本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本功能: 输入并存储学生的信息:通过输入学生的学号.姓名.和分数,然后就可以把数据保存在建立的student ...

  5. python简单计算器综合实验报告_python之简单计算器

    importre#问题:让用户选择1,2不现实,如何让用户自动加减乘除#思考:现在已经能够处理,单个的加减或乘除#可否在混合中先分组出(乘除) eg: ['8+9+','9*4/3','-','4*2 ...

  6. python凯撒加密实验报告_Python之凯撒加密

    凯撒加密介绍 在密码学中,恺撒密码是一种最简单且最广为人知的加密技术. 它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文. 例,当偏移量是3的时 ...

  7. python中数字怎么加冒号_Python数据类型中的“冒号“[::]——分片与步长操作示例...

    本文实例讲述了Python数据类型中的"冒号"[::]--分片与步长操作.分享给大家供大家参考,具体如下: 例如有如下字符串: string = "welcome to ...

  8. 运动会分数统计的实验报告(数组实现)

    运动会分数统计的实验报告(数组实现) 有n个学校参加运动会,学校名对应的编号为1--n.比赛分成m个男子项目,和w个女子项目.每个项目取前三名积分,前三名的积分分别为:5.3.2:数据可以存储在一个数 ...

  9. 基于Kaggle心脏病数据集的数据分析和分类预测-StatisticalLearning统计学习实验报告

    基于Kaggle心脏病数据集的数据分析和分类预测-StatisticalLearning统计学习实验报告 一.实验准备 本数据来源于kaggle,包含14个维度,303个样本,具体的变量说明如下表所示 ...

最新文章

  1. C++ 笔记(07)— 常量(字面常量、const定义常量、constexpr 定义常量、enum 定义常量、define 定义常量)
  2. mysql java 分页实体类_Java GUI+mysql+分页查询
  3. 部署在SAP ABAP服务器上的SAP UI5应用的JavaScript文件,是如何被SAP UI5 repository handler处理的
  4. innodb和my查询速度_mysql存储引擎MyISAM和InnoDB
  5. Linux 2440 LCD 控制器
  6. ios开发ios9新特性关键字学习:泛型,逆变,协变,__kindof
  7. Java | 使用对数器判断自己的程序是否正确(generateRandomArray)
  8. 收藏 | 人脸检测之Retinaface
  9. “手把手教你学linux驱动开发”OK6410系列之01---模块编程
  10. 【第三方软件】利用WIN8系统自带的绘图软件获取图像信息(位置和颜色信息)
  11. 用linux运行vasp,科学网—VASP使用 - 李继存的博文
  12. html背景图透明文字正常,背景图片 透明 文字不透明
  13. 微计算机cpu是指什么,微处理器和CPU的不同是什么
  14. 支付宝提现回调地址问题
  15. Unity3D 手机摇一摇 实现震动效果
  16. matlab自带的mri数据集,探查三维 MRI 数据集的切片
  17. Linux系统下tmux的分屏使用
  18. 360 mysql读写分离_mysql-proxy之奇虎360 Atlas 安装实现mysql读写分离
  19. linux 系统内存nand flash,uboot在nandflash存储时内存和NandFlash存储空间
  20. hdu 5148Cities 树形dp

热门文章

  1. attrib批量显示文件夹_Windows 下彻底隐藏文件和文件夹的方法
  2. cmd对应linux sleep命令,linux的sleep命令
  3. JDK8新特性DateTimeFormatter
  4. 检测php源码函数版本,PHP通用检测函数集合
  5. java 输出xml文件_java解析xml文件并输出
  6. mysql拆分英文数字_MySQL中的REGEX仅显示由连字符分隔的数字。
  7. 台电t30_数码:台电发布T30平板电脑,10.1英寸/p70处理器/4+64GB内存组合
  8. 正则去除包裹的大括号
  9. linux apache smtp,Linux 使用msmtp 发送邮件
  10. numpy产生一个大于0的随机数_Numpy中常用随机函数的总结