小说字频统计

  • 简介
  • 数据源
  • 目标
  • 步骤
  • 总结
  • 参考书目

简介

最近看到了一本好书,名字叫《Python全栈数据工程师养成攻略》,随便翻翻感觉对个人学习颇有裨益,故打算跟着书上的实例学完它。本书采用Python2.7和Subline编辑器,不过由于个人做数据科学经常用的是Anaconda里面的几款编辑器,所以本次实例采用Python3.5和Spyder编辑器,并且对原项目的语法上进行了一些修改。

本次实例比较基础,就不做过多说明了。

数据源

本项目中采用读取txt文件的方式进行字频统计,所以选择了知名网文《雪中悍刀行》进行读取,从小说网站上下载得到txt文件,并重新保存至utf8格式,得到我们接下来要使用的"xzutf8.txt"文件,大小为13.5MB,字数还是非常多的。

目标

  1. 统计共出现了几个不同的汉字(分类)。
  2. 每个汉字共出现了几次(频数)。
  3. 哪些汉字出现的最频繁(排序)。

步骤

第一步:读取准备好的"xzutf8.txt"文件,并创建一个list()和一个dict{}存放相关内容。

# -*- coding: utf-8 -*-
'''
由于读取写入都有中文,本次案例统一采用utf8编码
'''
fr = open('xzutf8.txt','r',encoding ="utf8")   #读取雪中悍刀行小说文件
characters = []                                #存放出现的汉字
stat = {}                                      #存放每个汉字的出现次数

第二步:对每一行进行遍历并统计文字。

'''
for循环遍历每一行文字
对于文件中每一行用strip方法去掉空格
如果那行为空则用continue跳过
'''
for line in fr:line = line.strip()if len(line) == 0:continuefor x in range(0,len(line)):        #对每一行内文字进行扫描if line[x] in [' ','\t','\n','。',',','(',')','(',')',':',':','-','?','!','《','》','、',';','“','”','□','……']:continue                    #跳过标点符号if not line[x] in characters: characters.append(line[x])  #出现新字符添加进listif not line[x] in stat:         #出现新字符添加进字典stat[line[x]] = 0stat[line[x]] += 1              #相同字符次数+1
print(len(characters))                  #不同字符数结果显示
fr.close()                              #读取完成退出

第三步,把字典转化为list进行排序,并将结果写入新的txt文件中。

'''
接下来对结果进行字数频数的排序
调用sort方法,对字典的值进行排序,True表示降序排序
将结果写入txt文件中
'''
stat = sorted(stat.items(),key = lambda d:d[1],reverse = True) #d[1]即字典第二个属性值,文字出现次数
fw = open('result.txt','w',encoding="utf8")
for item in stat:fw.write(item[0]+','+str(item[1])+'\n') #读取字典的两个属性并换行
fw.close()                                  #写入完成退出

总结


以上是最后的结果,没想到""竟然是用的最多的,达到10万次…


还有这里的剑竟然有14000次,这个作者是有多喜欢剑啊,明明这本书主角是用刀的,所以不过瘾写了下一本主角用剑的小说《剑来》是吗,哈哈哈。

本次实例中涵盖了许多知识点,其中最容易出错的就是Python的中文编码问题,做项目时要格外小心,读者也可以去参考一下其他的资料来加深理解。

参考书目

[1]Python全栈数据工程师养成攻略(2017).张宏伦.人民邮电出版社.北京.

python数据工程师养成(1)--小说字频统计相关推荐

  1. python全栈是什么_Python全栈数据工程师养成攻略 PDF 下载

    相关截图: 图书简介: 本书首先介绍了数据工程和Python语法,随后讲解如何获取和存储数据,并实现简单的静态可视化.文本作为一种极其重要的数据类型,也单独列出一章行讨论.之后读者将学习到关于Web建 ...

  2. Python数据分析师养成记

    前言 从这周开始,罗罗攀开始更新新系列<Python数据分析师养成记>.该系列将以小白的视角出发,一步步的进阶Python数据分析. 学习路径 为了保证我们所学习的内容能用于工作,这里我在 ...

  3. Python数据可视化(三)绘制统计图形大全

    3.1 柱状图 以 Python 代码的形式讲解柱状图的绘制原理,这里重点讲解 bar()函数的使用方法. 代码: import matplotlib as mpl import matplotlib ...

  4. python全栈讲解_Python全栈数据工程师养成攻略(视频讲解版)

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  5. python数据工程师薪资待遇怎么样_Python工程师工资待遇是多少

    很多朋友想知道Python工程师工资一般是多少,下面就让我们来看看吧. 按照工作经验分: 应届生无工作经验的Python工程师,薪资大概8K-10K: 1~3工作经验的Python工程师,薪资大概10 ...

  6. Python 自然语言处理(一)字频统计

    import jieba txt = open("lg.txt", "r", encoding="gb18030").read()impor ...

  7. 用好collections模块,对李白诗集进行字频统计

    1.从一个计数问题开始 初学Python的人很可能会遇到字频统计这样的练习题,那么很容易会想到使用for循环来做. 可是for循环的效率是很低的,而且会涉及到嵌套循环,代码及其冗余. 比如给定一个字符 ...

  8. 如何成为python 数据分析师_如何成为一名真正的数据分析师或者数据工程师

    一.入门:高屋建瓴 数据分析的坑很大,一开始走上这条路,就要明确基本的方向,依托于核心的思想,不然只会越走越偏,最后觉得山太高水太深,不了了之. 1.数据与数据分析 数据其实就是对事物特征的定性指称以 ...

  9. 数据工程师妹子养成手记——数据库篇

    这篇文章没有代码,请放心阅读. 程序员最宝贵的东西是生命,生命属于程序员只有一次.一个程序员的一生应该这样度过:当她回首往事的时候,她不会因为搭建环境浪费时间而悔恨,也不会因为集群无法运行而羞耻.这样 ...

最新文章

  1. 简单总结一下 XSS
  2. 开发标准化软件组件能让程序员在大城市过上体面的生活 -- 多系统用户权限管理标准件开发销售心得体会...
  3. python自学多久可以找到工作-25岁从零开始学习python还能找到工作吗?
  4. AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager
  5. ViewFlipper的功能和用法
  6. windows无法访问_注册CourseMaker之后无法登录,显示“网络无法访问……”,怎么办?...
  7. 单一职责原则 (Single Responsibility Principle,SRP)
  8. 向Spark集群提交任务
  9. 【Landsat 8】介绍
  10. 【算法笔记+SGU275+HDU3949】线性基(XOR,求n个数异或得到的第k小的数)
  11. oracle触发器实例
  12. 【软件与系统安全】栈溢出利用的分析
  13. 服务器pe系统ghost系统安装教程,U盘PE启动安装GHOST系统图文教程
  14. 英雄无敌3 Def 文件对应生物列表
  15. 51单片机电子制作DIY-----交通灯控制器
  16. 全栈项目-乐优商场-分类管理-前端-页面渲染
  17. Unity环境光 Environment面板
  18. 数据分析师必备技能之PowerBI教程
  19. 英语基础语法(十二)-虚拟语气
  20. 西北乱跑娃 --- python excel表合并

热门文章

  1. Runc 容器初始化和容器逃逸
  2. 诗歌中的宇宙飞船和电子计算机代表什么,《宇宙飞船的避火衣》阅读理解及答案...
  3. C/C++趣味代码-------狸猫换太子
  4. 温度记录仪和传感器的校准知识
  5. 【洛谷】 P1240 诸侯安置(递推)
  6. 平均风向风速计算(单位矢量法)
  7. 【模拟IC】系统频率稳定性分析与极点补偿技术介绍
  8. 大数据之Hive:正则表达式
  9. C#毕业设计——基于C#+asp.net+sqlserver的网络在线考试系统设计与实现(毕业论文+程序源码)——网络在线考试系统
  10. UML类图---类与类图的解析