—

已複製到剪貼簿(若沒有,手動全選複製上面這段)→ 直接貼給我。

NLP 作業一|Word Analogy(詞類比)完整介紹

2026-09-28 整理|清大高宏宇老師《自然語言處理》115-1(TAICA)|資料來源:作業 PDF、程式模板、助教說明影片、W2/W3 上課逐字稿

一句話結論
讓電腦把英文單字變成一串數字,再考它「國王之於女王,等於男人之於__?」答不答得出來。 先用別人訓練好的數字考一次,再自己用維基百科訓練一份、再考一次,最後在同一份 .ipynb 裡寫報告。 約 10/15(四)交,今天起還有 17 天。

三個一定要記住的數字

項目內容為什麼重要
期限約 2026-10-15(四)(9/24 公布+三週)PDF 沒寫日期,老師口頭說「公布後三週」。幾點截止要去 NTU COOL 看。
配分程式 55%+報告 45%報告幾乎佔一半,而且老師說考試會考「你做作業的過程和心得」。
最大的雷.ipynb 裡每一格的執行結果都要留著沒留結果 → 跟實驗和圖有關的分數全部拿不到。
怎麼看這份
左邊點一節看一節。每節開頭第一句就是結論,趕時間只讀那一句就好。
第一次看,先讀 第 0 節(作業全貌):用比喻講清楚作業到底要做什麼、最後要交出什麼。
如果今天只有 5 分鐘:讀 第 5 節(說法打架的地方) 和 第 6 節(會踩的雷)。
要交之前:打開 第 10 節,一項一項按「OK」。
這份不是解答
這份只講「要做什麼、怎麼交、哪裡會出事」,沒有替你寫作業程式。 因為老師明講考試會考作業的過程和心得(W3 01:47:43),自己動手做過才答得出來;而且兩份作業太像會雙方都 0 分。

0 作業全貌:到底要做什麼、為什麼要做

結論:整份作業就是「讓兩本字典去考同一張考卷,比成績,再解釋為什麼差這麼多」。 一本字典是別人做好的,一本是你自己用維基百科做的。 最後交出一個筆記本檔,裡面要有:5 次考試成績、2 張圖、6 題回答。

第一步:先把作業裡的東西換成比喻

作業裡叫什麼把它想成白話說明
詞向量(word embedding)一本字典每個字後面寫的不是解釋,是一串 100 個數字。這串數字就像這個字在地圖上的「座標」。意思越像的字,座標越近。
Google Word Analogy 資料集一張考卷19,544 題填空題,每題都長這樣:「king 之於 queen,等於 man 之於__」。答案是 woman。
用詞向量答題拿字典寫考卷查出題目三個字的座標,做加減,找離結果最近的字,當作答案。
正確率(accuracy)考卷分數答對幾題 ÷ 總題數。改考卷的程式老師已經寫好,你不用寫、也不能改。
訓練詞向量自己編一本字典讓電腦讀一大堆文章,看「哪些字常常一起出現」,自己算出每個字的座標。讀的文章就叫「語料」(corpus)。

第二步:電腦怎麼「寫」一題(示意)

題目:king queen man __(正確答案 woman)

  1. 查字典:queen、king、man 各是一串 100 個數字。
    例如 king → [0.50, 0.69, −0.60, …]。這些數字是我亂寫的示意,不是真的值。
  2. 做加減:queen − king + man,得到一串新的 100 個數字。
    意思是:從 king 走到 queen 的那一步(男變女),套到 man 身上。
  3. 找最近的字:在整本字典裡,找座標離這串新數字最近的字(題目自己那三個字不算)。
  4. 對答案:最近的字如果是 woman,這題答對。

19,544 題全部這樣做一遍,再按 14 個小類各算一次分數,就是一次「考試」。

第三步:整份作業照順序要做的事

#你要做什麼做完畫面上會出現什麼對應配分
1讀考卷:把題目檔整理成表格一張表格的前 5 列(題目、大類、小類)TODO15%
2借別人的字典考試:載入現成的 GloVe 詞向量,寫完 19,544 題14 個小類各自的分數TODO210%
3畫圖:把「家人/性別」那一類的字畫成平面上的點一張散佈圖(看 king/queen、boy/girl 有沒有排得很整齊)TODO35%
4準備教材:維基百科有 560 萬篇以上的文章,隨機抽 20%一個新的文字檔TODO45%
5自己編字典:先整理文字(前處理),再用 Word2Vec 訓練一本你自己的字典(訓練好的模型)TODO510%
6用自己的字典考試:同第 2 步14 個小類各自的分數TODO610%
7再畫圖:同第 3 步,換成自己的字典第二張散佈圖TODO710%
8多做 3 個實驗+寫報告(見下一張表)6 題回答報告45%

所以對你的影響是:第 1–7 步是「照著模板填空」,有標準做法。第 8 步才是真正要動腦的地方,而且佔將近一半的分數。

第四步:報告的 6 題,其實是叫你多做 3 個實驗

報告不是寫心得而已。每一題背後都要你真的去跑一次、拿到數字,再解釋。

題要多做什麼老師想讓你看懂什麼(這就是作業的目標)
1不用多做。說明你第 2、5 步用了什麼字典、怎麼整理文字、參數怎麼設。你清楚自己每一個設定是什麼。
2把第 4–6 步改成抽 5%、10% 各再跑一次(20% 已經跑過了)。教材越多,字典越準嗎?準多少?
3自己上網找一份不是維基百科的文章集(例如新聞、小說、論文都可以,助教說什麼都行),第 5–6 步再跑一次。教材的「種類」會改變字典學到什麼。例如小說讀得多,可能比較懂家人稱呼,比較不懂首都。
4挑至少 5 個字,每個字找出字典裡最像的 5 個字。字典說的「最像」,跟人想的「最像」不一樣。老師說你會發現「貓」的鄰居常常不是貓。
5自由發揮,加做任何實驗或分析。你自己發現的東西。
6不用做實驗。寫有沒有用 AI、用在哪裡。—

第 3 題的例子(小說比較懂家人稱呼)是我推想的,不是老師說的;實際會怎樣,要跑了才知道——這正是這題要你做的事。

算一算:總共要跑幾次

項目次數是哪幾次
自己訓練字典4 次維基 5%、維基 10%、維基 20%、另一份語料
考試(算分數)5 次GloVe 1 次+自己的 4 本字典各 1 次
t-SNE 圖2 張GloVe 1 張+維基 20% 1 張

最花時間的是「訓練字典」。所以建議先用 5% 試跑,確定程式沒問題,再跑 10%、20%。

這份作業的目標,一句話版

讓你親手確認三件事:
① 把字變成數字,真的能抓到字和字的關係(看第 2 步的分數和第 3 步的圖);
② 這本字典好不好,取決於讀了多少文章、讀了什麼種類的文章、文章怎麼整理(報告第 1–3 題);
③ 它也有很明顯的缺點(報告第 4 題)——這正是後面幾週要教 BERT 這類新方法的原因。

最後交出去的東西

NLP_HW1_學校_學號.zip
├─ NLP_HW1_學校_學號.ipynb   ← 一個檔案裡全部都有:
│     第 1–7 步的程式+執行結果(要是 20% 那一版)
│     報告 6 題的回答
│     第 3 題的程式+執行結果
└─ requirements.txt          ← 用到哪些套件、什麼版本

細節規定(檔名、扣分)在第 4 節;容易出錯的地方在第 5 節和第 6 節。

1 這份作業在做什麼

結論:考電腦懂不懂「字和字之間的關係」。考法是給三個字,叫它猜第四個。

先講它在做什麼

電腦看不懂字,只看得懂數字。所以要先把每個英文單字變成一串數字(例如 100 個數字)。

這串數字就叫 詞向量(word embedding:把一個字變成一串數字,意思相近的字,數字也會相近)。

如果這串數字做得好,就能做「字的加減法」。例如:

queen − king + man ≈ woman
(女王 − 國王 + 男人 ≈ 女人)

意思是:「國王 → 女王」的變化,跟「男人 → 女人」的變化是一樣的。

這種「A 之於 B,等於 C 之於 D」的題目,就叫 詞類比(word analogy)。

要注意:PDF 第 2 頁的公式寫錯了
PDF 寫 King + Queen − Man ≈ Woman,這是錯的。 正確是 Queen − King + Man ≈ Woman,也就是 B − A + C ≈ D。 程式模板裡的提示寫的才是對的:「word_b + word_c − word_a should be close to word_d」。

考卷長什麼樣:Google Word Analogy 資料集

一共 19,544 題。每題四個字,用空白隔開,第四個字就是答案。

題目分兩大類:

大類小類(SubCategory)題數第一題(最後一個字是答案)
語意capital-common-countries(常見國家首都)506Athens Greece Baghdad Iraq
語意capital-world(全世界首都)4,524Abuja Nigeria Accra Ghana
語意currency(貨幣)866Algeria dinar Angola kwanza
語意city-in-state(美國城市在哪州)2,467Chicago Illinois Houston Texas
語意family(家人/性別)506boy girl brother sister
語法gram1-adjective-to-adverb(形容詞→副詞)992amazing amazingly apparent apparently
語法gram2-opposite(反義字首)812acceptable unacceptable aware unaware
語法gram3-comparative(比較級)1,332bad worse big bigger
語法gram4-superlative(最高級)1,122bad worst big biggest
語法gram5-present-participle(-ing)1,056code coding dance dancing
語法gram6-nationality-adjective(國名→國籍)1,599Albania Albanian Argentina Argentinean
語法gram7-past-tense(過去式)1,560dancing danced decreasing decreased
語法gram8-plural(名詞複數)1,332banana bananas bird birds
語法gram9-plural-verbs(動詞第三人稱)870decrease decreases describe describes

題數是我直接數 questions-words.csv 算出來的,加起來 19,544。family 那一類會拿來畫圖(TODO3、TODO7)。

整份作業分兩半

半場做什麼白話
前半(TODO1–3)用別人訓練好的詞向量借一本現成的「字→數字」字典來考試
後半(TODO4–7)自己用維基百科訓練詞向量自己編一本字典,再考同一份考卷,比比看

所以對你的影響是:後半一定比較花時間(要下載、抽樣、訓練),時程要把後半排前面一點。

2 程式部分:七個 TODO(佔 55%)

結論:老師給了寫好一大半的程式模板,你只要在標了 TODO 的格子裡補程式。其他格子不准改(改了扣 5 分)。

工具:兩個名字先認識

七個 TODO 一覽

#要做什麼配分白話+要注意
TODO1把考卷整理成表格(pd.DataFrame)5%把 questions-words.txt 讀進來,整理出三欄:題目、大類、小類。你要自己做出 questions、categories、sub_categories 三個清單,下一格才跑得動。
提示:檔案裡用 : 開頭的那行是「小類的標題」,前 5 個是語意、後 9 個是語法。
TODO2用現成詞向量答題10%模板預設用 glove-wiki-gigaword-100(史丹佛做的現成詞向量,每個字 100 個數字)。給前三個字,算出第四個字,把答案(preds)和標準答案(golds)存起來。之後的評分格子已經寫好,會自動算每一類的正確率。
TODO3畫 t-SNE 圖5%t-SNE(把 100 維的數字壓成 2 維,才能畫在紙上的一種方法)。把 family 類的字畫成散佈圖,看男/女的字有沒有排得很整齊。老師說想另外用別的降維方法比較也可以,但 t-SNE 一定要有。
TODO4從維基百科抽 20% 的文章5%助教已經幫你把維基百科洗乾淨,分成 11 個 .gz 壓縮檔,每一行是一篇文章。以「篇」為單位抽樣。建議把「抽幾 %」寫成一個變數,因為報告還要跑 5%、10%。
TODO5用抽到的文章訓練自己的詞向量10%用 Gensim 的 Word2Vec 訓練。前處理(訓練前先整理文字)算在這一項裡,怎麼做你自己決定,見下面。
TODO6用自己的詞向量答題10%跟 TODO2 一樣,只是換成你自己訓練的那份。
TODO7再畫一次 t-SNE10%跟 TODO3 一樣,換成你自己的詞向量。

TODO5 的前處理:老師給的建議清單

前處理就是「訓練前先把文字整理乾淨」。老師建議可以試這幾種:

做法白話
移除非英文字把中文、符號、亂碼拿掉
移除停用詞(stop words)把 the、a、is 這種到處都有、沒什麼意思的字拿掉
詞形還原(lemmatization)把變化過的字改回原形,例如 rocks → rock
比較好的斷詞不要只用空白切字(例如 don't 怎麼切)
只留常見字出現太少次的字不放進字典
要小心:前處理不是越多越好
老師和助教都特別講了這句。舉例:如果你的「詞形還原」把 biggest 改回 big(要看工具怎麼設定), 那「最高級」那一類的題目就永遠答不對了,因為答案 biggest 已經不在字典裡。 所以每一種前處理都要想一下:它會不會把考卷上的答案弄不見?

3 報告部分:六題要回答(佔 45%)

結論:報告不用另外交 Word 檔,直接寫在 .ipynb 最下面那個文字格子裡。模板已經把六題的題目都放好了,你照順序填答案。

報告開頭還有兩行要先填:Running environment(在哪裡跑)和 Python version(Python 版本)。沒寫扣 5 分。

題題目(白話)配分要不要附程式助教補充
1你用哪個詞向量模型?做了哪些前處理?參數怎麼設?5%不用另外附把 TODO2、TODO5 用的東西講清楚就好
2維基百科抽 5%、10%、20%,成績差多少?10%
(每個 3%)
不用附助教說只要列出分數、討論就好(影片 17:41)。但筆記本裡最後留著的執行結果要是 20% 那一版。
3換一個不是維基百科的語料訓練,各類題目的成績如何?15%一定要附,沒附 0 分程式寫在報告下面那格「Write your code here」。語料自己上網找,什麼都可以。
3.1⤷ 列出結果5%
3.2⤷ 介紹你選的語料,跟維基百科差在哪(資料量、主題、結構)5%
3.3⤷ 解釋成績為什麼變好或變差5%
4挑至少 5 個字,每個字找出最像的 5 個字。你看到什麼?10%—老師在課堂上暗示:你會發現「貓」旁邊的字常常不是貓(W3 00:25:54)。這就是要你觀察的東西。
5任何能讓報告更好的東西5%—自由發揮:多做實驗、多做分析
6生成式 AI 使用說明必填—沒用也要寫「沒有使用」(影片 20:13)。沒寫扣 10 分。
第 3 題是今年新加的重點
老師說以前有同學把題目丟給 AI,AI 就寫出一份很漂亮的分析,但根本沒跑實驗(W3 01:58:12)。 所以今年規定:第 3 題的實驗程式碼一定要放在筆記本裡,看得到你真的有跑。 所以對你的影響是:第 3 題不能只寫文字,要真的找一份語料、真的訓練一次。

4 怎麼交、會被扣什麼

結論:把 .ipynb 和 requirements.txt 壓成一個 zip,檔名照規定取,上傳 NTU COOL。檔名錯一個字就扣 5 分。

要交的東西

檔案檔名規則你的檔名(學號要自己填)
程式+報告NLP_HW1_school_student_ID.ipynbNLP_HW1_CYUT_你的學號.ipynb(見下面警告)
套件清單requirements.txtrequirements.txt(檔名固定)
壓縮檔NLP_HW1_school_student_ID.zipNLP_HW1_CYUT_你的學號.zip
不確定:「school」那格要填什麼
PDF 只給了清大的例子 NLP_HW1_NTHU_12345678。你是朝陽科大透過 TAICA 修課,我猜是 CYUT,但我沒有查到官方說法。 建議:去 NTU COOL 看有沒有公告,沒有的話寄信問助教 nthuikmlab@gmail.com。

requirements.txt 是什麼

一個純文字檔,列出你用了哪些套件、什麼版本,每行一個。例如:

gensim==4.3.3
pandas==2.2.2
scikit-learn==1.5.1

上面版本號只是示意。請在 Colab 裡跑 !pip freeze,照你實際用到的套件抄下來。

報告裡一定要寫的執行環境

你在哪裡跑Running environment 寫什麼Python version 寫什麼
ColabColab例如 Colab Python 3.12.x(在 Colab 跑 !python --version 看實際版本)
自己電腦作業系統+CPU,例如 Windows 11, CPU: …例如 Python 3.11.9

用 AI 的規定

可以用,但兩個地方都要標:

  1. 程式註解:AI 產生的程式碼旁邊,加一行註解說「以下是 AI 生成的」。
  2. 報告第 6 題:寫清楚用了哪個 AI、生成了哪些部分。沒用也要寫「沒有使用」。

從網路上抄來參考的程式,也要附網址。

扣分表

違規扣分
兩個人的程式或報告太像(不管誰抄誰,兩個都扣)−100
報告沒寫生成式 AI 使用說明−10
程式檔名不對(只收 .ipynb)−5
zip 檔名不對−5
沒附 requirements.txt−5
報告沒寫 Python 版本−5
改了模板裡不該改的程式(只准改「載入資料」的部分)−5
為什麼格式要這麼嚴
老師說修課人數變多,有一部分會用 AI 先做初步檢查(W3 02:00:08)。 格式不對,機器可能直接判你沒分。所以對你的影響是:檔名、報告位置、執行結果這些「形式」要跟內容一樣認真對待。

5 說法互相打架的地方(照哪個做)

結論:PDF、程式模板、助教影片有 6 個地方講得不一樣。原因大多是今年 PDF 從去年版改過來,有些舊句子忘了刪。一律照「比較嚴格的那個」做,最安全。

我把 2025 年版和 2026 年版的 PDF 逐行比對過,所以能確定哪些是「去年留下來的舊句子」。

#A 說B 說為什麼會這樣建議照哪個做
1PDF 第 31 頁:第 3 題的額外實驗程式要放進筆記本,沒放 0 分PDF 第 33 頁:「額外實驗的程式不用上傳」第 33 頁那句是 2025 年版留下來的,今年沒刪。助教影片(18:15)也確認要放。放
2PDF 第 32 頁:只收 .ipynbPDF 第 36 頁底:「Colab 用 File → Download → Download .py」去年是交 .py,這句是舊的。助教影片(20:45)說下載 .ipynb。交 .ipynb
3PDF 扣分表:沒附 requirements.txt 扣 5 分助教影片(21:14):用 Colab 跑的話這個檔案不必要兩邊講法不一致,不確定助教改分時照哪個。還是附上(多交一個小檔沒有壞處,少交可能扣 5 分)
4PDF:挑至少 5 個字,每個字各找 5 個最像的模板報告格第 4 題:「Select a few words」(挑幾個字)模板的題目是去年的寫法,PDF 今年改嚴了。至少 5 個字
5PDF 第 2 頁:King + Queen − Man ≈ Woman模板提示:word_b + word_c − word_a ≈ word_dPDF 打錯了。照模板:B − A + C
6模板 README:一組備用下載連結(10 條+1 條)程式模板裡:另一組下載連結(11 條)我今天(9/28)一條一條測過:README 那組 11 條有 10 條已經壞了(404);模板裡那組 11 條全部正常。用模板裡那組。都不行時用 README 最下面的整包備援連結(wiki_texts.zip,今天測過還在)。
補充:第 2 題(5%/10%/20%)要不要附程式?
PDF 沒講,助教影片(17:41)說不用,列出分數、討論就好。 但要注意:筆記本裡 TODO4–7 最後留下的執行結果,一定要是 20% 那一次跑的(PDF 第 31 頁、影片 16:27)。 所以對你的影響是:5% 和 10% 可以先跑、把分數抄下來,最後一次一定要用 20% 從頭跑完再存檔。

6 一定會踩的雷

結論:最致命的是「交出去的檔案沒有執行結果」和「Colab 記憶體爆掉」。其他幾個是模板本身的小毛病,知道了就不會卡。

雷 1:執行結果不見(最致命)

原文:如果沒附執行結果,所有跟實驗結果和圖有關的分數都拿不到。

會出事的情況:

所以對你的影響是:下載後,用別的地方打開那個 .ipynb 確認一次(例如上傳到 Google Drive 預覽,或用 VS Code 打開),看得到數字和圖才算數。

雷 2:Colab 記憶體爆掉

老師在課堂上特別講(W3 01:55:40):作業設計成 Colab 免費額度跑得完。 以前有同學說記憶體不夠,通常是程式寫法有問題——把 100% 的維基百科全部讀進記憶體,再從裡面挑 20%。

正確的想法是:一行一行讀,讀到一行就決定要不要留,留的直接寫進新檔案。這樣記憶體裡永遠只有一行。

資料量參考:模板註解寫每個檔 562,365 篇文章(最後一個檔比較少),11 個檔加起來超過 560 萬篇。20% 大約 110 萬篇以上。

雷 3:大小寫對不上

考卷裡有大寫字(例如 Athens、Greece)。glove-wiki-gigaword-100 這份現成詞向量裡的字是全部小寫的。

直接拿 Athens 去查會找不到,程式會報錯。所以要先想好大小寫怎麼處理。

這類「字典裡沒有這個字」的狀況叫 OOV(out-of-vocabulary:字典外的字)。你自己訓練的詞向量一定也會遇到,要決定遇到時怎麼辦(跳過?算答錯?),並在報告裡說明。

雷 4:模板裡有一個沒定義的變數

TODO4 那格用到 output_path,但模板沒有定義它,直接跑會報錯 NameError。

你要自己給它一個檔名(例如 "wiki_texts_sampled.txt")。這屬於「載入資料」的部分,是規定允許改的。

雷 5:存下來的圖片是空白的(不影響分數)

TODO3、TODO7 那格的最後兩行是先 plt.show() 再 plt.savefig()。在 Colab 裡,show() 之後圖就被清掉了,所以存出來的 word_relationships.png 會是空白的。而且 TODO7 會蓋掉 TODO3 存的同名檔。

所以對你的影響是:不影響分數,因為助教看的是筆記本裡顯示的圖。只是如果你想拿那張 png 放報告,要自己另外存一次。這兩行是模板的一部分,不要去改。

雷 6:Gensim 安裝後匯入出錯(不確定會不會遇到)

Colab 預設沒裝 Gensim,要自己 !pip install gensim。老師在 W3 最後也提到 Gensim 更新比較慢(02:50:04)。

常見的狀況是:裝完後 import 出錯,原因通常是它跟 Colab 內建的 numpy 版本不合。這時通常要「執行階段 → 重新啟動工作階段」再跑一次。

這一條是我根據 Gensim 過去的常見問題推測的,今天沒有實際在 Colab 上試。遇到了再處理即可。

雷 7:題目的答案會不會「作弊」到自己

用 most_similar 找最像的字時,Gensim 會自動排除你丟進去的那三個字。如果你自己手算相似度、沒排除,答案常常會是題目裡的某個字(例如算出來最像的是 king 本身)。

所以對你的影響是:自己寫計算的話要記得排除;用 Gensim 內建函式就不用擔心。

7 老師在課堂上怎麼說這份作業

結論:老師講了很多,歸納起來只有三件事—— (一)這份作業會考;(二)作業跑出來的結果會怪怪的,那個「怪」才是重點;(三)可以用 AI,但你自己要懂、要真的跑過。

先補一個背景:為什麼老師說的話很重要

這門課的總成績是:四次作業 75%+一次考試 25%(助教在 Slido 上的回答)。

考試排在大約第 14 週(12 月初),是到教室寫紙本、不能看資料的那種。

所以老師說「考試考什麼」,會直接決定你這份作業該怎麼做。下面三件事都跟這個有關。

第一件事:考試會考「你做作業時發現了什麼」

老師說:不會叫你背公式。會考你做作業時自己看出來的道理。 (他用的英文字是 insight,意思就是「自己發現的道理」。)

為什麼:這門課沒有用課本,老師上課比較像在講故事,沒有一步一步的算式可以考。 能考的,就只剩「你實際動手做過,才會知道的事」。

舉個例子(這是我舉的,老師沒給考古題):考題可能長得像「你自己訓練的詞向量,為什麼分數比現成的低?」。 沒自己跑過的人,只能背 AI 給的答案;跑過的人會記得自己當時看到什麼。

所以你要做的:每跑完一個實驗,就用一句話寫下「我看到什麼、我覺得為什麼」。 這些句子之後可以直接放進報告,也是考前最好的複習資料。

第二件事:結果會怪怪的,老師就是要你看到這個「怪」

先講一個前提:詞向量把每個字放在一張「地圖」上,意思越像的字,應該放得越近。 「找最像的字」就是在地圖上找離它最近的鄰居。

老師說,你做下去會遇到兩種怪事:

怪事你會看到什麼跟作業哪裡有關
1. 鄰居不像它找「cat(貓)」最近的鄰居,前幾名常常跟貓一點關係都沒有。老師說「不是一點問題,是非常多問題」。報告第 4 題(找 5 個字的最像的字)就是要你親眼看到這件事,再想為什麼。
2. 答案差一點點算 queen − king + man,正確答案 woman 不一定是第一名,可能排第二、第三。作業只算「第一名有沒有猜中」,所以分數可能比你預期的低。這可以拿來寫報告第 5 題:如果「前 3 名有猜中就算對」,分數會變多少?

為什麼會這樣:詞向量不是從「字的意思」學來的,是從「這個字常跟哪些字一起出現」學來的。 所以常常出現在一起、但意思不一樣的字,也會被放得很近。例如 hot(熱)和 cold(冷)的前後文很像,在地圖上就常常是鄰居。

所以你要做的:看到奇怪的結果,先確認不是程式寫錯。確認沒錯之後,那個怪結果就是你報告的材料,不用藏起來。 把它寫下來,再猜一個原因。這正是第一件事說的「考試會考的東西」。

第三件事:可以用 AI,但你要懂、要真的跑過

老師說:他自己試過,把作業丟給 AI,AI 都做得出來,擋也擋不住,所以允許用。

但是去年出過事:有人叫 AI 直接寫出很漂亮的分析和圖,老師根本看不出他到底有沒有跑實驗。

所以今年多了三條規定,都是為了確認「你真的有做」:

規定為什麼這樣定
報告第 3 題的實驗程式碼,一定要放在筆記本裡看得到程式和執行結果,才能證明實驗真的跑過。沒放,這題 0 分。
格式要完全照規定修課人數變多,有一部分會先用 AI 檢查格式。格式不對,可能直接被判沒分。
兩份作業太像,抄的人和被抄的人都是 0 分老師說這是故意的:讓你可以理直氣壯地跟同學說「不能借你,借了我也會 0 分」。

所以你要做的:AI 幫你寫的程式,每一段你都要說得出「它在做什麼」。 可以跟同學討論做法,但報告和心得要各自寫,也不要把自己的檔案傳給別人。

其他順口提到的小事

老師說你要知道的
Colab 免費的就跑得完如果記憶體爆掉,通常是程式寫法的問題,不是電腦不夠力。怎麼避免見第 6 節雷 2。
三週時間很夠,但大家都拖到最後一週最後一週才開始會很趕。要寫出好的報告,需要時間多跑幾次實驗。
t-SNE 圖一定要有想多用別的方法畫圖來比較也可以,但 t-SNE 那張不能少。
想做多深都可以前處理、參數可以自己亂試。只要在報告裡寫清楚你做了什麼。
Colab 大概要跑多久,會請助教公布到 9/28 為止還沒公布,記得留意 NTU COOL 或 Slido。

想回去看影片的話,時間點在這裡(W3 = 9/24 那堂課): 考試考 insight → W3 01:47:43、02:48:36|鄰居不像它 → W3 00:04:34、00:25:54|答案不一定第一名 → W3 00:31:12| 允許用 AI → W2 02:46:46、W3 01:57:27|去年 AI 寫分析的事 → W3 01:58:00|先用 AI 檢查格式 → W3 02:00:08| 被抄也 0 分 → W3 02:01:03|Colab 跑得完 → W3 01:55:40|三週很夠 → W3 02:01:33|t-SNE → W3 01:54:00|跑多久 → W3 02:48:09。 總成績比例來自 W1 Slido 助教的回答。

8 附加文件地圖(每個東西在哪裡)

結論:作業相關的東西都收進 C:\D槽\TAICA課程\自然語言處理\HW1\ 了。投影片和上課逐字稿很大,沒有複製,直接連到原本的位置。

HW1 資料夾裡有什麼

自然語言處理\HW1\
├─ HW1_作業介紹.html              ← 就是這份
├─ HW1_Word_Analogy_規定.md       ← 給 AI 讀的規定摘要(從上一層搬進來,已補上今天的新發現)
├─ 原始檔_2026\                   ← 從課程 GitHub 複製一份(原檔沒動)
│  ├─ NLP_HW1_word_emb.pdf        作業說明,37 頁
│  ├─ main.ipynb                  程式模板(要交的就是這個檔改好的版本)
│  ├─ questions-words.csv         考卷,19,544 題
│  └─ README.md                   維基百科資料的備用下載連結
└─ 助教說明影片\
   ├─ HW1_助教說明_自然語言處理.m4a        助教錄的作業說明,24 分鐘
   └─ HW1_助教說明_自然語言處理.逐字稿.txt  逐字稿(361 行)

點了就能打開

下面的連結是相對路徑,這份 HTML 要放在 HW1\ 資料夾裡才點得開。PDF 會直接跳到指定頁。

東西連結什麼時候用
作業說明 PDF全份|p13 TODO 清單|p31 評分|p36 扣分確認原文
程式模板main.ipynb上傳到 Colab 開始寫
助教說明逐字稿逐字稿查助教怎麼講某一題
助教說明影片(線上)youtu.be/4nktsdfU24k想看畫面時
課程 GitHub(線上)IKMLab/NTHU_Natural_Language_Processing檢查作業有沒有更新
投影片:word2vec 怎麼訓練W1_NLP_brief_v2 p81–84寫 TODO5 前複習 CBOW、Skip-gram
投影片:GloVe、FastText、該用哪種W1_NLP_brief_v2 p91–93報告第 1 題解釋你選的模型
投影片:詞向量的特性(含類比)W2_Word embeddings…_v2 p29–38p30 就是 analogy 的圖
W3 上課逐字稿W3 逐字稿作業介紹在 01:46:41–02:02:00;Q&A 在 02:48:09 之後
去年(2025)版作業2025 版 PDF只用來比對,不要照它交

線上資源

東西位置
交作業NTU COOL
問問題Slido:app.sli.do/event/oBajtdC5ZobNokWieGtjAg
助教信箱nthuikmlab@gmail.com
Gensim 說明文件radimrehurek.com/gensim/models/word2vec.html
要注意:「原始檔_2026」是複製品
如果助教之後改了作業,GitHub 上的會變、這份不會變。 要檢查有沒有更新:在 C:\D槽\TAICA課程\自然語言處理\NTHU_Natural_Language_Processing\ 跑 git pull,再看 2026\Assignments\Assignment1\。今天(9/28)檢查過,還是 9/24 那一版。

9 建議時程與還沒確定的事

結論:還有 17 天。建議這週把前半做完、下載好維基百科;下週跑完所有實驗;最後一週只寫報告和檢查格式。

建議時程

時間做什麼為什麼排這裡
9/28–10/4TODO1–3(前半)+下載、解壓維基百科+先用 5% 試跑 TODO4–5前半最簡單,先拿到分數。5% 試跑可以早點發現記憶體、安裝問題。
10/5–10/11用 5%、10%、20% 各跑一次,抄下分數;找第 3 題的語料並訓練最花時間的在這週。Colab 可能中途斷線,要留重跑的時間。
10/12–10/14最後用 20% 從頭跑一次、寫六題報告、做第 10 節的檢查清單最後留的執行結果必須是 20% 版。
10/15(四)上傳 NTU COOL幾點截止要先查好。

還沒確定的事(我查不到,要你去確認)

問題目前知道的去哪確認
確切截止時間(哪天幾點)老師說「公布後三週」→ 推算 10/15(四)NTU COOL 作業頁
檔名的 school 填什麼我猜 CYUT,沒有官方根據NTU COOL 公告,或寄信問助教
遲交怎麼算W1 Slido 有人問「遲交是不是直接 0 分」,我存下來的紀錄裡沒有看到回答Slido 或 NTU COOL
能不能在期限內重複上傳W1 Slido 有人問,同樣沒看到回答Slido 或 NTU COOL
Colab 大概要跑多久老師說會請助教提供以前的經驗,目前還沒公布NTU COOL、Slido

10 繳交前檢查清單

結論:上傳前一項一項按「OK」。有問題的按「有問題」寫一句,最上面的按鈕可以把問題清單複製給我。

每一項都寫成「你應該看到什麼」。進度會存在這台電腦的瀏覽器裡,關掉再開還在。

檔案本身

程式部分

報告部分

上傳

本報告的每一項判斷都來自實際查證(讀作業 PDF 全文、讀程式模板每一格、數考卷題數、逐條測試下載連結、比對 2025/2026 兩版 PDF、讀助教影片與 W2/W3 上課逐字稿),不是推測。唯二的推測已在文中標明:檔名的學校代碼(第 4 節)、Gensim 安裝問題(第 6 節雷 6)。