Ich habe ein Wörterbuch von 'n' Worten gegeben und es gibt 'm' Abfragen zu reagieren. Ich möchte die Anzahl der Wörter im Wörterbuch zu Ausgabe, die zu bearbeiten sind Abstand 1 oder 2. Ich möchte gegeben, um die Ergebnismenge optimieren, dass n und m etwa 3000.Edit Distanzalgorithmus
Bearbeiten Antwort hinzugefügt unter:
Ich werde versuchen, es anders zu formulieren.
Anfangs gibt es 'n' Wörter, die als Dictionary-Wörter definiert sind. Als nächstes werden 'm'-Wörter angegeben, die Abfragewörter sind, und für jedes Abfragewort muss ich herausfinden, ob das Wort bereits in Dictionary (Edit Distance' 0 ') oder der Gesamtzahl von Wörtern im Dictionary existiert, die sich bei Editierdistanz 1 oder befinden 2 aus den Wörterbuchwörtern.
Ich hoffe, die Frage ist jetzt klar.
Nun, es Time-Out, wenn die Zeit Komplexität ist (m * n) n. Die naive Verwendung von DP Edit Distance Algorithm abläuft. Sogar Berechnen der diagonalen Elemente von 2k + 1 mal aus, wobei k der Schwellenwert hier ist, k = 3 im obigen Fall.
Können Sie auf die Frage ein wenig erweitern und etwas Kontext geben? Ich bin mir nicht sicher, was Sie für die Art, wie es jetzt formuliert ist, fragen. – SqlRyan
Das OP möchte ~ 3000 Abfragen auf einem Wörterbuch mit ~ 3000 Wörtern effizient ausführen und Wörter im Wörterbuch mit einer Bearbeitungsdistanz von 1 oder 2 für jede Abfrage zurückgeben. – Jacob
Sie meinen "Levenshtein Entfernung". – Teddy