# 章節包:自然語言處理(NLP)W4(10/1)第 02 章「稀疏向量與 PPMI」
影片 0:14:58–0:30:19,YouTube ID 7kgOuhuIjvY,逐字稿 C:\D槽\TAICA課程\自然語言處理\第四周1151001\W4_自然語言處理_高宏宇.逐字稿.txt。Notion 章節頁 https://app.notion.com/p/3ecfc631b03081daa362fba68ecb5a0c(頁 ID 3ecfc631b03081daa362fba68ecb5a0c),頁面標題「02 稀疏向量與 PPMI(0:14–0:30)」。
## 1. 第一行(直接照抄,不要改)
[自然語言處理](https://app.notion.com/p/3e6fc631b03081b4a9e8f91f3411f61f) › [W4(10/1)](https://app.notion.com/p/3ecfc631b03081b8aa2cf4a97467ed41) › 02|影片 [0:14:58–0:30:19](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=898s)|投影片 W2_Word p.20–28|上一章 [01 BM25 與 N-gram 模型(0:00–0:14)](https://app.notion.com/p/3ecfc631b030815a8015e146c3d4d717)|下一章 [03 稠密向量與 Word2Vec(0:30–0:49)](https://app.notion.com/p/3ecfc631b030819f9a0df026aac33ae7)
## 1b. 最後一行(直接照抄,放在 Self-check 後面,當全頁最後一行)
讀完了嗎?下一章:[03 稠密向量與 Word2Vec(0:30–0:49)](https://app.notion.com/p/3ecfc631b030819f9a0df026aac33ae7)|回到週頁:[W4(10/1)](https://app.notion.com/p/3ecfc631b03081b8aa2cf4a97467ed41)
## 2. 各段標題(照順序;每段一個 ## 標題,直接照抄連結)
- `## [0:14:58](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=898s) 從 N-gram 到稀疏向量` 老師講什麼:想學到更有語意的表示,先回頭看稀疏向量(sparse vector):維度很高、大部分是 0。例如三萬字的字典配一篇三百字的文章,只有大約 1% 的位置有值。
- `## [0:16:27](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=987s) TF-IDF 回顧與前處理` 老師講什麼:用 TF-IDF 把文章變成向量:有出現的字有值,沒出現的是 0。前處理的 stemming、feature selection,跟以前講的「要不要斷詞、取關鍵字」是同一件事;稠密向量則交給模型自己學該取哪些特徵。
- `## [0:18:08](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=1088s) 稀疏向量的限制` 老師講什麼:字要完全一樣才對得到,概念在空間裡分布很不均勻;意思相同的兩個字,在稀疏向量裡卻完全不同。
- `## [0:18:42](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=1122s) Mutual Information 與 PPMI` 老師講什麼:Mutual Information 用「一起出現的機率」除以「各自出現的機率」,看兩件事有多相關(像身高和體重)。換成目標字和上下文字,就是 PMI;把負值都改成 0,就是 PPMI。
- `## [0:21:51](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=1311s) cherry 範例:共現表到 PPMI` 老師講什麼:用 4 個字和 5 個 context(computer、data、result、pie、sugar)先建共現次數表,再換成機率,算出 cherry 在 sugar 底下的 PPMI 約 3.3。context 怎麼選,可以依你的應用自己定。
- `## [0:26:27](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=1587s) PPMI 向量和 TF-IDF、SVD 比較` 老師講什麼:cherry 可以用 (0,0,0,4.38,3.30) 五個數字表示。它的維度是自己定義的情境,不是整個字典;值是互資訊,不是詞頻。算起來比 SVD 簡單得多,用來算語意相近或距離也省力。
- `## [0:28:48](https://www.youtube.com/watch?v=7kgOuhuIjvY&t=1728s) Concept space 與稠密向量預告` 老師講什麼:以前情緒字的 concept space 例子,已經接近稠密向量;word2vec 的 300 或 700 多維,不用指定每一維代表什麼,是訓練時自己學出來的。
## 3. 老師強調/會考/不考的地方(原句已驗證;寫進筆記時 ASR 錯字要改正)
(無)
## 3b. 數學段候選(程式抓的,只是提示;寫「跳過提示」行用)
0:19:00–0:20:00 (60s, score 10) 公式 for 機率 分母 分子
我們先來看。這個公式。Mutual Information。這其實還蠻常在。這個做。尤其是。做。資料分析。或是。機器學習的一些。評估上。也常用這種Mutual Information的。角度去算。它其實在算。兩個EVENT XY。就是共同發生的。一個。一個。一個度量值。就是。呃。Mine。就是它們之間有。多有關係。
1 段候選(門檻 3.0 字/30 秒)
## 4. 這章摘要與重要度
回顧 TF-IDF 稀疏向量和它的限制,再用 cherry/sugar 小例子示範怎麼用 PPMI 算出一個字的向量。(核心)
## 5. 整堂課的提醒(ASR 錯字、老師口誤、投影片缺公式等;只用跟這章有關的)
- 這支只有約 1 小時 20 分(老師 1:18:56 下課),下半場改看助教預錄的 PyTorch 教學影片(約一個半小時),筆記在第 06–09 章,章名前面有「PyTorch:」,影片時間是那支影片自己的時間。
- PyTorch 教學是 2024 年錄的舊影片,片中提到的作業說法(例如建議用 teacher forcing、之後要用 Hugging Face)不代表今年,今年作業以今年公告為準。
- 課表寫的是「Text Classification, NB, NN」,但實際上還在講 W2_Word 投影片(p.17–47)的語言模型和詞向量;Naive Bayes 只在 0:55:59 拿來對比「統計」和「模型學習」。
- 開頭 0:00:27–0:02:24 有網路和回音問題,0:03:55–0:04:32 在調整直播畫面,內容沒有缺。
- 逐字稿有語音辨識重複行(0:27:41–0:29:20 幾乎每句重複兩次、0:39:37 一句重複四次),不影響理解。
- 全片沒有下課休息,一路講完(0:00:01–1:26:08)。
- 逐字稿 0:01:32–0:01:53 有語音辨識重複句與亂碼(同一句重複五次、CUDA 版本被辨識成 ientes/analytical sci-fi/evangelical sci-fi),內容只是「別直接 pip install,到官網選版本」。
- 0:35:46 老師說「這是新的嗎」,接著改用口述講 Google Bomb。p.31 的文字檔裡已經有「Google Bomb/Data Poisoning」,可能是 10/1 更新版才加的,直播畫面也許還是舊版。不確定。
- p.33–38 的 word2vec 細節,老師是用回顧的方式講的,沒有逐頁翻:p.34 共現矩陣、p.38 SGD 那頁沒有明確講到;0:47:21 的 A、B、C softmax 計算例子,對應的是 p.35 還是 p.36(只有圖),不確定。
- 老師好幾次把模型輸出的「機率」說成 perplexity(例如 0:45:48、0:48:31),應該是口誤,寫筆記時要寫成 probability,不要寫成困惑度。
- 老師 1:08:44 已經宣布下課,接著又講了約 5 分鐘 activation function(p.46–47),1:13:47 才真正收尾,所以第 05 章沒有在 1:08:44 切開。1:13:27 說的「這一段的敘述」應該是指 p.47 的 softmax、sigmoid、tanh、ReLU 表格,只用一句帶過。p.48(In text viewpoint)沒講,下週應該從 p.48 開始。
- 第 04 章長約 13.5 分鐘,比建議的 15 分鐘短一點;它講 contextual embedding,跟第 05 章的 NN 基礎主題不同,所以沒有合併。
- [PyTorch 影片,第 06–09 章] 投影片 p.7 寫模型是 y = ax²+b,助教口頭說成「y等於ax加b」(0:04:08);投影片寫「four data points」但只列三個點 (-1,1)、(1,2)、(2,3),助教口頭念的點也對不上(0:04:36 說 -1 對 1、-1 對 2、-2 對 3)。寫筆記以投影片的 y = ax²+b 和三個點為準。
- [PyTorch 影片,第 06–09 章] 逐字稿有大量語音辨識錯字,寫手要自己還原:T度=梯度、correct function=collate function、translation=truncation、badge size=batch size、relude/Renew=ReLU、MN backward=MmBackward、nodegrade=no_grad、width.backward=with torch.no_grad()、nonpy=NumPy、viewed=view、birth=BERT、復迴圈=for 迴圈、增刮號=中括號、高雄宇=高宏宇;0:23:00 的「3e」應是 stride (3, 1)、0:22:02 的「13」是 (1, 3)。
- [PyTorch 影片,第 06–09 章] 助教把 BERT 稱為「auto encoder」(1:21:5x 起),對應投影片 p.60–61 的「Transformer Auto-encoder」,指的是編碼器式 Transformer,不是一般說的自編碼器;寫筆記時要說清楚,避免混淆。
- [PyTorch 影片,第 06–09 章] 第 2 章只有約 14 分鐘,略低於 15 分鐘下限;因為「模組」是獨立概念,而第 3 章(自動微分+訓練迴圈)已約 25 分鐘,沒有再合併。若主 session 想更細,第 3 章可在 0:51:20 切成「自動微分」與「損失函數、優化器與線性迴歸」兩章(各約 11、13.5 分鐘)。
- [PyTorch 影片,第 06–09 章] 投影片檔放在 2026 資料夾,影片是 2024 年錄的;對照下來頁序與講解內容一致(p.62 是結尾的笑話頁,沒有內容),但不確定 2026 版投影片是否和 2024 錄影時的版本完全相同。
- [PyTorch 影片,第 06–09 章] emphasis 只放了助教明講作業相關或重複強調的地方;另外兩處助教有說「注意」或「建議」但跟作業無關,沒列進去:0:53:00「不要用訓練的資料來測試」、0:24:47「儘量用矩陣運算的方式來運算」(兩句都已過 quote_check)。
- [寫手注意,第 06–09 章] 這四章是助教的程式教學,但主理人不看程式碼、考試不考寫程式:預設看得到的內容寫「這個元件在做什麼、為什麼需要它」+生活比喻(例:optimizer 像導航決定下一步往哪走);程式碼最多一小段,放進「(進階,可跳過)」摺疊。Exam-ready 只放投影片上的英文概念句(例如 tensor、autograd、loss、optimizer 的說明),不放程式碼行;投影片沒有完整英文句時用短的英文定義並標 (my wording)。Self-check 問「為什麼/比較」,不問語法。助教不是老師,不標【老師強調】,要標就寫【助教強調】+時間。
## 6. 投影片文字(這章範圍)
**這幾頁的公式或內容只在圖裡(文字檔抓不到),寫 Exam-ready 與公式前先用 Read 看這幾張圖:**
- W2_Word p.21 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w4\img\brief_W2_Word_p021.png
- W2_Word p.24 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w4\img\brief_W2_Word_p024.png
- W2_Word p.25 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w4\img\brief_W2_Word_p025.png
- W2_Word p.27 → C:\D槽\TAICA課程\_work\notes-v2\nlp-w4\img\brief_W2_Word_p027.png
--- W2_Word p.20 ---
Sparse Vectors
Sparse vector embeddings represent words as high-dimensional vectors with mostly zero values.
Each dimension corresponds to a unique feature (word), measured by some well-designed
methods.
◦TF-IDF
◦PPMI
20
Word Embeddings and Language Modeling
--- W2_Word p.21 ---
TF-IDF (recap)
The mathematical representation of TF-IDF:
◦Where is the i-th word in j-th text in the dataset.
TF (Term Frequency)
◦Represents the "frequency" of a term appearing in a text.
IDF (Inverse Document Frequency)
◦Aims for terms to have higher specificity, meaning the fewer texts in the dataset contain the term, the
better.
21
where
Word Embeddings and Language Modeling
--- W2_Word p.22 ---
TF-IDF (recap)
After computing the scores of every terms, we get a sparse vector to represent the text.
22
Word Embeddings and Language Modeling
--- W2_Word p.23 ---
TF-IDF (recap)
Preprocessing text (optional)
Stemming
◦By removing the suffixes from words (e.g."cats," "catlike," "catty" all have "cat" as their base), we can
revert the words back to their root forms.
Feature Selection
◦Filter and select which parts of speech to retain, such as verbs or nouns.
◦Analyze the frequency of the terms using statistical methods or algorithms like TF-IDF.
23
Word Embeddings and Language Modeling
--- W2_Word p.24 ---
Distributional Hypothesis
Words that occur in similar contexts tend to have similar meanings.
The NLP approaches utilize the context around the word to define its meaning.
e.g.
◦I enjoy coding and I do it everyday!
◦I like coding and I do it everyday!
"enjoy" and "like" are synonym and they are in the same context.
24
Word Embeddings and Language Modeling
--- W2_Word p.25 ---
PPMI
Mutual Information (MI)
◦It is a measure of how often two events x and y occur:
PMI (Pointwise MI)
◦The mutual information between a target word w and a context word c:
25
Word Embeddings and Language Modeling
--- W2_Word p.26 ---
PPMI
PPMI (Positive PMI)
◦PPMI replaces all negative PMI values with zero
e.g. Co-occurrence counts for 4 words in 5 contexts
26
computer
data
result
pie
sugar
count(w)
cherry
2
8
9
442
25
486
strawberry
0
0
1
60
19
80
digital
1670
1683
85
5
4
3447
information
3325
3972
378
5
13
7003
count(context)
4997
5673
473
512
61
11716
Word Embeddings and Language Modeling
--- W2_Word p.27 ---
computer
data
result
pie
sugar
cherry
0
0
0
4.38
3.30
strawberry
0
0
0
4.10
5.51
digital
0.18
0.01
0
0
0
information
0.02
0.09
0.28
0
0
PPMI
27
Replacing the counts in with joint probabilities:
Compute the PPMI matrix
Sparse vectors are obtained
=log2(0.0021/(0.0415*0.0052))
cherry=(0,0,0,4.38,3.30)
P(w, context)
p(w)
computer
data
result
pie
sugar
p(w)
cherry
0.0002
0.0007
0.0008
0.0377
0.0021
0.0415
strawberry
0.0000
0.0000
0.0001
0.0051
0.0016
0.0068
digital
0.1425
0.1436
0.0073
0.0004
0.0003
0.2942
information
0.2838
0.3399
0.0323
0.0004
0.0011
0.6575
p(context)
0.4265
0.4842
0.0404
0.0437
0.0052
Word Embeddings and Language Modeling
--- W2_Word p.28 ---
Word embedding
d1
d2
d3
d4
d5
d6
d7
d8
便宜
1
3
2
3
0
-2
2
0
有名
3
1
4
2
0
2
0
1
讚
0
0
1
0
0
1
-1
0
嫩
1
3
0
1
0
0
0
0
難吃
0
0
0
0
1
0
2
0
太貴
0
0
0
0
3
1
0
1
差
-1
0
1
-1
0
2
1
0
老
0
-2
-1
0
1
3
2
1
Concept space
Term vector
## 7. 逐字稿(0:14:58 前後各多 1 分鐘,原始行)
[00:13:59] 那另外一個就是說。
[00:14:01] 我如果不要拉長。
[00:14:03] 我的片段變短的時候。
[00:14:05] 片段變短比較好做。
[00:14:07] 但是。
[00:14:08] 短的時候。
[00:14:09] 我的。
[00:14:10] 這個。
[00:14:11] 字的順序的這種。
[00:14:13] 這種特性就不見了。
[00:14:14] 這樣子。
[00:14:15] 那當然。
[00:14:16] 用這種硬算的方式。
[00:14:18] 不是硬算。
[00:14:19] 就是這種。
[00:14:20] 直接。
[00:14:21] 直接。
[00:14:22] 字跟字之間的關聯。
[00:14:23] 它其實就少了一些。
[00:14:24] 比如說。
[00:14:25] 像。
[00:14:26] 像同一字啊。
[00:14:27] 這種。
[00:14:28] 這種概念的東西的延伸。
[00:14:29] 它其實彈性度就很低。
[00:14:30] 這樣子。
[00:14:31] 那所以上。
[00:14:32] 如果你用這種。
[00:14:33] 統計的方式。
[00:14:34] 去切圓。
[00:14:35] 在算的時候。
[00:14:36] 其實你會遇到一些。
[00:14:37] 比如說。
[00:14:38] 你沒看過的字。
[00:14:39] 或是很少出現的字。
[00:14:41] 其實就剛才提到。
[00:14:42] 這些Spacity的問題。
[00:14:43] 其實你都很難去計算。
[00:14:45] 那或者說。
[00:14:47] 換一個Domain。
[00:14:48] 就是。
[00:14:49] 完全不懂的。
[00:14:50] 詞彙。
[00:14:51] 或者是。
[00:14:52] 看得懂的詞彙。
[00:14:53] 但是。
[00:14:54] 它的解釋。
[00:14:55] 是不太一樣的時候。
[00:14:56] 這個其實都會有。
[00:14:57] 很大的問題。
[00:14:58] 所以。
[00:14:59] 以前的做法。
[00:15:00] 當然就是。
[00:15:01] 好。
[00:15:02] 那我們就是。
[00:15:03] 描述完。
[00:15:04] 這樣的一個。
[00:15:05] 向量之後。
[00:15:06] 其實。
[00:15:07] 我們能不能去學。
[00:15:08] 更。
[00:15:09] 更。
[00:15:10] 複雜一點。
[00:15:11] 更具有。
[00:15:12] Semantic。
[00:15:13] 含義的東西。
[00:15:14] 而不是。
[00:15:15] 直接來。
[00:15:16] 算。
[00:15:17] 這樣的。
[00:15:18] 語言的模式。
[00:15:19] 那我這邊呢。
[00:15:20] 再。
[00:15:21] 再把。
[00:15:22] 前面講。
[00:15:23] TFIDF。
[00:15:24] SPARTS FACTOR。
[00:15:25] 放在這裡。
[00:15:26] 其實主要是。
[00:15:27] 為了要代出。
[00:15:28] 後面的這種。
[00:15:29] Dense Factor的概念。
[00:15:30] 那在這邊。
[00:15:31] 當然SPARTS FACTOR。
[00:15:32] 我們其實會。
[00:15:33] 前面就提到。
[00:15:34] TFIDF。
[00:15:35] 那其實以。
[00:15:36] 以。
[00:15:37] 字的。
[00:15:38] 之間的。
[00:15:39] 貢獻性來講。
[00:15:40] 其實以前有算。
[00:15:41] 所謂的。
[00:15:42] PMI的。
[00:15:43] 這樣的概念。
[00:15:44] 就算一個。
[00:15:45] 條件機率。
[00:15:46] 共同。
[00:15:47] 出現的。
[00:15:48] 機率的。
[00:15:49] 很常拿來做的。
[00:15:50] 我們其實等一下。
[00:15:51] 可以用一個小例子。
[00:15:52] 來看一下。
[00:15:53] 用。
[00:15:54] 這個PPMI。
[00:15:55] 怎麼做一個。
[00:15:56] Vector。
[00:15:57] 一個Turn的。
[00:15:58] Vector的表示。
[00:15:59] OK。
[00:16:00] 那。
[00:16:01] 顧名思義。
[00:16:02] 這個SPARTS FACTOR。
[00:16:03] 就是它一個稀疏。
[00:16:04] 啊。
[00:16:05] 稀疏其實它是一個。
[00:16:06] 在高維空間。
[00:16:07] 然後。
[00:16:08] 大多數都是0。
[00:16:09] 因為你可以想像。
[00:16:10] 我們當初的。
[00:16:11] Vector Space Model。
[00:16:12] 如果是一個。
[00:16:13] 三萬個字的。
[00:16:14] 字典的時候。
[00:16:15] 一篇文章。
[00:16:16] 三百個字。
[00:16:17] 其實它大概只有。
[00:16:18] 1%的。
[00:16:19] 1%的。
[00:16:20] 這個。
[00:16:21] 數值是有1的。
[00:16:22] 所以它。
[00:16:23] 我們會叫它。
[00:16:24] SPARTS FACTOR的。
[00:16:25] 概念是這樣。
[00:16:26] 那這邊。
[00:16:27] 在RECAP下。
[00:16:28] 這個TFITF的。
[00:16:29] 的。
[00:16:30] 那。
[00:16:31] 這其實也是我們。
[00:16:32] 前面有提到。
[00:16:33] 的部分。
[00:16:34] 那。
[00:16:35] 也有秀說。
[00:16:36] 這些東西。
[00:16:37] 其實是有。
[00:16:38] 很多的。
[00:16:39] 變形。
[00:16:40] 有很多。
[00:16:41] 根據你的。
[00:16:42] 你的。
[00:16:43] 假設的。
[00:16:44] 一些變形。
[00:16:45] 好。
[00:16:46] 所以你。
[00:16:47] 你算完這個之後呢。
[00:16:48] 你的。
[00:16:49] 這是你原來那一句話。
[00:16:51] 這是你得到的。
[00:16:52] 這個SPARTS FACTOR。
[00:16:53] 你會發現。
[00:16:54] 有出現這個字呢。
[00:16:55] 它有一個FREQUENCY。
[00:16:57] 但是沒有出現這個字呢。
[00:16:58] 它就是。
[00:16:59] 就是0。
[00:17:00] 這樣子。
[00:17:01] 這個當然是為了簡化。
[00:17:03] 不然。
[00:17:04] 這不見得會是這個順序。
[00:17:06] 你的VACTOR.
[00:17:07] VACTOR SPACE MODEL。
[00:17:08] 不見得這個字的順序。
[00:17:09] 是這樣。
[00:17:10] 只是用來。
[00:17:11] HIGHLIGHT說。
[00:17:12] 有。
[00:17:13] 有這個字的。
[00:17:14] FREQUENCY會是。
[00:17:15] 出現。
[00:17:16] 其他這些。
[00:17:17] 都是0。
[00:17:18] 這樣子。
[00:17:19] 這個大概就是用TFIDF來描述一個文章。
[00:17:22] 的一個VACTOR的。
[00:17:24] 這樣的一個想法。
[00:17:27] 好。
[00:17:28] 那當然這件事情我們前面有提到說。
[00:17:30] 那你需不需要斷詞。
[00:17:32] 需不需要取這個關鍵字。
[00:17:34] 我需要做STEMMING。
[00:17:35] 或是做FITUAL SELECTION。
[00:17:37] 其實這邊取的FITUAL SELECTION這件事情。
[00:17:39] 就跟前面我講。
[00:17:41] 要不要取關鍵字。
[00:17:42] 要不要去兜出更長的詞。
[00:17:45] 或是有意義的TOKEN。
[00:17:46] 其實是一樣的。
[00:17:48] 那。
[00:17:49] 這個。
[00:17:50] 這個動作其實在以前。
[00:17:52] 在以前。
[00:17:53] 就是在DANCE FACTOR。
[00:17:54] 其實也是。
[00:17:55] 需要。
[00:17:56] 只是DANCE FACTOR的時候。
[00:17:58] 我們不見得會去人工去。
[00:18:00] 做這件事情。
[00:18:01] 而是讓模型去學會。
[00:18:03] 我們該取。
[00:18:04] 什麼樣的FITUAL。
[00:18:05] 這樣子。
[00:18:06] 好。
[00:18:08] 但是其實這個。
[00:18:10] 問題以前就提過了。
[00:18:11] 它其實是一個稀疏。
[00:18:13] 然後。
[00:18:14] 第一個。
[00:18:15] 它要完全一樣的東西才會。
[00:18:17] 才會能夠HIT的到。
[00:18:18] 那個概念。
[00:18:19] 而且。
[00:18:20] 它其實是非常不。
[00:18:22] 不均勻分佈的一個東西。
[00:18:25] 因為你可以想像。
[00:18:26] 這麼稀疏的東西。
[00:18:28] 那很多的概念。
[00:18:29] 它其實是散落在。
[00:18:30] 空間。
[00:18:31] 而且是可能很聚集的點。
[00:18:33] 這樣子。
[00:18:34] 那這邊舉的例子是說。
[00:18:36] 這兩個字其實是。
[00:18:37] 一樣的意思。
[00:18:38] 但是。
[00:18:39] 以BACTER來表示的時候。
[00:18:40] 它就是完全不同的。
[00:18:42] 那這邊我秀一下這個。
[00:18:44] PPMI。
[00:18:45] 它其實。
[00:18:46] 以前在統計。
[00:18:47] 在。
[00:18:48] 進入NLP的這個。
[00:18:50] 時間點。
[00:18:51] 它其實就。
[00:18:53] 在大量的資料的。
[00:18:55] 一個Background下。
[00:18:56] 它。
[00:18:57] 大家覺得它還蠻有用的。
[00:18:59] 我們來看它怎麼做。
[00:19:00] 我們先來看。
[00:19:02] 這個公式。
[00:19:03] Mutual Information。
[00:19:04] 這其實還蠻常在。
[00:19:06] 這個做。
[00:19:07] 尤其是。
[00:19:09] 做。
[00:19:10] 資料分析。
[00:19:11] 或是。
[00:19:12] 機器學習的一些。
[00:19:13] 評估上。
[00:19:14] 也常用這種Mutual Information的。
[00:19:16] 角度去算。
[00:19:17] 它其實在算。
[00:19:18] 兩個EVENT XY。
[00:19:20] 就是共同發生的。
[00:19:22] 一個。
[00:19:23] 一個。
[00:19:24] 一個度量值。
[00:19:25] 就是。
[00:19:26] 呃。
[00:19:27] Mine。
[00:19:28] 就是它們之間有。
[00:19:29] 多有關係。
[00:19:30] 所以你看這個公式。
[00:19:31] 大家就知道是說。
[00:19:32] 個別發生的。
[00:19:33] 機率當分母。
[00:19:35] 然後。
[00:19:36] 它們一起發生的。
[00:19:37] 當分子。
[00:19:38] 所以如果。
[00:19:39] X跟Y。
[00:19:40] 其實是完全沒有相關的。
[00:19:41] 沒有相關的東西。
[00:19:43] 那。
[00:19:44] 我這個。
[00:19:45] 分子。
[00:19:46] 跟分母是。
[00:19:47] 完全一樣的。
[00:19:48] 因為它是獨立世界。
[00:19:49] 我就把它相稱。
[00:19:50] 所以。
[00:19:51] 所以它是得到。
[00:19:52] 這個。
[00:19:53] 完全一樣的。
[00:19:54] 就是它們之間的。
[00:19:55] 機率是。
[00:19:56] 不會互相影響的。
[00:19:58] 那。
[00:19:59] 為什麼這個以前。
[00:20:00] 在做基因學習。
[00:20:01] 會常用的。
[00:20:02] 以前這個。
[00:20:03] 我們拿到TRAINING DATA的時候。
[00:20:04] 常常會去分析說。
[00:20:05] 哪一個Future。
[00:20:06] 跟哪一個Future。
[00:20:07] 是。
[00:20:08] 有直接相關。
[00:20:09] 就是它們之間。
[00:20:10] 也許是。
[00:20:11] 有。
[00:20:12] 有一個因果關係。
[00:20:13] 或是。
[00:20:14] 有一個共同影響什麼的關係。
[00:20:17] 所以比如說。
[00:20:18] 你把身高跟體重。
[00:20:20] 放進來的時候。
[00:20:21] 你會發現。
[00:20:22] 身高跟體重。
[00:20:23] 會呈現一個比較正比的關係。
[00:20:25] 所以它們的。
[00:20:26] 這個共同出現的PROPRIETY。
[00:20:29] 就是那個高的值的分佈。
[00:20:31] 就會不太一樣。
[00:20:32] 所以。
[00:20:33] 就用這種方式。
[00:20:34] 去度量。
[00:20:35] 兩個EVENT。
[00:20:36] 或是兩個FUTURE。
[00:20:37] 之間的DISPUTION的相關性。
[00:20:39] 當然度量相關性。
[00:20:40] 這件事情有太多的。
[00:20:42] INDEX可以做了。
[00:20:43] 那。
[00:20:44] 可以算什麼。
[00:20:45] 相關係數。
[00:20:46] 或是什麼。
[00:20:47] 什麼這種。
[00:20:48] CORRELATION COEFFICIENT。
[00:20:50] 不過。
[00:20:51] 各式各樣。
[00:20:52] 那我們把這個MI呢。
[00:20:54] 用所謂的。
[00:20:56] 把。
[00:20:57] 一個字。
[00:20:58] 跟CONTEXT WORLD的。
[00:20:59] 角色。
[00:21:00] 把它放進這個公式。
[00:21:01] 它其實就是我們這邊。
[00:21:02] 所謂的POINT WISE。
[00:21:04] 的MUTUAL INFORMATION。
[00:21:06] 就是我現在。
[00:21:07] 我的TARGET WORLD。
[00:21:08] 跟我的周邊的字。
[00:21:11] 到底有沒有存在一個關係。
[00:21:13] 就是。
[00:21:14] 這個字寫在這裡。
[00:21:16] 到底是獨立的呢。
[00:21:17] 還是因為旁邊的字影響。
[00:21:19] 我才會必須寫這個字。
[00:21:21] 我們會去算這個PMI。
[00:21:23] 那PMI因為它這個是取LOG。
[00:21:26] 取LOG。
[00:21:27] 所以其實它有時候會是負的。
[00:21:29] 但是我們不希望有負的。
[00:21:31] 所以我們就定義這個叫PPMI。
[00:21:33] 它其實就是POSITIVE PMI。
[00:21:35] 其實就是把剛才那個。
[00:21:37] 那個MI的公式。
[00:21:39] 換上W跟。
[00:21:41] 那個TARGET WORLD跟CONTEXT。
[00:21:43] 把它全部的取正的字。
[00:21:45] 這樣子。
[00:21:47] 就是不會有負的字。
[00:21:49] 好。
[00:21:50] 所以一個很簡單的公式。
[00:21:51] 那我們來看一下。
[00:21:52] 我們現在如果這個。
[00:21:54] 這個例子。
[00:21:58] 我應該把原來的CONTEXT放進來。
[00:22:00] 不過。
[00:22:02] 這個是。
[00:22:03] 從某個教材。
[00:22:05] 延伸出來的。
[00:22:06] 它是一個DATASET。
[00:22:07] 小的DATASET。
[00:22:09] 然後我們去看它這邊有。
[00:22:11] 四個字。
[00:22:12] 跟這。
[00:22:13] 五個字。
[00:22:15] 那。
[00:22:17] 我這邊的。
[00:22:18] 這個情境是這樣。
[00:22:20] 我把這五個字呢。
[00:22:21] 當成所謂的CONTEXT。
[00:22:23] 你不要把它當成另外一個字。
[00:22:25] 就是有點想想像說。
[00:22:27] 我現在就是。
[00:22:28] 要對這樣的一個問題。
[00:22:30] 做這個。
[00:22:31] 五個。
[00:22:32] 維度的。
[00:22:33] 分類。
[00:22:34] 或是這五個維度的特徵。
[00:22:36] 所以我現在指呢。
[00:22:38] 這些字。
[00:22:40] 我要算它在這五個情境下的一個分數。
[00:22:44] 其實也是另外一個字。
[00:22:46] 沒錯。
[00:22:47] 這個當然是。
[00:22:48] 那我也可以自己定義一個別的字。
[00:22:50] 只是說你可以從語料庫裡面。
[00:22:52] 去算出這些東西。
[00:22:54] 譬如說我們一開始已經定義好這五個CONTEXT。
[00:22:57] 然後我現在要算這四個字。
[00:22:59] 在這邊的。
[00:23:01] 用這五個CONTEXT來描述的。
[00:23:04] 一種表示方式。
[00:23:06] 那。
[00:23:07] 我會先算。
[00:23:09] 會先算說。
[00:23:10] 譬如說。
[00:23:11] 這個CHERRY跟COMPUTER。
[00:23:13] 這個。
[00:23:14] 在這個CONTEXT WINDOW底下共同出現的次數是兩次。
[00:23:18] 那CHERRY跟DATA是八次。
[00:23:20] 那在整個DATASET裡面呢。
[00:23:22] CHERRY總共出現四百八十六次。
[00:23:24] 這樣子。
[00:23:25] OK。
[00:23:26] 那值的我們也可以算。
[00:23:28] 因為我們現在把這個CONTEXT當成是一個。
[00:23:30] 也是一個SINGLE的WORD。
[00:23:32] 所以我也可以算這樣的。
[00:23:34] 當然你說。
[00:23:35] 老師那我們要取什麼CONTEXT。
[00:23:37] 這個。
[00:23:38] 這個就。
[00:23:39] 在我們這邊我們可以隨意的去假設。
[00:23:41] 或是說。
[00:23:42] 你覺得你的問題。
[00:23:44] 你現在這個應用。
[00:23:46] 你現在比如說要做情緒分類。
[00:23:48] 你現在要定義什麼樣的CONTEXT。
[00:23:50] 你可以自己取出那個字。
[00:23:52] 但是你待會說。
[00:23:53] 那我這個CONTEXT越多越好。
[00:23:55] 就是有點像記憶學習裡面。
[00:23:57] 我的DIMENSION越高越好。
[00:23:59] 其實是可以。
[00:24:00] 不過我們這邊先做一個這樣的例子。
[00:24:02] 那給你一個語料庫呢。
[00:24:03] 你就可以統計出這個表格。
[00:24:06] 就是。
[00:24:07] 其實有點像字跟字之間的共同出現的一個FREQUENCY。
[00:24:11] 所以你會發現說。
[00:24:12] 像INFORMATION跟COMPUTER。
[00:24:14] 很常出現。
[00:24:15] 所以它這個COUNT很高。
[00:24:17] 那這邊比較像是食物。
[00:24:20] 所以它就會跟PIE、SUGAR比較多。
[00:24:23] FREQUENCY多一點這樣子。
[00:24:25] 好。
[00:24:27] 那這個。
[00:24:28] 這個圖表做出來。
[00:24:29] 大家可能就覺得。
[00:24:30] 這跟我們當初在講SVD的過程有點像。
[00:24:34] 也是在做DOCUMENT跟TURN。
[00:24:36] 然後FREQUENCY。
[00:24:37] 然後算一些共同出現的狀況這樣子。
[00:24:40] 好。
[00:24:41] 那我們現在就用這個。
[00:24:42] 這樣的一個CORE CURRENCY的MATRIX。
[00:24:44] 去算這個PPMI。
[00:24:46] 那我們先對它做NOMINATION。
[00:24:49] 算這個。
[00:24:50] 這個出現的PROPRIETY。
[00:24:53] 就是其實。
[00:24:54] 其實演算法只是把這個當分母。
[00:24:57] 這個當分母。
[00:24:58] 去NOMINALIZE這些東西這樣子。
[00:25:00] OK。
[00:25:04] 所以我們會得到一個分數的值。
[00:25:07] 那總量我們也可以得到一個分數的一個RATIO。
[00:25:10] 就是TOTAL的FREQUENCY。
[00:25:11] 去除的這樣子。
[00:25:13] 那得到這樣的一個RATIO值。
[00:25:15] 我們就可以去計算。
[00:25:16] 譬如說。
[00:25:23] 我們要去算說。
[00:25:25] 那REFERENCE這個。
[00:25:26] 應該把它框起來。
[00:25:27] 這個SUGAR跟CHERRY。
[00:25:29] 就是CHERRY的PROPRIETY。
[00:25:31] 跟SUGAR共同出現的。
[00:25:34] 但是CHERRY本身的PROPRIETY。
[00:25:36] 是0.0415在這裡。
[00:25:39] 那SUGAR自己的PROPRIETY呢。
[00:25:41] 是這個0.0052。
[00:25:44] 那它們共同出現的是0.0021。
[00:25:48] 那我們就根據PMI的公式呢。
[00:25:51] 得到這樣一個值。
[00:25:52] 所以我算出來。
[00:25:54] 這個PPMI。
[00:25:55] 這個。
[00:25:57] 這個CHERRY這個TARGET WALL。
[00:25:59] 在SUGAR這個CONTEXT底下。
[00:26:01] 得到3.3這樣子。
[00:26:03] 那我們就可以根據這樣的方式呢。
[00:26:05] 去計算出。
[00:26:06] 我要的TARGET WALL。
[00:26:08] 在我定義好的CONTEXT。
[00:26:10] 的。
[00:26:12] 的一個PPMI值。
[00:26:14] 當然另外一種做法。
[00:26:16] 你也可以把所有的TARGET WALL。
[00:26:18] 跟所有的把。
[00:26:20] 另外的TARGET WALL。
[00:26:21] 當成是CONTEXT。
[00:26:22] 去計算這些事情。
[00:26:24] 不過計算方式其實是一樣。
[00:26:27] 那算完之後呢。
[00:26:28] 我就得到一個新的MATRIX。
[00:26:30] 那這新的MATRIX其實意思是什麼。
[00:26:32] 我就可以把CHERRY呢。
[00:26:34] 用這五個數字來表示。
[00:26:37] 0004.38跟3.3。
[00:26:40] 它就得到一個這樣的VACTORY。
[00:26:42] 那。
[00:26:43] 這個跟TFIDF其實是。
[00:26:46] 有點像。
[00:26:48] 有點像。
[00:26:49] 只是說在這邊。
[00:26:50] 我們的維度。
[00:26:51] 就不是。
[00:26:52] 我們的DIMENSION。
[00:26:53] 就不是VOCABULARY的每一個字。
[00:26:55] 而是我們定義的。
[00:26:57] 我現在的情境是什麼。
[00:26:59] 我現在情境是什麼。
[00:27:01] 而且我上面的值。
[00:27:02] 也不是FREQUENCY。
[00:27:03] 也不是IDF。
[00:27:04] 我是用MATRIX INFORMATION的概念去計算。
[00:27:07] 那你也可以自己比較。
[00:27:09] 就是說。
[00:27:10] 那如果。
[00:27:11] 我可以拿到這個文獻。
[00:27:12] 那我用TFIDF做一遍。
[00:27:14] 然後再把這個。
[00:27:18] 用PBMI算每一個TURN的表示。
[00:27:21] 然後再把這個每個表示呢。
[00:27:23] 再INVADE回去整個Document的表示。
[00:27:26] 那當然中間還是有一個INTEGRATION的過程。
[00:27:30] 你可以發現其實。
[00:27:32] 會很接近。
[00:27:33] 會很接近。
[00:27:34] 因為基本上。
[00:27:35] 就是一個貢獻性的關係。
[00:27:38] 好。
[00:27:39] 不過這個。
[00:27:40] 這個當然。
[00:27:41] 這個會比之前我們在做SVD簡單許多。
[00:27:43] 這個會比之前我們在做SVD簡單許多。
[00:27:44] 因為SVD需要拆解整個矩陣。
[00:27:46] 然後需要去做。
[00:27:47] 做這種Principle的Vector出來這樣子。
[00:27:49] 然後需要去做。
[00:27:50] 做這種Principle的Vector出來這樣子。
[00:27:51] 那這邊呢。
[00:27:52] 我們就直接。
[00:27:53] 做統計。
[00:27:54] 印算。
[00:27:55] 然後算這個PMI這樣子。
[00:27:56] 然後算這個PMI這樣子。
[00:27:57] 好。
[00:27:58] 那只是說你可以想像。
[00:27:59] 就是說。
[00:28:00] 那我就可以用貢獻性的方式。
[00:28:01] 那我就可以用貢獻性的方式。
[00:28:02] 算這種Probability。
[00:28:03] 算這種Probability。
[00:28:04] 共同出現的關係。
[00:28:05] 共同出現的關係。
[00:28:06] 我可以知道。
[00:28:07] 每一個字在我設定的情境底下。
[00:28:11] 它的程度有多少。
[00:28:13] 所以如果你的應用。
[00:28:15] 所以如果你的應用。
[00:28:16] 在這五個空間中。
[00:28:17] 在這五個空間中。
[00:28:18] 這五個維度裡面。
[00:28:19] 就有辦法在你的應用區分出。
[00:28:21] 就有辦法在你的應用區分出。
[00:28:22] 你想要的結果的時候。
[00:28:23] 其實你也可以這樣做。
[00:28:24] 其實你也可以這樣做。
[00:28:25] 就是我把Digital。
[00:28:26] 就是我把Digital。
[00:28:27] 切出這五個數字。
[00:28:28] 就代表我認為很重要的。
[00:28:29] 就代表我認為很重要的。
[00:28:30] 五個Dimension的分數。
[00:28:31] 五個Dimension的分數。
[00:28:32] 那這五個Dimension的分數呢。
[00:28:33] 那這五個Dimension的分數呢。
[00:28:34] 你可以去算。
[00:28:35] 比如說。
[00:28:36] 這個語意之間的相關度。
[00:28:37] 比如說。
[00:28:38] 這個語意之間的相關度。
[00:28:39] 或者是。
[00:28:40] 我要去計算一些距離。
[00:28:41] 我要去計算一些距離。
[00:28:42] 或者是什麼。
[00:28:43] 我都可以用這種方式來計算。
[00:28:44] 我都可以用這種方式來計算。
[00:28:45] 這個計算量就小很多。
[00:28:46] 這個計算量就小很多。
[00:28:47] 這樣子。
[00:28:48] 這是我們之前舉的一個例子。
[00:28:49] 這是我們之前舉的一個例子。
[00:28:50] 不過。
[00:28:51] 我們是。
[00:28:52] 把它用一個壓縮後的。
[00:28:53] 把它用一個壓縮後的。
[00:28:54] 叫五個。
[00:28:55] 八個Dimension。
[00:28:56] 當中一個Concept Space。
[00:28:57] 當中一個Concept Space。
[00:28:58] 來去做。
[00:28:59] 當初這個Sentiment World。
[00:29:00] 當初這個Sentiment World。
[00:29:01] 這幾個Term。
[00:29:02] 去描述這樣子。
[00:29:03] 去描述這樣子。
[00:29:04] 但這個其實已經到。
[00:29:05] Dense Vector 的。
[00:29:06] 的。
[00:29:07] 的。
[00:29:08] 的地步了。
[00:29:09] 那其實你當初這個。
[00:29:10] 的地步了。
[00:29:11] 那其實你當初這個。
[00:29:12] 這個Context的部分呢。
[00:29:13] 這個Context的部分呢。
[00:29:14] 你如果用.
[00:29:15] 我們現在。
[00:29:16] 你如果word2vec去想像。
[00:29:17] 那個700多維。
[00:29:18] 或是300維的空間。
[00:29:19] 或是300維的空間。
[00:29:20] 其實有點像。
[00:29:21] 其實有點像。
[00:29:22] 只是我們這邊是。
[00:29:23] Given的字。
[00:29:24] 就是我必須知道是哪一個字。
[00:29:25] 哪一個字我才能算
[00:29:26] 但是你在做Wall-to-Vector
[00:29:29] 或是一些Wall-Embedding的時候
[00:29:31] 那個維度空間
[00:29:32] 我們是不需要去給它說
[00:29:35] 第一維是什麼概念
[00:29:37] 第二維是什麼概念
[00:29:38] 它就直接用一個壓縮後的
[00:29:42] Concept的一個Dimension
[00:29:44] 去度量這些東西
[00:29:46] 那怎麼去算這些東西
[00:29:48] 就是有各式各樣的方法
[00:29:50] 只是說後來都用Trend的方式
[00:29:53] 讓它去逼近我想要的語料的特性
[00:29:57] 然後去學會這些Vector的表現
[00:30:00] 就像我們當初Wall-to-Vector講的部分
[00:30:02] 所以PPMI
[00:30:06] 其實你也可以把它想像是
[00:30:08] 某一種Sparse Vector
[00:30:10] 只是你的Context
[00:30:12] 通常我們會取比較多一點
[00:30:13] 那維度大一點
[00:30:15] 然後它就是字跟字之間
[00:30:17] 或字跟Context之間的Relation
[00:30:19] 那轉換過來之後
[00:30:21] 我們希望說
[00:30:22] 這個這麼大
[00:30:24] 但是又有稀疏
[00:30:25] 好像不太有意義
[00:30:26] 這計算量又很高
[00:30:28] 然後也沒有真正Capture出
[00:30:30] 重點的Semantic的相似度
[00:30:33] 所以當然後面就所謂的Dense Vector
[00:30:35] 那我們當然希望說
[00:30:39] 我們把這個稀疏性
[00:30:40] 把它破壞掉
[00:30:41] 希望這整個Dense Vector的Embedding
[00:30:43] 能夠是一個比較連續型的向量空間
[00:30:47] 我不要這麼的01
[00:30:49] 或者是非常的稀疏
[00:30:51] 我希望所有的語言
[00:30:52] 都有然後能夠去
[00:30:55] 完全表現我的字的語義
[00:30:58] 但這件事情
[00:30:59] 當你在做第一個作業的時候
[00:31:00] 你可以思考一下
[00:31:01] 就是說我如果用300維度
[00:31:03] 或是768維度
[00:31:04] 去做一個字的Embedding的時候
[00:31:08] 你可以想像說
[00:31:09] 那我有點像是把人類所有的Token的表示
[00:31:15] 就用這768個數字來描述
[00:31:18] 這個以前在做機器學習的時候
## 8. 寫作規則
(這是 `_筆記SOP.md` 第 3.1、4、5、6 節的濃縮版。兩者衝突時以 SOP 為準。)
讀者:碩士生,兩門課期末是英文考試。要只看筆記就能學會,講得比老師好懂。畫面要簡潔。
**概念優先(2026-09-26 主理人)**:主理人只想懂概念,不想補數學、不想看程式碼和座標圖。兩門課的考試也都是問答題、不考算式(AI W1 1:16:52;NLP W3 1:47:41、2:48:36)。所以:
- 每段預設看得到的只有:白話摘要(2–4 句)+**一句生活比喻**(例:模擬退火像投資理財,年輕時敢冒險、越老越保守)+「考試可能怎麼問」一句。
- 數學推導、公式、手算、程式碼、座標圖,全部收進標題寫「(進階,可跳過)」的摺疊,例如「它到底怎麼運作?(進階,可跳過)」。每段最多一個進階摺疊,不要寫長篇計算。
- 演算法要能「用文字說出步驟」(考試可能要你描述),這一點放在預設看得到的地方,不用數字。
- **重心比例**:白話理論與概念模式(它在解決什麼問題、核心想法、跟別的方法差在哪、優缺點、生活比喻)占主要篇幅;數學與程式細節只用一兩句帶過,細節收進進階摺疊。
**圖文並茂(2026-09-26 主理人:不要只有文字)**:
- 每章至少 2–3 個圖,放在**預設看得到**的地方,每個圖前後各用一兩句白話說明「這張圖在看什麼」。
- 流程、步驟、因果、比較 → 用 mermaid 流程圖(```mermaid,flowchart LR 或 TD;節點文字用中文、加雙引號;一張圖不超過 10 個節點)。
- 投影片上的示意圖、架構圖 → 用 [[IMG: …]] 放投影片圖。
- 仍守「每個 ## 段落最多一種視覺元素」。
### 輸出兩個檔
1. `chNN.md`(Notion 寫法,不含頁面標題),結構固定:
- 第一行:章節包第 1 節那行,原樣照抄。
- 第二行起(有數學段才寫):**跳過提示**,每段一行,讓主理人看影片時知道從哪跳到哪。用章節包第 3b 節的候選當提示,對照第 7 節逐字稿確認(只標老師連續講公式、推導、矩陣、微積分、機率計算、程式細節超過約 1 分鐘的段落;概念講解和比喻不算):
`跳過提示:(1:31:02–1:35:40) 老師在推導梯度公式,聽不懂可以直接跳到 [1:35:40](YouTube 連結),接著講「步長 α 怎麼選」。`
- `## 重點`:三點中文,每點一到兩句。
- `## Exam-ready`:3–10 行英文,**從章節包的投影片文字逐字抄**,每行 `- **Term**: "原句"(Ch3 p.14)`。老師有明確證據才在行尾加 `【老師強調】(h:mm:ss)`。
**每一行下面一定要有一行縮排的中文解釋**(主理人英文不好,看不懂的英文等於沒用):
```
- **Hill climbing**: "It keeps track of one current state and on each iteration moves to the neighboring state with highest value."(Ch4 p.5)
- 中文:爬山法只記住「現在這一個狀態」,每一輪都移到分數最高的鄰居。白話:一直往比較高的地方走一步。
```
中文要先把句子意思講清楚,再補一句白話;最後用「英文(中文)」列出這句裡 1–3 個難字,例:sparse(稀疏)、distinct terms(不重複的字)。
**一行只放一句投影片原句**。同一頁有多句要考就拆成多行,每行各接一行中文;不要用分號串三句以上,不要把計算量 O(...) 塞進去。
- 章節包第 2 節的每一段:`## [h:mm:ss](連結) 標題`(照抄),下面 2–4 句白話摘要,其餘全部收進摺疊:
```
問句(例:用生活例子講,BFS 在做什麼?)
內容
```
摺疊種類(需要才放):用生活例子講?/它到底怎麼運作?/要先懂什麼?(老師假設你會的數學或概念,短版教學)/老師原話是什麼?(「原話」(h:mm:ss),只放重要的,最多 5 句)。
- 「它到底怎麼運作?」要用一組小數字把這段的演算法**真的跑 1–3 步**(例:算出梯度、更新一次、比較兩個 α),不是只示範定義的加減乘除。全章盡量沿用同一組數字,讓前一段的答案能在下一段被驗證。
- 每段正文要回答讀者最可能卡住的一個「為什麼」。投影片公式方向跟題目相反、或投影片說「解不出來」時,用一兩句講出原因,自己補的標(我補充)。
- 投影片句子停在公式前(公式在圖裡)時:Exam-ready 在粗體詞條上補公式、引號內保持原句;正文寫出同一條式子。公式圖看章節包第 6 節列出的 PNG。
- `## Self-check`:2–4 題英文考題,答案收摺疊。**至少一題考老師強調的內容**;只出 explain/why/compare 這類問答題,**不出要代數字計算的題目**(考試不考算式);不出「老師和投影片哪裡不同」這類不會考的題目。每題格式:
```
Q1. English question?(中文:中文題目)
**Answer**: English answer.
中文:把答案完整講一遍(不是只翻一句),讓看不懂英文的人也知道要怎麼答。
```
- **最後一行**:章節包第 1b 節那行(下一章連結),原樣照抄。讓讀完的人直接點下一章。
- 不要把章節包或這份規則裡的指示句寫進筆記(例如「寫筆記時照投影片寫」「已改正 ASR 錯字」)。
- 長度:全文不超過 16,000 字元(跟 check_note.py 同一個數字)。**不要為了壓字數反覆刪改**(實測一章最多花 12 輪在刪字);超過時只刪進階摺疊裡的第二組算例,比喻、比較表、圖說、「老師說不用背」的提醒都不刪。
- 預設看得到的正文不放計算量 O(...)、代號對照(例如 SMART 字母)、課本出處考據,一律移進進階摺疊。
2. `chNN.concepts.json`:JSON 陣列,4–12 個考試可能問的術語,每個物件:
`name`(英文)、`zh`、`type`(概念/演算法/公式/人物事件/前置知識/行政)、`signal`("老師說會考"/"老師強調"/"核心(我判斷)"/"")、`evidence`(有 signal 前兩種時必填:原句+時間)、`definition_en`(投影片原句;沒有就註明 (textbook)/(lecture)/(my wording))、`plain`(一句中文)、`a4`(≤150 字元英文,可夾極短中文;期末拼貼用的小方塊)、`time`、`slides`、`prereq`(英文名陣列)。
### 風格鐵律
- 不用 emoji 或裝飾符號(✓✗★⚠ 都不要;→ 可以)。不用 callout。不用 `$`。時間不要用 code 樣式。
- 每個 `##` 段落最多一種視覺元素:一張圖、或一個表格、或一個 mermaid。
- 摺疊標題是問句,前面不加符號。
- 圖片最多 3 張,只放文字取代不了的圖。放法:單獨一行 `[[IMG: | 中文圖說]]`,PNG 用 `slides_to_png.py <圖片資料夾> <頁> --dpi=110` 產生。
- 考試訊號只在老師明確說時標。老師只說「不用背」「不講」就寫「注意:……」。
- 老師口誤或跟投影片不同:照投影片寫,加「注意:老師口頭說的是……」。
- 引用老師的話時,ASR 錯字改成正確的字。
### 沒有投影片時
不要憑記憶逐字重現課本段落或數值表。英文定義用自己的話寫、句尾標 (my wording);Exam-ready 每行標「(自擬,投影片待補)」。例子只用老師講的。
### 寫完之後(只做一次)
跑檢查:
`C:\Users\user\.cache\meeting-record\venv\Scripts\python.exe C:\Users\user\.claude\scripts\check_note.py --transcript <逐字稿> --slides <投影片 txt …> --start <起> --end <訖> --vid <影片 ID>`
- STYLE/VISUAL/TIME/FORMAT:全部改掉。
- QUOTE:確認是不是你改正了 ASR 錯字(是就保留),不是就改成原文或拿掉引號。
- ENGLISH:確認是不是投影片斷行造成的(是就保留),不是就改成投影片原句。
**省額度守則**:章節包裡已經有你需要的全部資料。不要再去讀整份逐字稿、整份投影片、segments.json 或手冊。一次寫好整個檔(Write 一次),檢查後集中修改。