# 07a 規章審查:《HW1_一條龍說明》對照 teaching-doc-standard(23 條) > 審查對象:`HW1\HW1_一條龍說明.html`(22 節)+組裝來源 `示範實作\_guide_drafts\guide_*.html`+`示範實作\build_guide.py` > 對照標準:`~/.claude/rules/teaching-doc-standard.md` > 事實基準:`示範實作\_extract2\outputs.txt`(讀者看到的是 `In [n]` = exec n) > 審查日:2026-10-05。本檔只列問題與改法,沒有改任何文件。 ## 一句話結論 數字幾乎都對得上筆記本,但**讀者最卡的地方不是數字,是「名字」和「順序」**: 同一個東西有 3~5 個叫法(最嚴重的是「鄰居」同時指兩件不同的事、「分」同時指正確率差與配分), 全文沒有用語表,核心觀念(相似度、b − a + c、雜訊、前 k 名)都只有白話描述、沒有一個能拿紙筆算的小例子, 而且有 6 處前後矛盾或同一把尺沒有一致使用(雜訊判斷、3 次/4 次、審查員人數、「差異只能來自內容種類」等)。 --- ## 〇、改之前要知道:文字實際在哪個檔 | 內容 | 真正的來源 | 注意 | |---|---|---| | intro、g0 | `guide_intro.html` | g0 總表的列在 `build_guide.py` 的 `OVR` | | g1、g2 | `guide_static.html` | | | g3 | `guide_static2.html` | TODO1 輸出在 `build_guide.py` `R["todo1_out"]` | | g5、g6 | `guide_static3.html` | `⟦R:…⟧` 的值在 `build_guide.py` | | g4、g7 | `guide_results1.html` | g7 比較表列由 `build_guide.py` `rows`(`w20_vs_glove_rows`)產生 | | g8、g14 | `guide_results3.html` | g14 的 Q3、Q8、Q9、Q13、Q15 答案在 `build_guide.py` `R["exam_*"]` | | g9、g11 | `guide_results4.html` | | | g10 | `guide_results2.html` | 3.1 成績表、覆蓋率表、鄰居表、「誰贏」判斷都在 `build_guide.py`(`q3_rows`、`NOISE`) | | g12 | `guide_results5.html` | | | gw、gf | `guide_new.html` | 檔內的 `sec-gc` 已被覆蓋,是死碼 | | gk | `guide_course.html` | | | g13、g15 | `guide_submit.html` | `guide_static4.html` 裡的 g13、g15 已被覆蓋,是死碼 | | gc | `guide_conclusion.html` | | | g16 | `guide_static4.html` | 第 6~9 列與文末查證聲明(`VERIFY`)在 `build_guide.py` | **建議(規則 18)**:把 `guide_new.html` 的 `sec-gc`、`guide_static4.html` 的 `sec-g13`/`sec-g15`、未使用的 `guide_g12_rest.html` 刪掉或移進 `_backup`。 死碼裡還留著舊說法(例:「不要直接交我的示範版——每一格都要自己打過」),之後有人改錯檔就會前後矛盾。 --- ## 一、本文用語表(提案,放在「0 全貌」之後、「我做了什麼」之前) 先在用語表上方加一句**全文比喻**(規則 1): > 本文用一個比喻貫穿:**教材**(電腦讀的文章)→ 電腦自己編出一本**字典**(每個字一組詞向量)→ 拿**考卷**(19,544 題類比題)考這本字典。 | 概念 | 全文只用這個名字 | 一句白話(要能照做) | |---|---|---| | word embedding | **詞向量** | 一個字對應的一串數字(本作業 100 個)。可以想成字在「意思地圖」上的座標——「座標」只在第 1 節當比喻出現一次,其他地方一律寫「詞向量」。 | | 一整組訓練好的詞向量(模型) | **字典** | 查一個字,拿到它的詞向量。本文主要有兩本:**GloVe 字典**、**Wiki 20% 字典**。不再寫「模型」「主模型」「自己的字典」「my_wv」(程式碼裡的變數名除外)。 | | vocabulary | **字典收的字**(收錄字數) | 字典裡有詞向量的那些字;本作業最多收 30 萬個。 | | min_count(實際值) | **收錄門檻** | 在教材裡出現至少幾次才收進字典。設 5,但 gensim 會自動調高:5% 9 次、10% 16 次、20% 30 次(In [31]、In [21] 印的)。 | | OOV | **查不到的字(OOV)** | 字典沒收的字。題目四個字裡只要 a、b、c 有一個查不到,該題直接算答錯。 | | corpus | **教材**(第一次出現補「語料,corpus」) | 拿來訓練字典的文章。不再混用「語料」「資料」「文章」「讀的書」。 | | 教材大小 | **教材字數** | 例:Wiki 20% 教材 6.66 億字。 | | Google analogy dataset | **考卷** | 19,544 題,分 2 大類、14 小類。 | | 一題 | **類比題** | 給 a、b、c 三個字,叫電腦猜第四個字 d。 | | Semantic/Syntactic | **語意類/語法類**(大類) | 前 5 小類是語意、後 9 小類是語法。 | | SubCategory | **小類**(14 個固定名稱,見下表) | 不再寫「類別」「family 類」「家人類」。 | | accuracy | **正確率** | 答對題數 ÷ 19,544(或該小類題數)× 100%。不再寫「答對率」「成績」「分數」。 | | 兩個正確率相減 | **百分點** | 46.12% → 48.39% 是「多 2.27 個百分點」。**不寫「多 2.27 分」**,因為「分」會跟配分混在一起。 | | 作業配分 | **配分** | 例:第 3 題配分 15%。標題括號一律寫「配分 15%」。 | | cosine similarity | **相似度** | 兩個詞向量方向有多一致,介於 −1~1,算法見第 1 節手算例。不再寫「分數」。 | | 第 4 題的 nearest neighbors | **鄰居** | 跟某字相似度最高的前幾個字。**「鄰居」只用在這個意思。** | | 訓練時 window 內的字 | **前後文的字** | 訓練時,中心字前後各 window 個字以內的字。**不再叫「鄰居」**(目前同一個詞被用在兩件事上,見第二節 #1)。 | | context | **前後文** | 「上下文」只保留在專有名詞「上下文詞向量(BERT、GPT)」裡。 | | center word | **中心字** | Skip-gram 用來猜前後文的那個字。不再寫「中間的字」「中間字」。 | | 3CosAdd | **b − a + c** | 一律小寫 a、b、c、d,跟程式的 `word_a…word_d` 一致。第一次出現補「(3CosAdd)」。 | | noise | **雜訊** | 5% 教材、參數全同、只換亂數種子(42、1、2、3)各訓練 1 次共 4 次,「最高正確率 − 最低正確率」。不再寫「晃動」「雜訊範圍」「運氣」。 | | beyond noise | **超過雜訊** | 兩個結果的差(取絕對值)> 該列的雜訊,才說「真的有差」。筆記本欄位名是 `beyond noise?`。 | | 同大小的維基 | **維基對照組** | 從維基切出跟論壇一樣多字(約 7,292 萬字)的教材。筆記本寫 `Wiki control (same size)`。 | | 第 5 題的基準 | **基準設定** | 5% 維基、Skip-gram、window 5、100 維。 | | coverage | **覆蓋率** | 某小類的題目裡,「四個字全部查得到」的題數 ÷ 該小類題數。 | | top-k | **前 k 名正確率** | 電腦列出最像的 k 個字,正確答案在裡面就算對。 | | 降到 2 維 | **壓成 2 維(t-SNE/PCA)** | 為了畫圖,把 100 個數字壓成 2 個。 | | notebook cell | **In [n]** | Jupyter 畫面左邊的編號。**不再用「第 N 格」**。 | | 加分實驗 | **實驗 ①~⑦** | 第一次出現時對照筆記本:①=「第 5 題 (a)」In [34]、②=(b) In [35]、③=(c) In [36]、④=(d) In [37]、⑤=(e) In [38]、⑥=(f) In [39]、⑦=(g) In [40];(h) In [41] 覆蓋率目前沒有編號,建議列為 ⑧ 或在 Q12 註明。 | | WordNet | **人工詞庫(WordNet)** | 避免跟「字典」撞名。 | **14 小類固定名稱**(照 `build_guide.py` 的 `SUB_ZH`,括號是筆記本上的英文): 常見國家首都(capital-common-countries)、全世界首都(capital-world)、貨幣(currency)、美國城市在哪州(city-in-state)、家人/性別(family)、形容詞→副詞(gram1)、反義字首(gram2)、比較級(gram3)、最高級(gram4)、-ing(gram5)、國名→國籍(gram6)、過去式(gram7)、名詞複數(gram8)、動詞第三人稱(gram9)。 --- ## 二、改名清單(每一處要換的原文) ### #1 最嚴重:「鄰居」一詞兩義(訓練時的前後文字 vs 第 4 題最像的字) 第 1 節觀念 2 說「找離它最近的 5 個鄰居」(最像的字),兩段後觀念 4 又說「看鄰居學出來的」(前後文的字)。讀者會以為兩者是同一件事。 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_static.html | `

觀念 4:座標是電腦自己「看鄰居」學出來的

` | `

觀念 4:詞向量是電腦自己「看前後文」學出來的

` | | guide_static.html | `這個「讀文章、看鄰居、算座標」的過程叫` | `這個「讀文章、看前後文、算詞向量」的過程叫` | | guide_static3.html | `「鄰居」算多遠:最多前後各 5 個字` | `「前後文的字」算多遠:最多前後各 5 個字` | | guide_static3.html | `每一組真的(中心字, 鄰居)配 5 個照字頻隨機抽的字,訓練一個「是不是真鄰居」的二元分類器` | `每一組真的(中心字, 前後文的字)配 5 個照字頻隨機抽的字,訓練一個「是不是真的前後文」的二元分類器` | | guide_static3.html | `看比較遠的鄰居` | `看比較遠的前後文` | | guide_course.html | `每個字當鄰居的機率` | `每個字出現在中心字前後文的機率` | | guide_course.html | `用 cross-entropy 跟正確鄰居比` | `用 cross-entropy 跟真正出現的前後文字比` | | guide_course.html | `每一組真的(中心字, 鄰居)當正例` 與 `訓練一個「是不是真鄰居」的二元分類器` | `每一組真的(中心字, 前後文的字)當正例`/`訓練一個「是不是真的前後文」的二元分類器` | | guide_course.html | `

5. Negative sampling:把「猜 30 萬選 1」改成「是不是鄰居」

` | `

5. Negative sampling:把「猜 30 萬選 1」改成「是不是真的前後文」

` | | guide_results3.html(Q5d) | `真的(中心字, 鄰居)當正例` 與 `訓練「是不是真鄰居」的二元分類` | 同上兩處 | | guide_results3.html(Q15) | `window:看前後幾個字當鄰居` | `window:看前後幾個字當前後文` | | guide_results5.html(⑦) | `盡量讓「原本是鄰居的點」畫出來還是鄰居` | 保留(這裡是最像的點,意思正確) | ### #2 「分」同時指百分點與配分 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_results4.html(g9 結論) | `但每多一倍只多約 1 分(46.12 → 47.15 → 48.39)` | `但教材字數每多一倍,正確率只多約 1 個百分點(46.12% → 47.15% → 48.39%)` | | guide_results4.html(g9 表下) | `每多一倍資料,整體約多 1 分(+1.03、+1.24)` | `教材每多一倍,整體約多 1 個百分點(+1.03、+1.24)` | | build_guide.py `R["exam_q2"]` | `每多一倍約多 1 分` | `每多一倍約多 1 個百分點` | | guide_results2.html | `最高級卻大贏 23 分` / `國籍類卻大輸 55 分` | `最高級卻贏 23.35 個百分點`/`國名→國籍卻輸 54.85 個百分點` | | guide_results5.html(①) | `整體很穩(晃 1 分左右),小類會晃到快 5 分` | `整體的雜訊約 1 個百分點,小類的雜訊最大到 4.74 個百分點` | | guide_results5.html(③) | `三個整體差距(4~11 分)都遠大於雜訊 1.05` | `三個整體差距(4.37~11.32 個百分點)都遠大於雜訊 1.05` | | guide_results5.html(④) | `從第 1 名到前 3 名就多了 13 分` | `Wiki 20% 字典從第 1 名到前 3 名,正確率多了 13.14 個百分點(GloVe 多 10.57)` | | guide_conclusion.html(#7) | `前 3 名命中率比第 1 名高 13 分` | `Wiki 20% 字典的前 3 名正確率比第 1 名高 13.14 個百分點` | | 各節標題的配分括號(例 guide_results2.html `(15%,配分最高)`、guide_results4.html `(10%)`) | `(10%)` 等 | `(配分 10%)` 等,讓讀者分得出配分和正確率 | ### #3 詞向量/座標/向量 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_static.html | `

觀念 2:座標越近,意思越像

` | `

觀念 2:詞向量越近,意思越像

` | | guide_static.html | `

觀念 3:座標可以加減,加減代表「關係」

` | `

觀念 3:詞向量可以加減,加減代表「關係」

` | | guide_static.html | `沒有人一個一個去設定座標` / `所以座標會很近` / `微調每個字的座標` / `練完之後,座標就是我們要的詞向量` | `…去設定詞向量`/`所以詞向量會很近`/`微調每個字的詞向量`/`練完之後,這些數字就是詞向量` | | guide_static.html(callout) | `所以座標反而很近` / `都只有一組座標` / `會看上下文給不同座標` | `所以詞向量反而很近`/`都只有一個詞向量`/`會看整句前後文給不同的詞向量` | | guide_static3.html | `(座標有幾個方向)` / `出現太少,座標學不準` | `(詞向量有幾個數字)`/`出現太少,詞向量學不準` | | guide_results1.html | `座標學得很穩` / `座標學不準` / `座標被平常的意思拉走` / `所以座標很近` | 全部 `座標` → `詞向量` | | guide_results2.html | `前後文越一致,座標越準` | `前後文越一致,詞向量越準` | | guide_results3.html(Q4、Q12) | `只有一組座標` / `座標學不準` | `只有一個詞向量`/`詞向量學不準` | | guide_results4.html(g11) | `它的座標就被拉到` / `混在同一個座標裡` / `一個字只有一組座標` / `只有一組座標,兩種意思混在一起` / `座標被拉到特定字旁邊` | `座標`、`一組座標` → `詞向量`、`一個詞向量` | | guide_results5.html | `反義詞座標太近` / `座標被這個用法拉走` | `反義詞的詞向量太近`/`詞向量被這個用法拉走`(PCA 那句「用前兩個方向當座標」是畫圖座標,保留) | | guide_new.html(gf) | `連續的座標` / `練出座標` / `一個字只有一組座標` / `給不同座標` / `混在同一組座標裡` | 全部改「詞向量」 | | guide_conclusion.html | `字可以變成有意義的座標` / `座標是從「前後文相似」學來的` / `混在同一個座標裡` / `學出每個字的座標` | `字可以變成有意義的詞向量`/`詞向量是從「前後文相似」學來的`/`混在同一個詞向量裡`/`學出每個字的詞向量` | | guide_course.html | `詞向量(dense vector)` | 保留,但改成「詞向量(英文 dense vector,跟 one-hot 那種大多是 0 的向量相對)」 | ### #4 字典/模型 | 檔案 | 目前原文 | 改成 | |---|---|---| | build_guide.py `OVR` | `"Wiki 20%(主模型)"` | `"Wiki 20% 字典"` | | guide_results5.html | `就贏過讀 20%、100 維的主模型(48.39)` / `如果你想讓主模型分數更高` / `改了主模型` / `我維持 100 維 Skip-gram 當主模型` | `就贏過 Wiki 20% 字典(48.39%)`/`如果你想讓 Wiki 20% 字典正確率更高`/`改了 Wiki 20% 字典`/`我維持 100 維 Skip-gram 當 Wiki 20% 字典` | | guide_results1.html | `只是把 model(GloVe)換成 my_wv(自己訓練的字典)` | 保留變數名,但補一句「本文叫它 Wiki 20% 字典」 | | guide_results1.html(g7 表頭,來自 build_guide.py 外的 HTML) | `自己的 Wiki 20%` | `Wiki 20% 字典` | | guide_results4.html(g11 表頭) | `GloVe(現成)自己的 Wiki 20%` | `GloVe 字典Wiki 20% 字典` | | guide_new.html(gf 站 3) | `字典式解法(WordNet)` / `用人工編的同義詞、上下位詞字典表示意思` | `人工詞庫(WordNet)`/`用人工編的同義詞、上下位詞詞庫表示意思` | | guide_results3.html(g8) | `Part II 用的模型` / `Part III 用的模型` | 保留(報告題目用語),補「(=本文的 GloVe 字典/Wiki 20% 字典)」 | ### #5 雜訊/晃動 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_new.html(gf) | `同樣設定跑 4 次,結果會晃多少?差距比「晃動」還小的` | `同樣設定換 4 個亂數種子各跑一次,正確率差多少?這個差叫「雜訊」;差距比雜訊還小的` | | guide_results4.html(g9) | `最高和最低差多少,就叫「雜訊範圍」` 與 `要比雜訊範圍大` 與 表頭 `雜訊範圍` | `最高減最低,就叫「雜訊」`/`要比雜訊大`/`雜訊` | | guide_results4.html(g9) | `比雜訊小的,可能只是運氣` | `比雜訊小的,可能只是換種子造成的差` | | guide_results4.html(g9 考試) | `看結果晃多大` | `看最高與最低正確率差多少` | | guide_results5.html(①) | `

實驗 ①:先量雜訊——同樣的設定,結果會晃多少?

` / `結果會不會一樣?晃多大?` / `範圍(雜訊)` | `

實驗 ①:先量雜訊——同樣的設定,正確率會差多少?

`/`結果會不會一樣?差多少?`/`雜訊(最高−最低)` | | guide_conclusion.html(#7) | `同設定重跑,整體晃 1.05、小類晃到 4.74` | `同設定換種子重跑,整體雜訊 1.05、小類雜訊最大 4.74` | ### #6 次數不一致:3 次 vs 4 次(規則 18) | 檔案 | 目前原文 | 改成 | |---|---|---| | build_guide.py `OVR` | `("Wiki 5% 換種子(3 次)", "同 5%", "46.05~47.10", "54.18~55.98", "39.30~39.72", "第 12 節 ①")` | `("Wiki 5% 換種子(共 4 次,含原本的 42)", "同 5%", "46.05~47.10", "54.18~55.98", "38.45~39.72", "第 12 節 ①")`(目前語法類 39.30~39.72 漏了 seed 42 的 38.45,跟雜訊 1.26 對不起來) | | guide_new.html(gw 決定表) | `換種子重跑 3 次(量雜訊)` | `另外換 3 個種子重跑、連同原本共 4 次(量雜訊)` | ### #7 格 → In [n](規則 13) | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_new.html(gw) | `(這裡的「第 N 格」是格子在模板裡的位置,從 0 開始數;跟 Jupyter 畫面左邊的執行序號 In [n] 不一樣)` | `(下面用 Jupyter 畫面左邊的 In [n] 標示;報告格是文字格,沒有 In 編號)` | | guide_new.html(gw) | `第 2 格` | `In [2]` | | guide_new.html(gw) | `第 18~22 格` | `In [15]~In [19]` | | guide_new.html(gw) | `第 5、13、15、24、25、27、28 格` | `In [5](TODO1)、In [12](TODO2)、In [14](TODO3)、In [20](TODO4)、In [21](TODO5)、In [23](TODO6)、In [24](TODO7)` | | guide_new.html(gw) | `第 27 格(TODO6)` | `In [23](TODO6)` | | guide_new.html(gw) | `第 29 格` | `報告格(In [24] 下面那一格文字)` | | guide_new.html(gw) | `第 31 格` | `In [25]` | | guide_new.html(gw) | `第 32 格以後` | `In [26]~In [43]` | | guide_results1.html(g7) | `所以我在同一格最後補了印成績的程式` | `所以我在同一格(In [23])最後補了印成績的程式` | | guide_static3.html(g5) | `(筆記本 In [18] 那一格印的)` | 保留(已正確) | ### #8 對照組/基準 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_results4.html(g11 挑字表) | `computer一般名詞,對照組` | `computer一般名詞,當比較基準`(「對照組」已專指維基對照組) | | guide_new.html(gw) | `多做一份一樣大小的維基對照組` | `多做一份維基對照組(跟論壇一樣多字)` | | guide_results3.html(Q11) | `為什麼要做「一樣大小的對照組」?` | `為什麼要做「維基對照組」?` | ### #9 教材/語料/資料/書 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_results1.html(g7) | `讀的書少很多` | `教材少很多` | | guide_new.html(gf 控制變因表) | `資料量的影響` / `資料種類的影響` | `教材字數的影響`/`教材種類的影響`(因素圖文字 `讀多少(資料量)`、`讀什麼(資料種類)` 也一起改) | | guide_results4.html(g9 標題、結論) | `資料越多,整體越好` | `教材越多,整體越好` | | guide_conclusion.html(#3、#4、#6) | `資料越多越好` / `資料種類決定學到哪些關係` / `模型設定的影響比資料量大` | `教材越多越好`/`教材種類決定學到哪些關係`/`訓練設定的影響比教材字數大` | | guide_intro.html | `讓電腦讀文章、自己編一本字典` | 保留,下一句補「(電腦讀的文章,本文叫『教材』)」 | ### #10 小類名稱與「類別」 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_results4.html(g9 表) | `家人` | `家人/性別` | | guide_results5.html | `家人` / `家人類掉 14.82` / `家人類大跌` | `家人/性別` | | guide_results2.html(公平比較表) | `國籍` | `國名→國籍` | | guide_results1.html(g4 表) | `國名 → 國籍` / `形容詞 → 副詞` | `國名→國籍`/`形容詞→副詞`(去掉空格,跟其他表一致) | | guide_results1.html(g4 結論) | `貨幣、反義字首、加 -ly 很差` | `貨幣、反義字首、形容詞→副詞很差` | | guide_static3.html、guide_results1.html | `family 類的` | `家人/性別小類(筆記本上叫 family)的` | | guide_course.html(第 7 點) | `表現最差的類別裡` / `反義字首(un-)和副詞(-ly)` | `表現最差的小類裡`/`反義字首(un-)和形容詞→副詞(-ly)` | | guide_results3.html(Q12) | `為什麼有些類別特別差` | `為什麼有些小類特別差` | ### #11 公式字母大小寫 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_static.html(g1) | `(B) (A) (C) (D)` / `正確是 B − A + C` / `給 A、B、C,叫電腦算出 D` | 全部改小寫 `(b)(a)(c)(d)`/`b − a + c`/`給 a、b、c,叫電腦算出 d` | | guide_results3.html(Q1) | `用 B − A + C 算出一個向量` / `(排除 A、B、C)` / `「A 之於 B,等於 C 之於 D」` | 改小寫 | ### #12 其他讀者看不到的名字 | 檔案 | 目前原文 | 改成 | |---|---|---| | guide_submit.html(g15 步驟 1) | `第 0 節、前兩個新章節` | `第 0 節、「我做了什麼」、「邏輯框架」` | | guide_submit.html(g13、g15) | `(學校代碼和學號見拍板卡)` / `回拍板卡的問題` | 第一次出現補「拍板卡(`_work\2026-10-04-nlp-hw1-submission\06-decision-card.html`,我列給你回答的 6 個問題)」 | | guide_results4.html(g11) | `印出的前 5 處上下文裡` / `上下文單一` | `印出的前 5 處前後文裡`/`前後文單一` | --- ## 三、逐節審查表 欄位說明:「五段」指規則 3 的「一句結論/為什麼/細節/所以對你的影響/考試可能問」。 | 節 | 違反哪幾條 | 具體問題 | 建議怎麼改 | |---|---|---|---| | intro | 1、5、18 | ①沒有宣告全文比喻(教材→字典→考卷)。②沒有用語表。③`並經 4 位獨立審查員對照老師規定檢查`:實際是三輪共 8 位(05a~05h,見 00-resume.md),本次 07a 又是另一位。 | ①②見第一節。③ guide_intro.html `並經 4 位獨立審查員對照老師規定檢查` → `並經三輪、共 8 位獨立審查員對照老師原始資料檢查`(g15、gw、`build_guide.py` 的 `VERIFY` 同步改,見第四節 C6)。 | | g0 | 3、13、18、2 | ①沒有「所以對你的影響」。②總表一次丟出 12 列、語意/語法、t-SNE、3CosMul 等名詞,都還沒解釋(規則 2:讀者還沒有前置知識)。③「換種子(3 次)」與 g12「4 次」矛盾,語法類範圍 39.30~39.72 漏掉 seed 42(38.45)。④同一節裡 `6.66 億字、訓練約 38 分鐘` 與 `電腦訓練(約 40 分鐘)` 兩個數字。 | ①新增 callout:「**所以對你的影響是**:你只要記住三個數字——GloVe 63.11%、Wiki 20% 48.39%、論壇 25.78%(維基對照組 41.46%),其他每一列都是『改一個因素』的對照。」②總表上方加一句「表裡的名詞先不用懂,第 1 節和用語表會解釋;現在只看『哪一列最高、哪一列最低』」,並把 7~12 列(加分實驗)收進 `
`。③見改名 #6。④統一寫「訓練 37.9 分鐘(前處理另約 2 分鐘)」。 | | gw | 2、3、13、15、18 | ①放在第 1 節之前,但決定表用了 top-k、PCA、3CosMul、停用詞、詞形還原、window、雜訊——讀者此時都沒學過。②「第 N 格」不是讀者畫面上的名字。③`跟維基差最多(口語 vs 百科)` 沒有比較過其他語料,是推論。④`Colab 跑久會斷線、輸出會不見`、`Colab 免費版通常 2 核` 是外部知識未標。⑤`換種子重跑 3 次`。⑥階段 8 `再換一批新審查員檢查一次`:實際是兩輪。⑦沒有「所以對你的影響」。 | ①把「我自己下的技術決定」整張表移到第 1 節之後,或包進 `
`,每個術語連到用語表。②見改名 #7。③改 `跟維基差很多(推論:口語問答 vs 百科;沒有跟其他候選語料比較)`。④補「(外部知識)」。⑤見 #6。⑥改「再換兩批新審查員各檢查一次」。⑦新增:「**所以對你的影響是**:考試可能問『你為什麼這樣做』,這張表的『為什麼』欄就是答案;報告第 6 題也要照這張表如實寫。」 | | gf | 2、6、15、16、18 | ①`下表照 W1 投影片的頁序排`——規則 2 明說「照讀者理解的順序,不照來源順序」;結果 TF-IDF(站 1)排在 one-hot(站 2)前面,初學者會卡。②站 1 和站 5 一格裡塞了 BM25、向量空間模型、LSA、共現矩陣、SVD、PPMI、稀疏,超過三個生詞沒拆段。③控制變因表 `同一批文章(5% 包含在 10% 裡)、同參數`:實際收錄門檻 9/16/30 次不同(In [31]),5% 還有 107 題查不到字——「同參數」不精確。④callout `這樣差異只能來自內容種類`:g10 自己承認「論壇字典只有對照組的一半大……字典大小的影響沒有完全排除」(字典收的字 100,310 vs 224,050,In [28]),兩節矛盾。⑤`這就是老師說的 insight` 沒有出處。 | ①改順序:one-hot/BoW → TF-IDF/BM25 → 人工詞庫(WordNet)→ 分布假說+LSA(數共現次數)→ 神經網路語言模型 → Word2Vec → GloVe/FastText → 上下文詞向量。表上方改成「下表照『想法一步一步變好』的順序排(老師 W3 開頭回顧也是從 one-hot 講到 TF-IDF)」。②站 1、站 5 的術語搬進 `
進階`,主表只留白話。③把 `同參數` 改成 `同參數設定(但 gensim 自動把收錄門檻調成 9/16/30 次,見第 9 節)`。④把 `這樣差異只能來自內容種類` 改成 `這樣差異主要來自內容種類(兩本字典收的字數不同,這個因素沒有完全排除,見第 10 節)`。⑤補出處或改成「這就是作業要的分析」。 | | g1 | 3、6、9、10、11、12、13、15、18 | ①沒有「考試可能問」(結論說考試最可能從這裡出題)。②觀念 2 相似度只有「方向有多一致」,**讀者拿紙筆算不出 0.70**(規則 10)。③觀念 3 只有圖,沒有一個能手算的 b − a + c 小例子;也沒講「排除 a、b、c」這個邊界情況,要到 g4 才出現。④觀念 3 的圖只有四個點,沒有標出「算出來的落點 ★」與「最近的字」。⑤`鄰居` 一詞兩義(見改名 #1)。⑥callout `hot(熱)和 cold(冷)……所以座標反而很近`:筆記本沒有算過 hot/cold,是推論未標;筆記本有算過的是 good/bad 0.70(In [33])。⑦callout `字典好不好,完全取決於電腦讀了什麼文章`:與 gf 因素 ④「怎麼學(模型設定)」、gc #6「模型設定的影響比資料量大」矛盾。⑧觀念 2 表格 `反義詞例如 good/bad 的分數反而常常很高`:「常常」只有一個例子。 | ①新增 callout:「考試可能問:相似度 1、0、−1 各代表什麼?b − a + c 裡哪個字是答案?」(答案指到 g14 Q1、Q2)。②③見第五節手算例 E1、E2,放在觀念 2、3 的白話後面;`numpy` 寫法放 `
`。③另開一小步「**邊界情況:答案不能是題目自己**」,把 g4 的排除 a、b、c 說明搬來。④圖上加 ★「b − a + c 算出來的點」、紅圈「最近的字」。⑥改成 `good(好)和 bad(壞)意思相反,但前後文很像(「這部電影很__」),Wiki 20% 字典裡兩者相似度 0.70(In [33])`。⑦ guide_static.html `字典好不好,完全取決於電腦讀了什麼文章:讀多少、讀什麼種類、文章怎麼整理過。` → `字典好不好,取決於兩件事:電腦讀了什麼教材(讀多少、讀什麼種類、怎麼整理),和怎麼學(Skip-gram 或 CBOW、維度、window)。`,下一句的題號同步改成「第 5 題(怎麼學)」。⑧改「反義詞的相似度可能很高,例如 good/bad 0.70(見第 11 節)」。 | | gk | 2、3、6、9、10、11、15、17、18 | ①12 點的排列沒有邏輯(訓練機制、評估、限制、前處理交錯)。②沒有「所以對你的影響」;標題寫「考試可能考」但沒有任何一題。③第 4 點表格一格塞 one-hot、矩陣、內積、softmax、cross-entropy,五個生詞沒拆、沒例子。④第 5 點一段塞正例、負例、字頻、logistic regression、二元分類,沒例子。⑤第 6 點 `這正是老師說「做完作業你會發現有點問題」的意思`、`例如 cat 的鄰居是卡通角色名`:把老師的話接到 sourpuss 是推論未標;而且 Wiki 20% 的 cat 前 5 名有 4 個是動物(rabbit、dog、mouse、pet,In [32]),對「鄰居常常怪怪的」是反例,沒寫出來(規則 16)。另外 gc #2 把 sourpuss 叫「冷門字效應」、g11 把它叫「鄰居反映教材內容」——三處講法不一。⑥第 11 點 `因為論壇很少在「首都/國家」的前後文用這些字` 是推論未標(只有 capital 0.27 倍可間接支持)。⑦第 12 點 `GloVe 是 2014 年的資料` 是外部知識未標。⑧第 10 點維度 `通常幾百維,最多約 1K` 若是老師說的要附時間點,否則標外部知識。 | ①分四組並加小標:A 怎麼學(2 分布假說、3 Skip-gram 資料、4 網路、5 負取樣)→ B 怎麼用與評估(6 相對關係、10 怎麼選、11 相似≠相關)→ C 限制與後續(1 one-hot 為什麼不行 移到 A 最前、7 FastText、8 BERT、12 隨時間變)→ D 前處理(9 停用詞)。②節末新增「所以對你的影響是:作業只用到訓練好的字典,但考試會問它『怎麼來的』——A 組 4 點一定要能自己講出來」,每組末尾加 1 題「考試可能問」並連到 g14 Q5b~Q5d。③④見手算例 E5、E6。⑤ guide_course.html `(絕對位置不可靠,例如 cat 的鄰居是卡通角色名)。這正是老師說「做完作業你會發現有點問題」的意思。` → `(絕對位置不可靠)。老師說做完作業會發現「你所熟知的字」附近的向量不是你想的(W3 00:04:34–00:05:27)。這次 Wiki 20% 字典的 cat 前 5 名有 4 個是動物,只有 sourpuss 一個怪字(推論:它是冷門字,見第 11 節觀察 ①④),所以這個現象在 cat 身上不明顯,在 king、bank 身上比較明顯。`⑥補「(推論)」。⑦補「(外部知識)」。⑧補時間點或標外部知識。 | | g2 | 3、15 | ①沒有「所以對你的影響」。②Colab `約 12 GB` 是外部知識未標。 | ①新增:「所以對你的影響是:在自己電腦跑,交作業時要多兩件事——附 requirements.txt、報告寫電腦規格(第 13 節已做好)。」②補「(外部知識,依 Colab 免費版一般配置)」。 | | g3 | 3、7 | ①沒有「為什麼要整理成表格」(後面要按小類算正確率)。②沒有「所以對你的影響」。③考試題用 `Google analogy 資料集`,正文叫「考卷」。 | ①結論後加一句「為什麼:後面 TODO2、TODO6 要按大類、小類分開算正確率,所以每題都要先標好它屬於哪一類。」②新增「所以對你的影響是:14 小類的名字後面每一節都會用,先記住『前 5 個是語意』。」③改「考卷(Google analogy 資料集)」。 | | g4 | 6、8、9、12、15、16、18 | ①程式講解表把主流程(b − a + c → 找最近的字)和三個邊界情況(大小寫、查不到的字、排除 a、b、c)混在同一張表。②**① 列與考試題矛盾**:表格說 `不轉的話會查不到,程式直接報錯`,但程式有 ② 的檢查,查不到只會算答錯、不會報錯;考試題又說「不轉會查不到(OOV)」。③**沒有用一題真的題目走完全程**就直接給 19,544 題的正確率(規則 8)。④`Gensim 會自動排除題目裡的 a、b、c 三個字,不然最近的字常常是題目自己`:「常常」沒有驗證,標外部知識。⑤`GloVe 有 40 萬字`:筆記本沒有印出,外部知識未標。⑥t-SNE 只有「盡量讓原本很近的點畫出來也很近」,沒有能照做的說明;圖上沒有任何標記,讀者要自己找「繼字輩」在哪(規則 9)。⑦`看得出「角色」比「性別」更決定一個字在哪一群`:同一節的 callout 才說 t-SNE「每次跑形狀也可能不同」,從一張 t-SNE 圖下這種判斷要標推論。⑧沒有「所以對你的影響」。⑨`美國城市在哪州普通……好多州都有 Springfield` 是外部知識。 | ①拆成「第 1 小步:轉小寫 → 第 2 小步:算 b − a + c → 第 3 小步:找最近的字」三步主流程;表格下另開「**邊界情況(各一小步)**:(a) 三個字有一個查不到 → 直接算錯;(b) 最近的字是題目自己 → 排除 a、b、c」。②guide_results1.html `不轉的話會查不到,程式直接報錯。` → `不轉的話這些字查不到,整題會被算成答錯(因為第 ② 步會先檢查;如果沒有第 ② 步,程式才會報錯)。`③在「考出來的成績」前加「先看一題」:用 E3(boy girl father mother,In [38])走完全程。④⑤補「(外部知識)」。⑥圖片改用程式重畫並標記:紅框圈「皇室」「繼字輩」「代名詞」「複數」四群、箭頭標一對 boy/girl;t-SNE 原理放 `
`(見第五節 E8)。⑦改「這張圖上看起來『角色』比『性別』更決定分群(推論:t-SNE 每次跑可能不同,只看這一次)」。⑧新增:「所以對你的影響是:TODO2 就是三行——轉小寫、檢查查得到、`most_similar`;考試最常問的是 positive/negative 各放什麼。」⑨補「(外部知識)」。 | | g5 | 3、14、15、17 | ①沒有「所以對你的影響」。②`解壓後約 3 倍大` 沒寫怎麼算(可推:20% 樣本 4.16 GB ÷ 0.2 ≈ 20.8 GB,÷ 6.93 GB ≈ 3 倍)。③`前 10 個檔各 562,365 篇` 筆記本沒有印每檔篇數。④`花了 約 2~3 分鐘` 筆記本沒有印。⑤`老師在課堂上特別警告過`、`助教影片有特別講` 沒有時間點。⑥⑤ 號「同一個亂數做 5%、10%」是最需要畫圖的地方,目前只有文字。 | ①新增「所以對你的影響是:考試問『怎麼避免記憶體爆掉』,答『一行一行讀、讀到就決定留不留』。」②改 `(推算:20% 樣本解壓後 4.16 GB,全部約 4.16 ÷ 0.2 ≈ 20.8 GB,是壓縮檔 6.93 GB 的約 3 倍)`。③改 `(推算:5,623,655 篇扣掉最後一檔 5 篇,平均分到 10 個檔)` 或補出處。④補出處(執行紀錄)或標「(執行時觀察,筆記本沒印)」。⑤補時間點。⑥加一張 0~1 數線圖:標 0.05、0.10、0.20 三條線,★ 三篇範例文章 r=0.03(三份都有)、r=0.08(10%、20% 有)、r=0.15(只有 20%)。 | | g6 | 3、6、12、15、17 | ①參數表一列塞多件事:`min_count` 那列同時講門檻定義與「被自動調高」這個例外;`seed` 那列同時講種子與多執行緒的不可重現;`sample` 那列夾了停用詞的旁註。②`加速,也讓少見字學得比較好(原論文的發現)`:外部知識未標。③`老師說「不是每個技巧都會更好,你要自己試」` 沒有出處(它出自作業規定,見 `HW1_Word_Analogy_規定.md` 第 79 行對應的 PDF 頁)。④`移除停用詞(the、a、he、she…)`:g5 剛說單一字母的 a 已被助教清掉,這裡又舉 a。⑤沒有正式的「所以對你的影響」。 | ①表格只留「白話」與「為什麼」,下面另開兩個小步「**例外 1:收錄門檻被自動調高**(5→30)」「**例外 2:seed 固定也不能完全重現**(多執行緒)」。②補「(外部知識)」。③補「作業規格 PDF p.?」。④把 `the、a、he、she…` 改成 `the、of、he、she…`。⑤把「這一段是報告第 1 題的重點」callout 改名為「所以對你的影響是」。 | | g7 | 3、9、15、16、19 | ①沒有「所以對你的影響」。②t-SNE 比較表 `「繼」字輩自成一群 有/沒有`:兩張都是單次 t-SNE,而 g4 自己說「每次跑形狀也可能不同」——用單次圖的有無下結論,與 g4 的警告矛盾。③`這種句型重複了上萬次`:數字沒有驗證。④`(60 億是 GloVe 官方公布的數字。)` 寫法改成標準的「(外部知識)」。⑤圖沒有標記。 | ①新增「所以對你的影響是:考試問『為什麼比 GloVe 差』,要講三個因素(教材字數、教材種類、方法),並說『作業裡分不開』。」②表格標題改「這一次畫出來的圖」,「沒有」改「這次沒有看到」,下面那句的「(推論。)」前加「t-SNE 每次跑可能不同,」。③改「這種句型在維基裡很多(推論,沒有數過)」。④改「(外部知識:GloVe 官方公布)」。⑤同 g4 ⑥ 加標記。 | | g8 | 3、15、17、18 | ①結論後沒有「為什麼要照這三步」。②`老師會懷疑你沒跑(老師說過這件事)`:沒有出處。③第 1 題要點的超參數列寫 `min_count=5`,但 g6 強調實際是 30——報告要點自己沒提。④沒有「所以對你的影響」。 | ①加「為什麼:助教是按『有沒有數字、有沒有解釋』給分(出處)」。②補時間點或刪括號。③改 `min_count=5(gensim 因 max_final_vocab 自動調成 30)`。④新增「所以對你的影響是:考試問你任何一題,都用『數字 → 觀察 → 原因』三句回答。」 | | g9 | 7、8、10、15、16、18、19 | ①雜訊的定義只有一句,沒有拿 4 個真的數字手算一次(規則 10)。②**同一把尺沒用到底(規則 16)**:表格 `家人 +5.54 / 雜訊 4.74 → 勉強`、`常見國家首都 −3.95 / 雜訊 2.77 → 勉強`,但本節自己的規則是「超過雜訊才算」,而且下一張表寫「語意類的五個小類都超過各自的雜訊」。③**對自己不利的方向打折**:考試答案說「全世界首都(+2.98)、貨幣(+2.66)有進步」,卻說常見國家首都(−3.95,下降幅度更大、也超過雜訊)「不當成證據」——上升算數、下降不算數,是挑證據。④前提沒講(規則 7):5%/10%/20% 的收錄門檻不同(9/16/30),5% 還有 107 題查不到字被算錯(占 19,544 題的 0.55%),這兩件事也會影響差距,沒有標成可能的混淆因素。⑤表格只列 7 列,沒說明怎麼挑的。⑥沒有「所以對你的影響」。 | ①在「先學會一把尺」加手算例 E4(4 個種子的真實數字)。②把「勉強」兩格改成「算」,表下加一句「家人/性別、常見國家首都雖然超過雜訊,但只超過一點點(不到 1.5 倍),而且雜訊只在 5% 量了 4 次,所以只當參考」——同一句話同時套用在上升和下降。③考試答案 `R` 值與 g9 末列一起改成:「語意類加總沒超過雜訊;五個小類都超過雜訊但方向不一:家人/性別、全世界首都、貨幣上升,常見國家首都、美國城市在哪州下降。」④在「成績」表上方新增前提小步:「這三份教材只差在字數,但有兩個附帶差異:收錄門檻 9/16/30 次不同、5% 有 107 題查不到字(直接算錯)。所以 5%→20% 的 +2.27 個百分點裡,有一小部分可能來自『查得到的字變多』(推論)。」⑤表下加「只列整體、大類,與超過雜訊的小類(其他見 In [31])」。⑥新增「所以對你的影響是:報告第 2 題一定要寫『跟雜訊比』,只寫『越多越好』會被問倒。」 | | g10 | 3、6、10、14、15、16、18、19 | ①結論一段 3 句、帶 6 個數字。②`論壇的「最像的字」都是錯字`:過度概括——鄰居表裡 paris(amsterdam、cancun…)、computer(soundcard、desktop、pc…)、king 都不是錯字。③`維基有人校稿,不會這樣`、`網友很少聊非洲國家的首都或美國的州`:推論未標。④雜訊是在 5% 維基(1.66 億字)量的,拿來判斷 7,292 萬字的論壇與對照組——g9 有寫這個限制,g10 沒寫(規則 18:同一限制只在一處說,另一處沒提)。⑤`平均每篇約 592 字`、`平均每段約 34 字`、`差了 9 倍` 沒寫怎麼算(666,053,126 ÷ 1,124,733 ≈ 592;72,919,300 ÷ 2,118,254 ≈ 34;6.66 億 ÷ 7,292 萬 ≈ 9.1)。⑥3.2 題沒有對應的小標(教材比較表就是 3.2)。⑦單次實驗,結論沒寫「在這個設定下」(規則 19)。⑧`rp(residence permit)`、`iqama(卡達居留證)` 外部知識未標。⑨沒有正式的「所以對你的影響」(「這就是會拿高分的地方」接近)。 | ①結論縮成一句:「同樣字數下,論壇教材讓語意類大輸(12.84% vs 45.77%)、部分語法小類反而贏——教材種類決定字典學到什麼(單次實驗)。」細節移到 3.1。②guide_results2.html `論壇的「最像的字」都是錯字` → `論壇的鄰居常常是錯字`,原因欄補「(7 個字裡 salary、family、doha 三個字的鄰居大多是錯字)」。③補「(推論)」。④在「3.1 成績」表下加:「雜訊是在 5% 維基量的;論壇和對照組教材更小,雜訊可能更大,所以『剛好超過雜訊』的語法類 −1.34 只當參考。」⑤括號補算式。⑥把「我選的教材」小標改成「3.2 我選的教材:卡達生活論壇」。⑦結論、gc #4 補「(單次實驗)」。⑧補「(外部知識)」。⑨把「這就是會拿高分的地方」改名為「所以對你的影響是」。 | | g11 | 3、6、13、15、16 | ①結論塞了 4 個觀察、4 個例子(規則 6)。②`cat` 挑字理由寫 `老師上課說「貓的鄰居常常不是貓」,驗證看看`,但**驗證結果沒有寫出來**:Wiki 20% 的 cat 前 5 名 rabbit、dog、sourpuss、mouse、pet 有 4 個是動物,GloVe 5 個全是動物/cats——對老師的說法是不利結果(規則 16)。引語也不是原話(逐字稿是「去看你所熟知的字的……」,W3 00:04:34–00:05:27)。③觀察 ① `這些字都只出現幾十次(34~86 次)`,但同一張表 bank 列有 guaranty(330)、savings(8,467),讀者會對不起來。④`nangklao(34,泰國國王)` 外部知識未標。⑤觀察 ② `「這部電影很 ___」兩個字都能填……詞向量分不出正反` 是推論未標。⑥觀察 ③ `前 15 名全部是科技相關`:前 15 名有 goldieblox(玩具公司),說「全部是科技」過頭,說「全部是公司或科技產品」才精確。⑦`對照組`(見改名 #8)。⑧觀察 ⑤ `反映語料中的地理與歷史脈絡` 推論未標。⑨沒有「所以對你的影響」。 | ①結論改一句:「『最像的字』常常不是人想的那樣,原因可以分成四種(下面 ①~④)。」四個例子留在各觀察。②挑字表改 `老師說做完作業會發現熟悉的字附近不是你想的(W3 00:04:34–00:05:27),驗證看看`,觀察 ④ 前加一句結果:「結果:cat 的鄰居大多還是動物,只有 sourpuss 一個怪字,所以這個現象在 cat 身上不明顯。」③改 `其中 nangklao、chlothar、suryavarman、bodawpaya、ameriprise、indymac、onewest 只出現 34~86 次`。④⑤⑧補「(外部知識)」「(推論)」。⑥ guide_results4.html `前 15 名全部是科技相關` → `前 15 名全部是公司或科技產品`(gc #8、gf、g14 Q4 的「全是科技」一起改)。⑨新增「所以對你的影響是:報告第 4 題要『挑字有理由、每個觀察有證據』,冷門字那條要附出現次數。」 | | g12 | 3、8、10、11、13、15、16、18 | ①實驗 ① 只給最低、最高,沒有給 4 個種子各自的數字,讀者沒辦法自己算出 1.05。②**實驗 ② 挑表列(規則 16)**:In [35] 標「超過雜訊」(True)的有 7 列,表格只列其中 5 列;漏掉 **國名→國籍 +2.19(刪停用詞反而變好,超過雜訊 1.69)** 和過去式 −3.21。國籍那列是對「支持不刪停用詞」不利的證據。③`查不到字的題目 107 → 284,多 177 題` 與正文「206 題含停用詞」對不起來,沒說明差 29 題的原因。④實驗 ③ `原論文也是 Skip-gram 語意類較好` 外部知識未標。⑤實驗 ④ 沒有「前 k 名正確率」的定義與例子;`多了 13 分` 沒說是哪本字典。⑥實驗 ④ 引老師 queen「可能在前三名」沒有時間點(W3 00:31:24)。⑦實驗 ⑤ `反義詞座標太近,加減時走到對面`、`用法太像` 是推論未標。⑧實驗 ⑥ 3CosMul 只寫「用乘除」,沒有公式(規則 10);`論文說常常比較好` 沒出處。⑨實驗 ⑦ PCA 只有一句白話。⑩實驗編號 ①~⑦ 對不到筆記本的「第 5 題 (a)~(h)」。⑪沒有「考試可能問」與「所以對你的影響」。 | ①在 ① 表格前加 4 欄數字(見 E4)。②guide_results5.html 在 `名詞複數38.5941.89` 那列後面新增兩列:`國名→國籍78.4280.61+2.19是`、`過去式44.2941.09−3.21是`;「學到什麼」加一點「國名→國籍、名詞複數刪了反而變好(超過雜訊),所以不是每一類都受害——但受害的類(家人/性別 −14.82)比受益的類大得多。」③表下加「(206 題裡有些在保留版本就已經查不到,所以只多 177 題;推論,筆記本沒有印重疊題數)」。④補「(外部知識)」。⑤ ④ 前加定義與 E7 例子;`13 分` 見改名 #2。⑥補「(W3 00:31:24)」。⑦補「(推論)」。⑧加 `
` 公式(見 E9),`論文說` 補「(外部知識:Levy & Goldberg 2014)」。⑨見 E10。⑩每個實驗標題後加「(筆記本 In [34],第 5 題 (a))」等。⑪節末加:「所以對你的影響是:加分題最值錢的是『先量雜訊』和『整體沒變但小類有變』這兩個發現」,並加 2 題考試題(雜訊怎麼量、前 k 名是什麼)。 | | gc | 4、15、16、18、19 | ①#2 證據寫 `cat 的鄰居有只出現 64 次的 sourpuss(冷門字效應)`,g11 把 sourpuss 放在觀察 ④「鄰居反映教材內容」,gk 第 6 點又叫「絕對位置不可靠」——三處說法不一。②#3 對應投影片欄是 `—`(規則 4、15 要附出處)。③#7 `13 分` 沒說是哪本字典。④#8 `apple 前 15 名全是科技` 過頭(goldieblox)。⑤#4、#5 是單次實驗,沒寫「在這個設定下」。 | ① guide_conclusion.html `cat 的鄰居有只出現 64 次的 sourpuss(冷門字效應)` → `king 的鄰居第一名是只出現 34 次的 nangklao(冷門字效應)`(king 才是 g11 觀察 ① 的主例)。②補 W1 p93(It depends,資料量)或寫「課程沒有直接講,本作業實驗結果」。③④見改名 #2、g11 ⑥。⑤#4、#5 結論後補「(單次實驗)」。 | | g13 | 15、18 | ①結論 `老師允許用 AI,只罰「用了沒寫」(−10)`:同一節表格自己列了「網路程式沒附連結、抄襲」也扣分,「只罰」過頭。②「拍板卡」沒解釋。 | ① guide_submit.html `只罰「用了沒寫」(−10)` → `沒寫 AI 使用說明扣 10 分(用了不扣)`。②見改名 #12。 | | g14 | 15、13 | ①Q2 `king 和 queen 前後文的差別(例如 he/his 換成 she/her)` 是推論未標。②Q5b~Q5d 編號跳號,讀者會以為漏了題。③Q1 用大寫 A、B、C。 | ①補「(推論)」。②重新編號 Q1~Q18。③見改名 #11。 | | g15 | 13、18 | ①`也經過 4 位獨立審查員檢查`(實際 8 位)。②`前兩個新章節`(讀者看不到的名字)。 | 見第四節 C6、改名 #12。 | | g16 | 3、18 | ①沒有「所以對你的影響」。②文末查證聲明(`build_guide.py` 的 `VERIFY`)寫 `並經 4 位獨立審查員檢查後修正`。 | ①新增「所以對你的影響是:如果你自己重跑,先做第 6、7 列——找能一直開著的時段、不要同時跑別的重運算。」②見 C6。 | --- ## 四、跨節矛盾與未標推論(規則 15、16、18 專區) | # | 問題 | 出現在 | 改法 | |---|---|---|---| | C1 | 雜訊判斷規則不一致:「超過雜訊才算」→ 但超過雜訊的家人/性別 +5.54、常見國家首都 −3.95 被標「勉強」;上升的全世界首都 +2.98、貨幣 +2.66 算進步,下降的常見國家首都 −3.95 不算退步 | g9 表、g9 觀察表、g9 考試答案(`build_guide.py` 外的 HTML) | 一把尺:超過雜訊就寫「超過雜訊」,再另加一個「超過不到 1.5 倍只當參考」的統一附註,上升下降一起套用(見 g9 ②③) | | C2 | 停用詞實驗只列支持結論的超過雜訊列,漏掉國名→國籍 +2.19 | g12 ② | 補列(見 g12 ②) | | C3 | 換種子次數:3 次 vs 4 次;語法類範圍 39.30~39.72 vs 38.45~39.72 | g0(`OVR`)、gw、gf、g9、g12 | 見改名 #6 | | C4 | 字典好壞「完全取決於讀了什麼文章」vs「訓練設定影響比教材字數大」 | g1 callout vs gf 因素 ④、gc #6 | 見 g1 ⑦ | | C5 | 「差異只能來自內容種類」vs「字典大小的影響沒有完全排除」;「同參數」vs 收錄門檻 9/16/30 | gf callout、gf 表 vs g9、g10 | 見 gf ③④ | | C6 | 審查員人數:4 位 vs 實際三輪 8 位 | intro、gw 階段 8、g15、`build_guide.py` `VERIFY` | 全部改「三輪、共 8 位」(若 07a 這輪之後再修,再加上) | | C7 | sourpuss 的解釋三種說法 | gk 6、g11 ④、gc #2 | 見 gc ① 與 gk ⑤ | | C8 | 轉小寫:「程式直接報錯」vs「查不到(OOV)算錯」 | g4 表 vs g4 考試、g14 Q6 | 見 g4 ② | | C9 | 訓練時間 38 分 vs 40 分 | g0 流程圖 vs g0 配分表、gw | 統一「37.9 分鐘」 | | C10 | 「apple 全是科技」 | g11、gc #8、g14 Q4、gf | 改「全是公司或科技產品」 | | C11 | 「論壇的最像的字都是錯字」 | g10 3.3 | 改「常常是錯字」 | | C12 | t-SNE 單張圖下判斷,但自己說每次跑可能不同 | g4「角色比性別更決定」、g7「繼字輩沒有自成一群」 | 標「這一次的圖」「(推論)」 | **未標「推論/外部知識」清單**(各補一個括號即可): | 檔案 | 原文片段 | 補什麼 | |---|---|---| | guide_static.html | `hot(熱)和 cold(冷)意思相反,但前後文很像` | 換成 good/bad 0.70(見 g1 ⑥),或補「(推論,筆記本沒算 hot/cold)」 | | guide_new.html | `跟維基差最多(口語 vs 百科)` | (推論) | | guide_new.html | `Colab 免費版通常 2 核;Colab 跑久會斷線、輸出會不見` | (外部知識) | | guide_course.html | `因為論壇很少在「首都/國家」的前後文用這些字` | (推論) | | guide_course.html | `(GloVe 是 2014 年的資料)` | (外部知識) | | guide_static.html(g2) | `約 12 GB` | (外部知識) | | guide_static3.html | `(原論文的發現)` | 改「(外部知識:Mikolov 2013 原論文)」 | | guide_results1.html | `GloVe 有 40 萬字` | (外部知識) | | guide_results1.html | `不然最近的字常常是題目自己` | (外部知識) | | guide_results1.html | `例如好多州都有 Springfield` | (外部知識) | | guide_results1.html | `這種句型重複了上萬次` | 改「很多(推論,沒數過)」 | | guide_results2.html | `網友很少聊非洲國家的首都或美國的州` | (推論) | | guide_results2.html | `維基有人校稿,不會這樣` | (推論) | | guide_results2.html | `rp(residence permit)`、`iqama(卡達居留證)` | (外部知識) | | guide_results4.html | `nangklao(34,泰國國王)` | (外部知識) | | guide_results4.html | `「這部電影很 ___」兩個字都能填,前後文相似,詞向量分不出正反` | (推論) | | guide_results4.html | `反映語料中的地理與歷史脈絡` | (推論) | | guide_results5.html | `原論文也是 Skip-gram 語意類較好` | (外部知識) | | guide_results5.html | `反義詞座標太近,加減時走到對面`、`用法太像` | (推論) | | guide_results5.html | `論文說常常比較好的方法` | (外部知識:Levy & Goldberg 2014) | | guide_results3.html(Q2) | `king 和 queen 前後文的差別(例如 he/his 換成 she/her)` | (推論) | **老師/助教引語缺語境或時間點(規則 17)**: g5 `老師在課堂上特別警告過`、`助教影片有特別講`;g6 `老師說「不是每個技巧都會更好,你要自己試」`(作業規格 PDF);g8 `老師說過這件事`;g10 `沒放這題 0 分`(PDF 頁碼);g11 `老師上課說「貓的鄰居常常不是貓」`(不是原話,改 W3 00:04:34–00:05:27);g12 ④ queen「可能在前三名」(W3 00:31:24);g14 `老師說考試「不考公式,考做作業時的 insight」`;gf `這就是老師說的 insight`。 --- ## 五、要補的圖與手算小例子(規則 9、10、11) 每個例子都先放「人手算」,程式寫法放 `
進階`。數字都已核對過。 **E1 相似度(放 g1 觀念 2)** 假設詞向量只有 2 個數字:cat=(3, 4)、dog=(4, 3)、truck=(4, −3)。 1. 第 1 小步,乘起來加總(內積):cat·dog=3×4+4×3=24;cat·truck=3×4+4×(−3)=0。 2. 第 2 小步,算長度:|cat|=√(9+16)=5;|dog|=5;|truck|=5。 3. 第 3 小步,相除:相似度(cat, dog)=24 ÷ (5×5)=0.96(很像);相似度(cat, truck)=0 ÷ 25=0(沒關係)。 4. 配圖:原點出發三支箭頭,標出 cat 與 dog 的小夾角、cat 與 truck 的直角。 出處:老師 W2 02:00:40「兩個向量之間算 cos 就是這個公式」。 **E2 b − a + c(放 g1 觀念 3)** man=(1, 1)、woman=(1, 3)、king=(5, 1)、queen=(5, 3)。題目「king : queen = man : ?」,a=king、b=queen、c=man。 1. 第 1 小步:b − a=queen − king=(0, 2)(「變成女性」這一步)。 2. 第 2 小步:再加 c:(0, 2)+man=(1, 3),在圖上標 ★。 3. 第 3 小步:算 ★ 跟每個字的相似度:woman 1.00、man 0.89、queen 0.76、king 0.50。 4. 第 4 小步(邊界情況,獨立一步):答案不能是 a、b、c 自己,所以把 king、queen、man 排除,剩下的第一名就是 woman。 在真的 100 維字典裡,★ 不會剛好落在 woman 上,所以第 4 步很重要。 **E3 一題真的題目走完全程(放 g4「考出來的成績」前,或 g7)** In [38] 印出的真題:`boy girl father mother`(家人/性別小類)。 1. a=boy、b=girl、c=father,正確答案 d=mother。 2. 用 Wiki 20% 字典算 girl − boy + father。 3. 排除 boy、girl、father 之後,第 1 名是 **stepmother**,mother 排第 **2**。 4. 只看第 1 名:這題算**錯**;看前 3 名:這題算**對**。 5. 19,544 題每一題都照做,答對的題數 ÷ 19,544=正確率 48.39%。 這一題同時可以當 E7(前 k 名)的例子。 **E4 雜訊(放 g9「先學會一把尺」與 g12 ①)** In [34] 的 4 次整體正確率:seed 42=46.12、seed 1=46.05、seed 2=47.10、seed 3=46.34。 1. 第 1 小步,找最高與最低:47.10、46.05。 2. 第 2 小步,相減:雜訊=47.10 − 46.05=1.05 個百分點。 3. 第 3 小步,拿來比:5%→20% 整體差 48.39 − 46.12=2.27 > 1.05,所以算「超過雜訊」。 4. 反例(語意類):4 次是 55.35、54.18、55.98、54.72,雜訊=1.80;5%→20% 只差 1.35 < 1.80,所以**不算**。 配圖:一條數線,4 個點,括號標「雜訊 1.05」,再用 ★ 標 48.39,箭頭標「差 2.27」。 **E5 Word2Vec 網路(放 gk 第 4 點)** 字典只收 4 個字:the、cat、licked、fur。詞向量只有 2 個數字。矩陣 V 有 4 列,每列 2 個數字。 1. cat 的 one-hot=[0, 1, 0, 0]。 2. one-hot 乘 V=取出 V 的第 2 列——這就是「查表」。 3. 訓練完,V 的第 2 列就是 cat 的詞向量。 softmax、cross-entropy 放 `
`。配圖:one-hot → V →(2 個數字)→ U → 4 個字的機率,箭頭上標「查表」「算機率」。 **E6 負取樣(放 gk 第 5 點、g6 negative 列)** 句子「the cat licked its fur」,中心字 cat。 1. 正例:(cat, licked) → 標「是」。 2. 照字頻隨機抽 2 個字當負例(作業設 5 個,這裡用 2 個好算):(cat, piano)、(cat, river) → 標「不是」。 3. 電腦只練習「這一對是不是真的前後文」,每次只調 cat、licked、piano、river 這 4 個字的數字,不用碰其他 30 萬字。 **E7 前 k 名正確率(放 g12 ④)** 用 E3 那一題:第 1 名 stepmother(錯)、第 2 名 mother(對)。 | 規則 | 這題算 | |---|---| | 只看第 1 名 | 錯 | | 前 3 名 | 對 | 19,544 題都這樣算,就得到 48.39 → 61.53 → 66.32 → 71.74。 **E8 t-SNE(放 g4,`
`)** 不能手算,改成能照做的三步說明: 1. 先在 100 維裡,替每個字列出「誰是我的近鄰」(perplexity 15 ≈ 照顧 15 個左右)。 2. 在 2 維紙上隨便撒點。 3. 一直挪動點,讓「100 維裡是近鄰的,紙上也靠近」。 所以只保證「近的還是近」,不保證「遠的有多遠」。圖本身要用程式加上紅框與箭頭(規則 9、14)。 **E9 3CosMul(放 g12 ⑥,`
`,外部知識)** 3CosAdd 是「★=b − a + c,找最靠近 ★ 的字」。 3CosMul 是對每個候選字 d 算 相似度(d, b) × 相似度(d, c) ÷ (相似度(d, a)+一個很小的數),挑最大的。gensim 會先把相似度換到 0~1。 白話:要「像 b、也像 c,但不像 a」,用乘除而不是加減。 **E10 PCA(放 g12 ⑦,`
`)** 畫 6 個 2 維點,散成一個斜的橢圓。 1. 找出點分布最長的方向,那條線就是第 1 主成分。 2. 跟它垂直的就是第 2 主成分。 3. 把每個點投影到這兩條線上,就是 PCA 圖。 配圖時直接畫出那兩條線。 **E11 覆蓋率(放 g10)** 4 題全世界首都,其中 2 題的四個字論壇字典都收了 → 覆蓋率=2 ÷ 4=50%。另外 2 題一定答錯。 **E12 每 100 萬字出現幾次(放 g10 字頻表)** cheapest 在論壇每 100 萬字 27.50 次,論壇教材共 7,292 萬字,所以大約出現 27.50 × 72.92 ≈ 2,005 次。維基對照組 0.96 × 72.92 ≈ 70 次。27.50 ÷ 0.96 ≈ 28.6 倍。(推算,筆記本只印每 100 萬字。) --- ## 六、影響最大的 10 項修改(依「讀者看不懂的程度」排序) 1. **加「本文用語表」+全文比喻宣告,並把「鄰居」一詞兩義拆開**(規則 1、5、13)。 這是讀者最常卡住的地方:第 1 節的「看鄰居學出來」和「找最近的 5 個鄰居」是兩件事。改名 #1、#3、#4 一起做。 2. **第 1 節補三個能手算的小例子:相似度(E1)、b − a + c(E2)、排除 a、b、c 的邊界小步**,圖上標 ★(規則 9、10、11、12)。 目前讀者算不出任何一個 0.70 或 48.39 是怎麼來的。 3. **在給 19,544 題的正確率之前,先用一題真題走完全程**(E3:boy girl father mother → stepmother,mother 第 2 名)(規則 8)。 同一題可以接著教前 k 名(E7)。 4. **雜訊這把尺用 4 個真數字手算一次(E4),並在 g9、g12 一致使用**:拿掉「勉強」、上升下降同一標準(C1)、停用詞表補國名→國籍 +2.19(C2)(規則 10、16)。 5. **把「分」拆成「正確率/百分點/配分」三個名字**(改名 #2)。 報告題的配分(10%、15%)和正確率(48.39%)都用 %,差值又叫「分」,初學者會混。 6. **邏輯框架改成照理解順序**(one-hot → TF-IDF → … → BERT),術語密集的格子收進 `
`;「我做了什麼」的技術決定表移到第 1 節之後或收起來(規則 2、6)。 7. **g4 程式講解拆成「3 步主流程+2 個邊界情況」,並修正「程式直接報錯」與「查不到算錯」的矛盾**(C8)(規則 6、12、18)。 8. **修掉 6 個事實性矛盾**:3 次/4 次(C3)、審查員 4 位/8 位(C6)、38/40 分鐘(C9)、g1「完全取決於讀了什麼文章」(C4)、gf「差異只能來自內容種類」與「同參數」(C5)、sourpuss 三種說法(C7)(規則 18)。 9. **「第 N 格」全部換成 In [n],實驗 ①~⑦ 標上筆記本的「第 5 題 (a)~(g)」與 In 編號**(改名 #7、用語表)(規則 13)。 讀者對照筆記本時才找得到。 10. **補齊 21 處未標的推論/外部知識,以及 8 處沒有時間點的老師引語**(第四節)。 另修 4 個過頭說法:「都是錯字」「全部是科技」「只罰用了沒寫」、cat「驗證看看」卻沒寫出不利結果(規則 15、16、17)。 > 另外:15 個節沒有「所以對你的影響是」(g0、gw、gk、g2、g3、g4、g5、g7、g8、g9、g11、g12、g16,以及只有近似 callout 的 g6、g10),第三節已逐節給了一句可直接貼的內容。 > 沒有「考試可能問」的課程節:g1、gk、g12。 本審查的每一項判斷都來自實際查證:讀完組好的 HTML 全文、各節草稿原始碼與 `build_guide.py`,並逐一對照 `_extract2\outputs.txt` 的輸出,以及 W3 逐字稿與先前審查紀錄 05e、05g 的時間點。標「推算」的數字是用輸出裡的數字相除得到的。