Mecab で連続した数字をトークナイズするとだいたい1文字ずつトークナイズされます。連接コストの計算結果で決まるので100%の確率ではありませんが。
$ mecab bmw318 bmw 名詞,固有名詞,組織,*,*,*,* 3 名詞,数,*,*,*,*,3,サン,サン,, 1 名詞,数,*,*,*,*,1,イチ,イチ,, 8 名詞,数,*,*,*,*,8,ハチ,ハチ,, EOS
連続した数字を1トークンとする場合には、数字間の連接コストを小さくします。
$ su $ cd /usr/local/lib/mecab/dic/naist-jdic $ vi unk.def NUMERIC,1367,1367,0,名詞,数,*,*,*,*,* <- 4カラム目の値を 0 にする $ /usr/local/libexec/mecab/mecab-dict-index -c=utf-8 <- 辞書をUTF-8で作る場合のオプション デフォルトは EUC-JP reading ./unk.def ... 40 emitting double-array: 100% |###########################################| reading ./naist-jdic.csv ... 485893 emitting double-array: 100% |###########################################| reading ./matrix.def ... 1396x1396 emitting matrix : 100% |###########################################|
こうなる
$ mecab bmw318 bmw 名詞,固有名詞,組織,*,*,*,* 318 名詞,数,*,*,*,*,* EOS