今回は「ん」の処理についてです。
まずは、「ん」の処理で問題になる点を例で挙げてみます。
・「かんさ」->「kannsa」、「kansa」どちらでも良い。
・「こんや」->「konnya」をOKとする。「konya」はNG。(こにゃになる)
上記の例を見て分かるように「ん」をタイプする場合、
「n」、「nn」をOKとする場合と「nn」のみをOKとする場合に分かれます。
つまり、「ん」の後に「や」行、「な」行、「あ」行の文字が続く場合は「nn」のみをOKとし、
それ以外の場合は「n」または「nn」をOKとします。
今回は「nn」のみを許可するパターンを作ってみます。
上記の例「こんや」のパターンを例の構造体で表現します。
「こ」=
「ko」
+
「」
「ん」=
「n」、「nn」
+
「」、「」
「んや」=
「nnya」
+
「」
こんな感じです。
「ん」単体で「n」、「nn」を許可しますが、
「んや」のパターンが定義されているので、
「こ」+「んや」と認識させ、「konnya」のみをOKとするようにします。
このパターン認識については別の機会に説明しようと思っていましたが、
たいした内容じゃないので説明しておきます。
簡単に言うと、より長い定義済みパターンに一致するようにすればいいだけです。
日本語入力(ローマ字入力)だと最長のローマ字表記パターンが3文字※なので、
パターン認識時の動作は以下のようになります。
「こんや」のパターン認識開始
「こんや」->一致なし
「こん」->一致なし
「こ」->一致
「こ」が一致した為、残りの「んや」のパターン認識開始
「んや」->一致
この仕組み利用すれば、「こんや」のパターンは対応できます。
問題になる点としては挙げていませんでしたが、
一応、パターン定義時の注意点として
「っな」を「nna」と定義しないようにしましょう。(「nn」は「ん」となる)
次回は「n」、「nn」を許可する「かんさ」のパターンを解説します。
次へ
2010.10.13