【python】统计英文小说中各单词出现的次数

1、问题描述

以英文小说THE TRAGEDY OF ROMEO AND JULIET (罗密欧与朱丽叶)为例,统计该小说中各个单词出现的频次,按出现次数由高到低排序。部分内容如下:
Serv. Up.

Rom. Whither?

Serv. To supper, to our house.

Rom. Whose house?

Serv. My master's.

Rom. Indeed I should have ask'd you that before.

Signior Valentio and His cousin Tybalt;

[Gives back the paper.] A fair assembly. Whither should they come?

2、解题思路

第一步:读取txt文本文件内容
第二步:文本预处理,去掉英文符号
第三步:分割获得单词列表
第四步:获得单词频次字典
第五步:对字典进行排序
第六步:显示字典前10项

3、代码实现

import re
with open('romeo.txt') as file:
    #1.1.读取txt文本文件内容
    file_txt=file.read()
    #2.文本预处理,去掉英文符号
    word_text=re.sub(r'[?.!,;""/\[\]]',' ',file_txt) #特殊字符替换成空格
    word_texts=re.sub(r"-",' ',word_text) #替换单独的-,不是同一单词里的连字符
    #3.分割获得单词列表
    wordlist=word_texts.split()
    #4.获得单词频次字典
    word_dict={}
    for word in wordlist:
        if word not in word_dict:
            word_dict[word]=1
        else:
            word_dict[word]=word_dict.get(word)+1
    #5.对字典进行排序
    dict_order=dict(sorted(word_dict.items(),key=lambda x:x[1],reverse=True))#reverse为True,降序
    #6.显示字典前10项
    print(list(dict_order.items())[:10])

4、运行结果

D:\Anaconda3\python.exe G:/pythonworkspaces/djangoproject1/student_manager/test1.py
[('the', 604), ('I', 574), ('and', 490), ('to', 488), ('a', 399), ('of', 371), ('my', 311), ('is', 307), ('in', 286), ('that', 270)]

Process finished with exit code 0

5、交流

欢迎各位博主分享你们的想法和提出改进意见

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值