Windows 版 Mecab で半角カナが混入していると文字化けする

Mecab 0.97 Windows 版を、とある目的で結構使ったりしていますが、最近結構はまってます。

恐らく Windows 版というよりは SJIS の文字コード帯域にからむバグ(仕様?)だと思うんですけど、半角カナつまりは、SJIS の文字コードで言うと、

0xA1 - 0xDF
(= HALFWIDTH IDEOGRAPHIC FULL STOP 〜 HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK)

までの領域の文字コードが解析対象の文字列に混在していると形態素解析に失敗するようです。

- スポンサーリンク -

もうちょっと文字コードについてわかりやすい図を用意しました。ずばり http://ash.jp/code/codetbl1.htm のキャプチャです。w

img106.jpg

さて、形態素解析の失敗例はこんな感じ。例えば 「aaabbb」(※実際は・は半角文字) と入力した場合

img105.jpg

次に 「アアアイイイ」(※実際はンが半角文字) と入力した場合

img102.jpg

次に 「アアアンあイイイ」(※実際はンが半角文字) と入力した場合

img103.jpg

ちょっとした検証では、なんだか半角カナのコードの後に初めて出現する 0x833F - 0x835E の範囲の 2byte 系文字で失敗しているような気がしますが、時間が無くてあまり深くは検証してません・・・ (┳ω┳)
↓ 問題が発生しそうな文字は以下の赤線の部分。他の領域にも同様の問題が存在するかも??

img107.jpg

- スポンサーリンク -