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


本文摘自php中文网,作者不言,侵删。

这篇文章主要介绍了Python文本统计功能之西游记用字统计操作,结合实例形式分析了Python文本读取、遍历、统计等相关操作技巧,需要的朋友可以参考下

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

一、数据

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

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

二、目标

统计《西游记》中:

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

三、涉及内容:

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

四、效果

五、源代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

# 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文本相似性计算之编辑距离详解

以上就是Python文本统计功能之西游记用字统计操作的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

如何用字典的值(key)对字典进行排序

Python如何读取sqlite数据库的文件?

Python32位和64位有什么区别

Python语言依赖平台吗

Python引用传值概念的示例详解

Python生成器generator介绍

Python字符串中的换行符和制表符介绍

Python是什么?速读本文让你快速Python入门

Python爬虫需要安装什么

Python多线程中阻塞(join)与锁(lock)使用误区解析

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...