テキストファイルで与えられた文書ファイルをJUMANで形態素解析し、 その結果をCSVで出力する。 複数の文書ファイルをまとめて指定できるほか、 OSのマルチタスク機能を用いた並列処理も可能である。
mjuman.rb I= O= [P=] [mp=] [log=] [-mcmdenv] [--help]
I= : 文書ファイルが格納されたパス名 O= : 解析結果のCSVファイルを格納するパス名 P= : JUMANが直接出力する結果を格納するパス名(省略時は出力しない) mp= : 並列処理の数。デフォルト値は2 log= : JUMANが出力するエラーログを格納するファイル名 -mcmdenv : 内部で利用しているMCMDのメッセージ出力レベルを環境変数に任せる。 : 省略時は警告とエラーメッセージのみ出力(KG_VerboseLevel=2)。 --help : ヘルプメッセージの表示
テキストファイルは、1行1文にしておくことが望ましい。 文字コードはUTF-8である必要がある。
子どもはリンゴがすきです。 望遠鏡で泳ぐ少女を見た。
形態素解析の結果は、CSVとして出力される。
aid,sid,tid,word,orgWord,daiWord,yomi,class1,class2,class3,class4,annotation test.txt,0,0,子ども,子ども,子供,こども,名詞,普通名詞,,,代表表記:子供/こども カテゴリ:人 test.txt,0,1,は,は,,は,助詞,副助詞,,, test.txt,0,2,リンゴ,リンゴ,林檎,りんご,名詞,普通名詞,,,代表表記:林檎/りんご カテゴリ:植物 :
CSVの内容はJUMANの出力に依拠するが、 各項目の意味は以下の通りである。
aid : 入力ファイル名 sid : 行番号(センテンスID) tid : 形態素番号(トークンID) word : 語(原形) orgWord : 文中での表記 daiWord : 代表表記 yomi : 読み class1 : 品詞(レベル1) class2 : 品詞(レベル2) class3 : 品詞(レベル3) class4 : 品詞(レベル4) annotation : 意味情報
textディレクトリに文書ファイルtest.txtを置き、 形態素解析を実行する。結果はcsvディレクトリに出力する。
$ more text/test.txt 子どもはリンゴがすきです。 望遠鏡で泳ぐ少女を見た。 $ mjuman.rb I=text O=csv #MSG# KNP: reading text/test.txt #MSG# JUMAN: MP-2 aid=test.txt sid=0 (sentences:1/2, articles:1/1) #MSG# JUMAN: MP-2 aid=test.txt sid=1 (sentences:2/2, articles:1/1) #MSG# JUM2CSV 1/1 #MSG# Elapse: 0.048sec, # of sentences=2, # of articles=1 #MSG# 0.024sec/sentence, 0.048sec/article #MSG# mpCount=2, poolSize=1000 #MSG# maxLen=512Byte, maxSec=30sec, sizeLimit=2000MB #END# /Users/maegawa/.rvm/rubies/ruby-2.0.0-p247/bin/mjuman.rb I=text O=csv $ more csv/test.txt aid,sid,tid,word,orgWord,daiWord,yomi,class1,class2,class3,class4,annotation test.txt,0,0,子ども,子ども,子供,こども,名詞,普通名詞,,,代表表記:子供/こども カテゴリ:人 test.txt,0,1,は,は,,は,助詞,副助詞,,, test.txt,0,2,リンゴ,リンゴ,林檎,りんご,名詞,普通名詞,,,代表表記:林檎/りんご カテゴリ:植物 test.txt,0,3,が,が,,が,助詞,格助詞,,, test.txt,0,4,すきだ,すきです,好きだ,すきです,形容詞,,ナ形容詞,デス列基本形,代表表記:好きだ/ test.txt,0,5,。,。,,。,特殊,句点,,, test.txt,1,0,望遠,望遠,望遠,ぼうえん,名詞,普通名詞,,,代表表記:望遠/ぼうえん カテゴリ:抽象物 test.txt,1,1,鏡,鏡,鏡,かがみ,名詞,普通名詞,,,代表表記:鏡/かがみ 漢字読み:訓 カテゴリ:人工物- test.txt,1,2,で,で,,で,助詞,格助詞,,, test.txt,1,3,泳ぐ,泳ぐ,泳ぐ,およぐ,動詞,,子音動詞ガ行,基本形,代表表記:泳ぐ/およぐ test.txt,1,4,少女,少女,少女,しょうじょ,名詞,普通名詞,,,代表表記:少女/しょうじょ カテゴリ:人 test.txt,1,5,を,を,,を,助詞,格助詞,,, test.txt,1,6,見る,見た,見る,みた,動詞,,母音動詞,タ形,代表表記:見る/みる 補文ト 自他動詞:自: test.txt,1,7,。,。,,。,特殊,句点,,,
JUMANの結果(オリジナル)もjumanディレクトリに出力しておく。
$ more text/test.txt 子どもはリンゴがすきです。 望遠鏡で泳ぐ少女を見た。 $ mjuman.rb I=text O=csv P=juman #MSG# KNP: reading text/test.txt #MSG# JUMAN: MP-2 aid=test.txt sid=0 (sentences:1/2, articles:1/1) #MSG# JUMAN: MP-2 aid=test.txt sid=1 (sentences:2/2, articles:1/1) #MSG# JUM2CSV 1/1 #MSG# Elapse: 0.054sec, # of sentences=2, # of articles=1 #MSG# 0.027sec/sentence, 0.054sec/article #MSG# mpCount=2, poolSize=1000 #MSG# maxLen=512Byte, maxSec=30sec, sizeLimit=2000MB #END# /Users/maegawa/.rvm/rubies/ruby-2.0.0-p247/bin/mjuman.rb I=text O=csv P=juman $ more juman/test.txt 子ども こども 子ども 名詞 6 普通名詞 1 * 0 * 0 "代表表記:子供/こども カテゴリ:人" は は は 助詞 9 副助詞 2 * 0 * 0 NIL リンゴ りんご リンゴ 名詞 6 普通名詞 1 * 0 * 0 "代表表記:林檎/りんご カテゴリ:植物 が が が 助詞 9 格助詞 1 * 0 * 0 NIL すきです すきです すきだ 形容詞 3 * 0 ナ形容詞 21 デス列基本形 29 "代表表記:好きだ/すきだ 反 。 。 。 特殊 1 句点 1 * 0 * 0 NIL EOS 望遠 ぼうえん 望遠 名詞 6 普通名詞 1 * 0 * 0 "代表表記:望遠/ぼうえん カテゴリ:抽象物" 鏡 かがみ 鏡 名詞 6 普通名詞 1 * 0 * 0 "代表表記:鏡/かがみ 漢字読み:訓 カテゴリ:人工物-その で で で 助詞 9 格助詞 1 * 0 * 0 NIL 泳ぐ およぐ 泳ぐ 動詞 2 * 0 子音動詞ガ行 4 基本形 2 "代表表記:泳ぐ/およぐ" 少女 しょうじょ 少女 名詞 6 普通名詞 1 * 0 * 0 "代表表記:少女/しょうじょ カテゴリ:人" を を を 助詞 9 格助詞 1 * 0 * 0 NIL 見た みた 見る 動詞 2 * 0 母音動詞 1 タ形 10 "代表表記:見る/みる 補文ト 自他動詞:自:見える/ 。 。 。 特殊 1 句点 1 * 0 * 0 NIL EOS