新技能Get!用 Python 高效背单词
本文转载自微信公众号「Python中文社区」,新技效背作者巩庆奎。单词转载本文请联系Python中文社区公众号。新技效背
背景
作为一个程序员,单词经常需要阅读英文论文、新技效背文档、单词书籍。新技效背对于一些基础不好的单词同学来说,最主要的新技效背拦路虎是英语单词。计算机类文档不同于小说,单词其语法、新技效背句式都比较简单,单词可以说只要词汇量有了,新技效背阅读就很简单。单词
如果能在平时提高词汇量,新技效背那是最好不过了。鸡汤警告!你必须暗自努力,然后惊艳所有人!这句话打在这里没毛病吧,老铁。但无所侧重地背普通英语字典,恐怕效率并不高。不提前学习单词,直接上手阅读,遇到生词再查,效率也提升不起来。
这里介绍一个针对专业文档背单词的方法:把当前文档的所有单词,建立一个专属字典,先背诵这个字典,服务器托管再去看书,一定能一目十行。
思路
总体思路是文件分词统计,查找字典,生成新字典。
首先,有一个需要阅读的英文文档,给它分词,按照单词频率排序; 找一个已掌握的英语词汇表(四六级或考研等),把上文中的单词和本词汇表重复的项删除; 再找一个词汇量大的字典,在其中查找对应解释; 把结果存储到一个字典文件中。得到的字典,就是这本书的专属字典了。业余背这个字典,相当于掌握了计算机专业英语。这个方法也适用于机械、电子等等任何专业英语的地方。
实现
下面,以 Python 神作《Fluent Python》为例,用 Python 自带的库实现分词、统计功能。首先看下它的站群服务器内容梗概。
Fluent Python CLEAR, CONCISE, AND EFFECTIVE PROGRAMMING Luciano Ramalho ......分词
首先来分词。
from collections import Counter import re ct2 = Counter() patt = re.compile(r\w+) with open(f1.txt,r,encoding=utf-8) as f: for l in f.readlines(): ws = (n.lower() for n in patt.findall(l)) ct2.update(ws)以上代码中,导入了 Counter 和 re 模块。
Counter 负责统计单词词频,re 正则表达式分割英语单词。得到结果 ct2 中是所有单词的词频。
下面,把它保存下来。
with open(result_f1.txt,w,encoding=utf-8) as f: f.write(.join((%s %s\n%(a,b) for a,b in ct2.most_common())))现在,result_f1.txt 中存储的是这本书出现的单词,而且是按照词频排序的,如下。
the 12414 a 5639 of 4900 in 4837 to 4689 is 3848 ......和预想得很像,排名靠前的基本是介词等常用词。
另外,比较有意思的数据是,《Fluent Python》共使用词汇 9118 个,其中出现一次的单词有 3168 个。出现频次最高的 the 达到 12000 次。源码库它的分布图如下。

载入字典
下载一个比较全的字典,十万个单词。载入内存,存储在字典数据变量 dicts 中。
这是 dict 结构第一次真正存储字典! dicts = dict() with open(103976.txt,r,encoding=gbk) as f: for l in f.readlines(): k = l[0:l.find(\t)] v = l[l.find(\t)+1:] dicts.update({k:v})删除认识的单词
字典当中大量的 the a is,相当挑战我们的容忍度,这让旁人看了,还以为我们小学没毕业呢。去掉去掉……
众所周知,我们采用了小学二年级就掌握的 postgrade.txt 英文字典。
postgrade.txt 同学们肯定耳熟能详。神奇的是第一个单词。abandon vt.离弃,丢弃;遗弃,抛弃;放弃 with open(postgrade.txt,r,encoding=utf-8) as f: f.readline() for l in f.readlines(): k = l[:l.find( )] try: del dicts[k] except KeyError as e: pass现在,字典 dicts 中,仅仅剩下所我们不认识的,103976 - 5000 = 98976 个单词了。
生成新字典
以词频单词来查找单词表,再把单词和释义存到新单词表中,就得到新单词表了。
with open(f1_res.txt,w,encoding=utf-8) as wf,open(result_f1.txt,r,encoding=utf-8)as f: for l in f.readlines(): k = l[:l.find( )] v = dicts.get(k,None) if v: wf.write(%s %s%(k,v)) wf.close()这里第一句,两个 with 可以写到一句话里。这样代码看起来比较和谐。
查字典方法,使用v = dicts.get(k,None),这样查不着的单词,返回 None,写入新字典时判断这个值,就可以了。
总结
除此处介绍的生生单个文档字典外,还可多拿几个领域专业文档,提取它们的常用单词,然后生成专属字典,这字典,相当于相关领域的专业英语字典。
这里使用 Python 自带库写程序,效率可能不高。如果需要,可以使用 pandas 之类的库来实现,提高效率。
作者:巩庆奎,大奎,对计算机、电子信息工程感兴趣。
相关文章
以5s升级iOS9.3.1的最佳方法(简单、快速、安全升级你的iPhone)
摘要:随着科技的不断进步,iOS系统也在不断更新和升级。升级iOS系统可以为我们的iPhone带来更多的功能和性能优化。本文将介绍如何使用5s升级到最新的iOS9.3.1系统,为你提供一...2025-11-05老电脑电源排线接法教程(全面解析老电脑电源排线的接法和注意事项)
摘要:随着科技的快速发展,很多人会购买新的电脑,但是仍有许多人选择继续使用老电脑。然而,老电脑的电源排线接法与新电脑有所不同。本文将详细介绍老电脑电源排线的接法和注意事项,以帮助读者正确...2025-11-05利用微PE将系统安装到U盘的教程(详细步骤帮助你实现便携的个人操作系统)
摘要:随着科技的不断发展,人们对于个人电脑的使用需求也越来越高。为了方便携带和使用,将操作系统安装到U盘上成为了一个热门话题。而利用微PE工具可以帮助我们轻松实现这一目标。本文将详细介绍...2025-11-05KTV设备电脑调试教程(一步步教你如何调试KTV设备的电脑)
摘要:在KTV设备的安装与调试过程中,电脑的调试是一个非常重要的环节。本教程将详细介绍如何正确地进行KTV设备电脑的调试,帮助您顺利完成设备的安装工作。检查电源连接是否正常...2025-11-05设计你的个性电脑——煲音箱电脑贴纸教程(从零开始,打造独一无二的音箱电脑)
摘要:电脑已经成为我们生活中不可或缺的一部分,而自定义电脑外观是展示个人风格的重要方式之一。本文将带你一步步学习如何设计和制作煲音箱电脑贴纸,让你的电脑焕发出独特的魅力。1.挑选...2025-11-05英伟达GTX7501G(一款强悍的显卡,让你的游戏体验更加流畅)
摘要:随着电脑游戏的不断进步和发展,一款高性能的显卡成为了众多游戏玩家的追求目标。英伟达GTX7501G作为一款经典的显卡产品,其卓越的性能和强大的处理能力深受用户喜爱。本文将从不同角度...2025-11-05


最新评论