[mecab-users 441] Re: ユーザー辞書作成エラーの件

Back to archive index

中道 健一 nkmc****@souya*****
2011年 11月 26日 (土) 13:40:42 JST


近藤様

創屋株式会社 中道と申します。

以前にまとめておいた、システム辞書とユーザ辞書の作り方です。
お役に立つかもしれません。参考までに。

========================
Linuxサーバ(文字コードがUTF-8)上での辞書コンパイル
※CentOS5を利用しています

システム辞書は以下に配置する
/usr/local/src/mecab/mecab-ipadic-2.7.0-20070801

ipdicのCSVはEUCになっているのでutf8に変換する
# yum install nkf

nkf -Ew --overwrite *.csv
left-id.def
pos-id.def
rewrite.def
right-id.def
unk.def
も変換
nkf --utf8 --overwrite left-id.def
nkf --utf8 --overwrite right-id.def
nkf --utf8 --overwrite pos-id.def
nkf --utf8 --overwrite rewrite.def
nkf --utf8 --overwrite unk.def


・辞書のソース(システム辞書)
/usr/local/src/mecab/mecab-ipadic-*
へ
追加したい単語のファイルを上記フォルダにコピー
wikipedia_jp.csv
※ファイルの文字コードはUTF8(BOMなし)


% cd /usr/local/src/mecab/mecab-ipadic-2.7.0-20070801
% /usr/local/mecab/libexec/mecab/mecab-dict-index -f utf8 -t utf8
-------------------------------------------------------------------------------
reading ./unk.def ... 40
emitting double-array: 100% |###########################################|
empty word is found, discard this line
empty word is found, discard this line
empty word is found, discard this line
reading ./wikipedia_jp.csv ... 1060151
reading ./Adverb.csv ... 3032
reading ./Noun.adjv.csv ... 3328
reading ./Noun.number.csv ... 42
reading ./Noun.proper.csv ... 27327
reading ./Filler.csv ... 19
reading ./Noun.place.csv ... 72999
reading ./Noun.csv ... 60477
reading ./Noun.org.csv ... 16668
reading ./Prefix.csv ... 221
reading ./Conjunction.csv ... 171
reading ./Suffix.csv ... 1393
reading ./Postp.csv ... 146
reading ./Postp-col.csv ... 91
reading ./Verb.csv ... 130750
reading ./Noun.adverbal.csv ... 795
reading ./Auxil.csv ... 199
reading ./Noun.demonst.csv ... 120
reading ./Noun.name.csv ... 34202
reading ./Interjection.csv ... 252
reading ./Adnominal.csv ... 135
reading ./Others.csv ... 2
reading ./Adj.csv ... 27210
reading ./Symbol.csv ... 208
reading ./Noun.verbal.csv ... 12146
reading ./Noun.nai.csv ... 42
reading ./Noun.others.csv ... 151
emitting double-array: 100% |###########################################|
reading ./matrix.def ... 1316x1316
emitting matrix      : 100% |###########################################|

done!
-------------------------------------------------------------------------------

% su
# make -n install <--テスト
# make install

以下に辞書がインストールされる
-------------------------------------------------------------------------------
make[1]: ディレクトリ `/usr/local/src/mecab-ipadic-2.7.0-20070801' に
入ります
make[1]: `install-exec-am' に対して行うべき事はありません.
/bin/sh ./mkinstalldirs /usr/local/mecab-0.98/lib/mecab/dic/ipadic
 /usr/bin/install -c -m 644 ./matrix.bin
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/matrix.bin
 /usr/bin/install -c -m 644 ./char.bin
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/char.bin
 /usr/bin/install -c -m 644 ./sys.dic
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/sys.dic
 /usr/bin/install -c -m 644 ./unk.dic
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/unk.dic
 /usr/bin/install -c -m 644 ./left-id.def
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/left-id.def
 /usr/bin/install -c -m 644 ./right-id.def
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/right-id.def
 /usr/bin/install -c -m 644 ./rewrite.def
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/rewrite.def
 /usr/bin/install -c -m 644 ./pos-id.def
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/pos-id.def
 /usr/bin/install -c -m 644 ./dicrc
/usr/local/mecab-0.98/lib/mecab/dic/ipadic/dicrc
make[1]: ディレクトリ `/usr/local/src/mecab-ipadic-2.7.0-20070801' か
ら出ます
-------------------------------------------------------------------------------


・ユーザ辞書の作成方法
※euc-jp,LFのcsvファイル user.csvを辞書にします。
元ファイルがUTF-8であればオプションを変えればいいかと

% /usr/local/mecab/libexec/mecab/mecab-dict-index \
-d/usr/local/mecab/lib/mecab/dic/ipadic -u 辞書名.dic \
-f euc-jp -t utf-8 user.csv

以上です
--
創屋 株式会社  http://www.souya.biz/
    中道 健一


> Message: 1
> Date: Thu, 24 Nov 2011 20:14:25 -0800
> From: "kondo****@vivin*****"<kondo****@vivin*****>
> Subject: [mecab-users 440] ユーザー辞書作成エラーの件
> To: mecab****@lists*****, 	"kondo****@vivin*****"
> 	<kondo****@vivin*****>
> Message-ID:<4ECF1****@vivin*****>
> Content-Type: text/plain; charset=ISO-2022-JP
> 
> 初めて投稿致します。
> 
> 実はmecabのユーザー辞書を作成しようとしたのですが以下のエラーになりました。
> context_id.cpp(97) [it != left_.end()] cannot find LEFT-ID for 名詞,名
> 詞,*,*,*,*,*
> ネットで調べて
> nkf --utf8 left-id.def>  left-id.1
> rm left-id.def
> mv left-id.1 left-id.def
> もやってみましたが残念ながら同じエラーが発生しユーザー辞書が出来ません。
> ちなみにmecabと辞書は以下の通りです。
> mecab 0-98
> mecab辞書:mecab-ipadic-2.7.0-20070801
> またユーザー辞書に記述した内容は以下の通りです。(辞書内はUTF-8です)
> 
> 一丁,-1,-1,500,名詞,固有名詞,*,*,*,*,一丁,いっちょう,イッチョウ
> 
> どうすれば解決できるのかどなたかご教授頂ければ幸いです。
> よろしくお願いします。
>                                     
>     以上
> 近藤
> 




mecab-users メーリングリストの案内
Back to archive index