形態素解析をもっと簡単に使える方法を探す
→igo-phpを発見。
READMEによると、
これは「Igo - Java形態素解析器」の PHP による実装です。 Igo は、MeCab由来の辞書フォーマットを用い、ほぼ MeCab と同様の解析結果を提供する形態素解析プログラムです。 Igo-phpは、Igoと同様の形態素解析と分かち書きの機能を提供します。
とのこと。素晴らしい。ちなみにigoの本家はこちら。
早速、READMEに書かれている手順でインストール。
igo-phpのダウンロード
展開後、好きな場所にコピーし、php.iniのinclude_pathに追加する。
igo本体のダウンロード
mecabの辞書をダウンロード
jarファイルと辞書フォルダを両方共ホームディレクトリにコピー。
以下のコマンドを入力する。
$ java -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP
と、何やらエラー
### Build word trie
### Build word dictionary
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)
at net.reduls.igo.dictionary.build.WordDic.buildWordInfo(Unknown Source)
at net.reduls.igo.bin.BuildDic.main(Unknown Source)
このエラーはJava heap spaceが不足していることが原因だそうなので、javaコマンドに-Xmxオプションで適当なヒープサイズ(最大値)を指定しておく。
-Xmx1024mを追加。
再度、実行。
java -Xmx1024m -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP
### Build word trie
### Build word dictionary
### Build matrix
### Build char-category dictionary
DONE
出来たっぽい。
あとは、作成されたipadicフォルダを適当な場所にコピーすれば、辞書が使用可能に。
とりあえず、PHPから形態素解析をしてみる。
実行結果
とりあえず、PHPから形態素解析をしてみる。
<?php
require_once 'Igo.php';
$igo = new Igo("/home/user/ipadic");
$result = $igo->parse("すもももももももものうち");
print_r($result);
?>
実行結果
Array
(
[0] => Morpheme Object
(
[surface] => すもも
[feature] => 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
[start] => 0
)
[1] => Morpheme Object
(
[surface] => も
[feature] => 助詞,係助詞,*,*,*,*,も,モ,モ
[start] => 3
)
[2] => Morpheme Object
(
[surface] => もも
[feature] => 名詞,一般,*,*,*,*,もも,モモ,モモ
[start] => 4
)
[3] => Morpheme Object
(
[surface] => も
[feature] => 助詞,係助詞,*,*,*,*,も,モ,モ
[start] => 6
)
[4] => Morpheme Object
(
[surface] => もも
[feature] => 名詞,一般,*,*,*,*,もも,モモ,モモ
[start] => 7
)
[5] => Morpheme Object
(
[surface] => の
[feature] => 助詞,連体化,*,*,*,*,の,ノ,ノ
[start] => 9
)
[6] => Morpheme Object
(
[surface] => うち
[feature] => 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ
[start] => 10
)
)
以上。
0 件のコメント:
コメントを投稿