Apa yang Anda cari adalah "perkiraan pencarian tetangga dekat" (JST) di Levenshtein / edit jarak. Dari perspektif teoritis, jarak sunting sejauh ini ternyata relatif sulit untuk pencarian tetangga dekat, afaik. Namun, ada banyak hasil, lihat referensi dalam makalah Ostrovsky dan Rabani ini . Jika Anda ingin mempertimbangkan metrik jarak alternatif yang ada solusinya lebih sederhana dan lebih baik, lanjutkan ke paragraf berikutnya. Untuk ANNS dalam jarak sunting, ada hasil karena Indyk , yang menunjukkan bagaimana membangun struktur data berukuran yang menjawab pertanyaan apa pun dalam waktu dan melaporkan string yang paling banyak tiga kali lebih jauh dari string terdekat ke string kueri (ini menggeneralisasi ke ukuranO(d)nO(dϵ)31/ϵndℓ1ℓ1nO ( d√)O ( d)nO ( dϵ) dan perkiraan ). Di sini adalah jumlah string dan adalah panjang maksimum string apa pun. Makalah Ostrovsky dan Rabani yang saya atas meningkatkan hasil ini dengan memetakan string ke vektor sehingga -distance (semacam jarak geometris alami yang mirip dengan jarak euclidean) antara vektor mendekati jarak edit antara string yang sesuai (ini disebut "embedding distorsi rendah"). Setelah ini selesai, struktur data ANNS untuk dapat digunakan, dan ini menjadi lebih efisien (lihat paragraf berikutnya).31 / ϵndℓ1ℓ1
Jika Anda ingin mempertimbangkan jarak lain, maka hashing sensitifitas lokalitas (LSH) melakukan pekerjaan yang baik. Hashing sensitif lokalitas adalah teknik yang dipelopori oleh Indyk dan Motwani untuk memecahkan masalah JST, di mana titik-titik yang hidup dalam ruang dimensi tinggi (baca vektor panjang, string panjang, dll.) Disatukan ke dalam sejumlah kecil ember sehingga menunjukkan bahwa berdekatan satu sama lain dipetakan ke nampan yang sama dengan probabilitas yang baik dan poin yang jauh dari satu sama lain dipetakan ke tempat sampah yang berbeda, juga dengan probabilitas yang baik. Ada artikel survei yang hebat dan sangat mudah diakses oleh Indyk dan Andoni di CACM . Teknik ini sederhana dan cepat, dan memiliki kebutuhan ruang yang kecil; ada kode di luar sana juga (saya pikir artikel tersebut terhubung ke kode). Ini bekerja dengan baik untuk hal-hal seperti jarak Hamming (dan dalam rezim tertentu) jarak) dan jarak Euclidean, jarak cosinus. Juga,Muthu dan Sahinalpmerancang skema LSH untuk generalisasi yang sangat alami dari jarak edit,jarak edit blok(di mana beberapa operasi edit dapat beroperasi pada blok simbol).ℓ1
Pertanyaan semacam ini sangat cocok untuk cstheory.SE . Ada pertanyaan terkait di sana , tetapi tampaknya menanyakan persis tetangga dekat.