2015年12月12日

python做試題轉檔到moodle(2),兼作數據分析

11月有一場跟學校自然科的同仁分享moodle的研習,在那之前我跟幾位理化老師先聊過,他們需要什麼資源,討論之後,我覺得如果可以幫他們建立好理化的moodle題庫,未來他們應該會比較容易使用這塊數位課程。

幾個月前有個經驗是用python轉了一次高中的試題進去moodle,所以要轉題庫我也只要再修改一下一些程式碼就行。其實只要程式碼寫好,轉檔案是挺快的,幾秒鐘就跑出來了,只是程式碼當初是修了幾個晚上來的。

好不容易寫出來的轉檔程式,就轉個理化題庫,覺得有點可惜,乾脆把社會科的歷史、地理、公民都轉出來好了,後來還乾脆去找基測會考的考古題,也一併轉出來,再通通都匯入moodle去。

這些轉檔出來的moodle題庫匯入檔,放在Google硬碟裡頭
https://drive.google.com/open?id=0Bzwhi7Oh9a5ZcnF2ek9FWXkybVE

txt檔都是用python直接轉出來的,如果是xml那就是我從moodle裡匯出的。txt檔的moodle題目格式是GIFT,因為是文字檔,所以是沒有圖片的,匯入moodle之後,還得另外再把圖片一題一題加進去,至少目前我沒有找到比較方便的方法。xml檔則是包含了圖片

既然題庫都可以用python分析出來,我就想到不如來分析一下這些題目裡的數據吧。(以上以下所稱的題目都不包含題組喔,因為那個要分析轉檔有點麻煩)

自然考題裡,小明果然是題目最愛,在12年來的題目中,一共出現了31題


再來是字詞的部份,我從大數學堂這裡學到了字詞分析,扣掉數字、英文等一個字的詞彙之後,用python的結巴中文分詞套件分析,最常出現的詞是「下列」,一共出現1106次。






而社會科呢?也是「下列」,在排行榜裡有一個詞一看就能知道是社會科的題目,那就是「政府」




如果做成文字雲呢?我把歷屆基測試題的題幹丟進這個HTML5文字雲的網站裡去分析,看起來真的蠻煩的,下列下列下列......



社會科的呢?也是下列下列,欸,還出現台灣耶!




除了常用字詞以外,我還想撈什麼呢?不如來撈最長的題目吧(題組不算喔),結果是這題,95年的基測考題,有270個字。真的好長喔,修短一點比較容易理解吧?而所有題目的平均字數則是115個字。

愷傑看著一部電視影集,其劇情為:「......女主角坐在公車上,當公車經過站在路旁的男主角身旁後,男主角立刻由靜止開始起跑,沿路追趕著時速50公里的公車。在12秒後,男主角......。」假設公車做等速度運動,男主角的加速度大小為4m/s,且他的速度最快可達10m/s。根據科學原理判斷,下列何者為最合理的結果? (A)男主角追得上公車,因為他的加速度比公車的加速度大 (B)男主角追得上公車,因為他的最大速度比公車的速度快 (C)男主角追不上公車,因為他需要花費16秒才追得上公車 (D)男主角追不上公車,因為他的最大速度比公車的速度慢。