犬ターネット

igp-php を使った形態素解析

2024-04-03 php 形態素解析 mecab

MeCab をインストールできない環境でどうにか形態素解析したいため、igo-php を使うことにした。

まず https://github.com/shogo82148/mecab/releases から 辞書データの mecab-ipadic-2.7.0-20070801.tar.gz をダウンロードして展開。

次に https://ja.osdn.net/projects/igo/downloads/55029/igo-0.4.5.jar/ から Igo 本体の igo-0.4.5.jar をダウンロード(※osdn.net がすごく繋がりにくい?)

以下 java コマンドを実行して辞書を作成。作成された ipadic ディレクトリが辞書本体。

java -cp igo-0.4.5.jar net.reduls.igo.bin.BuildDic ipadic mecab-ipadic-2.7.0-20070801 EUC-JP

https://github.com/siahr/igo-php から git clone して igo-php を取得、適当な場所に配置、以下スクリプトを実行、

<?php
// Igo 読み込み
require_once "/path/to/lib/Igo.php";
// Igo インスタンス作成。第一引数は辞書ディレクトリ、第二引数は出力文字コード(省略可)
$Igo = new Igo("/path/to/ipadic", "UTF-8");
// パース
$parse = $Igo->parse("すもももももももものうち");
// パース結果は形態素ごとの Morpheme オブジェクト配列になっているので以下でアクセス
foreach($parse as $Morpheme) {
    echo $Morpheme->surface, ":", $Morpheme->feature, "\n";
}

結果はこんな感じ。大丈夫そう。

すもも:名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も:助詞,係助詞,*,*,*,*,も,モ,モ
もも:名詞,一般,*,*,*,*,もも,モモ,モモ
も:助詞,係助詞,*,*,*,*,も,モ,モ
もも:名詞,一般,*,*,*,*,もも,モモ,モモ
の:助詞,連体化,*,*,*,*,の,ノ,ノ
うち:名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ

スタジオ、Badger's Dream@hisomine、鉄剣マラソン

PowerShell 7.4 を起動時、操作ログをテキストファイルに保存する