python实现计算一篇英文文章的词频(最简单)

一。环境:

你需要有一篇英文文章和python文件在同一个目录下
目的:打印出一篇英文文章中出现最多的单词及其次数(前十名)

二。代码及其分析:

	def getText():
	    txt = open("book1.txt", "r").read()#打开book1.txt文件,将里面所有的内容读取下来给txt变量
	    txt = txt.lower()#调用lower()函数将所有的字母改成小写
	    for ch in '!"#$&()*+,;<=>?@[\\]^_{|}~':
	        txt = txt.replace(ch, " ")#将文本中除英文单词外的符号替换成空格
	    return txt#将最终内容全是单词的纯净文本返回
	
	hamletTxt = getText()
	words = hamletTxt.split()#调用split()函数使得文本以 空格 分隔开,最终以列表成形式返回
	counts ={}#定义一个字典counts
	for word in words:#对words列表进行遍历
	    counts[word] = counts.get(word, 0) + 1
	    #counts.get(word, 0),如果word这个在列表中,就返回它的counts[word]值,最终实现 counts[word]+1
	    #如果word这个不在列表中,就将word这个单词加入列表,将它的初始值counts[word]赋值为0
	items = list(counts.items())#将counts这个字典转化成一个列表类型
	items.sort(key=lambda x: x[1], reverse=True)#将items列表进行从大到小的排序
	for i in range(10):#遍历输出值最大的前10位元素及其键值
	    word, count = items[i]
	    print("{0:<10}{1:>5}".format(word, count))

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值