処理3

今回は「ん」の処理についてです。

 

まずは、「ん」の処理で問題になる点を例で挙げてみます。

・「かんさ」->「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