def getText():
#获取文件
text = open("Walden.txt","r").read()
text = text.lower()
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~' :
text = text.replace(ch," ")
return text
txt = getText()
words = txt.split()
counts = {} #定义空字典
for word in words:
counts[word] = counts.get(word,0) + 1
items = list(counts.items())
#将列表按照count中键值从大到小的顺序进行排列
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,counts))
词频统计代码如上,但是出现报错,请问这是什么原因啊?
打开文件语句中加入编码格式参数,改为text = open("Walden.txt","r",encoding='utf-8‘).read(),试一下看看。另代码末尾打印语句中也有个小错误,是count而不是counts
把字符解码为gbk编码时失败,0xbf字符不能解码为gbk编码。
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y