# 附錄：Corpus Linguistics with Python

所謂以程式方法研究語料庫，簡單說就是碰到問題與需要時可以用編寫程式的方法解決。隨著學習工具與網路集體學習的快速進展，目前學習編寫程式的支援環境與資源已經相當的友善普及甚至目不暇給。當然在這麼短的篇幅，我們不可能介紹實際的程式語言語法細節，本文的目的是希望能夠提供讀者一個可以開始的方向，特別是給沒有任何程式背景的讀者無痛入門的快速導引。

目前在語言與文本處理的社群中，比較普遍使用的程式語言是 Python, R 和 Java。以下本文就先簡單介紹 Python 和 R 兩個語言在語料庫研究上的關聯與建議的學習方式。學習一門程式語言不單是一個語言，讀者應該先大概了解自己的動機興趣（例如建立自己的語料庫，分析使用者語料的分佈模式，或是計算語言學領域的分類器等等），在這個動機下，就可以進一步瞭解程式語言的生態系（語法、開發工具、程式庫）與社群文化（編碼風格、典範、技術文件、社群）。具體的學習策略，可以用以下步驟說明：

* 選擇實體或線上課程。

程式學習首重動手實作，如果一開始尚未決定安裝何種編輯環境，可以先考慮線上的服務。有些線上服務 如 [DataCamp](https://www.datacamp.com) 甚至已經將課程與編譯 R 程式的環境整合在一起，或是如 [Wakari](https://wakari.io) 將 Python 的終端機環境與`IPython notebook` 整合，方便學習者在不需要自行安裝組態的情形下直接開始學習，做筆記甚至分享。而這些服務的基本方案皆為免費，足夠初學者的適用範圍。

在熟悉基本語法之後，可以研究如何利用現存的套件(package)或函式庫 (library) 應用在自己有興趣的主題上。以 Python 來說，有許多和語言處理與分析相關的函式庫如 `NLTK`、`Pattern`、一直到晚近的 [spaC.io](http://spacy.io) 等。其中開發時間較長，使用人數較多的是NLTK。讀者可以考慮同時進行閱讀該套件作者群同時出版的書籍(Bird, Klein and Loper. 2009)。

R 語言則因為是從統計社群開發出來的語言，比較傑出的地方在於統計計算相關與製圖。近年來由於幾位知名的語言學家(Baayen 2008; Gries 2009)的大力推廣，使 R 語言成為語料庫語言學研究的主流程式語言之一。開源的開發環境 `RStudio` 的出現，更是使得R語言的編程與專案協作，甚至與 web app (shiny) 的開發工作更加便利迅速。R語言社群對於資料處理的套件開發速度也相當驚人，除了常用的 tm (text mining)，languageR, vowels.R, corpus, jiebaR，還有許多進階的統計計算與作圖套件方便研究者從事量化的語音與文本分析。
