此代码是从B站上学习得来的,加上了一些注释,方便大家理解。
如有侵权,请及时联系作者删除
下面展示代码
。
import jieba #分词
from matplotlib import pyplot as plt #绘图,数据可视化
from wordcloud import WordCloud #词云
from PIL import Image #图片处理
import numpy as np #矩阵运算
import sqlite3 #数据库
# 准备词云所需要的文字(词)
conn = sqlite3.connect('movie.db') #这是我已经通过爬虫将豆瓣TOP250的数据保存在数据库中
cur = conn.cursor() #创建游标
sql = 'select instroduction from movie250' #创建sql语句
data = cur.execute(sql) #执行sql语句
text = "" #声明文本,用来保存数据
for item in data:
text = text + item[0]
# print(item[0])
# print(text)
cur.close()
conn.close()
# 分词
cut = jieba.cut(text) #使用jieba分词
string = ' '.join(cut) #将空格插入每两个词语之间
# print(string)
img = Image.open(r'tree.jpg') #打开遮罩图片
img_array = np.array(img) #将图片转换成数组
wc = WordCloud(
background_color='white', #设置背景
mask=img_array, #设置遮罩,也就是树的形状
font_path="STSONG.TTF", #设置字体
)
wc.generate_from_text(string) #切词
# 绘制图片
fig = plt.figure(1)
plt.imshow(wc) #将词云显示出来,也就是词语
plt.axis('off') #off为不显示坐标轴
# plt.show() #显示生成的词云图片
# 输出词云图片到文件
plt.savefig(r'.word.jpg')
效果图