python数据工程师养成(1)--小说字频统计
小说字频统计
- 简介
- 数据源
- 目标
- 步骤
- 总结
- 参考书目
简介
最近看到了一本好书,名字叫《Python全栈数据工程师养成攻略》,随便翻翻感觉对个人学习颇有裨益,故打算跟着书上的实例学完它。本书采用Python2.7和Subline编辑器,不过由于个人做数据科学经常用的是Anaconda里面的几款编辑器,所以本次实例采用Python3.5和Spyder编辑器,并且对原项目的语法上进行了一些修改。
本次实例比较基础,就不做过多说明了。
数据源
本项目中采用读取txt文件的方式进行字频统计,所以选择了知名网文《雪中悍刀行》进行读取,从小说网站上下载得到txt文件,并重新保存至utf8格式,得到我们接下来要使用的"xzutf8.txt"文件,大小为13.5MB,字数还是非常多的。
目标
- 统计共出现了几个不同的汉字(分类)。
- 每个汉字共出现了几次(频数)。
- 哪些汉字出现的最频繁(排序)。
步骤
第一步:读取准备好的"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)--小说字频统计相关推荐
- python全栈是什么_Python全栈数据工程师养成攻略 PDF 下载
相关截图: 图书简介: 本书首先介绍了数据工程和Python语法,随后讲解如何获取和存储数据,并实现简单的静态可视化.文本作为一种极其重要的数据类型,也单独列出一章行讨论.之后读者将学习到关于Web建 ...
- Python数据分析师养成记
前言 从这周开始,罗罗攀开始更新新系列<Python数据分析师养成记>.该系列将以小白的视角出发,一步步的进阶Python数据分析. 学习路径 为了保证我们所学习的内容能用于工作,这里我在 ...
- Python数据可视化(三)绘制统计图形大全
3.1 柱状图 以 Python 代码的形式讲解柱状图的绘制原理,这里重点讲解 bar()函数的使用方法. 代码: import matplotlib as mpl import matplotlib ...
- python全栈讲解_Python全栈数据工程师养成攻略(视频讲解版)
领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...
- python数据工程师薪资待遇怎么样_Python工程师工资待遇是多少
很多朋友想知道Python工程师工资一般是多少,下面就让我们来看看吧. 按照工作经验分: 应届生无工作经验的Python工程师,薪资大概8K-10K: 1~3工作经验的Python工程师,薪资大概10 ...
- Python 自然语言处理(一)字频统计
import jieba txt = open("lg.txt", "r", encoding="gb18030").read()impor ...
- 用好collections模块,对李白诗集进行字频统计
1.从一个计数问题开始 初学Python的人很可能会遇到字频统计这样的练习题,那么很容易会想到使用for循环来做. 可是for循环的效率是很低的,而且会涉及到嵌套循环,代码及其冗余. 比如给定一个字符 ...
- 如何成为python 数据分析师_如何成为一名真正的数据分析师或者数据工程师
一.入门:高屋建瓴 数据分析的坑很大,一开始走上这条路,就要明确基本的方向,依托于核心的思想,不然只会越走越偏,最后觉得山太高水太深,不了了之. 1.数据与数据分析 数据其实就是对事物特征的定性指称以 ...
- 数据工程师妹子养成手记——数据库篇
这篇文章没有代码,请放心阅读. 程序员最宝贵的东西是生命,生命属于程序员只有一次.一个程序员的一生应该这样度过:当她回首往事的时候,她不会因为搭建环境浪费时间而悔恨,也不会因为集群无法运行而羞耻.这样 ...
最新文章
- 简单总结一下 XSS
- 开发标准化软件组件能让程序员在大城市过上体面的生活 -- 多系统用户权限管理标准件开发销售心得体会...
- python自学多久可以找到工作-25岁从零开始学习python还能找到工作吗?
- AFNetworking 3.0 源码解读(一)之 AFNetworkReachabilityManager
- ViewFlipper的功能和用法
- windows无法访问_注册CourseMaker之后无法登录,显示“网络无法访问……”,怎么办?...
- 单一职责原则 (Single Responsibility Principle,SRP)
- 向Spark集群提交任务
- 【Landsat 8】介绍
- 【算法笔记+SGU275+HDU3949】线性基(XOR,求n个数异或得到的第k小的数)
- oracle触发器实例
- 【软件与系统安全】栈溢出利用的分析
- 服务器pe系统ghost系统安装教程,U盘PE启动安装GHOST系统图文教程
- 英雄无敌3 Def 文件对应生物列表
- 51单片机电子制作DIY-----交通灯控制器
- 全栈项目-乐优商场-分类管理-前端-页面渲染
- Unity环境光 Environment面板
- 数据分析师必备技能之PowerBI教程
- 英语基础语法(十二)-虚拟语气
- 西北乱跑娃 --- python excel表合并
热门文章
- Runc 容器初始化和容器逃逸
- 诗歌中的宇宙飞船和电子计算机代表什么,《宇宙飞船的避火衣》阅读理解及答案...
- C/C++趣味代码-------狸猫换太子
- 温度记录仪和传感器的校准知识
- 【洛谷】 P1240 诸侯安置(递推)
- 平均风向风速计算(单位矢量法)
- 【模拟IC】系统频率稳定性分析与极点补偿技术介绍
- 大数据之Hive:正则表达式
- C#毕业设计——基于C#+asp.net+sqlserver的网络在线考试系统设计与实现(毕业论文+程序源码)——网络在线考试系统
- UML类图---类与类图的解析