最後更新:2026年9月21日

CHI 3242 課程大綱 · 投影片(Slides)

第3週 搭配詞(補課)

1. 什麼是搭配詞?

搭配詞(collocation):兩個詞在自然語言中傾向於彼此靠近出現,稱為共現(cooccur)。例如「喝—茶」「天氣—好」是搭配,「喝—桌子」不是。Firth(1957):You shall know a word by the company it keeps.(觀其伴,知其義。)

問題:怎樣「測量」這種吸引力,並和偶然區分開?想法是把真實語料和「詞語隨機排列」比較:真實語料中共現的次數遠多於隨機預期,就是搭配詞。

2. 觀察值 O 與期望值 E

先固定兩個詞:目標詞 X(例:王婆)和搭配詞 Y(例:痛苦)。

算 E 分三步:

  1. 隨機抽一個詞剛好是 Y 的機率:\(P(Y) = \dfrac{\text{count}(Y)}{N}\)(\(N\) 是語料總詞數)。
  2. X 周圍有多少個位置:\(\text{count}(X) \times \text{視窗大小} \times 2\)(左右兩邊)。
  3. \(E = P(Y) \times \text{位置數}\)。

例(數字為示意):

計算:

3. 互信息 MI 與 PPMI

把 \(O/E\) 取以 2 為底的對數,得到(點)互信息 MI:

\[\mathrm{MI} = \log_2 \frac{O}{E}\]

\(\log_2 x\) 的意思是「2 的幾次方等於 \(x\)」。所以比值每多一倍,MI 加 1;每少一半,MI 減 1;\(O = E\) 時 MI \(= 0\)。上例:\(\mathrm{MI} = \log_2 6.7 \approx 2.74\)。

\(O/E\)MI意思
\(1/4\)\(-2\)遠少於偶然
\(1/2\)\(-1\)少於偶然
\(1\)\(0\)如偶然
\(2\)\(+1\)多一倍
\(4\)\(+2\)4 倍
\(8\)\(+3\)8 倍

PPMI(正的點互信息)把負值一律設為 0:

\[\mathrm{PPMI} = \max\!\left(0,\ \log_2 \frac{O}{E}\right)\]

負值表示兩詞互相「排斥」,但語料不夠大時不可靠。PPMI 常用於詞向量。

4. 簡單指標的問題

Evert 舉了一個例子(語料約 100 萬個雙詞組)。她沒有用視窗,而是只看雙詞組(bigram):兩個詞緊鄰,搭配詞 Y 就是目標詞 X 前面的那個詞。每個目標詞前面只有一個位置,所以位置數就是 count(X),E 的算法變成:

\[E = P(Y) \times \text{count}(X)\]

比較兩個詞對(Y 是前一個詞,X 是後一個詞;\(N = 1{,}000{,}000\)):

詞對count(Y)count(X)\(P(Y)\)\(E\)\(O\)
the Iliad100,000100.1110
must also1,0001,0000.001110

兩者都是 \(O = 10\)、\(E = 1\),所以 \(O/E = 10\)、\(\mathrm{MI} = \log_2 10 \approx 3.32\):分數完全一樣。

但直覺上 the Iliad 強得多。Iliad 只出現 10 次,而且每一次前面都是 the,\(O = 10\) 已是可能的最大值;must 與 also 各出現 1,000 次,本來可以共現多得多。\(O\) 與 \(E\) 忽略了語料中其他的一切,我們還要看兩個詞沒有共現的情況。

5. 列聯表

對兩個事件 \(X\)、\(Y\),每個個案恰好落入四格之一:

Y 發生Y 不發生
X 發生a(兩者都發生)b(只有 X)
X 不發生c(只有 Y)d(都沒有)

列聯表無處不在:吸煙 × 肺癌、慣用手 × 性別、兩個詞 × 句子。問題都一樣:兩個性質是否互相獨立?詞對的觀察值 \(O\) 就是左上角的 \(a\)。

6. Fisher 精確檢定

預備知識:n 選 k

從 \(n\) 個中選 \(k\) 個、不計順序,有

\[\binom{n}{k} = \frac{n!}{k!\,(n-k)!}\]

種選法。例如從 8 杯中選 4 杯:\(\dbinom{8}{4} = \dfrac{8!}{4!\,4!} = 70\)。

奶茶實驗

Fisher(1935):一位女士聲稱能分辨奶茶是「先倒牛奶」還是「先倒茶」。8 杯外觀相同(4 杯先牛奶、4 杯先茶),她要指出哪 4 杯先牛奶。全部答對的機率只有 \(\dfrac{1}{70} \approx 0.014\),靠猜很不可能;答對 3 杯的機率 \(\dfrac{17}{70} \approx 0.243\),可能只是運氣。這就是 Fisher 精確檢定的想法:這張表在「純屬偶然」下有多不可能?

一張表的機率

固定各行各列的總數,一張特定的表(a, b, c, d)在「純屬偶然」下的機率是:

\[p = \frac{\dbinom{a+b}{a}\dbinom{c+d}{c}}{\dbinom{N}{a+c}}\qquad (N = a+b+c+d)\]

檢定要把這張表和所有更極端的表的機率加起來。

例(數字為示意):20 位學生(10 女、10 男),其中 10 位有讀書,8 位是女生。「更極端」是指有讀書的女生更多(9 位、10 位)。三張表如下(每行每列的總數都固定):

有讀書的女生女生(讀 / 不讀)男生(讀 / 不讀)這張表的機率
8 位(實際)8 / 22 / 8\(\dfrac{2025}{184756} \approx 0.0110\)
9 位9 / 11 / 9\(\dfrac{100}{184756} \approx 0.0005\)
10 位10 / 00 / 10\(\dfrac{1}{184756} \approx 0.000005\)

三張表機率加起來:\(p = \dfrac{2126}{184756} \approx 0.0115 < 0.05\),所以性別與讀書的關聯顯著。

回到 the Iliad / must also

兩個詞對的 \(O\) 和 \(E\) 一樣,現在看完整的列聯表。每一項是一個雙詞組(共 1,000,000 個);列=前一個詞,欄=後一個詞。

the Iliad(\(a = 10\),count(the) = 100,000,count(Iliad) = 10)

Iliad非 Iliad
the1099,990
非 the0900,000

must also(\(a = 10\),count(must) = 1,000,count(also) = 1,000)

also非 also
must10990
非 must990998,010

差別在 \(c\):the Iliad 的 \(c = 0\)(每個 Iliad 前面都是 the),must also 的 \(c = 990\)(also 大多沒有 must 在前面)。Fisher 檢定給出:

兩者都「顯著」,但 the Iliad 的 \(p\) 小 1000 倍。實際用法是把 \(p\) 值當作分數來排序:the Iliad 排在前面,而 \(O/E\) 和 MI 做不到這一點。

7. 三種「相鄰」的定義

同一張列聯表,只是「共現項目(item)」不同:先決定項目是什麼,再問每個項目是否含 X、是否含 Y。

視窗法句子法語法關係法
「相鄰」是指k 個詞之內同一個句子有語法關係(如形容詞→名詞)
計數單位詞句子搭配對
需要選定 k分句句法分析器

例:在小語料中找(好, 天氣)。

各方法的 \(O\) 就是各自列聯表的 \(a\)。前面 Evert 的 the Iliad 例子用的是最小的視窗:只看緊鄰的前一個詞。

8. 回顧

  1. 搭配詞:兩個詞比偶然更常在附近一起出現。
  2. 觀察值 \(O\) 對期望值 \(E\);取對數得 MI,去掉負值得 PPMI。
  3. 列聯表:也記錄「沒有」共現的情況(a, b, c, d)。
  4. Fisher 精確檢定:這張表在「純屬偶然」下有多不可能?
  5. 三種「相鄰」:視窗、句子、語法關係,同一張表、不同的「項目」。

閱讀