Python-英文小说词频统计(傲慢与偏见)

首先下载英文原版小说,TXT格式,内容如下

这里写图片描述

格式非UTF-8,是Unicode格式的

英文每个单词之间都有空格,所以不需要进行分词,可以直接进行词频统计


def get_text():
    f = open('傲慢与偏见.txt','r',encoding='unicode_escape')
    text = f.read().lower()
    for i in '!@#$%^&*()_¯+-;:`~\'"<>=./?,':
        text = text.replace(i,' ')
    return text.split()

ls = get_text()
counts = {}
print(len(ls))
for i in ls:
    counts[i] = counts.get(i,0) + 1

iteams = list(counts.items())
print(iteams)
iteams.sort(key=lambda x:x[1],reverse=True)

for i in iteams[0:10]:
    print(i)

结果不便粘贴,所以截图表示

这里写图片描述


需要做的是,以Unicode格式打开文件,全部转换为小写,替换特殊字符和符号为空格,使用空格将这个大的字符串分隔开,打印列表长度,发现有12万多个单词,而Python瞬间计算出来,可能和四核处理器有关吧。统计词频使用字典,遍历列表,然后将得到的字典转换为列表,使用每个元素的第二个子元素为判断依据进行排序,由大到小,输出前10的结果


发现Python对于字符串的处理能力确实很强,这要是用C,考虑的就多了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值