表記ゆれの問題を解決するアイディアはないか、
ホワイトボードにローマ字のパターンを書き出しつつ、
うんうんと唸っていました。
ルールに沿って検索文字を単純に変換するだけでは、
ローマ字を利用者の意図とは違う言葉にしてしまう。
そんな行き詰まりを打開したのは、
いっしょにホワイトボードでの試行錯誤を眺めていた
しもやんの一言でした。

- 「ティー」に「tii」と「chii」を入れとくのは?

- あーーーーーー。それは思いつかんかった。
前回の図と同じ例で説明すると、
変換のためのフィルタを用意しつつ、
データベースにパターンを入れておくということです。

これは単純に2つのアイディアの併用のように見えますが、
これには大きな発想の転換があります。
「地位」を「chii」でも「tii」でも検索OKにするために、
検索文字に含まれる「ti」を「chi」に変換します。
これは、ケアナビのローマ字表記が「ち」=「chi」だからです。
「ti」という表記違いの文字を適切な「chi」にするため、
データベースを適切な綴りで検索させるために、
フィルタを用いるという考え方です。
フィルタがあればデータは適切な1つの綴りのみでよく
「地位」は適切な綴りである「chii」だけが
データベースの中に入っていればOKになります。
同じ考え方で「ティー」も適切な綴り「tii」だけを
データとして入れておけばよいことになりますが、
これでは前回の問題が発生します。
そこで「ティー」に「tii」と「chii」を用意しておきます。
「ティー」に対する「chii」は適切でない綴りのパターンです。
これをデータベースに用意しておくことで、
「ティー」を検索するために「tii」と適切な綴りで入力して
これがフィルタによって強制的に「chii」に変換されても、
つまり不適切な綴りに変えられてしまっても、
「chii」として「ティー」が検索結果に表示される、
ということです。
このアイディアの何が発想の転換かというと、
「chii」で「ティー(tii)」を探すという、
適切でない綴りでデータベースの内容とマッチングを行う
やり方であるというところです。
フィルタは「入力文字を適切な綴りに変換するもの」
という観念に僕は縛られていたのですが、
大切なことはそこではなく、得られる結果なんですね。
フィルタが過剰に(誤って)変換することを見越して、
誤った綴りでデータベースを検索してもいいように
それに対応したパターンをデータとして用意しておく、
という方法なわけです。
これは言い換えると、
フィルタの役目は「適切な形に変換する」というより、
「特定のパターンに単純化してしまう」ということなんです。
この、パターン用意とフィルタとの合わせ技の方法で
最小限の作業で最大限の「表記ゆれ対応」ができる、
という結論に達しました。
これが日本語でケアナビの表記ゆれ対策です。
試しに表記ゆれを意識して検索してみてください。
試す過程で気付かれた方もいるかもしれません。
そう、この方法は僕らの採用した方法なのですが、
完璧ではなく、問題もいくつか存在しています。
次回はその問題についてお話します。
2007.12.21 10:11 - すなみ


