python词云是什么意思_python生成词云

前言

在大数据时代,你竟然会在网上看到的词云,例如这样的。

看到之后你是什么感觉?想不想自己做一个?

如果你的答案是正确的,那就不要拖延了,现在我们就开始,做一个词云分析图,Python是一个当下很流行的编程语言,你不仅可以用它做数据分析和可视化,还能用来做网站、爬取数据、做数学题、写脚本替你偷懒……

如果你之前没有编程基础,没关系。希望你不要限于浏览,而是亲自动手尝试一番。到完成的那一步,你不仅可以做出第一张词云图,而且这还将是你的第一个有用的编程作品。

结巴分词

Python中的分词模块有很多,他们的功能也都是大同小异,我们安装的结巴分词 是当前使用的最多的类型。

下面我来简单介绍一下结巴分词的用法

结巴分词的分词模式分为三种:

(1)全模式:把句子中所有的可以成词的词语都扫描出来, 速度快,但是不能解决歧义问题

(2)精确模式:将句子最精确地切开,适合文本分析

(3)搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词

下面用一个简单的例子来看一下三种模式的分词区别:

import jieba

text = '我来北京清华大学,开着法拉利在水一方吃着苹果梨'

seg_list = jieba.cut(text,cut_all=True)

print('[全模式]:','/'.join(seg_list))#全模式

seg_list = jieba.cut(text,cut_all=False)

print('[精确模式]:','/'.join(seg_list))#精确模式

seg_list = jieba.cut(text)#默认精确模式

print(u"[默认模式]: ", "/ ".join(seg_list))

seg_list = jieba.cut_for_search('小明硕士毕业于中国科学院计算所,后在日本京都大学深造')#搜索引擎模式

print(u"[搜索引擎模式]: ", "/ ".join(seg_list))

使用自定义词典

#自定义词典

#jieba.load_userdict(file_name)

txt = '欧阳建国是创新办主任也是欢聚时代公司云计算方面的专家'

print(','.join(jieba.cut(txt)))

#使用用户字典(user_dict)

jieba.load_userdict('../user_dict.txt')

print(','.join(jieba.cut(txt)))

禁用词的输出结果

text = "哈利波特是一常优秀的文学作品"

stopwords = {}.fromkeys(['优秀','文学作品'])

seg_list = jieba.cut(text)

final = ''

for seg in seg_list:

if seg not in stopwords:

final +=seg

seg_list_new = jieba.cut(final)

print(u"[切割之后]: " , " ".join(seg_list_new))

可以看到输出结果中并没有“优秀”和“文学作品”两个词。

词云的制作

1、使用结巴分词将文章分成词语的形式,下面是分词的函数

from wordcloud import WordCloud,ImageColorGenerator

import PIL .Image as image

import numpy as np

import jieba

def trans_CN(text):

jieba.suggest_freq(('学长学姐'),True)

word_list = jieba.cut(text)

# 分词后在单独个体之间加上空格

result = " ".join(word_list)

return result;

jieba.suggest_freq(('学长学姐'),True):设置词语不分词

2、读取文章,并制作词云。

使用的是wordcloud函数库,可以根据喜好来定义词云的颜色、轮廓等参数 ,下面为常用的参数设置方法

with open("pachong.txt",encoding = 'utf-8') as fp:

text = fp.read()

text = trans_CN(text)

# print(text)

#设置词云形状,若设置了词云的形状,生成的词云与图片保持一致,后面设置的宽度和高度将默认无效

mask = np.array(image.open("aixin.jpg"))

# 提取背景图片颜色

img_colors = ImageColorGenerator(mask)

wordcloud = WordCloud(

mask=mask,

font_path = "C:\\Windows\\Fonts\\STXINGKA.TTF",# 若想生成中文字体,需添加中文字体路径

background_color='white', #默认黑色背景,更改为白色

margin=2, # 页面边缘

scale=2,

max_words=200, # 最多词个数

min_font_size=4,

max_font_size=100,

random_state=42,

#,colormap = 'Blues'

).generate(text)

# 设置为背景色,若不想要背景图片颜色,就注释掉

#wordcloud.recolor(color_func=img_colors)

image_produce = wordcloud.to_image()#返回对象

#保存图片

wordcloud.to_file("new_wordcloud.jpg")

image_produce.show()#显示图像

我的词云原图:

生成的词云图:

C盘中有font字体,那么这些呢你可以自己去找,trans_CN方法是分词用的,通过font-path就可以指定里面的生成文本。这大概就是词云的基础了,可以将爬虫和词云生成结合在一起,在爬取信息之后生成这样的词云。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值