220 likes | 406 Views
MeCab/CabCha による 言語解析演習. 工藤 拓. あらすじ. コマンドプロンプトと慣れ親しむ MeCab を用いた形態素解析 CaboCha を用いた係り受け解析. コマンドプロンプトと慣れ親しむ. コマンドプロンプト スタート → アクセサリ → コマンドプロンプト コマンドを直接タイピングすることで対話的に処理を行う コマンドの例 cd ディレクトリ名 → ディレクトリに移動 dir → ファイル名一覧を取得 type ファイル名 → ファイル名の中身を表示 more ファイル名 → ファイル名の中身を表示
E N D
あらすじ • コマンドプロンプトと慣れ親しむ • 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-Owakatisample.txt 今日 は いい 天気 です 。 C:\NAIST>mecab-Oyomisample.txt キョウハイイテンキデス。 C:\NAIST>mecab-Ochasensample.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 メモ帳が起動するので、以下の単語を登録 辞書のコンパイル (最後の 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 作成する辞書ファイル名 テキスト辞書ファイル名 ピラティス,-1,-1,1000,名詞,一般,*,*,*,*,ピラティス,ピラティス,ピラティス,ユーザ辞書
ユーザ辞書の作成 - ユーザ辞書を使って解析 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: user.dic version: 102 charset: SHIFT_JIS type: 1 size: 1 left size: 1316 right size: 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 … ファイルの内容を変えて解析してみましょう