首页 / 知识
用 Python 高效背单词
2023-11-12 13:38:00
作为一个程序员,经常需要阅读英文论文、文档、书籍。对于一些基础不好的同学来说,最主要的拦路虎是英语单词。计算机类文档不同于小说,其语法、句式都比较简单,可以说只要词汇量有了,阅读就很简单。
如果能在平时提高词汇量,那是最好不过了。鸡汤警告!你必须暗自努力,然后惊艳所有人!这句话打在这里没毛病吧,老铁。但无所侧重地背普通英语字典,恐怕效率并不高。不提前学习单词,直接上手阅读,遇到生词再查,效率也提升不起来。
这里介绍一个针对专业文档背单词的方法:把当前文档的所有单词,建立一个专属字典,先背诵这个字典,再去看书,一定能一目十行。
思路
总体思路是文件分词统计,查找字典,生成新字典。
首先,有一个需要阅读的英文文档,给它分词,按照单词频率排序;?找一个已掌握的英语词汇表(四六级或考研等),把上文中的单词和本词汇表重复的项删除;?再找一个词汇量大的字典,在其中查找对应解释;?把结果存储到一个字典文件中。
得到的字典,就是这本书的专属字典了。业余背这个字典,相当于掌握了计算机专业英语。这个方法也适用于机械、电子等等任何专业英语的地方。
实现
下面,以Python神作《FluentPython》为例,用Python自带的库实现分词、统计功能。首先看下它的内容梗概。
FluentPython
CLEAR,CONCISE,ANDEFFECTIVEPROGRAMMING
LucianoRamalho
......
分词
首先来分词。
fromcollectionsimportCounter
importre
ct2=Counter()
patt=re.compile(r'\w+')
withopen('f1.txt','r',encoding='utf-8')asf:
forlinf.readlines():
ws=(n.lower()forninpatt.findall(l))
ct2.update(ws)
以上代码中,导入了Counter和re模块。
Counter负责统计单词词频,re正则表达式分割英语单词。得到结果ct2中是所有单词的词频。
下面,把它保存下来。
withopen('result_f1.txt','w',encoding='utf-8')asf:
f.write(''.join(('%s%s\n'%(a,b)fora,binct2.most_common())))
现在,result_f1.txt中存储的是这本书出现的单词,而且是按照词频排序的,如下。
the12414
a5639
of4900
in4837
to4689
is3848
......
和预想得很像,排名靠前的基本是介词等常用词。
另外,比较有意思的数据是,《FluentPython》共使用词汇9118个,其中出现一次的单词有3168个。出现频次最高的the达到12000次。
载入字典
下载一个比较全的字典,十万个单词。载入内存,存储在字典数据变量dicts中。
这是dict结构第一次真正存储字典!
dictdicts=dict()
withopen('103976.txt','r',encoding='gbk')asf:
forlinf.readlines():
k=l[0:l.find('\t')]
v=l[l.find('\t')+1:]
dicts.update({k:v})
删除认识的单词
字典当中大量的theais,相当挑战我们的容忍度,这让旁人看了,还以为我们小学没毕业呢。去掉去掉……
众所周知,我们采用了小学二年级就掌握的postgrade.txt英文字典。
postgrade.txt同学们肯定耳熟能详。神奇的是第一个单词。abandonvt.离弃,丢弃;遗弃,抛弃;放弃……
withopen('postgrade.txt','r',encoding='utf-8')asf:
f.readline()
forlinf.readlines():
k=l[:l.find('')]
try:
deldicts[k]
exceptKeyErrorase:
pass
现在,字典dicts中,仅仅剩下所我们不认识的,103976-5000=98976个单词了。
生成新字典
以词频单词来查找单词表,再把单词和释义存到新单词表中,就得到新单词表了。
withopen('f1_res.txt','w',encoding='utf-8')aswf,open('result_f1.txt','r',encoding='utf-8')asf:
forlinf.readlines():
k=l[:l.find('')]
v=dicts.get(k,None)
ifv:
wf.write('%s%s'%(k,v))
wf.close()
这里第一句,两个with可以写到一句话里。这样代码看起来比较和谐。
查字典方法,使用v=dicts.get(k,None),这样查不着的单词,返回None,写入新字典时判断这个值,就可以了。
总结
除此处介绍的生生单个文档字典外,还可多拿几个领域专业文档,提取它们的常用单词,然后生成专属字典,这字典,相当于相关领域的专业英语字典。
这里使用Python自带库写程序,效率可能不高。如果需要,可以使用pandas之类的库来实现,提高效率。
以上内容为大家介绍了用Python高效背单词,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
Python的字典排序
Python的字典排序,代码,数据,培训,字典,函数,表达式,内容,列表,排列,问题,字典是Python语言中的一种数据结构,每一个字典元素是由一对key-valuPython网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tc数据科学领域Python比R语言更好
数据科学领域Python比R语言更好,数据,公司,工具,时间,项目,工作,庞大,受益,系统,代码,经常有学员问我们,在数据科学领域里,到底是该选Python呢,python的数据类型
python的数据类型,数字,较大,数据,培训,变量,表示,字符串,赋值,常量,小数,1.整型Python可以处理任意大小的整数,当然包括负整数,在程序中的表示为何你的Python代码应是扁平与稀疏
为何你的Python代码应是扁平与稀疏的,代码,培训,信息,观察,设计,工具,嵌套,闻闻,程序员,沉思,Python之禅之所以得名,正是由于它那简明扼要的规如何提速优化python代码?
如何提速优化python代码?,代码,时间,数据,新增,写法,包装,情况,下来,面临,工作,Python是一种脚本语言,相比C/C++这样的编译语言,在效率和性能方Python语言自带的数据结构有哪些
Python语言自带的数据结构有哪些,异常,数字,数据,元素,序列,培训,位置,名称,分析,括号,Python作为一种脚本语言,其要求强制缩进,使其易读、美观提升Python数据分析能力的方法
提升Python数据分析能力的方法,分析,数据,工具,代码,时间,环境,报告,信息,培训,标准,1.Pandas分析包这个工具的好处是显而易见的。下面的动画0基础学Python有多难?
0基础学Python有多难?,基础,代码,培训,时间,工具,意外,基础知识,下来,工作,各大,该怎么入门?零基础学Python并不难,因为Python是一门非常适合Python数据结构的时间复杂性
Python数据结构的时间复杂性,时间,项目,情况,平均,复杂度,培训,术语,数据,状态,操作,1.让我们了解大O符号的含义是什么?在算法中执行许多操作python经典最短代码实现排序的功能
python经典最短代码实现排序的功能,代码,位置,数据,分析,时间,序列,元素,培训,下来,算法,冒泡排序:算法思想:1.比较相邻的元素,如果第一个比第二Python之关于高效使用字典的清单
Python之关于高效使用字典的清单,代码,数据,字典,培训,扩大,时报,方式,方法,对象,列表,字典(dict)对象是Python最常用的数据结构,社区曾有人开