查看原文
其他

Python 制造出价值上万的英语学习资料

Keep On Coding 痴海 2022-06-18

程序制作的最高 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 就是调用每个具体的函数。

写在最后

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

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

https://github.com/chihaiyishen/-Python

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

推荐阅读:


决定成功的因素

学习不要追求完美

这个时代你所缺乏的素养



知识与认知,财富与思维



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存