iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0
AI & Data

AI-ction!我的超級瑪莉歐闖關歷險記:用自動化破關,收集時間金幣系列 第 14

Day 14:評論水晶球視覺化——喚醒數據幻象師

  • 分享至 

  • xImage
  •  

在完成馴服評論哥布林,把冗長的旅客留言煉化成摘要、關鍵字與情緒標籤的挑戰之後,今天,我們準備將冷冰冰的數據轉化為會說話的圖像,讓我們像望進水晶球一樣,一眼就看出評論背後的故事。

今天選用的資料來自於 Kaggle 上有關尼泊爾當地景點的評論Dataset,原始資料有7000多筆,包含id、location、review。我們要挑戰的任務是:把這些原始評論視覺化,讓趨勢與情緒一眼可見。

先來介紹Python家族裡的響噹噹人物

  1. jieba
    來自中文世界的分詞忍者,名字取自「結巴」。由於中文沒有天然的空格,它負責幫我們把長句拆成有意義的詞彙,為後續的統計與可視化奠定基礎。

  2. Matplotlib
    Python 中最古老的畫圖法師,就像是一塊可以自由揮灑的畫布,任何線條、點陣、顏色都能描繪出來。雖然語法稍顯繁瑣,但基礎穩固,是所有後續工具的根基。

  3. Seaborn
    後起之秀,專為統計圖表而生。它站在 Matplotlib 的肩膀上,把複雜的設定包裝成簡單指令,像是一位優雅的水系法師,召喚出配色美麗、結構清晰的圖表。

冒險任務步驟
檢視資料 → 處理缺失值 → 地點分群 →
評論清理與分詞 → 詞頻統計 → 情緒分析 → 視覺化圖表

Step 1:評論清理與分詞

使用 jieba 將評論切分為詞彙。

去除停用詞,留下真正有意義的詞彙。在此例中包含:"nepal", "the", "it", "one", "place", "world","good", "nice", "beautiful", "very", "amazing","visit","site","best","city","view","top","also","see"]

自定義字典,中文不像英文那樣單字間有空格作為判斷,針對中文的情境,可以將特別的專有名詞、地名或口語用語加入斷詞詞庫,例如「夜市」、「阿里山」等,讓 jieba 不會錯切詞。這樣處理後,TF-IDF 計算和詞頻圖才能真正反映評論中有意義的資訊,而不是被拆成碎片或忽略。

Step 2:詞頻統計

使用 scikit-learn 的 TF-IDF,把評論轉換成詞頻矩陣。
找出最有代表性的熱門詞,呈現評論內容焦點。

Step 3:情緒分析

對每則評論跑多語言 BERT 情緒分析,取得星級標籤,並轉換成 positive / neutral / negative。

Step 4:視覺化圖表

用 Seaborn 繪製:依地點統計的詞頻水平長條圖,顯示熱門關鍵字。

用 Matplotlib繪製:依地點統計的情緒堆疊柱狀圖,各景點的正面、中立、負面評論數量一眼可見。
參考 色碼表,添加視覺效果。

成果呈現

完成後,我們能看到:

哪些詞在評論中最常出現,一眼看出每個景點的特色
https://ithelp.ithome.com.tw/upload/images/20250929/20178812V6alVemGrC.png

各景點的情緒分布比例,一眼看懂哪些景點口碑較好
https://ithelp.ithome.com.tw/upload/images/20250929/20178812Pon7Cj2M2Q.png

這些圖像就像一顆「評論水晶球」,讓資料瞬間變得有生命力。

今天解鎖的新技能:

🍄 中文分詞忍術:用 Jieba 切分文字,打造更乾淨的分析基礎
🍄 視覺化法術:用 Matplotlib 與 Seaborn 把數據變成直觀圖表

📓 小結:

今天,我們從評論文字進化到「會說話的視覺化圖像」。
一秒理解密密麻麻數據背後的故事。


上一篇
Day 13:Hugging Face 魔法工坊——馴服評論哥布林
系列文
AI-ction!我的超級瑪莉歐闖關歷險記:用自動化破關,收集時間金幣14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言