MacにMecabを入れてみた(mecajavacまで)[2016]
自分が所持しているmac(macOS Sierra)にmecab(形態素解析システム)をいれてみました。自分は初期化を年に2回ほどするというよくわからない人なので初期化した時のメモとして残しておこうと思います。なのでわかりにくくなってしまった場合すいません。
1、Homebrew インストール
Homebrewとは、macOS用パッケージマネージャーでインストールしたパッケージを管理してくれます。最初は何が便利なのかわかりませんでしたが、今はとても重宝しています。
↑からHomebrewをインストールします。ターミナルにインストールとあるコマンドをコピペすればいいので簡単です。
2、HomebrewでMecabのインストール
$ brew install mecab
$ brew install mecab-ipadic
以上をターミナルに打ち込みます。そうするとmecabがインストールされます。ipadicというのはどうやらmecab専用の辞書みたいです。
$ mecab
と入力します。すると改行され文字が入力できるようになります。以下に実行例を示します。
こんにちは、ぼくドラえもん。
こんにちは 感動詞,*,*,*,*,*,こんにちは,コンニチハ,コンニチワ 、 記号,読点,*,*,*,*,、,、,、 ぼく 名詞,代名詞,一般,*,*,*,ぼく,ボク,ボク ドラえもん 名詞,固有名詞,一般,*,*,*,ドラえもん,ドラエモン,ドラエモン 。 記号,句点,*,*,*,*,。,。,。 EOS
以上のようにでたはずです。これが出て入ればmecabは使えるようになりました。以下では、とても苦しんだjavaでmecabを使うための方法について書いていきたいと思います。
色々なサイトで探しますがなかなか見つかりませんでした。なので最終的に行き着いたサイトを示します。サイト主さん本当にお世話になりました。
http://pkgs.fedoraproject.org/repo/pkgs/mecab-java/
のサイトにある
mecab-java-0.996.tar..
をダウンロードします。0.996をなぜダウンロードするかというとmecabのバージョンが0.996だからです。やはり、対応させた方がいいだろうということでこれをダウンロードしました。ダウンロードができたら解凍してください。ダブルクリックまたは、コマンドで解凍できるはずです。
先ほどダウンロードして解凍したディレクトリ(フォルダ)の名前がmecab-java-0.996になっていると思います。これをmecab-javaに変更してください。そして、mecab-javaを移動させます。
以下では、mecab-javaがデスクトップにあるとします。
$ cd ~/Desktop/
cdコマンドでデスクトップに飛びます。
$ mv mecab-java /usr/local/bin/
以上をターミナルってください。
5、Makefileの編集
ここが一番の山場です。頑張ってください。ここまできたので今食べようとしていたお菓子をひとまず置いて集中しましょう。さっき移動したmecab-java
にターミナルで入ってください。そうするとMakefileがあるはずです。ここでターミナル操作を行います。
$ vi Makefile
と入力します。するとMakefileの中身が丸見えなはずです。これを書き換えます。めんどくせぇって人はキーボードの「dd」をおして気合いで中身を全部削除しちゃってください。このときは、一応Makefileのバックアップはとっておくようにしてください。
挿入モードにするためにキーボードの「I」または「A」を押してください。
そして、以下をコピペしてください。
書き換える人は書き換えてください(書き換える方も一応バックアップはしておくことをお勧めします)。
Makefile
JAVA_BASE=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK JAVA_HOME=$(JAVA_BASE)/Home TARGET=MeCab JAVAC=javac -J-Dfile.encoding=UTF-8 JAVA=java -Dfile.encoding=UTF-8 JAR=jar -J-Dfile.encoding=UTF-8 CXX=g++ INCLUDE=/Applications/Xcode.app/Contents/Developer/Platforms/MacOOO.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/ PACKAGE=org/chasen/mecab LIBS=-arch x86_64 `mecab-config --libs` INC=-arch x86_64 `mecab-config --cflags` -I$(INCLUDE) all: $(CXX) -O3 -c -fpic $(TARGET)_wrap.cxx $(INC) $(CXX) -dynamiclib $(TARGET)_wrap.o -o lib$(TARGET).dylib $(LIBS) $(JAVAC) $(PACKAGE)/*.java $(JAVAC) test.java $(JAR) cfv $(TARGET).jar $(PACKAGE)/*.class test: env DYLD_LIBRARY_PATH=. $(JAVA) test clean: rm -fr *.jar *.o *.dylib *.so *.class $(PACKAGE)/*.class cleanall: rm -fr $(TARGET).java *.cxx
人によってINCLUDEの行のMacOOOが違うので気をつけてください(OOOには適当なものを)。
Finder->アプリケーション->Xcodeを右クリック->パッケージの内容と行きあとはINCLUDEの行をみてたどって行ってください。
そして、Finderの歯車マークに『情報を見る』とあると思うのでそこの場所をコピペするなりしてください。
6、makeの実行
$ make
これでmecab-javaにMecab.jarファイルができたらmakeは成功です。
7、パスを通す
これで最後です。コンパイルと実行時に使うコマンドが以下です。
$ mecajavac ooo.java
$ mecajava ooo
のコマンドが通るようにします。
$ vi ~/.bash_profile
を開き以下を入力します。
if [ -f ~/.bashrc ]; then . ~/.bashrc fi
これで保存して閉じます。次に
$ vi ~/.bashrc
とターミナルに打ち込みます。
alias mecajavac='env DYLD_LIBRARY_PATH=".:/usr/local/bin/mecab-java" CLASSPATH=".:$CLASSPATH:/usr/local/bin/mecab-java/MeCab.jar" javac' alias mecajava='env DYLD_LIBRARY_PATH=".:/usr/local/bin/mecab-java" CLASSPATH=".:$CLASSPATH:/usr/local/bin/mecab-java/MeCab.jar" java' alias javac='javac -J-Dfile.encoding=UTF-8' alias java='java -Dfile.encoding=UTF-8'
を入力して保存して閉じてこれで終わりです。
と言いたいところですが反映しないといけません。
source ~/.bash_profile
として反映させます。bashrcも同様に行えばできるはずです。
コマンドを間違えたとこなどあるかもしれません・・・・・
ここまで観ていただいた方はありがとうございました。