ダウンロードしたファイルを解凍して以下のコマンド
$ 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