2018年1月31日 星期三

Apps Script : 批次查字典

教育部有好幾個線上辭典,直接使用網站只能一個個語詞慢慢查閱,而輸出的格式亦無法自訂。之前為了製作遊戲所需要的題庫檔案,以 PHP 寫了幾個小工具,可以批次查詢線上字典,並將結果轉為遊戲所需要的題庫檔。程式放在學校主機中,但是學校主機的資料又無法在家更新,為了解決這個困擾,決定好好研究一下使用 Google Apps Script 來完成任務的替代方案。花幾天的時間,把 Apps Scrip 的 UrlFetchApp.fetch 弄清楚了,利用它來模擬線上辭典的查詢動作,寫了一個可以批次查詢成語的小工具。


準備工作


這個批次查成語的工具是利用 Google 的試算表加上 Google Apps Script 寫的外掛來查詢線上字典的,分享的時候是以「僅供檢視」唯讀的方式分享的。所以在使用前,您必須先將我分享的 Google 試算表在自己的 Google 雲端硬碟中新增一個「副本」,不然,會看不到「批次查詢辭典」的功能選單。

建立副本的程序如下:

1.開啟「批次查成語」的連結


2.點選左上角「檔案」的選單


3.點選「建立副本」的選項


4.更改名稱並選取要存放的資料夾後,按「確定」


按完「確定」鈕後,瀏覽器會自動切換到剛剛建立的副本視窗,稍候一下子,上方的主選單出現「批次查詢辭典」後,就可以準備開始使用了。


查詢成語

建立好您自己的副本以後,只要在工作表的第一個欄位中輸入想要查詢的成語,如同範例一個成語一行(目前程式限制最多可以查詢 99 個成語)。
成語都在第一欄中輸入完畢後,按一下上方選單中的「批次查詢辭典」,最後選定要用《國語辭典簡編本》或是《重編國語辭典修訂本》來查詢,程式就會開始試著由教育部網站中一個個去查,如果有找到資料,會直接填入試算表的格子中。

按選單中的選項,準備查詢
查詢完畢,資料填入格子中

首次使用的授權

因為這個「批次查字典」使用 Google Apps Script 來完成批次的工作,它會透過網路抓資料,會將資料寫入試算表中,所以第一次使用會出現需要授權的畫面。如果想使用,當然要授權囉!授權的程序如下:

1.出現「需要授權」的對話框,按「繼續」


2.選擇要使用哪一個帳戶


3.按底下的「進階」


4.按底下的「前往 moe_dict_batch_requests」


5.按「允許」的按鈕


完成以上的程序,程式得到了授權,緊接著就會進行第一次的查詢工作。除非又重新複製作,上面的畫面不會再出現。

FAQ

哈~底下列出有人可能會問的問題,自問自答:
  • Q :
    用《國語辭典簡編本》或是《重編國語辭典修訂本》有何差異?
    A :
    「簡編本」顧名思義,內容比較簡單,但有些語詞可能會找不到。不過我發現「簡編本」大多有例句。
  • Q :
    為什麼查完以後,有些語詞是空白的?
    A :
    第一種可能是教育部辭典沒收錄,如果用「簡編本」,可以換另一種試試。
    第二種可能是程式查詢錯誤沒撈到資料,這種情形在查詢「簡編本」較常發生,PHP版的沒這樣的問題,但 Google Apps Script 版會這樣,原因還沒找到 XD
    如果有空白的情形,建議可以重新再查詢一次,如果是第二種原因造成的,會慢慢將空白填滿。
  • Q :
     一次最多可以查詢幾個語詞?
    A :
    前面提過,目前預設一次最多可以查 99 個語詞。
  • Q :
    只能用來查成語嗎?
    A :
    是的,如果查字或是字數較少的語詞,可能會查出多個語詞,目前程式不會處理這種情況。以後的版本會將這種需求列入。2018.02.01 以後的版本已無限制,可以查任何字或詞了,多音字會附加到最下面。

更新記錄

  • 2018.02.01 可以處理一字詞多結果;查詢字詞前後加上 ^ $ ,限定只找完全一樣的字詞;增加已有資料者不重覆查詢的功能。
  • 2018.01.31 初版。


沒有留言:

張貼留言

 
© 2009. Design by Pocket