「ScalaMecab」の編集履歴(バックアップ)一覧はこちら
「ScalaMecab」(2009/08/31 (月) 23:58:47) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
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 はオブジェクトのままか...。
パクったソースの変更点。
・ System.loadLibrary("CMeCab") は StandardTagger 内で実行してるので不要っぽい。
・どんなのがScalaっぽいのかわからんが、() や . をなんとなく省略してみる。(さすがに .next .feature は省くとわかんなくなりそうなので残してみた)
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 は省くとわかんなくなりそうなので残してみた)
表示オプション
横に並べて表示:
変化行の前後のみ表示: