Gomoku: 辞書込みの形態素解析器
IgoをベースにしてJARファイルに辞書データを同梱した形態素解析器を作成した。
名前は同系統のGomoku(ver 0.0.1)。
特徴
開発コンセプト(?)は「JARファイルのみで形態素解析」と「サイズを(比較的)小さく」の二点。
このJARファイル一つで形態素解析が行える(外部の辞書データ不要)、という点が最大の特徴。
ただし、その分辞書のカスタマイズ性には乏しい。
※ 辞書を変更する場合はjarファイルごと取り替える必要がある
その他の特徴を列挙:
- 辞書データサイズがIgoより小さい
- (デフォルトの)辞書にはIPADIC(mecab-ipadic-2.7.0-20070801)を使用
- 現状IPADICに特化 ※ 他の辞書での動作は未確認。動かないということはないと思うけど・・・
- テキスト辞書からバイナリ辞書を構築する処理はCommon Lispで記述
- 辞書をカスタマイズする場合はSBCL(Common Lisp処理系)が必要
- 形態素の辞書引き用のデータ構造にはDAWG(Double-Array)を使用
- 解析結果はIgo互換 ※ 素性情報に品詞しか含まない点を除いて
試してはいないけどGoogle App Engine上でも問題なく動作するはず。
使用例
使用例:
# jarファイル取得 $ wget --no-check-certificate https://github.com/downloads/sile/gomoku/gomoku-0.0.1.jar $ ls -lh gomoku-0.0.1.jar -rw-r--r-- 1 user user 3.9M 2011-01-24 22:04 gomoku-0.0.1.jar # 形態素解析 $ echo すもももももももものうち | java -cp gomoku-0.0.1.jar net.reduls.gomoku.bin.Gomoku すもも 名詞,一般,*,*,*,* も 助詞,係助詞,*,*,*,* もも 名詞,一般,*,*,*,* も 助詞,係助詞,*,*,*,* もも 名詞,一般,*,*,*,* の 助詞,連体化,*,*,*,* うち 名詞,非自立,副詞可能,*,*,* EOS # 分かち書き $ echo すもももももももものうち | java -cp gomoku-0.0.1.jar net.reduls.gomoku.bin.Gomoku -wakati すもも も もも も もも の うち
Gomokuを使用したJavaプログラム例:
import java.util.List; import net.reduls.gomoku.Tagger; import net.reduls.gomoku.Morpheme; public class GomokuSample { public static void main(String[] args) { final String text = args[0]; List<Morpheme> result = Tagger.parse(text); for(Morpheme m : result) System.out.println(m.surface+"\t"+m.feature); } }
# コンパイル $ javac -cp gomoku-0.0.1.jar GomokuSample.java # 実行: 第一引数で渡された文字列を形態素解析する $ java -cp .:gomoku-0.0.1.jar GomokuSample すもももももももものうち すもも 名詞,一般,*,*,*,* も 助詞,係助詞,*,*,*,* もも 名詞,一般,*,*,*,* も 助詞,係助詞,*,*,*,* もも 名詞,一般,*,*,*,* の 助詞,連体化,*,*,*,* うち 名詞,非自立,副詞可能,*,*,*
まだソースコードとかがいろいろ未整理だけど、一応問題なく動作はしている(ように見える)。
*1:2011/01/25追記: version-0.0.1では、JARファイルサイズが3.3MBで、解凍時が8.3MB。