現在進行中のプロジェクトでOSX 10.3でMeCab(形態素解析エンジン)を使う必要があったのだけれど、いろいろ苦労したのでメモ。
とりあえずOSX 10.3のCDにあるDeveloperToolsを入れる。MeCabのページからMeCabとipadic2.5.1をダウンロードしてきて(ipadic2.6とかでは辞書のコンパイル中にエラーが出てしまいました)、MeCabのページのUNIXのインストール手順に従って解凍する。後からJNI(Java Native Interface)経由でMeCabを使おうと思っているので、辞書をUTF-8にするために
./configure --with-charset=utf8
make
と言う風にmakeして、make installでインストール。MeCabのコンパイルはだいたいこんな感じ。
MeCabをJNI経由で使うには、perl/ruby/python/java バインディングからmecab-java-0.77.tar.gzをダウンロードして解凍。そのままではコンパイルできないので、
$(CXX) -O3 -c -fpic $(TARGET)_wrap.cxx $(INC)
を$(CXX) -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/ -O3 -c -fPIC -dynamic $(TARGET)_wrap.cxx $(INC)
に。
$(CXX) -shared $(TARGET)_wrap.o -o lib$(TARGET).so $(LIBS)
を$(CXX) -dynamiclib $(TARGET)_wrap.o -o lib$(TARGET).jnilib $(LIBS)
に書き換えてmake。/usr/local/bin/にパスが通ってない場合はLIBS、INCをそれぞれ
LIBS=`/usr/local/bin/mecab-config --libs`
INC=`/usr/local/bin/mecab-config --cflags`
に書き換えてmakeすれば大丈夫。MeCab.jarとlibMeCab.jnilibがJNI経由で使うのに使うのに必要なファイル。
ところで10.3のターミナルでUTF-8を通す方法誰か知りませんか?
日本語の文章から単語を何文字か抜き出すとかそういうの?または、方言に変換とか?(古いな・・・)
そ?か、こういうのがあるんだ。
文章を省略して出力する時なんかに必要になりそう。
文字数で切るしかなかったからね。
たいしたもんだ。
Bayesian Filterを実装するときに使う単語に分解するエンジンとして使おうと思ってたのです。
言われて気づいたのですが、方言に変換するのもこれつかえば簡単に出来そうですね。
http://aglaia.c.u-tokyo.ac.jp/~yamamoto/diary/my_cgi/trans.cgi?http://www.wcan.jp/blog/katz/
こんな感じにできますな。
こりゃまた古いネタですた。(´・ω・`)ショボーン