Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

小文字かな辞書エントリの混入問題

概要

システム辞書 SKK-JISYO.akaza に小文字かな(拗音・促音)で始まる不正なエントリが 1,359件 混入していた。これにより、変換時に不正な分節が選択され誤変換が発生する。

例: 「じゅうらんしゃじけん」→「自ゅうらんしゃじけん」(銃乱射事件)

発生メカニズム

1. Wikipedia の読みがなにカタカナが混じる

Wikipedia の記事には以下のような表記がある:

コロンバイン高校銃乱射事件(コロンバインこうこうじゅうらんしゃじけん、英: ...)

2. 読みがな除去の正規表現がカタカナに非対応

wikipedia_extracted.rs の読みがな除去パターンはひらがなのみを対象としていた:

[(\(][\u3041-\u309F、]+[))]

「コロンバイン」はカタカナなのでパターンにマッチせず、括弧内の読みがながテキストに残る。

3. vibrato が読みがなを不正にトークナイズ

残った「こうこうじゅうらんしゃじけん」を vibrato がトークナイズすると:

  • こう (既知語)
  • こうじ (既知語: 麹、工事 等)
  • ゅうらんしゃじけん小文字ゅ始まりの未知語

vibrato が こうじ を貪欲にマッチした結果、残りが小文字かな始まりになる。

4. vocab → 辞書への混入

Wikipedia 中に31回出現するため wfreq の閾値(16)を超え、vocab に登録される。最終的にシステム辞書に ゅうらんしゃじけん /ゅうらんしゃじけん/ として入る。

5. 変換時の分節崩壊

ユーザーが「じゅうらんしゃじけん」と入力すると、辞書に ゅうらんしゃじけん があるため「じ」+「ゅうらんしゃじけん」に分節され、「自ゅうらんしゃじけん」と変換される。

修正内容

修正1: 読みがな除去パターンのカタカナ対応

wikipedia_extracted.rs の正規表現をカタカナも含むように変更:

# Before
[(\(][\u3041-\u309F、]+[))]

# After
[(\(][\u3041-\u309F\u30A0-\u30FF、]+[))]

修正2: vocab 生成時のバリデーション

vocab.rs に小文字かな始まりのエントリを弾くフィルタを追加。読みがな除去で漏れた場合の安全策:

  • ぁぃぅぇぉゃゅょっ(小文字ひらがな)
  • ァィゥェォャュョッ(小文字カタカナ)

で始まるエントリを vocab 生成時にスキップする。

影響範囲

辞書の不正エントリ 1,359件が次回の corpus-stats リビルドで解消される見込み。