概述:
製作詞雲的步驟:
1、從文件中讀取數據
2、根據數據追加在一個字符串裏面,然後用jieba分詞器將評論分開
3、設置WordCloud詞雲參數
4、保存最後的結果
數據:使用爬取的豆瓣影評數據
第一步:引入依賴庫
# 1、表格庫
import csv
# 2、jieba分詞器
import jieba
# 3、算法運算庫
import numpy
# 4、圖像庫
from PIL import Image
# 5、詞雲庫
from wordcloud import WordCloud
第二步:讀取數據
stars = ("很差","較差","還行","推薦","力薦")
comments = []
with open("files/douban.csv","r",encoding="utf-8") as file:
reader = csv.reader(file)
for i in reader:
if i[1] not in stars:
pass
else:
comments.append(i)
file.close()
第三步:解析數據並保存
str = ""
for i in data:
str+=i[2]
cutWord = " ".join(jieba.cut(str))
bgImg = numpy.array(Image.open("files/a.jpg"))
cloud = WordCloud(
font_path="C:\Windows\Fonts\STZHONGS.TTF",
background_color="white",
mask=bgImg
).generate(cutWord)
cloud.to_file("ciyun.png")
效果圖:
模型:
效果:
源代碼:
# 1、表格庫
import csv
# 2、jieba分詞器,將一句話的詞語分離出來
# 1)、控制檯輸入:pip install jieba
# 2)、左上角 file-->settings--->項目
# 3)、清華園下載方式(在控制檯)
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jieba
# 阿里
# pip install jieba -i http://mirrors.aliyun.com/pypi/simple/
import jieba
# 3、算法運算庫
# 控制檯輸入:pip install numpy
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy
import numpy
# 4、圖像庫
# 控制檯輸入:pip install pillow
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow
from PIL import Image
# 5、詞雲庫
# 控制檯輸入:pip install WordCloud
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple WordCloud
from wordcloud import WordCloud
# 定義函數,將數據從表格裏讀取出來
def getDataFromCsv():
# 設置星級等級
stars = ("很差","較差","還行","推薦","力薦")
# 設置空列表,裝從表格裏面讀出來的所有數據
comments = []
# 打開表格,"r"讀取模式 讀取數據
with open("files/douban.csv","r",encoding="utf-8") as file:
# 表格操作讀數據
reader = csv.reader(file)
# 遍歷表格裏得到所有數據 [用戶名,星級,評論]
for i in reader:
# 如果沒有星級
if i[1] not in stars:
# 數據無效,忽略不處理
pass
else:
# 數據有效,裝入數組
comments.append(i)
# print(comments)
file.close()
# 將裝有數據的列表返回出來
return comments
# 定義函數,將解析的評論做成詞雲
def getWordCloud():
# 調用函數:得到表格中所有的數據
data = getDataFromCsv()
# 定義空的字符串,把所有的評論裝進來
str = ""
# 遍歷所有的數據
for i in data:
# [用戶名, 星級, 評論]
str+=i[2]
# print(str)
# 通過jieba分詞器將評論裏面的詞語用空格分離出來
cutWord = " ".join(jieba.cut(str))
# print(cutWord)
# 讀取圖片模型
bgImg = numpy.array(Image.open("files/a.jpg"))
# 準備詞雲參數
cloud = WordCloud(
# 文字的路徑:本地的系統文件路徑
font_path="C:\Windows\Fonts\STZHONGS.TTF",
# 生成詞雲的圖片背景
background_color="white",
# 參考圖片(參數,沒有引號)
mask=bgImg
).generate(cutWord)
# 將做成的結果生成圖片
cloud.to_file("ciyun.png")
問題:安裝wordcloud出錯,離線安裝也出錯,
參考:https://blog.csdn.net/xiuxiuen_michelle/article/details/81080694
解決:在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 下載對應版本的庫