python#词云

用python制作词云

#加载模块

import matplotlib.pyplot as plt 
import numpy as np
from PIL import Image
import jieba
from wordcloud import WordCloud, ImageColorGenerator
 # 初始化jieba
jieba.initialize() 
# 导入停用词,“我们”这一类没有意义的词
path = R"/Volumes/linxianqin/notebook/stopwords.txt"  
# 将停用词的前后的空格去掉
stopwords = set([line.strip() for line in open(path, encoding="utf8")]) 

#导入字典,名字一类特殊的词
mydict_path = R"/Volumes/linxianqin/notebook/mydict.txt"
jieba.load_userdict(mydict_path)  

#需要分词的源文件
txt = r"/Volumes/linxianqin/notebook/琅琊榜.txt"

#打开文件
with open(txt, encoding="utf8") as f: 
    text = f.read()                   #读取文件的内容
    seg_list1 = jieba.cut(text)        #分词 分完为可迭代的对象
    seg_list = " ".join(seg_list1)     #用空格 连接各个词
   
#字体!这里导入中文字体,不然得到的词云全是乱码
font_path = R"/Users/yixia/Desktop/HYZhuZiChaoRanTiW.ttf"          

#设置参数
wordcloud = WordCloud(font_path=font_path,         #字体参数                       #更多参数按shift+tab
                      background_color="black",    #背景颜色
                      margin=5,                    #边距
                      width=1200,                  #图片的尺寸大小
                      height=760, 
                      max_font_size=150,          #最大的词大小150
                      stopwords=stopwords)         #停用词
#分咯
wordcloud = wordcloud.generate(seg_list)           #读入分词
#将结果到出文件
wordcloud.to_file("琅琊榜.png")  # 可选择直接导出为png文件
#显示图片
plt.figure()
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

结果展示
在这里插入图片描述

#以上就可以实现最简单的词云啦
#下面是以图片为背景,制作词云

#读入照片 用照片做为词云背景
mask = np.array(Image.open(R"/Volumes/linxianqin/notebook/梅长苏.jpg")) 
#设置参数
wordcloud = WordCloud(font_path=font_path, 
                      background_color="black", 
                      mask = mask,              #比没用照片多了一个参数
                      margin=5, 
                      width=1200,              #有照片这些参数没有用了 以原图的大小输出词云图片
                      height=760, 
                      max_font_size=150, 
                      stopwords=stopwords)

 #如果你想词的颜色跟你照片的颜色一样,还要用这个参数
wordcloud.recolor(color_func=image_color ) 

#生成

wordcloud = wordcloud.generate(seg_list)
#wordcloud.to_file("琅琊榜_1.png")

#显示图片
plt.figure()
plt.imshow(wordcloud)
plt.axis("off")
plt.show()

结果展示 (男主本人)
胡歌本人

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值