学python必会英语单词_【我爱背单词】用Python提炼3000英语新闻高频词汇

学英语,无论目的何在,词汇量总是一个绕不过去的坎,没有足够的词汇量,都难以用文法来组词造句。

前段时间,恶魔的奶爸提供了几份偏向于各个领域的高频词汇,很是不错。

最近用Python写爬虫入门教程的时候,碰到过几个英文网站,便有了统计一份网站英文单词词频的念头。

3000高频单词库说明:

来源:http://www.chinadaily.com.cn/ 全站4700+个网页

剔除127个常见停用词,剔除单词长度为1的单词,剔除网站英文名chinadaily。

我年纪还轻,阅历不深的时候,我父亲教导过我一句话,我至今还念念不忘。 “每逢你想要批评任何人的时候, ”他对我说,“你就记住,这个世界上所有的人,并不是个个都有过你拥有的那些优越条件。”

——《了不起的盖茨比》

以下为3000高频词汇的提取过程,如需最后的单词库,直接拉到文末。

1.爬取ChinaDaily全站网页URL

def get_all_link(url):

try:

# 分割网址

host = url.split('/')

# print(host[2])

wbdata = requests.get(url).text

soup = BeautifulSoup(wbdata,'lxml')

for link in soup.find_all('a'):

# 判断网页中提取的URl形式

if link.get('href') not in pages and link.get('href') is not None:

if link.get('href').startswith('http'):

if link.get('href').split('/')[2] == host[2]:

newpage = link.get('href')

# print(newpage)

pages.add(newpage)

get_all_link(newpage)

elif link.get('href').startswith('/'):

newpage = link.get('href')

pages.add(newpage)

newpage_url = 'http://'+host[2]+newpage

# print(newpage_url)

get_all_link(newpage_url)

print('url数量:'+str(len(pages)))

except BaseException as e:

print('程序出错:{0}'.format(e))

2.请求爬取的URL并解析网页单词

# 解析网页单词并写入文本文件

def resolve_html(url):

wbdata = requests.get(url).content

soup = BeautifulSoup(wbdata,'lxml')

# 替换换行字符

text = str(soup).replace('\n','').replace('\r','')

# 替换

text = re.sub(r'\.*?\\>',' ',text)

# 替换HTML标签

text = re.sub(r'\<.*?\>'," ",text)

text = re.sub(r'[^a-zA-Z]',' ',text)

# 转换为小写

text = text.lower()

text = text.split()

text = [i for i in text if len(i) > 1 and i != 'chinadaily']

text = ' '.join(text)

print(text)

with open("j:\python\words.txt",'a+',encoding='utf-8') as file:

file.write(text+' ')

print("写入成功")

if __name__ == '__main__':

pool = Pool(processes=2)

pool.map_async(resolve_html,urllist)

pool.close()

pool.join()

print('运行完成')

3.对单词文本文件进行词频处理

# 对单词文本文件进行词频处理

def resolve_words():

corpath = 'J:\\python\\words'

wordlist = PlaintextCorpusReader(corpath,'.*')

allwords = nltk.Text(wordlist.words('words.txt'))

print("单词总数",len(allwords))

print("单词个数",len(set(allwords)))

stop = stopwords.words('english')

swords = [i for i in allwords if i not in stop]

print("去除停用词的单词总数:",len(swords))

print("去除停用词的单词个数:",len(set(swords)))

print("开始词频统计")

fdist = nltk.FreqDist(swords)

print(fdist.most_common(3000))

for item in fdist.most_common(3000):

print(item,item[0])

with open('J:\\python\\words3000.txt','a+',encoding='utf-8') as file:

file.write(item[0]+'\r')

print("写入完成")

结果为:

单词总数 3537063

单词个数 38201

去除停用词的单词总数: 2603450

去除停用词的单词个数: 38079

部分单词及词频为:

('online', 8788)

('business', 8772)

('society', 8669)

('people', 8646)

('content', 8498)

('story', 8463)

('multimedia', 8287)

('cdic', 8280)

('travel', 7959)

('com', 7691)

('cover', 7679)

('cn', 7515)

('hot', 7219)

('shanghai', 7064)

('first', 6941)

('photos', 6739)

('page', 6562)

('years', 6367)

('paper', 6289)

('festival', 6188)

('offer', 6064)

('sports', 6025)

('africa', 6008)

('forum', 5983)

最后得到一个包含3000个高频词汇的txt文本文件,大家可以将其导入到各大单词软件的单词本中。

下载地址:

关注微信公众号:州的先生

回复关键字:3000高频词

分享到:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值