CaBoCha のバックアップ(No.3) - アールメカブ

アールメカブ


CaBoCha のバックアップ(No.3)


Programming

CaBoCha:? のインストール.下準備MeCab?と,次に TinySVM http://chasen.org/~taku/software/TinySVM/飲茶 YamCha http://chasen.org/~taku/software/yamcha/ さらには CRF++: Yet Another CRF toolkit http://crfpp.sourceforge.net/ をインストールして, 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 の解析結果を理解しよう.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 が同じ節にあるという判断を下すことになるのか?逆かな?「好き」という名詞と同じ節に「ない」が含まれている場合,それは否定されていると考えるべきか.

ところで文を区切るというのは,自分でやらなければいけないのかな?