結論:同樣字數下,論壇教材讓語意類大輸(⟦R:q3_forum_sem⟧ vs ⟦R:q3_ctrl_sem⟧)、部分語法小類反而贏——教材種類決定字典學到什麼(單次實驗)。
為什麼:百科全書一直寫地理和國家,網友一直講「最便宜、比較好、正在找」。細節和數字在下面 3.1、3.3。
拿一份「不是維基百科」的文字來訓練字典,考同一張考卷,然後回答三件事:
程式一定要放在報告下面,沒放這題 0 分(作業規格 PDF p31)。
| 維基百科 | 卡達論壇 | |
|---|---|---|
| 是什麼 | 百科全書 | 住在卡達的外籍人士互相問問題:簽證、租房、薪水、買車 |
| 誰寫的 | 編輯,有人校稿(外部知識) | 一般網友,隨手打 |
| 文字風格 | 正式、完整句子 | 口語、縮寫、錯字很多、很多問句 |
| 主題 | 什麼都有:歷史、地理、科學、人物 | 很集中:卡達的生活大小事 |
| 結構 | 一篇很長的文章(20% 樣本平均每篇約 592 字;推算:666,053,126 字 ÷ 1,124,733 篇) | 一則發問+很多短留言(平均每段約 34 字;推算:72,919,300 字 ÷ 2,118,254 段) |
| 大小 | 都是 7,292 萬字(見下面「維基對照組」) | |
來源:SemEval 2016/2017 Task 3 的公開資料(外部知識),Gensim 可以直接下載。共 189,941 個討論串;標題、內文、每則留言各算一段,刪掉少於 3 個字的段落後,留下 2,118,254 段(筆記本輸出寫作 posts)。
論壇只有 7,292 萬字,維基 20% 有 6.66 億字,差了 9 倍(推算:6.66 億 ÷ 7,292 萬 ≈ 9.1)。如果直接拿論壇跟維基 20% 比,論壇輸了,你分不出是:
所以我從維基裡切出剛好一樣多字(7,292 萬字)的一份當「維基對照組」,用一模一樣的參數訓練。這樣兩邊主要只差在教材種類,比較才公平。
下面三張表各回答一個問題:① 論壇字典考幾分?(3.1 成績)② 論壇字典是不是很多字根本沒收?(覆蓋率)③ 把「有字沒收」的題目拿掉,只比兩本字典都查得到的 15,684 題,論壇還是輸嗎?(公平比較)③ 的答案是「語意類還是輸」,所以差別不只是缺字。
| 小類 | 維基對照組 | 論壇 | 誰贏 |
|---|
「誰贏」照筆記本 beyond noise? 的規則:差距超過該小類的雜訊才判(只看有沒有超過,不分是不是 1.5 倍)。但雜訊是在 5% 維基(1.66 億字)量的;論壇和維基對照組的教材更小,雜訊可能更大,所以「剛好超過雜訊」的語法類 −1.34 只當參考。
「覆蓋率」=這個小類的題目裡,四個字全部都在字典裡的比例。答案不在字典裡,再聰明也答不出來。
小例子(假設的):4 題全世界首都,其中 2 題的四個字論壇字典都收了 → 覆蓋率 = 2 ÷ 4 = 50%。另外 2 題一定答錯。
| 小類 | 維基對照組 | 論壇 |
|---|
論壇字典比較小、很多字查不到,這本身就會讓論壇正確率變低。為了把這個因素排除,筆記本另外只算「四個字在兩本字典都查得到」的 15,684 題:
| 維基對照組 | 論壇 | |
|---|---|---|
| 整體 | 42.80 | 32.12 |
| 語意類 | 52.80 | 22.10 |
| 語法類 | 37.91 | 37.01 |
| 最高級 | 18.28 | 42.90 |
| -ing | 31.82 | 51.33 |
| 國名→國籍 | 77.12 | 22.81 |
| 過去式 | 40.96 | 33.78 |
學到什麼:就算字都查得到,論壇語意類還是大輸、最高級和 -ing 還是大贏。所以差異不只是「論壇字典小、查不到字」,而是兩份教材的內容真的不一樣。
| 字 | 維基對照組的 5 個鄰居 | 論壇的 5 個鄰居 |
|---|
猜原因之前,先算數字。下面是「每 100 萬個字裡出現幾次」(兩份教材一樣大,可以直接比)。
怎麼換成次數(推算,筆記本只印每 100 萬字):cheapest 在論壇每 100 萬字 27.50 次,論壇教材共 72.92 個「100 萬字」,所以大約出現 27.50 × 72.92 ≈ 2,005 次;維基對照組 0.96 × 72.92 ≈ 70 次。27.50 ÷ 0.96 ≈ 28.6 倍。
| 字 | 維基對照組 | 論壇 | 論壇是維基的幾倍 |
|---|---|---|---|
| cheapest(最便宜) | 0.96 | 27.50 | 28.64 倍 |
| biggest(最大) | 37.26 | 59.97 | 1.61 倍 |
| best(最好) | 553.01 | 988.65 | 1.79 倍 |
| looking(正在找) | 56.31 | 680.74 | 12.09 倍 |
| cheaper(更便宜) | 7.78 | 80.27 | 10.32 倍 |
| going | 104.22 | 914.05 | 8.77 倍 |
| better(更好) | 116.98 | 990.40 | 8.47 倍 |
| bigger | 13.12 | 53.58 | 4.08 倍 |
| husband/wife | 104.85/212.38 | 418.87/605.50 | 3.99/2.85 倍 |
| goes | 66.47 | 235.33 | 3.54 倍 |
| capital(首都) | 160.38 | 43.23 | 0.27 倍 |
| brazilian(巴西人) | 42.43 | 33.46 | 0.79 倍 |
| albanian(阿爾巴尼亞人) | 13.37 | 0.75 | 0.06 倍 |
| illinois(伊利諾州) | 90.02 | 1.10 | 0.01 倍 |
這張表在筆記本第 3 題的程式區(「第 3 題補充證據」那一格,畫面上是 In [30]),數字照抄筆記本輸出。
| 發現 | 原因 |
|---|---|
| 首都、城市、貨幣:論壇慘輸 | 網友很少聊非洲國家的首都或美國的州(推論)。覆蓋率表顯示,論壇字典裡連字都沒有:全世界首都只有 ⟦R:q3_cov_capworld⟧ 的題目四個字都查得到,貨幣只有 ⟦R:q3_cov_currency⟧。就算字有(常見國家首都覆蓋率 100%),(推論)出現次數太少、也很少出現在「首都是…」這種前後文,關係學不起來;capital 一字在論壇只有維基的 0.27 倍可以間接支持。 |
| 國名→國籍:論壇大輸 | (推論)albanian 在論壇只有維基的 0.06 倍;但 brazilian 也有 0.79 倍,國名→國籍仍大輸——可能是「巴西–巴西人」這種成對關係,在論壇裡很少出現在相同的前後文。 |
| 比較級、最高級、-ing、動詞第三人稱:論壇反而贏 | 上面的字頻表顯示,網友用 cheapest、looking、better、goes 的頻率是維基的 3.5~28.6 倍。(推論)字形出現越多次、前後文越一致,詞向量越準。 另一個可能的因素:論壇字典只有維基對照組字典的一半大(100,310 vs 224,050 字,In [28]),干擾的候選字比較少。「公平比較」排除查不到的題目後論壇仍然贏,但字典大小的影響沒有完全排除。 |
| 家人/性別:差不多 | 差 2.97 個百分點,小於這個小類的雜訊 4.74,不下結論。 |
| 論壇的鄰居常常是錯字 | 上面 7 個字裡,salary、family、doha、visa 四個字的論壇鄰居大多是錯字(salary 的鄰居是 slary、salry、salery、sallary、salaray);king、paris、computer 則不是。錯字的前後文跟正確的字高度相似,詞向量用前後文學,所以把錯字當成最像的字。維基有人校稿,比較少這樣(推論)。老師投影片 W1 p94 也寫「Vector search is not robust to typos」。 |
| 論壇學到了在地用語 | visa 的鄰居有 iqama(卡達居留證)、rp(residence permit)(這兩個字的意思是外部知識);doha(卡達首都)的鄰居有 doah(doha 的錯字)、qata、qatat、qutar(qatar 的錯字)。 |