[[Programming]]
#contents
http://chasen.org/~taku/software/cabocha/cabocha.html
[[CaBoCha:]] のインストール.[[下準備>和布蕪他インストール]]で[[MeCab:http://sourceforge.net/project/showfiles.php?group_id=177856&package_id=205277]] と,次に [[TinySVM:http://chasen.org/~taku/software/TinySVM/]] : http://chasen.org/~taku/software/TinySVM/ と [[飲茶 YamCha:http://chasen.org/~taku/software/yamcha/]] : http://chasen.org/~taku/software/yamcha/ さらには [[CRF++:http://crfpp.sourceforge.net/]] : http://crfpp.sourceforge.net/ をインストールして,
[[CaBoCha:http://sourceforge.net/projects/cabocha/]]: http://sourceforge.net/projects/cabocha/は[[次のようにしてインストール>日録2008_2月#CaBoCha]].
CaBoCha0.60pre2をインストール
$ bzip2 -cd cabocha-0.60pre2.tar.bz2 | tar xf -
$ ./configure --with-charset=UTF8
$ make
$ sudo make install
$ sudo ldconfig # これも忘れないうちに実行しておく
実行してみる.
$ cabocha
僕は,今日大学で授業があるんだ.
僕は,-----D
今日大学で---D
授業が-D
あるんだ.
EOS
$ cabocha -f1
僕は,今日大学で授業があるんだ.
* 0 3D 0/1 -1.541709
僕 名詞,代名詞,一般,*,*,*,僕,ボク,ボク O
は 助詞,係助詞,*,*,*,*,は,ハ,ワ O
, 記号,読点,*,*,*,*,,,,,, O
* 1 3D 1/2 -1.541709
今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー O
大学 名詞,一般,*,*,*,*,大学,ダイガク,ダイガク O
で 助詞,格助詞,一般,*,*,*,で,デ,デ O
* 2 3D 0/1 -1.541709
授業 名詞,サ変接続,*,*,*,*,授業,ジュギョウ,ジュギョー O
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ O
* 3 -1D 1/2 0.000000
ある 動詞,自立,*,*,五段・ラ行,基本形,ある,アル,アル O
ん 名詞,非自立,一般,*,*,*,ん,ン,ン O
だ 助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ O
. 記号,句点,*,*,*,*,.,.,. O
EOS
* CaBoCha の解析結果を理解しよう. [#hbe26687]
[[CaboChaのCインターフェイス]]
** とりあえず動かしてみる. [#v6b66c2f]
CaBoCha に付属のCプログラム example.c を一寸変えて&ref(cabocha.c); ,実行してみる.
$ ./cabocha
FROMAT_TREE =
<PERSON>太郎</PERSON>は---------D
<PERSON>花子</PERSON>が-D |
持っている-D |
本を---D
次郎に-D
渡した。
EOS
token_size = 15 : chunk size = 6 sentence size = 60
* cid = 0 link = 5D head_pos = 0 / func_pos = 1 score = -0.849263
surface = 太郎
feature = 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー
ne = B-PERSON
surface = は
feature = 助詞,係助詞,*,*,*,*,は,ハ,ワ
ne = O
* cid = 1 link = 2D head_pos = 0 / func_pos = 1 score = 1.470467
surface = 花子
feature = 名詞,固有名詞,人名,名,*,*,花子,ハナコ,ハナコ
ne = B-PERSON
surface = が
feature = 助詞,格助詞,一般,*,*,*,が,ガ,ガ
ne = O
* cid = 2 link = 3D head_pos = 0 / func_pos = 2 score = 1.116824
surface = 持っ
feature = 動詞,自立,*,*,五段・タ行,連用タ接続,持つ,モッ,モッ
ne = O
surface = て
feature = 助詞,接続助詞,*,*,*,*,て,テ,テ
ne = O
surface = いる
feature = 動詞,非自立,*,*,一段,基本形,いる,イル,イル
ne = O
* cid = 3 link = 5D head_pos = 0 / func_pos = 1 score = -0.849263
surface = 本
feature = 名詞,一般,*,*,*,*,本,ホン,ホン
ne = O
surface = を
feature = 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
ne = O
* cid = 4 link = 5D head_pos = 1 / func_pos = 2 score = -0.849263
surface = 次
feature = 名詞,一般,*,*,*,*,次,ツギ,ツギ
ne = O
surface = 郎
feature = 名詞,一般,*,*,*,*,郎,ロウ,ロー
ne = O
surface = に
feature = 助詞,格助詞,一般,*,*,*,に,ニ,ニ
ne = O
* cid = 5 link = -1D head_pos = 0 / func_pos = 1 score = 0.000000
surface = 渡し
feature = 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ
ne = O
surface = た
feature = 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
ne = O
surface = 。
feature = 記号,句点,*,*,*,*,。,。,。
ne = O
EOS
cid が句を表しており,link は,その句が接続する cid の番号ということらしい.最後の句の link が -1D となっているのは,
%%前に戻って cid 番号 1 の句と係り受け関係にあるということかな.%%
係り受け関係が定まらないと言うことで,これがデフォルト値で,解析結果が定まると正の整数があてはめられる.
ただし,D は出力で付加されたもので,実際には整数で表されている.
また活用語の原型は,やはり feature の七つ目か.
** 「本が好き」と「本が好きでない」 [#f13f17e1]
$ ./cabocha 本が好き
FROMAT_TREE =
本が-D
好き
EOS
* cid = 0 link = 1D head_pos = 0 / func_pos = 1 score = 0.000000
surface = 本
feature = 名詞,一般,*,*,*,*,本,ホン,ホン
ne = O
surface = が
feature = 助詞,格助詞,一般,*,*,*,が,ガ,ガ
ne = O
* cid = 1 link = -1D head_pos = 0 / func_pos = 0 score = 0.000000
surface = 好き
feature = 名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ
ne = O
EOS
$ ./cabocha 本が好きでない
FROMAT_TREE =
本が-D
好きでない
EOS
* cid = 0 link = 1D head_pos = 0 / func_pos = 1 score = 0.000000
surface = 本
feature = 名詞,一般,*,*,*,*,本,ホン,ホン
ne = O
surface = が
feature = 助詞,格助詞,一般,*,*,*,が,ガ,ガ
ne = O
* cid = 1 link = -1D head_pos = 0 / func_pos = 2 score = 0.000000
surface = 好き
feature = 名詞,形容動詞語幹,*,*,*,*,好き,スキ,スキ
ne = O
surface = で
feature = 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ne = O
surface = ない
feature = 助動詞,*,*,*,特殊・ナイ,基本形,ない,ナイ,ナイ
ne = O
EOS
これをみると「ない」という否定が掛かる語は,cid が同じ節にあるという判断を下すことになるのか?逆かな?「好き」という名詞と同じ節に「ない」が含まれている場合,それは否定されていると考えるべきか.
ところで文を区切るというのは,自分でやらなければいけないのかな?
ともかく srr/cabocha.h &ref(cabocha.h); をよく読もう.