2018/4/16 15:09:27当前位置推荐好文程序员浏览文章
频率最高 10 个单词

前言

任何语言的学习,最重要的就是词汇。对于英语也是一样。你回想下上学期间你为了考英语,背了多少单词。为了考四六级,抱着厚厚的词汇书开始从头背起。然而看着单词书几千的单词,背了每几天就放弃。效率十分低下。四级可以否过,全凭运气,学霸除外。换个思维,我们是程序员,就要利消耗好我们手中的工具。假如我们可以从历年来的真题,分析每个单词的频率,我们是不是只需把高频单词背完即可以。以后的任何英语考试,只需你有真题,就可以统计出最高频率的单词。想想就非常的激动,这能为我们省去多少的资料费。

四六级真题单词词频统计

统计出的词频

学习计算机语言,最好的方法,就是消耗所学的知识去处理现实的问题。最近「从零开始 Python 系列」也基本把基础的知识都讲了。假如你对于 Python 基础知识有所理解,接下拉就是消耗大量的练习来巩固这些基础知识。今天就为大家讲解下如何利消耗 Python 去解析英语真题卷,每个单词出现的频率。这对于还在读书的学生来说,对你考英语是非常的有帮助。

程序思路

程序所有文件

写程序最怕就是摸着石头过河,不知所措。没有对于实际问题有个大体的分析。真题词频统计,首先你应该找到真题的文档。我通过上网下载到以往的四六级真题试卷,这些资料上网搜索下就很容易找的到。有了文档就要开始确定消耗什么库来解析。我在网上找到的文档是 doc 文档,即 word 的文档。word 的文档能使消耗 win32com 库来解析。现在文档通过 win32com 库能被程序所识别,我们即可以开始分析。有了数据,我们即可以开始解决数据。词频统计,一个是单词,一个是单词的频率。很容易就想到消耗到字典数据结构,来存储我们的数据。key 为所要统计的单词,value 是单词出现的频率。统计完以后,重新整理成新的字典,批量输出。最后画出图表。

前期准备

因为是要消耗到读取 doc 文档的操作和画图表,所有你要事前 pip:win32com、matplotlib。win32com 消耗来读取 word 文档,以及转换成 txt 文档。matplotlib 经典的画图库,消耗来画我们的图标。

Word2Txt.py

Word2Txt.py 是消耗来把需要解析的真题试卷文档转换成 txt 文档,保存到文件夹「2」中,便于我们操作。真题试卷所有的文档都保存在「1」文件夹里,这里一共有 11 份。当然你能继续增加真题试卷,只需你手上有真题试卷的文档。

在 Word2Txt.py 中主要有两个函数:closesoft()、Translate(path)。分别是消耗来关闭 WPS 程序,和批量转换 word 文档成 txt 文档。具体的代码如下:

closesoft()Translate(path)

StaWord.py

StaWord.py 是消耗来把文件夹「2」下的转换好的 txt 文本,进行词频统计。代码并不是很难,其中要注意的一段代码是:

正则匹配

这里消耗到了 lower() 函数,把单词转换成小写,并且消耗正则表达式匹配所有的字母,过滤掉所有非字母的字符。这段代码并不是很好了解,需要你对正则表达式有肯定的理解。遇到自己不懂的地方,肯定要停下自己的脚步。一个个代码去查找相应的资料,这样你才可以有所提升。

在 StaWord.py 主要有 3 个函数:draw(data, num)、input(file_path, data)、comm(path)。分别是消耗于画图表、输出统计后的 txt 文本、解决当前目录先所有的 txt 文本统计词频。

draw(data, num)input(file_path, data)comm(path)

Test.py

Test.py 就是调消耗每个具体的函数。


Test.py

写在最后

程序的大体思路我都已讲解完,当然每个人对应的水平都不同。有人觉得上述的代码很简单,但有些人却觉得很难。当你在读别人的代码时,肯定要记住你要读懂每一行代码,你要懂得每行代码所代表的操作。假如你遇到不懂得地方,停下来,思考,查资料,宁愿花更多得时间,也不去追求战略上的满足感。我已经把一律的代码一行行的看过去,尽管有些地方我没看懂。但我看完了!好满足!好有成就感!实际上你也只是看完了代码,根本就没有吸收到什么。

源代码和文件我都已上传到 Github 上,假如你需要下载能去:

chihaiyishen/-Python

自行下载。觉得不错的话,能点个 Star,以后公众号的代码都会上传到这个库中。

痴海

欢迎关注我的公众号「痴海」,每天都会升级 python 知识。后端回复「python资料」,免费领取 2018 最新 python 教学视频。

网友评论