【时光之穿越一千年】python全文字频解析【jieba】【matplotlib构图】案例

举报
红目香薰 发表于 2022/01/31 23:38:50 2022/01/31
【摘要】 ​需要环境:【jieba、wordcloud、matplotlib】小说资料请自己去下载,或者找你想解析的小说即可。我这里爬取的【时光之穿越一千年】我放在了项目路径下:​解析代码:import jiebaimport osfrom wordcloud import WordCloudimport matplotlib.pyplot as pltpath = os.getcwd()#获取当前路...

需要环境:【jieba、wordcloud、matplotlib】

小说资料请自己去下载,或者找你想解析的小说即可。我这里爬取的【时光之穿越一千年】

我放在了项目路径下:

解析代码:

import jieba
import os
from wordcloud import WordCloud
import matplotlib.pyplot as plt

path = os.getcwd()#获取当前路径

listDir=os.listdir(path)#获取当前目录下的所有内容

listInfo=""
for x in listDir:
    if ".txt" in x:#判断是不是以.txt为后缀的文件
        file=open(x,"r",encoding="utf-8")#用utf-8的格式打开
        listInfo+=file.read()#读取全部内容
        file.close()

words = jieba.lcut(listInfo)# 使用精确模式对文本进行分词
counts = {}# 通过键值对的形式存储词语及其出现的次数
#统计词频
for word in words:
    if len(word) == 1: # 单个词语不计算在内
        continue
    else:
        counts[word] = counts.get(word, 0) + 1 # 遍历所有词语,每出现一次其对应的值加 1
#注解:dict.get(word,0)当能查询到相匹配的字典时,就会显示相应key对应的value,如果不能的话,就会显示后面的这个参数

#有些不重要的词语但出现次数较多,可以通过构建排除词库excludes来删除
text=' '.join(words)
excludes = {'一个','我们','你们','不可','知道','这里','却说',
            '自己','这样','怎么','不是', '不知','这个','不能','如此'}
#删除不重要的词语
for exword in excludes:
    del(counts[exword])
    
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True) # 根据词语出现的次数进行从大到小排序

#输出统计结果
for i in range(10):
    word, count = items[i]
    print("{0:<5}{1:>5}".format(word, count))

#绘图 
wc=WordCloud(background_color='white',# 设置背景颜色
             font_path='msyh.ttc',# 若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字  
             scale=2, #按照比例进行放大画布,如设置为2,则长和宽都是原来画布的1.5倍
             max_words=100,# 设置最大现实的字数  
             max_font_size=80,# 设置字体最大值  
             stopwords=excludes)# 设置停用词 
wc.generate(text)
# 显示词云图  
plt.imshow(wc)
plt.axis('off')  
plt.show() 
wc.to_file(r'词频统计.jpg')  

2、执行效果:

如果有不需要的此可以在【excludes】中过滤掉。

希望能对大家了解文字有一定的帮助。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。