島内式ローマ字かな変換
ローマ字かな変換は、基本的にはパターンマッチングによって行える。ところが、「sinai」は「親愛」とも「市内/竹刀」とも解釈できるため、辞書引き以前に束構造データに落とさなければならない。
そこで、文字列のパターンマッチングと文法属性によって、この操作を実現したのがこの技法である。
具体的には、
「文法属性Xとマッチングパターン1 とマッチングパターン2と文法属性Y という四つ組データの羅列」である。
とはいえ「ka」は「か」に変換されるが、「kya」は「カ行音」として扱ったほうがよいのではないか、といった配慮がある。
「行頭」から「行末」という距離空間があり、「仮名の始まり」「仮名の終わり」という距離空間があるため、
[行頭]
[行末]
という定義を行ない、
[仮名の始まり]
[仮名の終わり]
を定義してから
[仮名の始まり] - [行頭];
[仮名の終わり] - [行末];
とすれば足りるのだが、このとき空文字列が渡されると不具合が起きるため、呼び出し側のルーチンが配慮する必要がある。
表示
編集