2018年1月21日 星期日

查字典小程式


之前寫了一篇中文錯別字校對偵測小程式
那篇的小程式只是標亮可能的錯別字,要確認一個詞是否有錯別字,主要還是查字典。
這個時代我們更多的會利用網路,例如教育部提供的辭典網站。

為節省時間,我寫了一個小程式。(應該說是腳本)
由於實現過程很簡單,所以我是用autohotkey寫的。

使用過程如下:

  1. 下載此程式
  2. 點擊程式「查字典.exe」
  3. 「反白」要搜尋的字詞
  4. 按住「Win鍵」+「空白鍵」(要先按住「Win鍵」不放,再按「空白鍵」。「Win鍵」是鍵盤中有windows視窗圖示那個)
  5. 會自動開啟3個字典網頁,查詢剛剛「反白」的字詞(預設瀏覽器請不要選ie)


關於查詢結果的說明:

  1. 三個網站分別是萌典東東錯別字詞典教育百科
  2. 「萌典」有收錄的字詞,呈現的是「詞」的解釋。若「沒有收錄」,則呈現「個別字」的解釋
  3. 「東東錯別字詞典」比較特別,正確與錯的詞都有可能收錄,但會標明對錯
  4. 「教育百科」若呈現「教育部重編國語辭典修訂本」或「教育部國語辭典簡編本」的詞條解釋,則表示這是個正確字詞(至少是目前可通用的字詞)
  5. 由於中文字詞組合太多,加上新時代的字詞誕生,還有一些人特殊的用詞簡化習慣,所以辭典網站不可能收錄全部的正確字詞。所以能查到詞條解釋,只能證明這是個正確詞,但查不到不代表這是個錯詞


轉載請註明出處



2018年1月12日 星期五

中文錯別字校對偵測小程式

因為工作性質,需要校對錯別字,因此就想找找有沒有能幫忙自動校對錯別字的程式。
做過一番研究後發現以下幾點:

  1. 中文和英文不同,英文字母可以拼字組合出一個完全錯誤的單字,但中文只要電腦能打出來的就不是錯字(頂多有異體字的問題),所以說能打出來的中文沒有拼字錯誤的錯字,而是別字問題,或者說「錯詞」,一個詞語的某些字用錯了。
  2. 中文有分詞斷詞判斷問題,因為中文字詞是相連的,不像英文有空白來區隔字詞,因此要判斷錯詞,通常需要先分詞。
  3. 目前簡體字比較有這類錯別字校對程式,如黑馬校對軟件,但無法適用於繁體字,且都不是完美方案,最後仍須人工檢查。
  4. 這是個難題,也是目前市面上相關程式很少的原因,而且都不能完美解決。

綜上所述,我了解到這暫時不是我能夠解決的問題。
但我在想不用完美解決,只要有改善、有輔助即可。
我不用每次能找出大部分錯字與高校對率。(這需要分詞與龐大的正確字詞庫)
我只要找出常見錯別字與我所定義的錯別字即可(不用分詞,只需要我定義的錯別字詞庫)

因此我寫了一個小程式,可以校對出自己定義的常見錯別字。

程式的概念很簡單,如下敘述:

  1. 將自己收集好的錯別字詞,寫入一個文件(txt檔),一行一個錯別字,並後續可再自行添加。
  2. 用程式查找要校對的文件(word檔),當內容有錯別字詞庫中的錯別字時,便會黃色高亮顯示。

使用過程如下:

  1. 下載此壓縮檔
  2. 解壓縮後有兩個檔案,一個是程式(查找特定錯字.exe),另一個是錯別字詞庫,取名為wdict.text,兩個需在同一層文件夾中。
  3. 點擊程式後,是DOS界面,有操作說明文字,依該說明使用即可。
  4. 會跳出word檔查找畫面,如果該word有錯別字詞庫的錯別字,即會高亮顯示,並在DOS視窗中顯示查找到幾個錯別字。



注意事項:

  1. 此小程式依賴微軟office的word,故須安裝word才能使用。
  2. 錯別字詞庫的檔名含附檔名為wdict.txt,不可更改。
  3. 此程式只高亮顯示錯別字,不直接更改(更改我也做得到,但中文字詞組合太多,直接改怕有改錯的情形)
  4. 錯別字詞庫可自行添加新錯別字詞,但第1行須保留。(此檔的編碼是UTF-8)



轉載請註明出處

2018年1月1日 星期一

掃描ISBN,建立電子書櫃


我愛看書,也買了不少書,想過為藏書建立電子清單,發現要耗費不少時間而遲遲未動手。後來發現一些建立網路書櫃的軟體如aNobii,Readmoo等,可以利用掃描書的ISBN碼快速建立清單。但使用得不太順手,不是對中文書的支持不夠,就是批次建立較花費時間,或是無法匯出成一個文件檔。

於是寫了一個小程式來滿足自己的需求。
介紹與使用如下:

第一步

須搭配一個掃描條碼的手機APP,這個APP為「條碼二維碼掃描器 - 专业版」(android)
https://play.google.com/store/apps/details?id=com.geekslab.qrbarcodescanner.pro&hl=zh_TW

其實也可以用其他掃描條碼的APP,重點是可將所有掃描好的ISBN碼匯出,然後整理成特定的格式與檔案類型。該格式須為每一行一個ISBN碼(若該行還有其他格的資訊,則ISBN碼必須在最左邊位置),最後須儲存為csv檔案(副檔名為csv)

這個APP可以連續掃描(掃描出結果後,再按返回鍵繼續掃描),因此可以一口氣掃描許多書本。
另外如果掃描到重複書籍,該書ISBN碼在時間序列上會更新,因此整個清單中不會有重複的ISBN碼,這有個好處,掃描自己藏書ISBN碼的工作可以分好幾天做,下次掃時即使不小心掃到重複的書也不用怕。(我其實是比較希望能有掃到重複就跳出提醒的功能)

將掃描好的清單以分享的分式匯出,檔案格式是csv


第二步

然後點擊我寫的小程式,檔名為:建立藏書清單.exe
是DOS界面,有一行字:「置入要放入的csv檔:」
填上之前掃描匯出的csv檔完整絕對路徑,或是左鍵按住csv檔托移入DOS界面也可。
DOS界面顯示路徑後,點下DOS界面後再按下Enter鍵。
注意DOS界面中的文字游標要跑到下一行才是對的。
之後就是等待程式跑完。


由於程式是向Findbook爬取資料,所以我沒有優化程式速度,程式跑得慢一些。
如果ISBN碼多一些,會跑久一些,另外由於程式跑的時候是沒有動的畫面,請不用擔心。

程式跑完會關閉,然後在程式的同個資料夾中產生一個「建立書櫃.xlsx」的檔案。
這個excel檔案就是我們要的結果,所呈現的資料依序是:
序號>>書名>>作者>>ISBN>>分類標籤>>出版日期 >>出版社


另外有2點注意:

  1. ISBN的數字看起來有問題,是因為數值長度太長的因素,只要將該所有數字的欄位的儲存格格式>>數值>>數值>>小數位數,由2調到0即可。
  2. 底下有列出「以下為查不到的ISBN碼」,這是由於有些書可能沒有被Findbook收入,但就我使用的經驗,沒收入的比率不多,像我642本書,只有14本查不到




轉載請註明出處

LINE 聊天機器人快速實作

LINE 聊天機器人的基本實作教學文章,網路上很多,所以我不打算寫詳細的基礎教學步驟。 聊天機器人的實作,大致有三個階段: 回聲機器人。(你說什麼,他回什麼) 特定關鍵字回應。(設定一些關鍵字,回應除了定型內容外,還可用爬蟲技術爬出資料再回應) 智慧對話。(會自然語言...