MeCab-0.91をCygwin Rubyで
日本語の文章をコンピュータで解析する形態素解析というツールがあります。ちょっと使う用途がでてきたので色々と触ってみているのですが、そのツールをRubyから使うためのバィンディングがうまく動いてくれません。
事の発端は以前Chasenを使っていたのですが、Chasenはあまり早くないのでより早いMeCabを使ってみることにしました。最終的にはおそらくどこかのサーバになるので、実行する環境は*NIX系のOSを想定すればいいのでしょうが、とりあえず実験環境ということでWindows+Cygwin上にMeCab-0.91をインストールしてみることにしました。
MeCab本体のインストール自体はMeCabのインストールページにあるとおりでうまくいったのですが、MeCabをRubyからコントロールするためのバィンディングがうまく動いてくれません。バィンディングのインストールは数箇所修正することでコンパイルが通っているのですが、いざサンプルコードを動かしてみようとするとコアを吐いて落ちます。
続きをどうぞ。
Rubyバィンディングのコンパイルは、extconf.rbに
$LDFLAGS = '-L/usr/local/lib'
を加えることと、ruby extconf.rbをした後に生成されるMakefileの一部をLDSHARED gcc -shared -s
からLDSHARED $(CXX) -shared -s
に変更すれば、コンパイルが通るようになります。
しかしサンプルコードのtest.rbを実行しようとすると、Segmentation Fault, Abortedでruby 1.8.4が落ちてしまいます。原因として考えられるのは
- MeCabの共有ライブラリがおかしい
- Rubyバィンディングを生成しているswigがおかしい
- 共有ライブラリの場所等の設定ミス?
どなたか同じトラブルにあわれている方はいないでしょうか? 何かありましたら是非ご一報いただきたく思います。
※その後、Cygwinのdllを2006/6/2のスナップショットに変更したらコアを吐かなくなりました。結局、dllの読み込みに問題があったようです。変更の仕方は以前にも行ったことがあるので、参考にどうぞ。
コメント
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。