php MeCab(形態素解析)のインストール
やりたいことは、PHPで「わかち」ってヤツをやりたい。
結論からいうとeclipseでのやり方は不明…きっと何か方法はあるはず。
まずは「windows版」ってのがあったのでDLとインスト
参考:http://www.ipentec.com/document/document.aspx?page=windows-mecab-install
「http://mecab.sourceforge.net/」からダウンロード。
ダウンロードしたファイルを実行。
インストール完了後、起動してみたけど…求めているものと根本的に違う。
やりたいことは、PHPで文章を投げたら各単語がどうのこうのってしたい。
「windows版」ってやつはPHPの機能拡張というより独立したアプリっぽい。
「windows版」ってヤツがPHPでも使えるとか…
http://handsrecs2nd.seesaa.net/article/140090025.html
http://handsrecs2nd.seesaa.net/article/140172059.html
Xamppにコピペ。
よくわかんないけど…ダメっぽい。
PHP版ってヤツのDLとインストール
MeCab本体のダウンロード
「http://mecab.sourceforge.net/src」から「mecab」の「0.98」と中に入っていき「mecab-0.98.tar.gz」をダウンロード。
MeCab用の辞書のダウンロード
「IPA 辞書」を推奨しているので、同じく「http://mecab.sourceforge.net/src」から「mecab-ipadic」の「2.7.0-20070801」と中に入っていき「mecab-ipadic-2.7.0-20070801.tar.gz」をダウンロード。
ファイルのアップ
teratermでインスト作業するために適当なフォルダへコピー。
[xxx]$ cd mecab-0.98
[xxx mecab-0.98]$ phpize
とすると
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
この人はダレ?
http://kona.tonakaj.org/sc430/x2.html
で同じエラー発見。
phpizeって何者?
phpizeとは、拡張モジュールをビルドする低レベルなビルドツール。
autoconfやautomake m4等のビルドツールが別途必要になる。
これを使用することにより、PHPをソースから再コンパイルすることなく拡張モジュールをビルドすることができる。
意味わかんね…。わかんないけど下記をやればよさげ。
実行したらエラーが出てきた。
You need to be root to perform this command.
ルート権限がいるっぽい。
なんか成功したっぽいので再度「phpize」をしてみる。
結果は同じくダメ。
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
PECL 拡張モジュールをインストールしてみる。
まずはダウンロード(pdflib-2.1.8.tgz)。
http://pecl.php.net/package/pdflib
teratermでインスト作業するために適当なフォルダへコピー。
[xxx]$ tar zxfv pdflib-2.1.8.tgz
[xxx]$ cd pdflib-2.1.8
[xxx pdflib-2.1.8]$ ./configure
また、エラー…。
調べると今度は「libxml2-devel」ってのがいるらしい。
参考:http://d.hatena.ne.jp/yohei-a/20100426/1272275098
「y/N」って聞かれたから「y」と。
「Complete」したので気を取り直して「configure」。
[xxx]$ ./configure
また、エラー…。
もうイヤだ…ってか先に「phpize」をしなくちゃ…。
[xxx pdflib-2.1.8]$ phpize
[xxx pdflib-2.1.8]$ ./configure
最後に「error」って文字が出てる。
PDFlib extension requires at least pdflib 4.0.x.
See config.log for more information.
「pdflib」ってのが必要?
気を取り直して…「pdflib-2.1.8」を削除して再度やり直す。
[xxx]$ cd pdflib-2.1.8
[xxx pdflib-2.1.8]$ phpize
[xxx pdflib-2.1.8]$ ./configure –enable-64bit
だらだら~と何かがでてきて最後の3行にエラーがでてる。
PDFlib extension requires at least pdflib 4.0.x.
See config.log for more information.
関係ないかもしれないけどapachの再起動。
再起動後、こりずに「configure」をやってみる。
まだ…だらだら~と何かがでてきて最後の3行にエラーがでてる。
PDFlib extension requires at least pdflib 4.0.x.
See config.log for more information.
投げやりにMeCabに戻ってみる。
[xxx mecab-0.98]$ ./configure –with-charset=utf8
[xxx mecab-0.98]$ make
…?
なんかエラーが出なくなってる…。
[xxx mecab-0.98]$ su –
[xxx]$ cd /xxx/mecab-0.98
[xxx mecab-0.98]$ make install
続けて辞書もインストール。
[xxx]$ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz
[xxx]$ cd mecab-ipadic-2.7.0-20070801
[xxx mecab-ipadic-2.7.0-20070801]$ ./configure –with-charset=utf8
インストール終了したっぽい?
っていれて、適当な文字をいれたら形態素分析してくれた…。
とりあえず完了。
MeCab extensionのインストール
http://page2.xrea.jp/#php_mecab
にデータがあるらしいけどページが表示されない…。
しょうがないのでGoogleで検索してキャッシュを表示。
対象箇所を探してきてダウンロード。こっちはあった…?
どういうことだろう…まぁ気にしないさ。
ダウンロードしたファイルをteratermでインスト作業するために適当なフォルダへコピー。
再度、teratermにもどって解凍・インストール。
[xxx]$ cd php_mecab-0.2.0
[xxx php_mecab-0.2.0]$ phpize
[xxx php_mecab-0.2.0]$ ./configure –with-php-config=/usr/bin/php-config –with-mecab=/usr/local/bin/mecab-config
[xxx php_mecab-0.2.0]$ make
とりあえずココまでは順調。
「make test」の実行を忘れるなっていうから忘れずに実行してみる。
[xxx php_mecab-0.2.0]$ make install
何かまたエラー…。
cp: cannot create regular file '/usr/lib/php/modules/#INST@28439#': Permission denied
make: *** [install-modules] エラー 1
「Permission denied」ってある。
「/usr/lib/」に「cp」をしようとして「Permission denied」って意味かな…。
php.iniの編集
「php.ini」の居場所不明…。
phpinfoで所在確認。
バックアップをとって「extension=mecab.so」を追加。
[xxx]$ vi /***/php.ini
「extension=mecab.so」を最後の行に追加、保存・終了。
PHPで形態素分析のテスト
下記ファイルを「mecabtest.php」って名前で作成。
http://www.programming-magic.com/20080808173652/
$str = "MeCab extensionは、MeCabを使って文章の形態素解析をするPHP用の拡張モジュールです。";
$result = mecab_split($str);
print_r($result);
?>
teratermで試してみる。
成功した…。