python から kuromoji を実行する方法のメモ。
以前の「python から java プログラムを実行」する方法を元にして、python から kuromoji を実行します。
まず、以下の URL から kuromoji をダウンロードします。
https://github.com/atilika/kuromoji/downloads
そして、パスの指定を簡単にするため、kuromoji の jar とpy4j の jar をカレントディレクトリにコピーします。
以前と同様に以下のプログラムをコンパイル・実行します。
python から kuromoji を実行するプログラムは以下のようになります。
上記のプログラムを実行すると、以下のように形態素解析結果が出力されます。
以前の「python から java プログラムを実行」する方法を元にして、python から kuromoji を実行します。
まず、以下の URL から kuromoji をダウンロードします。
https://github.com/atilika/kuromoji/downloads
そして、パスの指定を簡単にするため、kuromoji の jar とpy4j の jar をカレントディレクトリにコピーします。
以前と同様に以下のプログラムをコンパイル・実行します。
import py4j.GatewayServer; public class GwTest1 { public static void main(String[] args) { GwTest1 app = new GwTest1(); GatewayServer server = new GatewayServer(app); server.start(); } }
java -classpath .:py4j0.10.9.2.jar:kuromoji-0.7.7.jar GwTest1
python から kuromoji を実行するプログラムは以下のようになります。
import sys from py4j.java_gateway import JavaGateway def main(): gw = JavaGateway() str = 'サンプルプログラムを実行します。' tokenizer = gw.jvm.org.atilika.kuromoji.Tokenizer.builder().build() jtkns = tokenizer.tokenize(str) for i in range(len(jtkns)): jtkn = jtkns[i] tkn = { 'form': jtkn.getSurfaceForm(), 'base': jtkn.getBaseForm(), 'read': jtkn.getReading(), 'pos': jtkn.getAllFeatures(), } print(tkn) return 0 if __name__ == '__main__': res = main() exit(res)
上記のプログラムを実行すると、以下のように形態素解析結果が出力されます。
$ python kuromoji1.py {'form': 'サンプル', 'base': 'サンプル', 'read': 'サンプル', 'pos': '名詞,一般,*,*,*,*,サンプル,サンプル,サンプル'} {'form': 'プログラム', 'base': 'プログラム', 'read': 'プログラム', 'pos': '名詞,サ変接続,*,*,*,*,プログラム,プログラム,プログラム'} {'form': 'を', 'base': 'を', 'read': 'ヲ', 'pos': '助詞,格助詞,一般,*,*,*,を,ヲ,ヲ'} {'form': '実行', 'base': '実行', 'read': 'ジッコウ', 'pos': '名詞,サ変接続,*,*,*,*,実行,ジッコウ,ジッコー'} {'form': 'し', 'base': 'する', 'read': 'シ', 'pos': '動詞,自立,*,*,サ変・スル,連用形,する,シ,シ'} {'form': 'ます', 'base': 'ます', 'read': 'マス', 'pos': '助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス'} {'form': '。', 'base': '。', 'read': '。', 'pos': '記号,句点,*,*,*,*,。,。,。'}