【Python学习笔记】词频统计

本文使用Python的jieba和nltk库进行文本处理,通过分词、频数统计,展示了一个关于尺度与人类相对微小性的主题。进一步,借助wordcloud库生成词云图,强调了关键词的重要性,揭示了内容的核心。该博客适合对自然语言处理和数据可视化感兴趣的读者。

所用版本:Python 3.6,jieba 0.42.1,nltk 3.2.4,wordcloud 1.8.1

NLTK统计

将分词后的结果放入list,调用nltk.FreqDist()进行频数统计。支持用下标查询某个词语的频数。用most_common(k)函数可以将频数排名前k的词语存入一个list,list中的元素类型为tuple。

生成词云

先生成存放着频数的字典,然后调用wordcloud.WordCloud().fit_words()生成词云。

import jieba.analyse
import nltk
import wordcloud
import matplotlib.pyplot as plt
s="我所研究的东西,尺度要么在十的负三十次方厘米以下,要么在一百亿光年以上,在这两个尺度上,地球和人类都微不足道。——丁仪"
words=jieba.analyse.extract_tags(s) #提取非停用词
cut=jieba.lcut(s) #分词结果
cnt=nltk.FreqDist(cut) #频数统计
print(cnt['我']) #查询频数
cnt=cnt.most_common(1000) #频数列表
cnt=[x for x in cnt if x[0] in words] #非停用词频数列表
cnt=dict(cnt) #将列表转化为字典
font="C:\Windows\Fonts\simsun.ttc"
w=wordcloud.WordCloud(font_path=font, #设置字体
    width=1200,height=800, #设置图片的宽高(默认200)
    max_words=50, #最多绘制的词条数(默认200)
    min_font_size=4, #最小字体大小(默认为4)
    max_font_size=None, #最大字体大小(默认为None,表示图像的高度)
    prefer_horizontal=0.9, #水平显示的比例(默认为0.9)(程序会尝试达到这个比例,但不一定能) 
    background_color=None, #背景颜色(默认黑色)
    mode="RGBA", #模式(默认为RGB),当mode=“RGBA”,background_color为None时,将生成透明背景
    stopwords=None, #可以指定停用词表,默认的停用词表只支持英文
    ).fit_words(cnt)
plt.imshow(w)
plt.axis("off") #不显示坐标轴
plt.show()
w.to_file("词云.png") #保存词云图片
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值