MiniCorpJS
Version 0.5 - Last updated on January 22, 2008

MiniCorp是什麼?

略過簡介


MiniCorpJS i是一個小規模的語料分析工具。 它能以簡單的方式幫助使用者產生、探索、並以量化分析語料庫資料,特別是字典上羅列的音韻語料,並得出最有效的結果。和其他以優選理論為基礎的音韻分析軟體(例如: 這個軟體)不同的是, MiniCorp並不能自動學習語法,而是將音韻學者但憑直覺的假說測試方式形式化。

簡潔性: 若你已經有現成的音韻語料,你將能在數分鐘內將直覺轉換為有統計結果支持的通則。一些特別的工具將能加速語料庫的標記。

權威性: MiniCorpJS應用了語料庫語言學家分析音韻語料的技巧,使用量化的方式探查語料中隱藏的通則並在優選理論的架構下測試與語料相關的假說。


軟體需求:MiniCorpJS 的主體就是你目前正瀏覽的頁面:一個內含JavaScript的HTML文件。MiniCorpJS 已經多次在Firefox 2.0 (繁體中文版) WindowsXP Professional 5.1的環境下測試。它應該也相容於Internet Explorer for Windows (6.0版)。 MiniCorpJS內含的JavaScript指令應可於任何1997後發佈的網頁瀏覽器,但若你發現任何不相容的情形或有對新功能的建議,歡迎你向我 們反映。

為了執行MiniCorpJS的分析功能,你必須安裝R。這是一個免費但功能強大的統計軟體,並正成為統計軟體中的主流 (www.r-project.org)。因此它可能是一個你想擁有的統計軟體。想知道更多有關R的資訊,像是如何下載及安裝,請按 這裡


更多背景知識: 若這是你第一次使用MiniCorpJS,我們建議你在使用前先閱讀本部分來瞭解你將會做什麼。完整列印 MiniCorpJS 大概長約八頁。

MiniCorpJS包含了一系列程序,進行的過程中有些步驟能自動執行,某些則需要你照著引導操作。這些步驟可被分為三大部分:標記、探索(非必 須)、以及假說測試。由於目前MiniCorpJS尚無法完整儲存一次操作,最安全的作法是將所有步驟一次完成。同樣地,在操作時請勿重新整理頁面,否則 資料可能會消失。為了安全起見,你在操作時可以從視窗中複製資料並存檔。 

若你想在離線狀態下使用MiniCorpJS,請將本網頁(以及這個網頁,若你需要的話)的儲存在電腦中。 以離線狀態開啟包含JavaScript的網頁可能會讓新版的Internet Explorer出現警告訊息。請放心,MiniCorpJS並不會主動存取任何你硬碟中的資料( 在程式中輸出或輸入資料的方式是請你從文字視窗中複製或貼上)。若你遇到任何安全性的警告,你可以讓Internet Explorer停止阻擋JavaScript運作,或更換其他更適合的瀏覽器

MiniCorpJS的著作權受到GNU通用許可證保護。基本上,這代表你可以自由散佈(例如:架設鏡像站)並以你想要的方式修正這個軟體,包括將它整合進商用軟體之中。但MiniCorpJS的貢獻必須被提及,並在新軟體中保持公開。有關這部分的資訊請參考網頁來源或這裡

目前MiniCorpJS仍未臻完美,若使用時有任何問題或有任何改進的方法,請聯絡作者。來信時請註明你的作業系統、瀏覽器種類及版本、以及錯誤發生時的操作情形。 MiniCorpJS將會慢慢更新,但若你等不及了,可以嘗試自行修改。 

若你的研究使用了MiniCorpJS,請將它放入你的參考資料。 MiniCorpJS也會是課堂上有用的教學工具。 

若你想知道更多有關於極簡式語料庫音韻學、MiniCorp、以及R,請按這裡 



步驟

MiniCorpJS的操作包含了下列的步驟,請往下一步一步操作:(若你要繼續未完成的操作,請直接到上次中斷的部分)



準備語料庫

要從MiniCorp獲得分析,首先必須要有一些準備好的語料。語料的來源可能是整部電子/線上 字典,或是一部分經過有系統地定義(以優選理論的說法:所有的語料都遵守一些排序較高的音韻或構詞制約)並完成標記的語料。MiniCorp的分析部分基於 語料的標記,但更大一部份建立在語料所屬的類別。以語料庫語言學的用詞來說,就是每一個類別都有對應的"標記"。為了極簡化標記的程序,MiniCorp 提供了能自動分配標記的工具。這些標記並非毫無章法,而是代表了某些音韻假說。更精確的說法是,它們代表了優選理論中的制約。因此,語料的標記代表了它們 所違反的制約。


載入語料

請將你的語料貼入以下的大視窗,每一行限一筆語料。若你的語料轉記使用了非典型的字形,請試著在下面的小視窗輸入字形的名稱。請注意:MiniCorpJS僅支援Unicode字型(例如:Doulous SIL),非Unicode的字型(例如:SIL Doulous)則不一定能被根據國際瀏覽器標準制訂的瀏覽器所接受。

載入語料之後,請按下核可語料繼續。早期的MiniCorp只能處理三萬筆以下的語料。

               在此輸入語料

(可能無法適用於所有瀏覽器!)





(MiniCorp會以改變顏色表示接受語料)

標記語料 略過簡介

MiniCorp只會以你對語料所做的標記來分析其中的通則。 在MiniCorp中,標記代表的是一些被一部份語料所違反的制約(不分標記性制約或真實性制約)。從制約違反中找出的通則因此反映了語料的音韻性質。(例子請看以下或這裡)。初期版本的MiniCorp最多只能設置十個制約。 

首先,請先下列的表格上方輸入制約的名稱。輸入的順序不一定需要對應你的分析,你可以在之後的步驟選擇忽略某些制約。注意:根據R的規範,制約的名稱不能包含空白或除了"_"和"."之外的標點符號。同時,制約也不能以數字開頭。因此請參考以下的範例來修改常見的制約名稱:*Voice -> xVoice,Ident(Voice) -> IdentVoice。 

接下來,請檢查每一筆語料與每一條制約的關係。若某筆語料違反了某條制約,請按下對應的空白按鈕讓按鈕出現"*"。若你想讓"*"消失,請再按一次按鈕(早期的MiniCorp預設每筆語料只能違反制約一次,因此只能得到一個"*")。

要回復最近一次的改變(包括下面將提到的按鈕),請按復原。

若你的語料筆數過多,你可以以兩種方式手動標記:

以下以一個有{p, t, k, b, d, g, a, i, u}的音韻清單的語言為範例,示範如何在這個語言中標示標記性制約:

真實性制約較難自動標示,因為輸入(優選理論中的"input")在語料庫中並無法直接表示。但MiniCorp能以半自動的方式標示可能違反真實性制約的語料。若這個步驟無效,你必須以手動的方式標示違反真實性制約的語料。例如:

若所有語料都已被正確標示,請按確認標示。

制約名稱:

正規表示法:


儲存已標記語料

若一切順利,下方的視窗應會出現語料的標記 (語料以輸入時的順序代表)。數字表示制約違反的次數。為了進行下一步分析,請複製並將視窗中的內容儲存為一個文字(.txt)檔

請由此複製 已標記語料

略過到測試假說



探索語料 略過到測試假說

和語言學實驗不同,語料庫中的資料存在於設定你的研究假說之前。因此以非方向性的方式(例如:不特定設定某個性質的出現會伴隨或禁止另一個性質的產 生)來觀察通則通常會得到較好的效果。此外,從語料庫中的資料所具備的特性可能會在實驗中產生影響。因此在設計或分析實驗之前,先發現語料的某些特性也會 對實驗有幫助。在這個部分,MiniCorp提供能自動將語料分類、自動學習以優選理論為基礎的語法、在語料庫中找尋鄰項語料、以及計算語料之間的轉移機 率的工具。


語料分類

[開發中]


學習優選語法

[開發中]


找尋鄰項 略過簡介

受試者判斷字詞大小的語料時可能會受到鄰項(相似)語料而非語法因素的影響。定義字詞結構的鄰項的方式有許多種 (請看這裡),多數的定義方式是由編輯距離 (Levenshtein distance)開始著手。也就是計算一筆語料能藉由刪除、增加、取代等方式變為另一筆語料的最小次數。在優選理論的架構下,編輯距離可以想成是測量不 同輸出(output)之間不相對應的次數  (計算違反 Max-OO, Dep-OO, and Ident-OO的總數)。

MiniCorp的初期版本能以最簡單(也是最傳統)的方式定義一筆語料的鄰項:一筆和它只有一個編輯距離的語料。而一筆語料的鄰項密度為它所擁有的鄰項的總數。語料庫中的每一筆語料都有不同的鄰項密度,但計算大於詞彙的語料的鄰項密度通常能發揮效果,特別是在作為判斷實驗語料時。

請將一個完整的語料清單貼在以下左邊的視窗(清單長度以三萬筆為限)。請在右邊的視窗中輸入需要計算鄰項密度的語料的清單。第二項清單可以只列舉語料,也可以是 MiniJudge 所產生的語料列表。若你想要計算語料清單中所有語料的鄰項密度,請將同一份清單貼入左右兩邊的視窗。

注意: 用於計算鄰項密度的演算法並非最快的方法。處理所花費的時間可能會隨著語料清單的大小及需要計算鄰項密度的語料的 多寡而不同(計算少量語料正常可能需要六十秒)。因此,若你的瀏覽器詢問是否繼續執行程式,請按"是"確認。請保持耐心,這個程序終究會結束的!  

若你準備好了,請按計算鄰項密度

語料清單 需計算的語料
MINIJUDGE的語料列表 

計算的結果應該會在以下的視窗出現。結果包含了三行(可能看起來沒有對齊,但實際上是有的):語料編號(每一筆語料本身的標號),鄰項密度,以及詞彙狀態(0=非詞彙;1=詞彙)。請按全選並儲存檔案。

由此複製鄰項密度 

請選擇下一步,你可以:


計算轉移機率

[開發中]



測試假說

在初期版本的MiniCorpJS中,R負責了統計分析的部分。MiniCorpJS能和R溝通,並讓R產生一份簡單的統計結果報告給你。

重要:若你在這個步驟重新開始工作,你必須先將標記的語料貼入 這個視窗 並重新選擇它。


複製並安裝R 略過

MiniCorpJS的目的是要根據數個期望的變因(制約)分析類別性資料 。這種分析方法需要數個一般統計導論課程中未提到的特殊統計工具(例如:波松迴歸或是精密對數線性分析)。基本上它們能有效地植入JavaScript中,我們希望之後的版本能完成這部分。

既然目前MiniCorpJS尚須仰賴 R 來完成分析,你必須在測試假說前下載R。 R是當前最好的免費統計軟體,若你從事任何量化研究,它絕對值得你擁有。請按這裡 瞭解包括如何下載R的相關資訊。


定義優選理論假說

MiniCorp未具備語法學習的功能,而是測試一個語法假說在統計上的可靠度。更仔細地來說,它能根據 語料庫的內容測試輸入的制約,並分析在所以其他制約都的效應都已被列出的情況下,這個制約被違反的機率是否仍顯著地比單純的機率高。 它同時也能測試某組制約的排序是否能比未排序的制約更能精準的表達語料中的通則。制約的排序採用傳統優選理論的定義:A>>B> >C表示A的排序比B和C都高,而B和C的集合無法超越A。

為了測試語法假說,你必須以假說中的制約排序依序輸入制約名稱。例如,你假設兩組制約排序A>>B,C>>D,則你可以依序在每一行中輸入A, B, C, D。目前的MiniCorp尚無法測試可變動的制約排序。

以下的視窗會根據輸入順序出現你在標示語料時曾輸入過的制約名稱。請重新排序或刪除不必要的制約。當你完成這個步驟,請按OK。

在此編輯制約排序 


產生R程式碼

為了執行分析,R需要你的語料檔案的完整檔名。注意:R將副檔名視為完整檔名的一部份。然而Windows系統在預設的情況下並不會出現副檔名。因此,若你使用的是Windows作業系統,請務必在輸入資料檔案名稱時將副檔名(例如:.txt)納入。(麥金塔電腦的使用者不需要擔心這部分)

輸入儲存語料的資料檔案名稱然後按下"OK"來產生R程式碼。

資料檔案名稱:


將R程式碼輸入R

若一切順利,MiniCorpJS已經將一組R程式碼出現在以下的視窗。當你將這組程式碼貼近R的視窗 時,它將會自動測試每個制約的統計顯著性(例如:是否違反制約與未違反制約的語料之間的差異比單純的機會大),以及制約的排序。因此以A>> B>>C>>D這個排序來說,MiniCorp將會獨立測試是否A>>{BCD}、 B>>{CD}、C>>D。

R得出的分析後結果摘要會以以簡短易懂的格式出現。這份結果摘要是根據R本身的一份較詳盡但艱澀的報告而來。這份報告也將會同時儲存在存放資料檔案的資料夾中。

為了要執行程式碼,請在你的電腦上開啟R。之後請在「檔案」的部分選擇「變更現行目錄」,將目錄改變至你儲存資料檔案的地方。接下來,只要將R程式碼貼入R,分析就會自動開始。由於這組程式碼只使用了R的基本功能,執行的時間應該不會花費太久。

請由此複製 R程式碼 

在執行過以上的程式碼之後,統計分析應該已經完成。R會顯示一份摘要並將較困難的技術報告存檔。

每個獨立的制約都會有一個影響值,這個值可能是正值負值。由於標準的優選理論制約只標示制約違反,對於未違反制約的語料並未標示。因此可以預期制約的影響值皆為負值。若你的制約出現顯著的正影響值,則結果可能很令人懷疑。

制約排序的測試包含了兩種模組:一種認定假設的制約排序為真,另一種則為非。前者的統計顯著性建立在它顯著地比另一個模組更能解釋所提供的語料。技術上來說,這可以藉由制約的影響值來測試。例如:若假設的制約排序為A>>B,則一個模組將會認為A的影響值大於B。另 一個模組則會認為A和B的影響值是相等的。請注意,即便是B的影響值大於A,也就是和語法假說相反,這個測試的虛無假說(null hypothesis)(A>>B的排序對於解釋語料沒有顯著影響) 仍會成立。

如同上面所解釋過的, MiniCorp測試排序的方法是設定排序較高的制約(在假說中)排序高於其他排序較低的制約所組成的集合而非針對一對一對的假說個別測試。舉例來說,A>>B>>C這個排序在測試時將會被拆解為A>>{B,C}以及B>>C而非分別測試A>>B以及A>>C

這項限制有三個理由:

 這裡 有更多能幫助你解讀統計結果的資訊。



版本資訊 MiniCorpJS 0.1是我第一次嘗試將極簡式語料庫音韻學以JavaScript的方式呈現。 

MiniCorpJS 0.5和0.1版有以下不同之處:  

將MiniCorpJS列入參考書目:(APA格式)

Myers, J. (2008). MiniCorpJS (Version 0.5) [Computer software]. Retrieved from http://www.ccunix.ccu.edu.tw/~lngproc/MiniCorpJS.htm

以下是一份相關的會議論文:

Myers, J. (2007, December). Bridging the gap: MiniCorp analyses of Mandarin phonotactics. Poster presented at the Western Conference on Linguistics 2007, San Diego, USA.


若有問題或建議請聯絡 James Myers 

若對中文網頁有問題請聯絡 中正大學心理語言實驗室