CaBoCha の解析結果を理解しよう.CaboChaのCインターフェイス
CaBoCha に付属のCプログラム example.c を一寸変えて&ref(): File not found: "cabocha.c" at page "CaBoCha"; ,実行してみる.
$ ./cabocha FROMAT_TREE = <PERSON>太郎</PERSON>は---------D <PERSON>花子</PERSON>が-D | 持っている-D | 本を---D 次郎に-D 渡した。 EOS * 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 の七つ目か.
$ ./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 が同じ節にあるという判断を下すことになるのか?逆かな?「好き」という名詞と同じ節に「ない」が含まれている場合,それは否定されていると考えるべきか.
ところで文を区切るというのは,自分でやらなければいけないのかな?