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

版权声明:一起学习啊 https://blog.csdn.net/q1694222672/article/details/82013061

首先下载英文原版小说,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,考虑的就多了

猜你喜欢

转载自blog.csdn.net/q1694222672/article/details/82013061