• ベストアンサー

曖昧検索について

曖昧検索について教えてください。 以下をそれぞれ同等とみなして検索できるでしょうか? (1)大文字、小文字 (2)"masui"=="matui" (3)"APPPLE"=="APPLE" (4)"masui"=="matsi" (5)引っ越==引越==引っ越し==引越し (6)長音==マイナス==ダッシュ (7)繰り返し記号(々==ゝ==〃) (8)ひらがな・カタカナ(ぞう==ゾウ) (9)発音の同じ文字(じぢ==ずづ==いゐ==えゑ) (10)カンマ==ピリオド==句点==読点 (11)括弧 () == [] == {} ==()==〔〕==[] (12)新字体・旧字体・異体字(医学==醫學==医斈) (13)カナ表現(バイオリン==ヴァイオリン) (14)(エヌ・ティ・ティ==エヌティティ) (15)空白の挿入 (ソ ニ ー==ソニー)

質問者が選んだベストアンサー

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.2

 (6)~(14)に関しても、手間を惜しまなければ、可能性があるような気がします。  考え方としては、大文字・小文字の比較と同じ手法です。つまり、長音記号やマイナスは全部ダッシュに、繰り返し記号は直前の文字に、ひらがなはカタカナに、と言った具合に、全部の文字を変換してしまうわけです。  データを、比較時点で関数で変換すると演算に許容できない時間がかかるようであれば、テーブル内のデータの方は事前に(たとえば挿入時点とか)変換して比較用の別のフィールドに格納しておくのもありでしょう。  変換用の規則データは、徐々に増やしていくのも手ですね。繰り返し記号はちょっとつらいですが、他の物は単純な文字変換に過ぎませんから、変換用のテーブルを一つ作って、変換関数からこれを参照するようにしておけば、だんだんと規則も拡充できるかもしれません。  要するに、基準を作って、その基準に合うように、比較元と比較先のデータを全部変換する規則さえ作れれば、後は、気合いと手間だけに集約されますね。  ただ・・・(3)~(5)は・・・規則を作るのも面倒だし、変換テーブルも莫大になりそう・・・さすがに、気合いでやるにはちょっと厳しいかもですね。

ritomo
質問者

お礼

ご回答ありがとうございます。 なるほどなるほど、(3)~(5)以外はこつこつとやれそうですね。 大変参考になりました。ありがとうございました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

REGEXPで正規表現をつかえばたいていのあいまい表現は回避できるかと。

ritomo
質問者

お礼

お礼が遅くなってすみません。 正規表現がどれくらいの範疇で使用可能なのかが見えないので、いろいろみたのですが、(1)ぐらいならOKということは図りましたが、それ以外があいまい表現が可能かどうかまだわからない状態です。上の(2)から(15)までで、どれが、正規表現で可能なのか教えていただけるとありがたいです。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

基本的には、 完全一致(全てが一致) 前方一致(先頭から何文字が一致) 後方一致(最後から何文字が一致) があります。 大文字/小文字 全角/半角 は比較対象をどちらか一方に統一する ことで、検索できます。 空白文字のあるデータと、空白文字のないデータは、関数で、空白文字を削除した後、比較することもできます。 2 3 4 5 6 7 9 10 11 12 13 14 は難しいでしょうね。

ritomo
質問者

お礼

大変すばやいご回答ありがとうございます。 15個のうち、ほとんどは難しいですよね。あきらめざる得ないでしょうね。

関連するQ&A