コハクウェブデザイン

php igo-phpで形態素解析を使ってみる

文章を単語ごとに分割して、品詞等を解析してくれることを形態素解析と言うそうです。聞くだけで頭が痛くなりそうな難しい名前ですね(笑)

そんな難しそうなものを使う機会があったので自分メモ的にインストール方法を残しておこうと思います。
環境はphp: 7.4です。

今回は「mecab」というフォルダを作成してその中に必要なものを揃えていきます。
もちろんフォルダ名は好きな名前でOKです。

1「igo-0.4.5.jar」ファイルをダウンロードする

まず以下のリンク先ページに移動して少し下にスクロールすると「igo-0.4.5.jar」というファイルがあると思うのでクリックしてダウンロード後、「mecab」フォルダに移動させます。
※2020/12/31時点では0.4.5ですが違うバージョンが出てるかもです。

https://ja.osdn.net/projects/igo/releases/

2.「mecab-ipadic-2.7.0-20070801.tar.gz」をダウンロードする

次に以下のリンクに飛び、「IPA辞書」という欄から「IPA 辞書, IPAコーパス に基づき CRF でパラメータ推定した辞書です。 (推奨) ダウンロード」という部分のダウンロードリンクをクリックして「mecab-ipadic-2.7.0-20070801.tar.gz」をダウンロードします。
こちらも「mecab」フォルダに移動させましょう。

http://taku910.github.io/mecab/#download

3.「mecab-ipadic-2.7.0-20070801.tar.gz」を解凍する

2.が終わったらターミナルでカレントディレクトリを作業中の「mecab」に移動します。

cd mecab

移動したら、以下のコマンドを打って「mecab-ipadic-2.7.0-20070801.tar.gz」を解凍しましょう。

tar -xzf mecab-ipadic-2.7.0-20070801.tar.gz

解凍すると「mecab-ipadic-2.7.0-20070801」というフォルダができると思います。

3.「igo-php-0.1.7.zip」をダウンロードする

以下のサイトから「igo-php-0.1.7.zip」をダウンロードします。
ダウンロードしたら上記ファイルを「mecab」フォルダに移動して、今度は普通にダブルクリックして解凍してOKです。

https://ja.osdn.net/projects/igo-php/

4.「1.」と「3.」をコンパイルする

最後に「1.」のファイルと「3.」の解凍でできたファイルをコンパイルします。

ターミナルで「mecab」ディレクトリに移動して以下のコマンドを打ちます。

java -Xmx1024m -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP

上記コマンドを実行すると「mecab」フォルダに「ipadic」というフォルダができると思います。
これで準備は完了です。

この時以下のようなエラーが出た場合はこちら( https://www.oracle.com/java/technologies/javase-jdk15-downloads.html )のページから「macOS Installer」のファイル「jdk-15.0.1_osx-x64_bin.dmg」をダウンロードしてインストールしましょう。

No Java runtime present, requesting install.

5.phpで試してみる

ではphpファイルを作って、確かめてみましょう。
「mecab」フォルダに「index.php」を作って以下のコードを書いてみます。

<?php
require_once 'igo-php-0.1.7/lib/Igo.php';
 
$igo = new Igo('ipadic', 'UTF-8');

// parse()メソッドを使うと品詞なども取得してくれます。
$reponse = $igo->parse("すもももももももものうち");
print_r($reponse);

// wakati()メソッドは単語のみを取得してくれます。
$reponse = $igo->wakati("すもももももももものうち");
print_r($reponse);