形態素解析「MeCab」と「php_mecab」を使った(複合)名詞の抽出PHPでutf-8用の形態素解析を利用するために「MeCab」と「php_mecab」をインストールしてみました。ついでに、テキスト文から名詞を配列で抽出するサンプルも作ってみましたよ。今回は以下のような環境で構築してみます。0.98追記:MeCabは2012/2/12以降、sourceforgeからgooglecodeにダウンロード先が変わり、バージョンも変わっています。追記:今はGitHubで管理されているようです。`mecab-0.98.tar.gz'...展開&インストールインストール時に容量削減のため、UTF-8サポートのみのモードにします。install辞書のダウンロード&展開&インストール辞書がないと使えないので辞書もインストール。辞書は標準の「ipadic」よりも後継である「naist-jdic」が良いとのことなので、naist-jdicの最新版であるVer.0.6.3をインストールしてみます。install辞書とMeCabを紐付けMeCabの設定ファイルを編集して、辞書をnaist-jdicに紐付けます。(追加)(後略)-----------------------------------------------MeCab用のPHPモジュール「php_mecab」のインストールダウンロード&設定ダウンロードし、解凍します。php_mecab-0.3.0.tgz次に、インストール用のパラメーターである「php-config」の場所と「mecab-config」の場所を確認します。mecab-config/usr/local/bin/mecab-configビルド&インストールphpizeでビルドし、先ほどのパラメーターを付与してconfigure後、インストールします。installこれで、PHPのモジュール用ディレクトリに「mecab.so」が出来れば完成です。mecab.soMeCabを使ってみようPHPから利用する場合は、php.iniファイルをいじって「extension=mecab.so」を追加するか、PHPのプログラム内で「dl()」関数を使って拡張モジュールをロードします。php.iniをいじる場合extension=mecab.so書き換えたら保存して、apacheを再起動しましょう。dl()関数を使う場合<?phpdl("mecab.so");...?>テキストから名詞だけを抜き出して配列に格納してみる(複合名詞対応版)では、ちょっと実践的なコードを。テキストの中で名詞だけを抜き出してみたい、という場合にMeCabを使って名詞の配列データを作ってみましょう。MeCabのデフォルト状態では複合名詞に対応していませんが、名詞が連続していれば複合名詞として扱うようにして、軽く複合名詞対応版にしてみます。"経堂に拠点を構え、ビジネス用のホームページの企画・制作・運営を行っています。//複合名詞保存用バッファ変数//名詞が見つかったらバッファに連結保存。//名詞ではなかったらバッファの文字列(複合名詞)を名詞配列に追加し、バッファクリア。}}//最後が名詞で終わった場合用の追加処理。array_unique($meisi);print("<pre>");print_r($meisi);print("</pre>");?>実行結果はこちら。よる形態素解析はPHPの可能性を広げる技術ですので、ぜひ利用してみてくださいね。このページをシェアするあわせて読みたいPHPで文章中の単語リストを置換するいろいろな方法64ビット版CentOS6にPHPのMcrypt拡張パッケージをインストールする。2.9(2.9.0)のインストールさくらのVPSのPHP+MySQLを最新のものにアップデート。コメントをキャンセルメールアドレスが公開されることはありません。Webサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。田舎に生まれ育ち東京へ。技術はDTPデザインからプログラミングまで、インフラはCD-ROM全盛からクラウドサーバーまで、いろいろなビジネスを作り、関わってきました(知見を生かして専門学校の講師も3年ほど)。今ではAWSで月間100万PVを超えるサービスを制作・運営しながらさらなるノウハウを蓄積中。このサイトではビジネスをITコンサルタント視点で考え、感じた知見や経験が世の中のお役に立てば、という視点で無料記事として公開しています。最近は機械学習による仕事の効率化を研究中。reserved.代表者のライフハックブログ。