資料科學 API 趨勢分析 教學

使用 Google Trends API 擷取搜尋趨勢並輸出 CSV 格式

使用 Google Trends API 擷取搜尋趨勢並輸出 CSV 格式

一、教學目標

  1. 知識目標:理解 Google Trends 的功能及其透過 API 提供搜尋趨勢數據的機制。
  2. 技能目標:學會使用 pytrends 套件提取 LLM(大型語言模型)相關關鍵字的搜尋趨勢,並將資料輸出為 CSV 格式。
  3. 態度目標:培養對資料分析與趨勢研究的興趣,並認識其在商業與科技領域的應用價值。

二、前置準備

適用對象

  • 對象:高中生、大學生或對資料分析、Python 與 AI 趨勢有興趣的初學者。
  • 先備知識:基礎 Python 知識(套件安裝、資料處理)。

所需軟硬體

  1. 硬體:具備網路連線的電腦。
  2. 軟體
    • Python 3.x(建議搭配 Anaconda)。
    • Python 套件:pytrendspandas
    • 文字編輯器(如 VS Code 或 Jupyter Notebook)。
  3. 其他:穩定的網路環境(Google Trends API 需要線上存取)。

教師準備

  • 預先安裝 pytrends 並測試程式碼。
  • 準備一份簡易安裝指南(PDF 或投影片)。
  • 提供 LLM 相關背景資料(簡介 GPT-4、Llama 3 等模型)。

三、教學流程

時間分配:總計 90 分鐘

  • 導入(10 分鐘)
  • 環境設定與基本操作(20 分鐘)
  • 搜尋趨勢數據實作(30 分鐘)
  • 各國趨勢數據實作(20 分鐘)
  • 總結與討論(10 分鐘)

1. 導入(10 分鐘)

活動:情境引導

  • 教師提問
    「你知道現在最熱門的 AI 模型是什麼嗎?如何用數據證明它的熱度?」
  • 簡介 Google Trends
    • 什麼是 Google Trends?(免費工具,顯示關鍵字搜尋熱度)。
    • 介紹 pytrends 套件如何透過 API 提取資料。
  • 目標導引
    「今天我們將學習如何用 Python 抓取 LLM(如 GPT-4、Claude 3)的搜尋趨勢,並存成 CSV,幫助你分析 AI 熱度!」

2. 環境設定與基本操作(20 分鐘)

講解(10 分鐘)

  • 安裝 pytrends
    • 展示指令:
      pip install pytrends
      
    • 檢查安裝:import pytrends(無錯誤即成功)。
  • 基本概念
    • TrendReq:初始化 Google Trends API。
    • 參數說明:timeframe(時間範圍)、geo(地區)。

實作活動(10 分鐘)

  • 學生任務
    1. 安裝 pytrends
    2. 測試簡單程式碼:
from pytrends.request import TrendReq
pytrends = TrendReq(hl="en-US", tz=360)
print("成功連接到 Google Trends API!")
  • 成果檢查:確認程式運行無誤並顯示成功訊息。

3. 搜尋趨勢數據實作(30 分鐘)

講解(10 分鐘)

  • 程式碼說明
    • build_payload:設定關鍵字與搜尋條件。
    • interest_over_time():獲取時間序列數據。
    • to_csv():輸出為 CSV。
  • 展示範例:以 LLM 關鍵字(如 GPT-4)展示結果。

實作活動(20 分鐘)

  • 學生任務
    1. 執行以下程式碼,獲取近 30 天 LLM 搜尋趨勢:
from pytrends.request import TrendReq
import pandas as pd

# 初始化 API
pytrends = TrendReq(hl="en-US", tz=360)

# 定義關鍵字
keywords = ["GPT-4", "Llama 3", "Gemini AI", "Claude 3", "Mistral AI"]

# 設定搜尋條件
pytrends.build_payload(kw_list=keywords, timeframe="now 30-d", geo="US")

# 獲取趨勢數據
trend_data = pytrends.interest_over_time()
trend_data = trend_data.drop(columns=["isPartial"])

# 輸出 CSV
csv_filename = "llm_trends.csv"
trend_data.to_csv(csv_filename)

print(f"已成功儲存 LLM 搜尋趨勢數據至 {csv_filename}")
print(trend_data.head())
  1. 修改 geo="US""TW"(台灣)或 ""(全球),重新運行並比較結果。
  • 成果檢查:打開 llm_trends.csv,確認包含日期與關鍵字搜尋熱度。

4. 各國趨勢數據實作(20 分鐘)

講解(10 分鐘)

  • 介紹 interest_by_region()
    • 用途:比較不同地區的搜尋熱度。
    • 數據結構:以國家為單位顯示熱度。
  • 展示範例:顯示 LLM 在美國與台灣的搜尋差異。

實作活動(10 分鐘)

  • 學生任務
    1. 執行以下程式碼,獲取各國 LLM 搜尋趨勢:
# 取得各國趨勢數據
region_trends = pytrends.interest_by_region()

# 輸出 CSV
csv_filename = "llm_trends_by_country.csv"
region_trends.to_csv(csv_filename)

print(f"已成功儲存各國 LLM 搜尋趨勢數據至 {csv_filename}")
print(region_trends.head())
  1. 檢查 llm_trends_by_country.csv,找出搜尋熱度前 5 名的國家。
  • 成果檢查:確認 CSV 包含國家名稱與各關鍵字的熱度。

5. 總結與討論(10 分鐘)

  • 教師總結
    • interest_over_time() 適合分析時間趨勢。
    • interest_by_region() 適合比較地區差異。
    • 數據用途:市場分析、SEO、技術趨勢研究。
  • 學生討論
    • 「哪個 LLM 在你選擇的地區最熱門?為什麼?」
    • 「這些數據能用來解決什麼實際問題?」

四、評量方式

  1. 實作成果(70%)
    • 成功生成 llm_trends.csv(時間趨勢)。
    • 成功生成 llm_trends_by_country.csv(地區趨勢)。
  2. 參與討論(30%)
    • 在總結時分享觀察或提出問題。

五、延伸應用

  1. 進階挑戰
    • 修改 keywords,加入其他 AI 技術(如 “Quantum Computing”)。
    • 使用 timeframe="2023-01-01 2023-12-31",分析 2023 全年趨勢。
    • 將 CSV 匯入 Excel 或 Tableau,製作視覺化圖表。
  2. 實務專案
    • 分析不同國家的 AI 教育熱度(如搜尋 “AI Course”)。
    • 研究某產品(如 “ChatGPT”)的全球市場接受度。

六、教學資源