[MeCab][it != left_.end()] cannot find LEFT-ID forのエラーが出たが、LEFT-IDが原因では無い!!

    こんにちは制作部の花島です。

    テキストマイニングをやっていて、MeCabでハマったのでその話をしたいと思います。

    ちなみに、MeCabとは日本製のオープンソース 形態素解析エンジンです。

    MeCabでは新しい単語でも抽出できるように単語を追加するユーザ辞書機能があります。

    このユーザ辞書機能でハマりました。

    原因は品詞,品詞細分類1,品詞細分類2,品詞細分類3を正しく設定していない事が原因でした。IPA品詞体系に沿って登録する事!!

     

    しかし、ハマっている最中、エラー文言は[it != left_.end()] cannot find LEFT-ID for・・・エラーでした。

    LEFT-ID関係ないじゃん!!

    ハマった手順

    1.単語の登録

    単語は以下のフォーマットで登録できるので、自分の名前をユーザ辞書(new_word.csv)に登録しました。

    表層形,左文脈ID,右文脈ID,コスト,品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音

    花島君俊,,,1,名詞,固有名詞,人名,*,*,*,はなしまきみとし,ハナシマキミトシ,ハナシマキミトシ

    2.エラー発生
    コンパイル。
    [yyyy@ip-xxx-xxx-xxx-xxx userdic]$ sudo /usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u /usr/local/lib/mecab/dic/userdic/new_word.dic -f utf-8 -t utf-8 new_word.csv
    reading new_word.csv ... context_id.cpp(96) [it != left_.end()] cannot find LEFT-ID for 名詞,固有名詞,人名,*,*,*,*

    3.LEFT-IDを-1や他の数値にして再度コンパイル

    同じエラー・・・

    4.MeCabはIPA品詞体系を使っている事を知る。

    IPA品詞体系に沿って登録。

    花島君俊,,,1,名詞,固有名詞,人名,*,*,*,はなしまきみとし,ハナシマキミトシ,ハナシマキミトシ

    花島君俊,,,1,名詞,固有名詞,人名,一般,*,*,はなしまきみとし,ハナシマキミトシ,ハナシマキミトシ

    5.解決

    再度コンパイルし解決。

    [yyyy@ip-xxx-xxx-xxx-xxx userdic]$ sudo /usr/local/libexec/mecab/mecab-dict-index -d /usr/local/lib/mecab/dic/ipadic -u /usr/local/lib/mecab/dic/userdic/new_word.dic -f utf-8 -t utf-8 new_word.csv
    reading new_word.csv ... 6
    emitting double-array: 100% |###########################################|
    done!

    [yyyy@ip-xxx-xxx-xxx-xxx userdic]$ mecab
    花島君俊は最近Djangoで開発しています。
    花島君俊 名詞,固有名詞,人名,一般,*,*,はなしまきみとし,ハナシマキミトシ,ハナシマキミトシ
    は 助詞,係助詞,*,*,*,*,は,ハ,ワ
    最近 名詞,副詞可能,*,*,*,*,最近,サイキン,サイキン
    Django 名詞,一般,*,*,*,*,*
    で 助詞,格助詞,一般,*,*,*,で,デ,デ
    開発 名詞,サ変接続,*,*,*,*,開発,カイハツ,カイハツ
    し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
    て 助詞,接続助詞,*,*,*,*,て,テ,テ
    い 動詞,非自立,*,*,一段,連用形,いる,イ,イ
    ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
    。 記号,句点,*,*,*,*,。,。,。
    EOS

    参考リンク

    公式サイト

    ユーザ辞書の登録方法

    Mecabなど形態素解析で使うIPA品詞体系