Memo

メモ > サーバ > 各論: プログラミング > Igo(形態素解析)を使う

Igo(形態素解析)を使う
※MeCabよりも手軽に形態素解析を利用できる。 [PHP]文章を解析して単語ごとに分解する(形態素解析) http://php-archive.net/php/morphological-analysis/ [PHP]自然言語処理(形態素解析)を利用した簡易全文検索 http://php-archive.net/php/full-text-search1/ ■辞書ファイルの入手 https://sourceforge.net/projects/mecab/files/mecab-ipadic/ から 2.7.0-20070801 をダウンロード。(辞書ファイル。) ■本体の入手 https://osdn.jp/projects/igo/releases/ から igo-0.4.5.jar をダウンロード。(Igo本体。) もしくは igo-0.4.5-src.tar.gz をダウンロードして cd igo-0.4.3-src ant でコンパイル。(igo-0.4.5.jar が作成される。) ■辞書ファイルのビルド 例えば C:\igo で作業する場合、この場所に igo-0.4.5.jar とmecab-ipadic-2.7.0-20070801 を置く。 ビルドに成功すると、ipadicフォルダが作られる。これが辞書となる。
cd C:\igo java -Xmx1024m -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP
■PHPプログラムの入手 https://osdn.jp/projects/igo-php/ から igo-php 0.1.7 をダウンロード。 ■サンプルプログラムの作成
<?php require_once 'igo-php/lib/Igo.php'; $igo = new Igo('./ipadic', 'UTF-8'); $text = 'これはテストです'; $result = $igo->wakati($text); //$result = $igo->parse($text); print_r($result);
※ipadicディレクトリ(辞書データ)はバイナリモードでアップロードする。 アスキーモードだと正しく認識されない。 ■単語の追加 Java製形態素解析エンジン「Igo」を試してみる http://www.mwsoft.jp/programming/munou/igo_install.html MeCabの辞書を利用できるため、データの作成方法はMeCab用と同じ。 mecab-ipadic-2.7.0-20070801 内に User.name.csv を作成し、以下の内容を記述する。 (ファイル名は任意。文字コードはECU。)
ランスロット,1291,1291,500,名詞,固有名詞,人名,名,*,*,ランスロット,ランスロット,ランスロット マーリン,1291,1291,500,名詞,固有名詞,人名,名,*,*,マーリン,マーリン,マーリン
追加したら、辞書ファイルを再ビルドする。 ■はてなキーワードの単語を追加する場合 http://developer.hatena.ne.jp/ja/documents/keyword/misc/catalog から http://d.hatena.ne.jp/images/keyword/keywordlist_furigana.csv をダウンロード。 mecab-wikipedia-hatena-csv.php で keywordlist_furigana.csv から hatena-list.csv を作成する。 ファイルの文字コードをEUCに変換し、mecab-ipadic-2.7.0-20070801 内に置く。 その後、辞書ファイルを再ビルドする。 PHPのメモリ消費が大きいようなら ini_set('memory_limit', -1); を追加して様子を見る。 ■Wikipediaの単語を追加する場合 https://ja.wikipedia.org/wiki/WP:DDhttps://dumps.wikimedia.org/jawiki/ から https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-all-titles-in-ns0.gz をダウンロード。 ファイルを展開して jawiki-latest-all-titles-in-ns0 を入手する。 mecab-wikipedia-hatena-csv.php で jawiki-latest-all-titles-in-ns0 から wikipedia-list.csv を作成する。 ファイルの文字コードをEUCに変換し、mecab-ipadic-2.7.0-20070801 内に置く。 その後、辞書ファイルを再ビルドする。 PHPのメモリ消費が大きいようなら ini_set('memory_limit', -1); を追加して様子を見る。 ※無改造の mecab-wikipedia-hatena-csv.php ではてなキーワードとWikipediaの両方を取り込むと、形態素解析の際にメモリ消費が大きすぎた。 mecab-wikipedia-hatena-csv.php を改造して辞書データのサイズを抑え、はてなキーワードのみ取り込むようにした。 また、読み仮名をカタカナで登録するなどの調整も行った。

Advertisement