词频统计及出现的相关问题

本文介绍了在PyCharm中进行词频统计遇到的问题及解决方案。针对英文文档`hamlet.txt`和中文文档`threekingdoms.txt`,分别使用CalHamletV1.py和CalThreeKingdomsV1、V2进行词频统计。在处理英文文档时遇到SyntaxError,原因是文件中包含非ASCII字符;而在处理中文文档时,虽然解决了编码问题,但未能按人名排序,后续进行了升级改进。参考链接提供了更多解决细节。

1.在pycharm中将要查词频的文档放入同一个目录下,hamlet.txt为纯英文文档,threekingdoms.txt为中文文档

 

2.CalHamletV1.py为纯英文文档词频

   CalThreeKingdomsV1  中文初步版词频

   CalThreeKingdomsV2   中文升级版词频

 

3.代码

CalHamletV1.py为纯英文文档词频

 
                
#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
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))

SyntaxError: Non-ASCII character '\xe2' in file F:/Python_test/dictionary_test/Cal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值