5

機関 (大学、病院など) のリストを含む大規模なデータベースがあります。機関の名前はさまざまなソースから来ており、同じ機関でも異なるスペルを使用できます。たとえば、スペルが間違っているか、単語が短縮されている可能性があります (「uni」、「univ」、または「university」)。

データベースに挿入する必要がある名前が与えられた場合、この機関が既にデータベースにあるかどうかを確認する実用的な方法はありますか? これは研究プロジェクトではないので、かなり高速なソリューションを探しています。

私はdjangoとpostgresqlを使用していますが、問題ではないと思います。

4

3 に答える 3

5

これがレコード連結の問題です。多くのデータベースは、文字レベルのnグラム マッチングなどの基本的な方法を提供しています。この場合、「大学」のような用語は、

["uni", "niv", "ive", "ver", "ers", ...]

n = 3 の場合。データベースは、そのような n グラムすべてにインデックスを付け、ある種の加重マッチングによる検索を可能にします。pg_trgmまさにこれを行うようです、試してみてください。

于 2011-10-12T13:56:33.310 に答える
1

おそらく、専用の検索エンジンの使用を検討する必要があります。Django-haystackを使用すると、Solr、Whoosh、Xapian などの検索エンジンをプロジェクトに簡単に追加できます。

于 2011-10-12T14:51:09.103 に答える
0

与えられた値から字句距離が小さいデータベース内の値を見つけたいようです。接頭辞のあるものを見つけるのはかなり簡単ですが、スペルが間違っている単語を見つけるのは困難です。スペル コレクターに関する Peter Norvig の投稿をお読みになることをお勧めします。

于 2011-10-12T13:55:51.347 に答える