【python爬蟲實戰】使用詞雲分析來分析豆瓣影評數據

概述:

製作詞雲的步驟:
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 下載對應版本的庫


作者

1、作者個人網站
2、作者CSDN
3、作者博客園
4、作者簡書

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章