【我爱背单词】用Python提炼3000英语新闻高频词汇



学英语,无论目的何在,词汇量总是一个绕不过去的坎,没有足够的词汇量,都难以用文法来组词造句。
前段时间,恶魔的奶爸提供了几份偏向于各个领域的高频词汇,很是不错。
最近用Python写爬虫入门教程的时候,碰到过几个英文网站,便有了统计一份网站英文单词词频的念头。
3000高频单词库说明
来源:http://www.chinadaily.com.cn/ 全站4700+个网页
剔除127个常见停用词,剔除单词长度为1的单词,剔除网站英文名chinadaily。

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

以下为3000高频词汇的提取过程,如需最后的单词库,直接拉到文末。
1.爬取ChinaDaily全站网页URL

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

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

结果为:

部分单词及词频为:

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

关注微信公众号:州的先生
回复关键字:3000高频词

  1. Ace说道:

    可以把代码2和3的代码解释下吗

    1. zmister说道:

      代码2:请求一个网页,然后解析响应的html,剔除html中的标签和非英语单词,最后写入文本文件。
      代码3:(使用nltk这个库)加载代码2获取到的英语单词文本文件为语料库,计算单词数量,计算非重复性单词数量,计算词频并输出新的文本文件

  2. Ace说道:

    text = re.sub(r'\.*?\',' ',text)
    text = re.sub(r'\'," ",text)
    text = re.sub(r'[^a-zA-Z]',' ',text)
    这三段正则表达式中括号里面第一个都表示什么啊,或者博主有什么好的正则表达式的学习材料和网站,能否推荐给我。

    1. zmister说道:

      re.sub(正则匹配条件,需要替换成的字符串,原始字符串),
      网上有一个正则表达式30分钟入门,很不错

  3. Yang说道:

    请问这个停用词stopwords是这个库自带的吗?还是自己弄的一个文件啊?

    1. zmister说道:

      那个是nltk的语料库里面自带的,你也可以使用自己制作的

  4. Lee Zec说道:

    作者你好。
    代码1中的 pages 没有定义啊?这个问题怎么解决?

  5. 匿名说道:

    在爬取ChinaDaily全站网页URL时报错了
    程序出错:maximum recursion depth exceeded in comparison

  6. pan说道:

    1.爬取ChinaDaily全站网页URL 里面的pages 集合没设置

    爬到一半 出现程序出错:maximum recursion depth exceeded in comparison

  7. pan说道:

    1.爬取ChinaDaily全站网页URL 里面的 pages集合 开始没有设置
    程序爬取中出现 程序出错:maximum recursion depth exceeded in comparison 报错

  8. hahaha说道:

    第三段代码的第十六行中的item[0]是怎么回事啊,item不是单词吗,怎么变成频数了。。。

  9. 无怀氏说道:

    问题在于还没有爬什么网站的欲望怎么破 :lol:

    1. zmister说道:

      工具而已,有需要的时候,使用便是了

发表评论

电子邮件地址不会被公开。