どんなものがあるか?
- php_mecab (phpのモジュール)
- igo-php
どれがいいの?
igo-php にした。
- Mac OS X の MAMP だとモジュール組み込みなど激しく面倒なので。
使ってみた感想
思ったよりうまく分けてくれなかったので、利用を諦めた。
ちゃんと調教するといいのかもだけど、工数が見えないので諦めた。
問題点
- 氏名が、苗字と名前に分けられた (氏名両方で取得したかった)
- 名前が、真奈だとしたら、真、奈と別れた
- AKB48 が AKB と 48 にわかれた
などなど、沢山。
辞書登録等しなきゃなんだろうけども。
igo-php の公式サイト
Igo - a morphological analyzer
http://igo.sourceforge.jp/
igo-php の特徴
公式ページから概要/特徴
- Javaで実装された形態素解析器。→ Common Lisp版
- 辞書フォーマット及び解析結果は、ほぼMeCab互換。
- 単機能。
- Javaの形態素解析器としては比較的高速。
- スレッドセーフ。
インストールの大まかな流れ
まずは大まかな流れ (2013/08/01 時点)
- jarファイルをダウンロード
- Mecab用IPA辞書をダウンロード
- 上記jarを使って、IPA辞書をコンパイルして作成
- igo-php をダウンロード (igo-php 0.1.7)
インストール方法
1. jarファイルのダウンロード
ダウンロード - Igo - SourceForge.JP
http://sourceforge.jp/projects/igo/releases/
2. Mecab用IPA辞書をダウンロード
Downloads - mecab - Japanese morphological analyzer
https://code.google.com/p/mecab/downloads/list
以下のが最新かな??
mecab-ipadic-2.7.0-20070801.tar.gz
3. 上記2つを使って、辞書をコンパイルして作成
3の辞書を作成する方法
java -Xmx1024m -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP
4. igo-php をダウンロード
igo-php 公式は、どっちだろ?
siahr/igo-php
https://github.com/siahr/igo-php
Igo-php プロジェクト日本語トップページ - SourceForge.JP
http://sourceforge.jp/projects/igo-php/
java で解析テスト
すもももももももものうち [Enter]
php で解析テスト
$ php Igo.php <辞書へのパス> <文字列(またはテキストファイル)>
$ php Igo.php /home/user/ipadic "すもももももももものうち"
メモリー不足になるので、一時的に増やした方がいいかも。
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /Users/hoge/igo-php-0.1.7/lib/Igo/FileMappedInputStream.php on line 26
実際のコード
dirname 使っているところは許して。define等で絶対パスを。
<?php
ini_set('memory_limit', '128M');
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/igo-php/lib/Igo');
require_once(dirname(__FILE__) . '/igo-php/lib/Igo.php');
$igo = new Igo(dirname(__FILE__) . '/ipadic', 'UTF-8');
$result = $igo->parse("すもももももももものうち");
print_r($result);
$result = $igo->wakati("すもももももももものうち");
print_r($result);
参考サイト
BakedMemo: igo-phpを使って形態素解析をする方法
http://bakedmemo.blogspot.jp/2013/01/igo-php.html
[PHP]文章を解析して単語ごとに分解する(形態素解析) | PHP Archive
http://php-archive.net/php/morphological-analysis/