- 締切済み
言葉の類似性を求めるアルゴリズム
お世話になります。 C#にて、データベース(SQLite)を操作するプログラムを作っています。 データベースのテーブル上に、IDと名前の二つの要素があるとします。 データベースにInsertする際に、これから追加しようとする『名前』と、 データベースの既存のデータの『名前』を比較し、類似性のあるものを 教えてくれる仕組みを作りたいと思っています。 『データベース上に、【xxxx】という名前のレコードがありました。 もしかすると、今Insertしようとしているのは、このデータのことではないですか?』 …等の様なメッセージを表示させ、ユーザに催促させたいのですが、 このように『似通ったデータがある』といったデータを抽出させることは SQLなどでは可能でしょうか。もしくは、C#などのメソッドでできることでしょうか。 もしくは、それらしいものを自作しないとダメでしょうか。 かなり条件的には高めに見ており、『あいうえお かきくけこ さしすせそ 50kg』 といったデータが既にある場合、 『かきくけこ あいうえ さしすせそ 50K』でもヒット、 『あいくけこ 50 さしすせそかきうけこ』でもヒットといった感じです。 単純に、一文字ずつ比較してしまうといった流れになってしまいそうな気もしますが、 もっと効率の良い方法がありましたらお教えいただけないでしょうか。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yamaj_biz
- ベストアンサー率71% (10/14)
回答No.2
- Chronos198
- ベストアンサー率30% (105/349)
回答No.1
お礼
回答、ありがとうございます。 データベース単体でできればと思ってたのですが、 それは無理そうなので、参考のサイトを手掛かりに 作成してみたいと思います。 …ただ、その方法では、データベースから一度すべてのデータを 引っ張り出し、一つ一つ比較するしかなくなってしまうかと 思うのですが…、これは致し方ないことなのでしょうか…。 DB的には、相当な負担になってしまうような気も…。 ありがとうございました。