Python英文文章词频统计(14份剑桥真题词频统计)

yipeiwu_com7年前Python基础

Python剑桥真题词频统计

最好还是要学以致用,自主搜集了19年最近的14份剑桥真题之后,通过Python提供的jieba第三方库,对所有的文章信息进行了词频统计,并选择性地剔除了部分简易词汇,比如数字,普通冠词等,博主较懒,未清楚干净。

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设计】。

相关文章

详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决

详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决

也许自己真的就是有手残的毛病,你说好端端的环境配置好了,自己还在那里瞎鼓捣,我最不想看到的就是在安装一个别的模块的时候,自动卸载了本地的其他模块,每每这个时候,满满的崩溃啊,今天就是一个...

Django 路由层URLconf的实现

分组 分组的目的:让服务端获得url中的具体数据,通过分组,把需要的数据按函数传参的方式传递给服务器后台 1-无名分组 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号 #...

用python 实现在不确定行数情况下多行输入方法

如下所示: stopword = '' str = '' for line in iter(raw_input, stopword): str += line + '\n' pri...

Pandas之drop_duplicates:去除重复项方法

Pandas之drop_duplicates:去除重复项方法

方法 DataFrame.drop_duplicates(subset=None, keep='first', inplace=False) 参数 这个drop_duplicate...

python3中利用filter函数输出小于某个数的所有回文数实例

我就废话不多说了,直接上代码吧! def _int_iter(): """根据回文数的定义。首先生成一个从0开始的整数无限序列""" n = 0 while True:...