メモ > サーバ > 各論: プログラミング > 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:DD
の
https://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 を改造して辞書データのサイズを抑え、はてなキーワードのみ取り込むようにした。
また、読み仮名をカタカナで登録するなどの調整も行った。