未知語処理の定義

概要

未知語処理(辞書に載っていない単語の形態素解析の処理)についてユーザが再定義できます。

設定ファイル

配布辞書のディレクトリにある char.def と unk.def という2つのファイル を変更します.

char.def

未知語処理のルールです. こちらを御覧ください.

unk.def

未知語に対する品詞列のテーブルです. こちらを 御覧ください.

ケーススタディ

数字の連続を1つの形態素とする

  • 辞書 (*.csv ファイル)から数字のエントリを削除します。 ipadic の場合は、Noun.number.csv の中から、アラビア数字のエントリを消去します。
  • char.def を修正し、数字の連続が未知語になるようにします。
..
NUMERIC        1 1 0
..
  • unk.def を修正し、数字のコストを小さくします。

4カラム目のコスト値を 0以下の小さい値に設定します。

NUMERIC,1204,1204,0,名詞,数,*,*,*,*,*
  • 辞書をコンパイルします。
% /usr/local/libexec/mecab/mecab-dict-index 

ASCII 文字列は、スペース/タブのみで分割する (kakasiと同一動作)

    - 辞書 (*.csv ファイル)からアスキー文字列を含むのエントリを削除します。 - char.def を修正し、スペース、記号を除く文字を同一字種(ASCII)にマッピ ングします。他のエントリも同時にチェックし、0x0021..0x007E の領域を 他の字種にマッピングしないようにしてください。 ``` ASCII 1 1 0

    0x0021..0x007E ASCII

    
    - unk.def を修正し、ASCIIのコストを小さくします。
    4カラム目のコスト値を 0以下の小さい値に設定します。
    

    ASCII,1192,1192,0,名詞,サ変接続,,,,,*

    
    - 辞書をコンパイルします。
    

    % /usr/local/libexec/mecab/mecab-dict-index