jasagiri @ ウィキ
ScalaMecab
最終更新:
jasagiri
-
view
Scala で MeCab
JavaBindingがうまくいかなかったので、windows + eclipse + CMeCab(JNI)版。
MacOSXで本家版は http://blog.xole.net/article.php?id=724 を参照。
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 を実行
辞書を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 が入るようにファイルを展開。
D:\MeCab\bin にCMeCabのbin が入るようにファイルを展開。
■eclipseで実行
新規scalaプロジェクト作成
上で展開したD:\MeCab\lib とD:\MeCab\bin にある *.jarをビルドパスに追加
新規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 は省くとわかんなくなりそうなので残してみた)