10 報告第 3 題:換一種教材(15%,配分最高)

結論:用卡達論壇的網友留言當教材,語意類慘輸維基(⟦R:q3_forum_sem⟧ vs ⟦R:q3_ctrl_sem⟧),語法類加總只略低 1.34(剛好超過雜訊 1.26),比較級、最高級、-ing 還贏。原因是:百科全書一直寫地理和國家,網友一直講「最便宜、比較好、正在找」。教材的種類,決定字典學到什麼。

這一題在問什麼

拿一份「不是維基百科」的文字來訓練字典,考同一張考卷,然後回答三件事:

  1. 3.1 成績如何(5%)
  2. 3.2 你選的語料是什麼、跟維基差在哪:大小、主題、結構(5%)
  3. 3.3 成績為什麼變好或變差(5%)

程式一定要放在報告下面,沒放這題 0 分。

我選的教材:卡達生活論壇(Qatar Living)

維基百科卡達論壇
是什麼百科全書住在卡達的外籍人士互相問問題:簽證、租房、薪水、買車
誰寫的編輯,有人校稿一般網友,隨手打
文字風格正式、完整句子口語、縮寫、錯字很多、很多問句
主題什麼都有:歷史、地理、科學、人物很集中:卡達的生活大小事
結構一篇很長的文章(20% 樣本平均每篇約 592 字)一則發問+很多短留言(平均每段約 34 字)
大小都是 7,292 萬字(見下面「對照組」)

來源:SemEval 2016/2017 Task 3 的公開資料,Gensim 可以直接下載。共 189,941 個討論串;標題、內文、每則留言各算一段,刪掉少於 3 個字的段落後,留下 2,118,254 段(筆記本輸出寫作 posts)。

關鍵設計:為什麼要多做一個「維基對照組」

論壇只有 7,292 萬字,維基 20% 有 6.66 億字,差了 9 倍。如果直接拿論壇跟維基 20% 比,論壇輸了,你分不出是:

所以我從維基裡切出剛好一樣多字(7,292 萬字)的一份當「對照組」,用一模一樣的參數訓練。這樣兩邊只差在內容種類,比較才公平。

這就是會拿高分的地方
大部分人會直接拿「另一份語料」跟「維基 20%」比,然後說「因為資料比較少所以比較差」。能想到「要控制資料量」的人,報告 3.3 題就有說服力。這種「一次只改一個變數」的想法,叫控制變因,考試也很可能問。

3.1 成績

⟦R:q3_rows⟧
小類維基對照組論壇誰贏

答案覆蓋率:字典裡有沒有這些字

「覆蓋率」=這一類的題目裡,四個字全部都在字典裡的比例。答案不在字典裡,再聰明也答不出來。

⟦R:q3_cov_rows⟧
小類維基對照組論壇

公平比較:只算兩本字典都查得到的題目

論壇字典比較小、很多字查不到,這本身就會讓論壇分數變低。為了把這個因素排除,筆記本另外只算「四個字在兩本字典都查得到」的 15,684 題:

維基對照組論壇
整體42.8032.12
語意52.8022.10
語法37.9137.01
最高級18.2842.90
-ing31.8251.33
國籍77.1222.81
過去式40.9633.78

學到什麼:就算字都查得到,論壇語意類還是大輸、最高級和 -ing 還是大贏。所以差異不只是「論壇字典小、查不到字」,而是兩份教材的內容真的不一樣。

同一個字,兩本字典學到的鄰居

⟦R:q3_neighbor_rows⟧
字維基對照組的 5 個鄰居論壇的 5 個鄰居

證據:同樣的字,在兩份教材裡出現幾次

猜原因之前,先算數字。下面是「每 100 萬個字裡出現幾次」(兩份教材一樣大,可以直接比):

字維基對照組論壇論壇是維基的幾倍
cheapest(最便宜)0.9627.5028.64 倍
biggest(最大)37.2659.971.61 倍
best(最好)553.01988.651.79 倍
looking(正在找)56.31680.7412.09 倍
cheaper(更便宜)7.7880.2710.32 倍
going104.22914.058.77 倍
better(更好)116.98990.408.47 倍
bigger13.1253.584.08 倍
husband/wife104.85/212.38418.87/605.503.99/2.85 倍
goes66.47235.333.54 倍
capital(首都)160.3843.230.27 倍
brazilian(巴西人)42.4333.460.79 倍
albanian(阿爾巴尼亞人)13.370.750.06 倍
illinois(伊利諾州)90.021.100.01 倍

這張表在筆記本第 3 題的程式區(「第 3 題補充證據」那一格,畫面上是 In [30]),數字照抄筆記本輸出。

不要只挑對自己有利的證據
頻率能解釋一部分,但不是全部:biggest 在論壇只多 1.61 倍、best 只多 1.79 倍,最高級卻大贏 23 分;brazilian 在論壇也有維基的 0.79 倍,國籍類卻大輸 55 分。(推論)關鍵可能不只是「單字出現幾次」,而是「國家–國籍」「原級–最高級」這種成對關係,有沒有在同樣的前後文裡反覆出現。把反例也寫進報告,會比只放支持的數字更有說服力。

3.3 為什麼(這段就是報告要寫的內容)

發現原因
首都、城市、貨幣:論壇慘輸網友很少聊非洲國家的首都或美國的州。覆蓋率表顯示,論壇字典裡連字都沒有:全世界首都只有 ⟦R:q3_cov_capworld⟧ 的題目四個字都查得到,貨幣只有 ⟦R:q3_cov_currency⟧。就算字有(常見國家首都覆蓋率 100%),出現次數太少、也很少出現在「首都是…」這種前後文,關係學不起來。
國籍:論壇大輸(推論)albanian 在論壇只有維基的 0.06 倍;但 brazilian 也有 0.79 倍,國籍類仍大輸——可能是「巴西–巴西人」這種成對關係,在論壇裡很少出現在相同的前後文。
比較級、最高級、-ing、動詞第三人稱:論壇反而贏上面的字頻表顯示,網友用 cheapest、looking、better、goes 的頻率是維基的 3.5~28.6 倍。(推論)字形出現越多次、前後文越一致,座標越準。
另一個可能的因素:論壇字典只有對照組的一半大,干擾的候選字比較少。「公平比較」排除查不到的題目後論壇仍然贏,但字典大小的影響沒有完全排除。
家人:差不多差 2.97,小於家人類的雜訊 4.74,不下結論。
論壇的「最像的字」都是錯字salary 的鄰居是 slary、salry、salery、sallary、salaray;family 的鄰居是 familly、fmaily。錯字的前後文跟正確的字高度相似,詞向量用前後文學,所以把錯字當成最像的字。維基有人校稿,不會這樣。老師投影片 W1 p94 也寫「Vector search is not robust to typos」。
論壇學到了在地用語visa 的鄰居有 iqama(卡達居留證)、rp(residence permit);doha(卡達首都)的鄰居有 doah(doha 的錯字)、qata、qatat、qutar(qatar 的錯字)。
考試可能問
「用不同語料訓練,結果為什麼不同?」→ 字典學的是每個字出現在什麼樣的前後文;教材的主題和文體不同,常出現的字和句型就不同。
「要怎麼公平地比較兩種語料?」→ 控制資料量一樣(對照組),其他參數也都一樣,只改一個變數。
「網路論壇資料有什麼問題?」→ 錯字、縮寫、HTML、網址,要清理;錯字會變成「最像的字」。