python红楼梦词频统计

python红楼梦词频统计
《红楼梦》人物的出场统计涉及对词汇的统计,中文文章的需要分词才能进行词频统计,需要用到jieba库。
分析过程:
代码:

import jieba
txt=open("G:\\红楼梦.txt","r",encoding="utf-8")
txt.read()
words=jieba.lcut(txt)#精准模式
a={}
for word in words:
    if len(word)==1:#排除单个字符的统计结果
        continue
    else:
        a[word]=a.get(word,0)+1
items=list(a.items())#将字典转换为记录列表
items.sort(key=lambda x:x[1],reverse=True)#记录第二列排序
for i in range(15):
    word,count=items[i]
    print("{0:<10}{1:>5}".format(word,count))
txt.close()

第一步是打开红楼梦.txt文件,只读的方式,使用UTF-8编码方式
第二步是使用精准模式,将单词保存到words列表中,使用一个字典类型a={},统计单词的次数:

for word in words:
    if len(word)==1:#排除单个字符的统计结果
        continue
    else:
        a[word]=a.get(word,0)+1

如果字符长度为1则跳过,否则使用a.get(word,0)方法表示:如果word在a中则返回word对应的值,如果word不在a中就返回0。

第三步是对单词的统计的值从高到低进行排序,输出前15个高频词语,并格式化打印输出。由于字典没有顺序,需要将其转换为有顺序的列表类型,再使用sort()方法和lambda函数配合实现单词出现的次数,对元素进行排序。最后输出排序结果前15位的单词。

items=list(a.items())#将字典转换为记录列表
items.sort(key=lambda x:x[1],reverse=True)#记录第二列排序

实验结果:
在这里插入图片描述

可以看出贾宝玉和贾母的出现的次数最高。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

互动创客坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值