(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

Clojure で kuromoji 使ってみた。

さてはて、 Clojure の勉強がてら何かしら面白いものないかなーと思い、形態素解析ライブラリでも使うかーということで使ってみた。

適当に project 作って依存性解決して

(defproject kuromoji-test "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :repositories {"Atilika Open Source repository" "http://www.atilika.org/nexus/content/repositories/atilika"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.atilika.kuromoji/kuromoji "0.7.7"]]
  :main "kuromoji-test.core")

kuromoji の公式にある example を Clojure で書きなおしてみるだけ。
kuromoji - japanese morphological analyzer

(ns kuromoji-test.core
  (:import [org.atilika.kuromoji Token Tokenizer]))

(defn example []
  (let [tokenizer (.build (Tokenizer/builder))]
    (doall
     (for [token (.tokenize tokenizer "寿司が食べたい。")]
       (println (.getSurfaceForm token) "\t" (.getAllFeatures token))))))

(defn -main []
  (example))

よっと

% lein run
寿司 名詞,一般,*,*,*,*,寿司,スシ,スシ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
食べ 動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
たい 助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
。 記号,句点,*,*,*,*,。,。,。

はいできたー。
Java のライブラリ使えますっていうけど思ったより簡単に書き換え出来るので大変良い。なんか面白いことしたいので適当に Web アプリでも作ってみようかなー。