MeCab/CabChaによる 言語解析演習

Download Report

Transcript MeCab/CabChaによる 言語解析演習

MeCab/CabChaによる
言語解析演習
工藤 拓
あらすじ



コマンドプロンプトと慣れ親しむ
MeCabを用いた形態素解析
CaboChaを用いた係り受け解析
コマンドプロンプトと慣れ親しむ

コマンドプロンプト



スタート → アクセサリ → コマンドプロンプト
コマンドを直接タイピングすることで対話的に処理を行う
コマンドの例









cd ディレクトリ名 → ディレクトリに移動
dir → ファイル名一覧を取得
type ファイル名 → ファイル名の中身を表示
more ファイル名 → ファイル名の中身を表示
notepad ファイル名 → メモ帳でファイルを開く
copy ファイル1 ファイル2 → ファイルのコピー
renameファイル1 ファイル2 → ファイル名変更
del ファイル名 → ファイルの削除
help → コマンドの一覧
注意

Windows Vista ユーザへの注意:



本演習は文字コード SJIS のテキストを扱う
Windows Vista のデフォルトの notepad.exe (メモ帳)は、
文字コード UTF-16 でファイルを編集する
notepad.exe を用いる際(ファイルを編集する際)には、
TeraPad もしくは sakura editor などのエディタを利用し、
文字コード SJIS でファイルを保存するようにすること
プログラムの停止


プログラムの緊急停止の方法
コントロールキーを押しながら「c」を押すことで、
プログラムを強制停止
MeCabによる形態素解析
デスクトップ上の NAIST-Tutorial をダブルクリック
C:\NAIST>mecab
私の名前は中野です
私
名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
の
助詞,連体化,*,*,*,*,の,ノ,ノ
名前 名詞,一般,*,*,*,*,名前,ナマエ,ナマエ
は
助詞,係助詞,*,*,*,*,は,ハ,ワ
中野 名詞,固有名詞,地域,一般,*,*,中野,ナカノ,ナカノ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
EOS
コントロール + c で終了
テキストファイルの解析
C:\NAIST>notepad sample.txt
メモ帳が起動するので、適当な文を入力して保存
(例: 今日はいい天気です)
C:\NAIST>mecab sample.txt
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は
助詞,係助詞,*,*,*,*,は,ハ,ワ
いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ
天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。
記号,句点,*,*,*,*,。,。,。
EOS
ファイルの内容を変えて解析してみましょう
結果をテキストファイルに出力
C:\NAIST>mecab sample.txt –o result.txt
もしくは
C:\NAIST>mecab sample.txt > result.txt
ファイルの確認
C:\NAIST>notepad result.txt
mecab 解析したいファイル -o 結果ファイル
三四郎/こころの解析
解析したいファイルの確認
C:\NAIST>notepad sanshiro.txt
C:\NAIST>notepad kokoro.txt
MeCabによる解析
C:\NAIST>mecab sanshiro.txt –o sanshiro-result.txt
C:\NAIST>mecab kokoro.txt –o kokoro-result.txt
解析結果の確認
C:\NAIST>notepad sanshiro-result.txt
C:\NAIST>notepad korkoro-result.txt
N-best 解析
C:\NAIST>mecab -N2 sample.txt
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は
助詞,係助詞,*,*,*,*,は,ハ,ワ
いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ
天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。
記号,句点,*,*,*,*,。,。,。
EOS
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
は
助詞,係助詞,*,*,*,*,は,ハ,ワ
いい 動詞,自立,*,*,五段・ワ行促音便,連用形,いう,イイ,イイ
天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。
記号,句点,*,*,*,*,。,。,。
EOS
入力をかえたり –N20 等数字を大きくしたり、結果をファイルに出力したりして
みましょう
出力フォーマット変更
C:\NAIST>mecab -Owakati sample.txt
今日 は いい 天気 です 。
C:\NAIST>mecab -Oyomi sample.txt
キョウハイイテンキデス。
C:\NAIST>mecab -Ochasen sample.txt
今日 キョウ 今日 名詞-副詞可能
は
ハ
は
助詞-係助詞
いい イイ いい 形容詞-自立
形容詞・イイ 基本形
天気 テンキ 天気 名詞-一般
です デス です 助動詞 特殊・デス
基本形
。
。
。
記号-句点
EOS
出力フォーマット変更
C:\NAIST>mecab -F"%m|" sample.txt
今日|は|いい|天気|です|。|EOS
C:\NAIST>mecab -F"%m," sample.txt
今日,は,いい,天気,です,。,EOS
C:\NAIST>mecab -F"%m(%f[0])" sample.txt
今日(名詞)は(助詞)いい(形容詞)天気(名詞)です(助動詞)。(記号)EOS
カスタムフォーマットのマクロの詳細はマニュアルをご覧ください
辞書引きされた全単語を出力
C:\NAIST>mecab -a sample.txt
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー
今
接頭詞,名詞接続,*,*,*,*,今,コン,コン
今
名詞,固有名詞,地域,一般,*,*,今,イマ,イマ
今
名詞,固有名詞,人名,姓,*,*,今,イマ,イマ
今
名詞,副詞可能,*,*,*,*,今,イマ,イマ
日
名詞,接尾,一般,*,*,*,日,ビ,ビ
日
名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ
日
名詞,固有名詞,地域,国,*,*,日,ニチ,ニチ
日
名詞,固有名詞,地域,一般,*,*,日,ヒ,ヒ
日
名詞,非自立,副詞可能,*,*,*,日,ヒ,ヒ
日
名詞,非自立,一般,*,*,*,日,ヒ,ヒ
ソフト分かち書き
C:¥NAIST>mecab -l2 -a -F“%m %H %pP %pb¥n” sample.txt
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー 0.977144 *
今 接頭詞,名詞接続,*,*,*,*,今,コン,コン 0.009195
今 名詞,固有名詞,地域,一般,*,*,今,イマ,イマ 0.000087
今 名詞,固有名詞,人名,姓,*,*,今,イマ,イマ 0.000129
今 名詞,副詞可能,*,*,*,*,今,イマ,イマ 0.013446
日 名詞,接尾,一般,*,*,*,日,ビ,ビ 0.007952
日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ 0.002709
日 名詞,固有名詞,地域,国,*,*,日,ニチ,ニチ 0.001335
日 名詞,固有名詞,地域,一般,*,*,日,ヒ,ヒ 0.000011
日 名詞,非自立,副詞可能,*,*,*,日,ヒ,ヒ 0.001421
..
%m: 単語 %H: 素性, %pP 周辺確率, %pb: 最適の時は *
現在の辞書情報の表示
C:\NAIST>mecab -D
filename:
C:\Program Files\MeCab\etc\..\dic\ipadic\sys.dic
version:
102
charset:
SHIFT-JIS
type: 0
size: 378914
left size:
1316
right size:
1316
378914単語登録されていることがわかります。
ユーザ辞書の作成
c:\NAIST>notepad user.csv
メモ帳が起動するので、以下の単語を登録
ピラティス,-1,-1,1000,名詞,一般,*,*,*,*,ピラティス,ピラティス,ピラティス,ユーザ辞書
辞書のコンパイル (最後の user.csv まで1行で入力)
C:\NAIST>mecab-dict-index -f SHIFT-JIS -t SHIFT_JIS –d “C:\Program
Files\mecab\dic\ipadic” -u user.dic user.csv
reading user.csv ... 1
emitting double-array: 100% |###########################################|
done!
mecab_dict_index -f SHIFT-JIS –t SHIFT-JIS –d システム辞書があるディレクトリ
る辞書ファイル名 テキスト辞書ファイル名
–u 作成す
ユーザ辞書の作成
- ユーザ辞書を使って解析
C:\NAIST>mecab -u user.dic
ピラティス
ピラティス
名詞,一般,*,*,*,*,ピラティス,ピラティス,ピラティス,ユーザ辞書
EOS
- ユーザ辞書無し辞書が無い場合
C:\NAIST>mecab
ピラティス
ピラティス
名詞,固有名詞,組織,*,*,*,*
EOS
ユーザ辞書情報の表示
C:\NAIST>mecab -u user.dic -D
filename:
C:\Program Files\MeCab\etc\..\dic\ipadic\sys.dic
version:
102
charset:
SHIFT-JIS
type: 0
size: 378914
left size:
1316
right size:
1316
filename:
version:
charset:
type: 1
size: 1
left size:
right size:
user.dic
102
SHIFT_JIS
1316
1316
ユーザ辞書情報をデフォルトで使う
C:\NAIST>notepad c:\Program Files\mecab\dic\ipadic\dicrc
メモ帳が起動するので、辞書の設定ファイルに
userdic = c:\NAIST\user.dic
を追加
-u を指定しなくても解析可能になる
C:\NAIST>mecab
ピラティス
ピラティス
名詞,一般,*,*,*,*,ピラティス,ピラティス,ピラティス,ユーザ辞書
EOS
CaboChaによる係り受け解析
デスクトップ上の NAIST-Tutorial をダブルクリック
C:\NAIST>cabocha
太郎は次郎が持っている本を花子に渡した。
<PERSON>太郎</PERSON>は---------D
<PERSON>次郎</PERSON>が-D
|
持っている-D |
本を-D |
<PERSON>花子</PERSON>に-D
渡した。
EOS
コントロール + c で終了
テキストファイルの解析
C:\NAIST>notepad sample.txt
メモ帳が起動するので、適当な文を入力して保存
(例:太郎は京都で買った本を次郎に渡した。)
C:\NAIST>cabocha sample.txt
<PERSON>太郎</PERSON>は---D
<LOCATION>京都</LOCATION>で-D
買った-D
本を-D
次郎に-D
渡した。
EOS
ファイルの内容を変えて解析してみましょう
計算機に扱いやすいフォーマット
C:\NAIST>cabocha -f1 sample.txt
* 0 2D 1/1 0.030901
太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー B-PERSON
は
助詞,係助詞,*,*,*,*,は,ハ,ワ O
* 1 2D 1/1 2.218163
京都 名詞,固有名詞,地域,一般,*,*,京都,キョウト,キョート
B-LOCATION
で
助詞,格助詞,一般,*,*,*,で,デ,デ O
* 2 3D 1/1 2.060807
買っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,買う,カッ,カッ
O
た
助動詞,*,*,*,特殊・タ,基本形,た,タ,タ O
…
ファイルの内容を変えて解析してみましょう