Categories
General

濾掉 Unicode Private Use 的字

整理生物俗名詞庫時,發現資料來源塞了很多前人自造的字,放在 Private Use Areas,很多程式遇到這類字元就爛掉,所以不得不把它們濾除。

因為在 Unicode 以及衍生的一系列編碼,這樣的私用造字是合規範的,所以原本以為用 iconv 或 Ruby 的 encode 把 UTF-8 先轉 UTF-16、再轉回 UTF-8 這樣「過」一次水可以搞定,結果這些字還是好端端地在那邊。

如果用 Big5 這個字收錄太少的編碼來濾,又會濾掉太多無辜的字元,所以轉個彎,想到用 EUC-TW 來濾,就可以取得折衷。

最後再用 diff 查看過濾前後的差異,找到真正是私用造字的所在,予以編修,這樣比起用工人智慧直接掃讀整份文件要好辨識得多,錯漏的地方也就少了。

Categories
General

[Daily Digest] 2013-07-16

Online resources:

Categories
General

Jcseg 1.8.8, Solr 4.3.1

今天用了 jcseg 中文分詞器,簡單好用,非常愉悅。按照〈Jcseg-开发帮助文档-1.8.8〉的說明,很容易就可以配置好。

  1. jcseg-1.8.8/ 裡的 jcseg-core-1.8.8.jar, jcseg-solr-1.8.8.jar, jcseg.properties, lexicon/ 複製到 Solr 的 lib/ 底下。
  2. 因為用不到拼音,所以將 jcseg.properties 當中的 jcseg.loadpinyin 設為 0
  3. 編輯之前提到的 core-nutch 的 schema.xml,將 text_general 欄位類型的 tokenizer 指定為 jcseg。(<tokenizer class="com.webssky.jcseg.solr.JcsegTokenizerFactory"/>)
  4. Jcseg 提供的詞庫是簡體中文的,所以在 lexicon/ 補上自己適用的詞庫。
  5. 重跑 Solr,此時 Solr 不應有任何的錯誤訊息,否則就是 jcseg 設定過程出了問題。
  6. 用 nutch solrindex 指令將之前 Nutch 抓過的 crawldb 重新匯入進 Solr,此時按照 Solr 的索引編製原理,會將匯入的資料、欄位類型為 text_general 者交由 jcseg 負責分詞而建立索引。
  7. 匯入完成後,可進 Web 管理介面測試 Query,記得勾選 debugQuery 選項,以獲取除錯資料,判斷所下的查詢,是否有按照預期的分詞。
Categories
General

[Daily Digest] 2013-07-15

Online resources:

Murmurs:

我想把輕鬆輸入法重新撿起來維護,畢竟不是每個人都會使用注音符號系統,要人學習拆字型輸入法,對某些人來說是個踏入電腦世界的超高門檻。

比如說,我爸當年其實是學倉頡輸入法的,而同時開始學電腦的我比較背骨,堅持不用這種拆碼方式詭異、例外規則超阿雜的輸入法,寧願用注音慢慢打,但是時間一久,當年打字像在飛的爸爸,現在倉頡輸入法全忘光了,反而回來使用注音輸入法。

問題就在於他對注音符號系統並不熟稔,以有些「台灣國語」的腔調去拼注音,有時就不曉得為何打不出預期的字。這時,借自取倉頡頭尾兩碼的「簡易輸入法」概念,但是沒有那堆奇奇怪怪變形字根的輕鬆輸入法,應該會是個不錯的解決方案。

輕鬆輸入法本身就有詞庫的設計了,如果再配上一個自動選字的引擎,類似自由行列、超注音這樣,應該就會更好用。

Categories
General

[Daily Digest] 2013-07-14

Online resources:

Murmurs:

  • 今天去福和橋跳蚤市場,期待與實際的落差有點大。
  • 超市的蔬菜架上終於看的到綠綠的東西了。
  • 一條消疤藥膏,去掉我一週多的菜錢。經過這次教訓,我對於未化妝就不敢見人的女性朋友也多了一分理解。