※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Scala で MeCab

JavaBindingがうまくいかなかったので、windows + eclipse + CMeCab(JNI)版。
MacOSXで本家版は http://blog.xole.net/article.php?id=724 を参照。


■MeCabインストール

http://mecab.sourceforge.net/#download から mecab-0.98pre3.exe をダウンロード。
辞書をUTF-8でインストール。D:\MeCab。
環境変数 PATH に D:\MeCab\bin を通す。
コマンドプロンプトで mecab -version を実行


■CMeCabインストール

http://code.google.com/p/cmecab-java/downloads/list から cmecab-java-1.6-i386.zip をダウンロード。
D:\MeCab\bin にCMeCabのbin が入るようにファイルを展開。

■eclipseで実行
新規scalaプロジェクト作成
上で展開したD:\MeCab\lib とD:\MeCab\bin にある *.jarをビルドパスに追加

上の参考サイトのソースをパクる。
import net.moraleboost.mecab.{Tagger, Node}
import net.moraleboost.mecab.impl.StandardTagger
object ScalaMecabTest {
  def main(args: Array[String]){
    var tagger = new StandardTagger("UTF-8", "")
    println( tagger parse ("すもももももももものうち") )
    var node: Node = tagger parse("隣の客はよく柿食う客だ")
    while( node hasNext ){
      println(node.next + "\t" + node.feature)
    }
  }
}

[実行の構成]の[環境]タブにPATHでD:\MeCab\binを追加する

実行。
net.moraleboost.mecab.impl.StandardNode@17ee8b8
隣	名詞,一般,*,*,*,*,隣,トナリ,トナリ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
客	名詞,一般,*,*,*,*,客,キャク,キャク
は	助詞,係助詞,*,*,*,*,は,ハ,ワ
よく	副詞,一般,*,*,*,*,よく,ヨク,ヨク
柿	名詞,一般,*,*,*,*,柿,カキ,カキ
食う	動詞,自立,*,*,五段・ワ行促音便,基本形,食う,クウ,クウ
客	名詞,一般,*,*,*,*,客,キャク,キャク
だ	助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ

ありゃりゃ、tagger parse はオブジェクトのままか...。


パクったソースの変更点。
  • import対象変更
  • System.loadLibrary("CMeCab") は StandardTagger 内で実行してるので不要っぽい。
  • どんなのがScalaっぽいのかわからんが、() や . をなんとなく省略してみる。(さすがに .next .feature は省くとわかんなくなりそうなので残してみた)