作業三: NotebookLM + graphviz 繪製族譜


  1. 前往 NotebookLM、 登入你的 google 帳號、 建立一個新的 notebook。
  2. 新增一個 「來源」, 選取 「連結-網站」, 填入 吳火獅頁面 的網址。
  3. 輸入對話: 「請建立一個名為 wu-family.csv 的檔案, 列出資料來源裡面提到的所有 「子或女,父或母」 關係組合, 共四個欄位, 分別是: 子女姓名、子女性別、父母姓名、父母性別。」
  4. 輸入對話: 「請把上述資料轉為 graphviz 可以處理的 wu-family.dot 檔, 男性以長方形框呈現, 女性以楕圓形框呈現, 箭頭由子女指向父母。 長輩放在較高的位置, 晚輩放在較低的位置。」
  5. 把回應貼到 wu-family.dot 文字檔內, 存檔、離開、下指令: dot -Tsvg wu-family.dot > wu-family.svg
  6. 用 mv 指令把 wu-family.svg 放到 ~/public_html/ 底下, 用瀏覽器查看成果圖片。
  7. 如果上下方向顛倒了, 可以在 wu-family.dot 裡面加上一句: rankdir = BT;, 重跑一次 dot 指令及搬檔案流程。
  8. 跟同學的結果比較, 是否有出入?

補充: 如果 wu-family.csv 列數太多, NotebookLM 沒有幫你完整轉換成 wu-family.dot, 可以這樣做:

  1. 手動把 wu-family.csv 轉成 .dot 格式的 edges: cut -d, -f 1,3 wu-family.csv | perl -pe 's/(.*),(.*)/$1 -> $2;/' > edges.txt
  2. 把 wu-family.csv 拆成左右兩半、 垂直合併成一個「含有所有人名與性別」的檔案、 再排序、把重複的刪掉:
    cut -d, -f 1-2 wu-family.csv > a.csv
    cut -d, -f 3-4 wu-family.csv > b.csv
    sort a.csv b.csv | uniq > person.csv
    
  3. 從 person.csv 當中篩選出男性清單、 改成 .dot 需要的格式: perl -ne 'print "$1;\n" if /(.*),男/' person.csv > male.txt
  4. 從 person.csv 當中篩選出女性清單、 改成 .dot 需要的格式: perl -ne 'print "$1;\n" if /(.*),女/' person.csv > female.txt
  5. 用 geany 或 nodepad++ 或 nano 等等文字編輯器把 male.txt、 female.txt、 edges.txt 貼到 .dot 檔內適當的地方。

以上指令不需要記, 但你需要 知道 linux 指令很適合處理文字檔, 取代重複性、機械化的動作。 一旦你知道這件事可以化簡成文字檔的處理, 就可以叫 chatgpt 幫你下 linux 指令。

這個作業希望讓你知道:

  1. AI 的答案有隨機性, 經常前後不一致, 當然也會犯錯, 不要全然相信它。
  2. 整理資料時, 文字格式的檔案是 LLM 年代的王道!
  3. 在 LLM 年代, 稍微了解一下各種 「微語言」 的功用, 可以讓你很懶惰地變強大!