J'ai un dictionnaire de 'n' mots donnés et il y a des requêtes 'm' auxquelles répondre. Je veux sortir le nombre de mots dans le dictionnaire qui sont la distance de modifier 1 ou 2. Je veux optimiser le jeu de résultats étant donné que n et m sont à peu près 3000.Modifier l'algorithme de distance
Modifier ajouté de réponse ci-dessous:
Je vais essayer de le dire différemment.
Initialement, il y a 'n' mots donnés comme un ensemble de mots du dictionnaire. Les mots 'm' suivants sont donnés qui sont des mots de requête et pour chaque mot de requête, je dois trouver si le mot existe déjà dans Dictionary (Edit Distance '0') ou le nombre total de mots dans le dictionnaire qui sont à la distance d'édition 1 ou 2 à partir des mots du dictionnaire.
J'espère que la question est maintenant claire. Eh bien, il arrive à expiration si la complexité du temps est (m * n) n. L'utilisation naïve de l'algorithme DP Distance Distance expire. Même en calculant les éléments diagonaux de 2k + 1 fois où k est le seuil ici k = 3 dans le cas ci-dessus.
Pouvez-vous développer un peu la question et donner un peu de contexte? Je ne suis pas sûr de ce que vous demandez pour la façon dont il est libellé maintenant. – SqlRyan
L'OP veut exécuter efficacement ~ 3000 requêtes sur un dictionnaire de ~ 3000 mots et renvoyer des mots dans le dictionnaire à une distance d'édition de 1 ou 2 pour chaque requête. – Jacob
Vous voulez dire "distance Levenshtein". – Teddy