利用Python与jieba库统计剑桥真题英文词频

小石头
小石头
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍如何使用Python的jieba库对14份剑桥英语真题进行英文词频统计。通过读取文本、统一小写、自定义停用词表(如冠词、数字)及分词处理,筛选出高频词汇。代码展示了从分词、计数到排序输出的完整流程,适用于英语学习和文本挖掘场景。

Python剑桥真题词频统计

Python剑桥真题词频统计

数据收集与预处理策略

实践应用至关重要。笔者自主搜集了19年以来的14份剑桥真题,利用Python提供的jieba第三方库对所有文章信息进行词频统计,并选择性剔除部分简易词汇,例如数字和普通冠词等。由于博主较为懒惰,清理工作并未完全彻底。

Python实现代码解析

Python代码如下:


import jieba
# 以只读方式打开text(即真题库)
text = open('text.txt', 'r', encoding = 'utf-8').read()
# len(text)

#统一为小写 
text = text.lower()

# 需要剔除的词汇列表,也可以用记事本的形式,添加一个打开记事本的语句即可
# 即 stwlist = [line.strip() for line in open 'stopwords.txt',encoding='utf-8').readlines()]
# 这里使用列表
stwlist = ['the','a','of','to','end','in','you','is','that','for','on','it','as','your','...','14',
      'this','or','20','40','27','30','13','21','26','10','15','22',
      '32','31','1','2','4','5','6','7','8','9','0','10','11','12','13',
      '12','13','15','16','17','25','33','35','36','18','23','19','24',
      '38','29','34','37','000','...............................']

# 先进行分词
words = jieba.cut(text, cut_all = False, HMM = True)
#cut_all:是否采用全模式
#HMM:是否采用HMM模型

word_ = {}
for word in words:
  if (word.strip() not in stwlist):
    if len(word) > 1:
      if word != '\t':
        if word != '\r\n':
 # 计算词频
          if word in word_:
            word_[word] += 1
          else:
            word_[word] = 1

# 将结果保存为元组
word_freq = []
for word, freq in word_.items():
  word_freq.append((word, freq))

# 降序排列
word_freq.sort(key = lambda x:x[1], reverse = True)

#输出前3500个词汇
for i in range(3500):
  word, freq = word_freq[i]
  print('{0:10}{1:5}'.format(word, freq))

总结

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表