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