UniDic
UniDic は、形態素解析システム用の日本語辞書。 ChaSen 用(UniDic-chasen)と MeCab 用(UniDic-mecab)がある。 既存の日本語辞書 (ipadic / naist-jdic)と比較して、以下の特徴がある、とされる:
- 国立国語研究所で規定した「短単位」という揺れがない斉一な単位で設計されている。
- 語彙素・語形・書字形・発音形の階層構造を持ち、表記の揺れや語形の変異にかかわらず同一の見出しを与えることができる。
- アクセントや音変化の情報を付与することができ、テキスト音声合成などに利用することができる。
GalateaTalk は UniDic を利用している。UniDic の過去のバージョンは Galatea プロジェクトの「IPA最終版」として公開された。
その後公開されたバージョンは第三者によるの再配布が許可されておらず、UniDic プロジェクトのWebサイトでユーザ登録を行う必要があった。
- 利用例 : chasen
バージョン2.0.1以降、形態素解析辞書としてのUniDicはGPL/LGPL/BSD Licenseのトリプルライセンスで公開されることになった。
http://sourceforge.jp/projects/unidic/
2012年12月に UniDic-mecab 2.1.0 が公開された。
unidic-chasen
unidic-chasen_1.3.12 は UTF-8 がデフォルトとのことなので、確認してみる。
ubuntu パッケージも作ってみる。
Ubuntu Linux 9.04 に apt-get で chasen を導入済みの環境:
$ tar xvfz unidic-chasen1312src.tar.gz $ cd unidic-chasen1312src $ sh configure $ make
make install するとどうなるのか確認してみる。
$ make -n install make install-exec-am install-data-am make[1]: ディレクトリ `/home/nishi/src/unidic-chasen1312src' に入ります make[1]: `install-exec-am' に対して行うべき事はありません. : test -z "/var/lib/chasen/dic/debian/unidic" || mkdir -p -- "/var/lib/chasen/dic/debian/unidic" list='matrix.cha table.cha chadic.da chadic.dat chadic.lex grammar.cha ctypes.cha cforms.cha chasenrc chasenrc_chaone'; for p in $list; do \ if test -f "$p"; then d=; else d="./"; fi; \ f=`echo $p | sed -e 's|^.*/||'`; \ echo " /usr/bin/install -c -m 644 '$d$p' '/var/lib/chasen/dic/debian/unidic/$f'"; \ /usr/bin/install -c -m 644 "$d$p" "/var/lib/chasen/dic/debian/unidic/$f"; \ done make[1]: ディレクトリ `/home/nishi/src/unidic-chasen1312src' から出ます
checkinstall してみる。
$ sudo checkinstall make install 0 - Maintainer: [ nishimoto@m.ieice.org ] 1 - Summary: [ unidic-chasen1312 ] 2 - Name: [ unidic-chasen ] 3 - Version: [ 1.3.12 ] 4 - Release: [ 1 ] 5 - License: [ unidic ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ unidic-chasen1312src ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ unidic-chasen ]
unidic-chasen_1.3.12-1_i386.deb ができる。
$ ls -1 /var/lib/chasen/dic/debian/unidic/ cforms.cha chadic.da chadic.dat chadic.lex chasenrc chasenrc_chaone ctypes.cha grammar.cha matrix.cha table.cha
EUC-JP版を作る
2010-11-12
EUC-JP を作りたいときは下記でよいはず。。
以下 unidic-chasen1312src の作業。
sudo apt-get install chasen された Ubuntu 9.04 環境。
$ cd unidic-chasen1312src $ ./configure --with-encoding=e $ make
こんな感じ:
/usr/lib/chasen/makemat -i e parsing grammar.cha parsing cforms.cha parsing ctypes.cha parsing connect.cha table size: 9767 (omitted)
このバージョンでは辞書が EUC-JP でも cahsenrc は UTF-8 になっている。
$ file chasenrc_chaone chasenrc_chaone: UTF-8 Unicode text
カレントディレクトリの辞書を使うために GRAMMAR だけ書き換える。
$ head chasenrc_chaone |nkf -e ;; ;; chasenrc for unidic-1.3.12 ;; chaOne用 ;; ;(GRAMMAR /var/lib/chasen/dic/debian/unidic) (GRAMMAR .) (DADIC chadic) (UNKNOWN_POS (名詞 普通名詞 一般))
試してみる。イチニサンをイッニサンと読み付与しているが。。
$ echo "123" | chasen -r chasenrc_chaone | nkf -e <cha:W1 orth="1" kana="{イッ/イチ}" pron="{イッ/イチ}" pos="名詞-数詞" lForm="イチ" lemma="一" orthBase="1" pronBase="{イッ/イチ}" kanaBase="{イッ/イチ}" formBase="イチ" goshu="漢" iConType="N1" fType="チ促" fForm="{促音/基本}形" aType="2" aConType="C3">1</cha:W1> <cha:W1 orth="2" kana="{ニ/ニイ}" pron="{ニ/ニー}" pos="名詞-数詞" lForm="ニ" lemma="二" orthBase="2" pronBase="{ニ/ニー}" kanaBase="{ニ/ニイ}" formBase="ニ" goshu="漢" fType="イ長添" fForm="{基本/長音添加}形" aType="1" aConType="C3">2</cha:W1> <cha:W1 orth="3" kana="サン" pron="サン" pos="名詞-数詞" lForm="サン" lemma="三" orthBase="3" pronBase="サン" kanaBase="サン" formBase="サン" goshu="漢" iConType="N3" aType="0" aConType="C3">3</cha:W1>
64bit版を作る
2010-11-12
chasen の辞書は 32bit と 64bit で互換性がないので、作り直す。
下記は Mac OS X (Snow Leopard) で macports から入れた chasen を使った作業。
上記と同様にやると:
$ cd unidic-chasen1312src $ ./configure --with-encoding=e $ make /opt/local/lib/chasen/makemat -i e parsing grammar.cha parsing cforms.cha parsing ctypes.cha parsing connect.cha table size: 9767 lines: ......................
chasen 単体では動作が確認できた。
unidic-mecab
since 2010-11-15
ubuntu 9.04 で mecab パッケージが入っている。
ターミナルは UTF-8 になっている。
$ tar xvfz unidic-mecab1312src.tar.gz.tar.gz $ cd unidic-mecab1312src $ mkdir -p ../unidic-mecab ; /usr/lib/mecab/mecab-dict-index -d . -o ../unidic-mecab $ cd .. $ cp unidic-mecab1312src/rewrite.def unidic-mecab $ cp unidic-mecab1312src/dicrc unidic-mecab
$ echo "123" | mecab -d unidic-mecab 1 名詞,数詞,*,*,*,*,イチ,一,1,イチ,イチ,漢,1,イチ,イチ,イチ,*,*,N1,チ促,基本形,*,2,C3,* 2 名詞,数詞,*,*,*,*,ニ,二,2,ニ,ニ,漢,2,ニ,ニ,ニ,*,*,*,イ長添,基本形,*,1,C3,* 3 名詞,数詞,*,*,*,*,サン,三,3,サン,サン,漢,3,サン,サン,サン,*,*,N3,*,*,*,0,C3,* EOS