python:Hamlet英文词频统计

时间:2024-01-04 19:21:20
 #CalHamletV1.py
def getText(): #定义函数读取文件
txt = open("hamlet.txt","r").read()
txt = txt.lower() #将所有字符转换为小写
for ch in '!@#$%^&*(_)-+=\\[]}{|;:\'\"`~,<.>?/':
txt = txt.replace(ch, " ") #将所有特殊符号用空格替代
return txt
hamletTxt = getText()
words = hamletTxt.split() #用空格分隔文本并生成列表
counts = {}
for word in words:
counts[word]=counts.get(word,0)+1 #生成字典的内容:若该键存在则取其值并+1
items=list(counts.items()) #返回所有键值对信息,生成列表
items.sort(key=lambda x:x[1],reverse=True) #对列表反排序:降序排列
for i in range(10):
word, count = items[i]
print("{0:<10}{1:>5}".format(word, count)) #打印前十个元素 #print(items[:10])
#结果如下:

python:Hamlet英文词频统计

下面这是老师视频课件里的代码和结果:

python:Hamlet英文词频统计python:Hamlet英文词频统计

输出的结果不一致,因为上面特殊字符的时候使用了两个转义符“\”.