我获得了一种学习英语阅读的新方法——python英语阅读词频统计

一.概述

1.概述
在很多情况下,会遇到这样的问题,对于给定的一篇文章统计其多次出现的词语,进而进行文章内容的分析,这也就是词频统计问题。

二.英语高考阅读理解词频统计

1.分解并提取英文文章的单词
通过txt.lower() 函数将字母都变成小写,排除原文大小写差异对词频统计的干扰。为统一分隔方式,可以将各种特殊字符和标点符号使用txt.replace() 方法替换成空格,再提取单词。

2.遍历文本,对每个单词进行计数
单词保存在变量word中,使用一个字典类型counts={}统计单词出现的次数

3.排key序
对单词统计值从高到低进行排序,由于字典类型没有顺序,可以先转为列表类型,再使用sort()方法和lambda函数配合实现单词次数的排序。

列表排序

num_list=[6,4,8,10,2]
num_list.sort()
print(num_list)
#结果为[2,4,6,8,10]
L=[('a',2),('b',6),('c',4)]
L.sort()
print(L)
#结果为[('a',2),('b',6),('c',4)],并没有进行排序
L.sort(key=lambda x:x[1])
#结果为[('a',2),('c',4),('b',6)]
#sort函数可以传入函数类型的参数key,并且只能有一个返回值,对这个返回值进行排序
#sort函数可以传入reverse参数为True实现从大到小排序
#英语阅读词频统计
ex={"the","his","and","the","of","you","i","my","in","for","a","to","was","has","who","what","had","from","were","they","them","been","an"}
#该集合用于排除这些常见词语
def getText():
    txt=open("E:\\aa.txt").read()#路径导入自己的txt文件
    txt=txt.lower()
    for ch in '!?.,<>@#$%^&*())+=-_~`':
        txt=txt.replace(ch," ")
    return txt
article=getText()
words=article.split()
counts={}
for word in words:
    counts[word]=counts.get(word,0)+1
for word in ex:
    if word in counts.keys():
        del(counts[word])

items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(9):#打印前几位的单词
    word,count=items[i]
    print("{0:<10}{1:>5}".format(word,count))
   

打印结果如下

languages    10
have          6
many          4
people        4
small         3
shackleton    3
more          3
with          3
as            3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值