R. Ayanokouzi et al.

[CaboCha] CaboCha を Debian にインストール

係り受け解析機の CaboCha をインストールするまでの記録

ダウンロードしたファイルを解凍して以下のコマンド

$ cd ./cabocha-0.69/
$ make clean
$ export CPPFLAGS=-I$(echo ~/opt/include) LDFLAGS=-L$(echo ~/opt/lib)
$ ./configure --prefix=$(echo ~/opt/) --with-charset=utf8 --enable-utf8-only
$ make
$ make check
$ make install
$ cd ../

perl モジュールをインストールする

$ cd ./cabocha-0.69/perl
$ sed -i -e 's#`cabocha-config#`~/opt/bin/cabocha-config#' Makefile.PL
$ perl Makefile.PL PREFIX=$(echo ~/opt)
Generating a Unix-style Makefile
Writing Makefile for CaboCha
Writing MYMETA.yml and MYMETA.json
$ make
Skip blib/lib/CaboCha.pm (unchanged)
Running Mkbootstrap for CaboCha ()
chmod 644 "CaboCha.bs"
g++ -c  -I/home/*************/opt/include -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g   -DVERSION=\"0.69\" -DXS_VERSION=\"0.69\" -fPIC "-I/usr/lib/x86_64-linux-gnu/perl/5.20/CORE"   CaboCha_wrap.cxx
rm -f blib/arch/auto/CaboCha/CaboCha.so
LD_RUN_PATH="/home/*************/opt/lib:/usr/lib:/usr/lib/x86_64-linux-gnu" g++  -shared -L/usr/local/lib -fstack-protector CaboCha_wrap.o  -o blib/arch/auto/CaboCha/CaboCha.so        \
   -L/home/*************/opt/lib -lcabocha -lcrfpp -lmecab -L/usr/lib -lmecab -lstdc++     \

chmod 755 blib/arch/auto/CaboCha/CaboCha.so
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- CaboCha.bs blib/arch/auto/CaboCha/CaboCha.bs 644
$ make test
Running Mkbootstrap for CaboCha ()
chmod 644 "CaboCha.bs"
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-Iblib/lib" "-Iblib/arch" test.pl
  太郎は-----------D
      この-D       |
        本を---D   |
        二郎を-D   |
            見た-D |
            女性に-D
            渡した。
EOS
  太郎は-----------D
      この-D       |
        本を---D   |
        二郎を-D   |
            見た-D |
            女性に-D
            渡した。
EOS
* 0 6D 0/1 -2.457381
太郎    名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー,,
は      助詞,係助詞,*,*,*,*,は,ハ,ワ,,
* 1 2D 0/0 1.509507
この    連体詞,*,*,*,*,*,この,コノ,コノ,,
* 2 4D 0/1 0.091699
本      名詞,一般,*,*,*,*,本,ホン,ホン,,
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ,,
* 3 4D 1/2 2.359707
二      名詞,数,*,*,*,*,二,ニ,ニ,,
郎      名詞,一般,*,*,*,*,郎,ロウ,ロー,,
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ,,
* 4 5D 0/1 1.416783
見      動詞,自立,*,*,一段,連用形,見る,ミ,ミ,み/見,
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ,,
* 5 6D 0/1 -2.457381
女性    名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ,,
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ,,
* 6 -1D 0/1 0.000000
渡し    動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ,わたし/渡し,
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ,,
。      記号,句点,*,*,*,*,。,。,。,,
EOS
太郎    名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー,,
は      助詞,係助詞,*,*,*,*,は,ハ,ワ,,
この    連体詞,*,*,*,*,*,この,コノ,コノ,,
本      名詞,一般,*,*,*,*,本,ホン,ホン,,
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ,,
二      名詞,数,*,*,*,*,二,ニ,ニ,,
郎      名詞,一般,*,*,*,*,郎,ロウ,ロー,,
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ,,
見      動詞,自立,*,*,一段,連用形,見る,ミ,ミ,み/見,
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ,,
女性    名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ,,
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ,,
渡し    動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ,わたし/渡し,
た      助動詞,*,*,*,特殊・タ,基本形,た,タ,タ,,
。      記号,句点,*,*,*,*,。,。,。,,
$ make --dry-run install
true
true
true
true
true
true
true
true
"/usr/bin/perl" -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''0'\'', uninstall_shadows => '\''0'\'', dir_mode => '\''755'\'' ]);' -- \
        read "/usr/local/lib/x86_64-linux-gnu/perl/5.20.2/auto/CaboCha/.packlist" \
        write "/home/*************/opt/lib/x86_64-linux-gnu/perl/5.20.2/auto/CaboCha/.packlist" \
        "blib/lib" "/home/*************/opt/share/perl/5.20.2" \
        "blib/arch" "/home/*************/opt/lib/x86_64-linux-gnu/perl/5.20.2" \
        "blib/bin" "/home/*************/opt/bin" \
        "blib/script" "/home/*************/opt/bin" \
        "blib/man1" "/home/*************/opt/man/man1" \
        "blib/man3" "/home/*************/opt/man/man3"
"/usr/bin/perl" -MExtUtils::Command::MM -e 'warn_if_old_packlist' -- \
        "/usr/lib/x86_64-linux-gnu/perl/5.20/auto/CaboCha"
true
echo Appending installation info to "/home/*************/opt/lib/x86_64-linux-gnu/perl/5.20/perllocal.pod"
"/usr/bin/perl" -MExtUtils::Command -e 'mkpath' -- "/home/*************/opt/lib/x86_64-linux-gnu/perl/5.20"
"/usr/bin/perl" -MExtUtils::Command::MM -e 'perllocal_install' -- \
        "Module" "CaboCha" \
        "installed into" /home/*************/opt/share/perl/5.20.2 \
        LINKTYPE "dynamic" \
        VERSION "0.69" \
        EXE_FILES "" \
        >> "/home/*************/opt/lib/x86_64-linux-gnu/perl/5.20/perllocal.pod"
true
true
$ make install
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /home/*************/opt/lib/x86_64-linux-gnu/perl/5.20.2/auto/CaboCha/CaboCha.bs
Installing /home/*************/opt/lib/x86_64-linux-gnu/perl/5.20.2/auto/CaboCha/CaboCha.so
Installing /home/*************/opt/lib/x86_64-linux-gnu/perl/5.20.2/CaboCha.pm
Appending installation info to /home/*************/opt/lib/x86_64-linux-gnu/perl/5.20/perllocal.pod

ユーザ辞書の追加。辞書の元データ (CSV ファイル) は /usr/share/mecab/dic/ にある。辞書ファイルは /var/lib/mecab/dic/ にある。

$ nkf --oc=utf8 -Lu /usr/share/mecab/dic/ipadic/Symbol.csv | head
δ,4,4,949,記号,アルファベット,*,*,*,*,δ,デルタ,デルタ
u,4,4,5536,記号,アルファベット,*,*,*,*,u,ユー,ユー
」,7,7,1161,記号,括弧閉,*,*,*,*,」,」,」
—,5,5,3970,記号,一般,*,*,*,*,—,—,—
←,5,5,1819,記号,一般,*,*,*,*,←,←,←
゜,5,5,4977,記号,一般,*,*,*,*,゜,゜,゜
X,4,4,1647,記号,アルファベット,*,*,*,*,X,エックス,エックス
N,4,4,6484,記号,アルファベット,*,*,*,*,N,エヌ,エヌ
j,4,4,5554,記号,アルファベット,*,*,*,*,j,ジェイ,ジェイ
ゞ,5,5,5002,記号,一般,*,*,*,*,ゞ,ゞ,ゞ

CaboCha は MeCab を使っているけれども、MeCab の辞書に半角の括弧が登録されていない。

$ echo 'エントリのフォーマット (活用する語)' | mecab --unk-feature "未知語"
エントリ        名詞,一般,*,*,*,*,エントリ,エントリ,エントリ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
フォーマット    名詞,一般,*,*,*,*,フォーマット,フォーマット,フォーマット
(       未知語
活用    名詞,サ変接続,*,*,*,*,活用,カツヨウ,カツヨー
する    動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
語      名詞,一般,*,*,*,*,語,カタリ,カタリ
)       未知語
EOS

全角の括弧の情報を元にこれをユーザ辞書に追加する。

$ nkf -w /usr/share/mecab/dic/ipadic/*.csv | grep '('
$ nkf -w /usr/share/mecab/dic/ipadic/*.csv | grep ')'
$ nkf -w /usr/share/mecab/dic/ipadic/*.csv | grep -e '(' -e ')' | grep '記号'
(,6,6,2008,記号,括弧開,*,*,*,*,(,(,(
),7,7,2055,記号,括弧閉,*,*,*,*,),),)
$ cat symbol_.csv
(,6,6,2008,記号,括弧開,*,*,*,*,(,(,(
),7,7,2055,記号,括弧閉,*,*,*,*,),),)
$ nkf -w -Lu symbol_.csv > symbol-utf8.csv
$ file symbol_.csv symbol-utf8.csv
symbol_.csv:     UTF-8 Unicode text
symbol-utf8.csv: UTF-8 Unicode text
$ /usr/lib/mecab/mecab-dict-index --dicdir /usr/share/mecab/dic/ipadic/ --userdic symbol-utf8.dic --dictionary-charset utf8 --charset utf8 symbol-utf8.csv
reading symbol-utf8.csv ... 86
emitting double-array: 100% |###########################################|

done!

ユーザ辞書のパスを MeCab の rc ファイルに追記

$ echo userdic = ~/*****************************/symbol-utf8.dic >> ~/.mecabrc

これで未知語がなくなる。

$ echo 'エントリのフォーマット (活用する語)' | mecab --unk-feature "未知語"
エントリ        名詞,一般,*,*,*,*,エントリ,エントリ,エントリ
の      助詞,連体化,*,*,*,*,の,ノ,ノ
フォーマット    名詞,一般,*,*,*,*,フォーマット,フォーマット,フォーマット
(       記号,括弧開,*,*,*,*,(,(,(
活用    名詞,サ変接続,*,*,*,*,活用,カツヨウ,カツヨー
する    動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
語      名詞,一般,*,*,*,*,語,カタリ,カタリ
)       記号,括弧閉,*,*,*,*,),),)
EOS

リファレンス

  1. CaoboCha: Yet Another Japanese Dependency Structure Analyzer

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2008-06-14T17:19:15+09:00
  2. Modified: 2008-06-14T17:19:15+09:00
  3. Generated: 2021-03-31T07:51:30+09:00