Sanmoku: 省メモリな形態素解析器
GomokuをベースにしたSanmokuという形態素解析器を実装した。
Gomokuに比べて解析時に必要なメモリ量が少ないのと初期ロード時間が短いのが特徴。
将来的には解析精度を若干落として、辞書サイズ*1をさらに削減する可能性もあるけど、現状は解析結果はGomoku互換。
Android等のリソースの制限が厳しい環境での使用を想定。
最低メモリ所要量とロード時間
以下、自分の環境*2での計測結果。
## 最低メモリ所要量 # Gomoku(0.0.4)は 26MBのメモリが必要 $ java -Xmx26m -cp gomoku-0.0.4.jar net.reduls.gomoku.bin.Gomoku < /path/to/natsume-soseki.txt > /dev/null # Sanmoku(0.0.1)は 11MBのメモリが必要 $ java -Xmx11m -cp sanmoku-0.0.1.jar net.reduls.sanmoku.bin.Sanmoku < /path/to/natsume-soseki.txt > /dev/null ## ロード時間 # Gomoku(0.0.4)は 0.633秒 (内 0.094秒はJVM起動時間) time echo 'a' | java -Xmx26m -cp gomoku-0.0.4.jar net.reduls.gomoku.bin.Gomoku a 名詞,固有名詞,組織,*,*,* EOS real 0m0.633s user 0m0.808s sys 0m0.044s # Sanmoku(0.0.1)は 0.217秒 (内 0.094秒はJVM起動時間) time echo 'a' | java -Xmx11m -cp sanmoku-0.0.1.jar net.reduls.sanmoku.bin.Sanmoku a 名詞,固有名詞,組織,*,*,* EOS real 0m0.217s user 0m0.244s sys 0m0.024s
Android
https://github.com/sile/sanmoku/downloads に Sanmoku-0.0.1.apk という名前でサンプルAndroidアプリを配置。
自分の環境(HTC EVO WiMAX ISW11HT)でしか動作確認していないので、他のスマートフォンで正常に動くかどうかは不明。
辞書ロード時間は、Gomokuに比べるとだいぶ短縮されてはいるが、それでも一番初めの解析が始まるまで、現状では数秒程度の時間を要する。