LoginSignup
15
6

More than 5 years have passed since last update.

MeCabユーザ辞書作成時の陥りがち?なミス(エラー: cannot find LEFT-ID)

Last updated at Posted at 2017-08-02

ミスの内容

MeCabのユーザ辞書を作成する方法は、いろいろなページで紹介されていますが、例えば以下のようなエントリを追加しようとします。

test.csv

1号館,-1,-1,1,名詞,固有名詞,*,*,*,*,1号館,イチゴウカン,イチゴーカン,(テストユーザ辞書)

このtest.csvをもとにmecab-dict-indexでdicファイルを生成しようとすると、システム辞書がIPA品詞体系であれば、以下のようなエラーが返されます。


reading ./test.csv ... context_id.cpp(96) [it != left_.end()] cannot find LEFT-ID  for 名詞,固有名詞,*,*,*,*,*

いったいどこが間違っているんだ!とずっと思っていましたが、エントリを以下のように修正することで治りました。

test.csv

1号館,-1,-1,1,名詞,固有名詞,一般,*,*,*,1号館,イチゴウカン,イチゴーカン,(テストユーザ辞書)

固有名詞の右側の*一般に変更しています。

結論

MeCabユーザ辞書を追加するときは、システム辞書の品詞体系に沿って、品詞を指定しないといけません。今回の例の場合、「1号館」という固有名詞を追加したいと思って、品詞を名詞,固有名詞,*,*と指定していましたが、IPA品詞体系の場合、固有名詞はさらに「一般」「人名」「組織」「地域」と別れているため、それに沿って、名詞,固有名詞,一般,*などのように指定しなければなりません。

関連ページ

15
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
6