python常用单词全部记住要多长时间_英语四级很难考吗?我用Python半天记住了五千个单词!非常简单!...

该博客介绍了如何使用Python进行文本处理,包括读取文件获取单词,过滤常见词汇,统计词频,利用Peewee库操作SQLite数据库存储单词信息,并通过ICIBA API获取单词翻译。最终将数据导出到CSV文件,便于学习和管理高频率词汇。
摘要由CSDN通过智能技术生成

读入文件拿到所有单词:

def _open_file(self,filename):#打开文件,返回所有单词list

with open(filename,'r',encoding='utf-8')as f:

raw_words = f.read()

low_words = raw_words.lower()

words = re.findall('[a-z]+',low_words) #正则re找到所有单词

return words

剔除常用单词(is am are do……):

def _filter_words(self,raw_words,count=NUMBERS):#载入未处理的所有单词列表 和 默认count值

new_words = []

for word in raw_words:#找出非exclude 和 长度大于1 的单词 -> new_words

if word not in exclude_list and len(word) > 1:

new_words.append(word)

pass

计数:

from collections import Counter #计数器

pass

c = Counter(words) #list new_words

return c.most_common(5000) #拿到出现次数最多的5000单词,返回从大到小的排序list[(and,1),....]

数据库初始化Peewee模块:

from peewee import *

db = SqliteDatabase('voca.db')

class NewWord(Model):

# 单词名

name = CharField()

# 解释

explanation = TextField(default='')

# 词频

frequency = IntegerField(default=0)

# 音标

phonogram = CharField(default='')

class Meta:

database = db

加入单词到数据库:

def insert_data(self,words_times):

# 向数据库内插入数据

for word,fre in words_times:

word_ins = NewWord.create(name = word , frequency = fre) #直接调用create

book.is_analyzed = True

book.save()

翻译:

#iciba翻译函数

def trans(self, word):

url = 'http://www.iciba.com/index.php?a=getWordMean&c=search&word=' + word

try:

req = requests.get(url)

req.raise_for_status()

info = req.json()

data = info['baesInfo']['symbols'][0]

assert info['baesInfo']['symbols'][0]

# 去除没有音标的单词

assert data['ph_am'] and data['ph_en']

# 去除没有词性的单词

assert data['parts'][0]['part']

except:

return ('none','none')

ph_en = '英 [' + data['ph_en'] + ']'

ph_am = '美 [' + data['ph_am'] + ']'

ex = ''

for part in data['parts']:

ex += part['part'] + ';'.join(part['means']) + ';'

return ph_en+ph_am, ex

#调用翻译函数,保存中文到数据库

for i in NewWord.select():

i.explanation = str(t.trans(i.name)[1])

i.save()

提取所有单词到CSV:

import csv

#提取所有数据库内容生成迭代对象 yield ~ 好好看看如何使用

def extract()

pass

for word in NewWord.select():

for i in [word.name, word.explanation, word.frequency]:

datas.append(i)

yield datas

#保存函数

def save(data):

with open('words.csv', 'a+', errors='ignore', newline='')as f:

csv_writer = csv.writer(f)

csv_writer.writerow(data)

#主程序

datas = extract() #yeild 迭代对象

while True:

try:

data = next(datas)

except:

break

save(data)

收获成果啦

翻译过程:

a665fe2a52c44bf7b4d42627278e35bb.jpeg

出现次数最多的简单词:

4cb957eacede4aa98abfb9db2eb2f3fd.jpeg

出现次数较少,值得一背的词:

2b2659f85b034e53b0f6d927f3d99654.jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值