私はビジネスで最も近い単語に対してLevenshteinアルゴリズムを使っていくつかの文字列マッチングを試みています。 (パイソンしかし、言語では大きな違いをすることはありません)複数の単語にまたがる最小レーベンシュタイン距離
クエリの例は、「BNA」 緯度経度&
検索=となり、私が探していた結果近くにあります。
パブは、右の私の希望は、それは私が
二つの異なる方法を試してみました(BNA == BNAとして)最初を示していることだろうBNAを検索することにより、BNA醸造(株)と呼ばれる緯度と経度であります地理的な距離に基づいてランク付けずに
m = min([editdistance.eval(search, place_split) for place_split in place.name.split(' ')
if place_split not in string.punctuation])
戻り、タウンセンターでのみ距離レーベンシュタイン
- コーヒー&ブックス
- の話 'n' のコーヒー
- ラガディアン&アンディの
とアカウントの距離を考慮して、
- シェイパーヘアーサロン&スパ
- アモラデイスパ をレーベンシュタインために、二次
- 純粋な審美性とマイクロ顔料着色
そして
m = editdistance.eval(search, place.name)
最初のものは、距離
- レーベンシュタイン、地理的な距離に基づいてランク付けすることなく返しKFC
- MOO
- & W
と服用しながらアカウント地理的な距離に、
- & W
- & W
- KFC
をレーベンシュタインする二次ですから、どちらの方法は、BNA醸造(株)の近くには何も戻ってきていることがわかります 検索用語がデータベースの場所名の1つと正確に一致したときに、それを返すためにはどのようなロジックを使用する必要がありますか?
これは私が逃したものです!結果は現在:BNA Brew CO。、Bia Boro Kelowna、Boa Thongタイ料理レストラン。 ありがとう!私は間違って、大文字と小文字を区別しないと思っていたと思う(editdistanceは低くなるだろう)。これは、私が速く汚れたlevenshteinを書いたときのやり方だからだ。 –