Previous: テキストマイニングコマンド Up: テキストマイニングコマンド Next: mknp.rb KNPによる構文解析 FUMI
FUMI : テキストマイニングコマンド : mjuman.rb JUMANによる形態素解析

2.1 mjuman.rb JUMANによる形態素解析

テキストファイルで与えられた文書ファイルをJUMANで形態素解析し、 その結果をCSVで出力する。 複数の文書ファイルをまとめて指定できるほか、 OSのマルチタスク機能を用いた並列処理も可能である。

2.1.1 書式

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

: 意味情報

2.1.2 利用例

例1: 基本例

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,。,。,,。,特殊,句点,,,

例2: JUMANの結果(オリジナル)も出力する例

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
Previous: テキストマイニングコマンド Up: テキストマイニングコマンド Next: mknp.rb KNPによる構文解析 FUMI