Learn to educate data journalists

JILUNG
Programming for Social Science
5 min readAug 9, 2017

編制教材的考量

我在決定一個學期應該上什麼內容、引進什麼技術時,考慮的是以下的問題

  • 傳播研究需要什麼資料分析技術? e.g., 我們想要分析小編的po文情緒和後面的回文情緒。 e.g., 要怎麼樣弄到四大報有關食安的所有新聞來做文本分析?
  • 未來記者的必要性的技能是什麼?比如「去哪裡拿資料?又怎麼拿下來?」;或是學生能夠知道資料如何被組織在檔案裡面,一共有四種常見的資料格式,依照常見至少見排列為CSV > JSON > SQL > XML(HTML)。例如網路上的HTML文件,例如各大新聞電子報、PTT。
  • 如何用語法整理上述資料?根據上述資料被組織的方法,知道如何抽取資料,所需學習的技巧包含XPath、CSS selector、SQL、正規表示式(Regular Expression)。學生有能力從文本抽取資料。
  • 社會科學的學生學習程式的方法是否應與理工科有所不同?比如我認為,社會科學的學生會想先知道她/他學這個能做什麼事,才能求會用;要先會用,再知道原理。而教學上,我認為應先從量化資料的詮釋能力開始,再依序教授統計方法、資料分析模型、深度學習模型、語言分析模型
  • 資料記者常用的分析方法為何?文本分析 > 探索性資料分析 > 統計分析

以現下新聞為教學範例

例如下面諸篇我認為是國外常見的資料分析案例:

  • Paid maternity leave
  • 2016 US debate
  • 2016 legislator election in Taiwan

以下則是資料探索性分析常見的技法:

  • wordcloud
  • timeline
  • network

教學方法

  • 大原則是以案例帶技術,不在課堂上講解技術。例如for、ifelse、list、matrix、dataframe,遇到了再說;
  • 要先能看到執行結果,再講解執行過程,儘量跟玩遊戲一樣。
  • 先會用,用過幾次,再來談規則和原理。例如函式或正規表示式。
  • 與其交付完整的程式碼,不如在台上錯幾次,現場解決給他們看。
  • 建立解決問題的SOP,例如R有vector、factor、matrix、dataframe、list等數種基本資料型態,過去的教學都是順著講完,但事實上以解決問題為目的的話,應該先把所有課程案例導到dataframe,再取資料為vector,進行資料轉換。而factor、matrix、list則是遇到再說。

教學時程規劃

  • 初期以Excel表格作為想像對象,架構操作流程。Live coding教學,先跟著打,熟悉語法表現。
  • 中期以課堂實作(legislator)、實際探索案例(JSON)
  • 後期則鼓勵學生參加競賽

學習成效掌握

由於絕大部分為非資訊科系的初學者,在一個學期內要用程式語言來做邏輯思考,尤其對數理邏輯訓練缺乏的文組學生特別辛苦。但資料分析的學習卻是積累的過程。所以可以採用兩種考試:

  • 基本概念的測驗
  • 程式閱讀(前、中、後)→ paid maternal leave

Essential

  • 教師以國際報社案例作為教學範例
  • 學生有能力可以獲取所有種類的資料
  • 靜態檔案資料讀取(JSON、CSV、XLSX),例如政府開放資料。
  • 學生有處理資料、彙整資料的能力
  • SQL、Regular expression。
  • 學生了解探索性分析對數值資料詮釋的可能影響
  • 以Word cloud為例
  • 以Paid maternity leave為例
  • (XPath, +R Regular Expression
  • 學生有能力轉換資料
  • raw data to data by tapply, apply, sapply, aggregate, with, count, table, …

Advanced

  • 因應資料的表達型態轉換資料,例如JSON欄位的不一致。+R JSON cases
  • 處理中英文編碼問題
  • 了解如何彙整並產生新的資料。Data → R → html

關心資料新聞的人很多

探索性資料分析的案例

--

--