6
votes

Qu'est-ce que le coût signifie dans la fonction Levenshtein de PHP pour comparer des chaînes?

J'étudie Levenshtein fonction Pour créer une recherche dans une petite instance Redis pour obtenir des correspondances, même s'il existe des fautes de frappe dans le terme de recherche soumis. Bien que la plus grande de celles-ci soit assez expliquée, je me débats pour obtenir la meilleure façon d'utiliser les trois paramètres différents. xxx

Il y a une courte explication dans la documentation

Une deuxième variante prendra trois paramètres supplémentaires qui définissent le coût des opérations d'insertion, de remplacement et de suppression. Ceci est plus général et adaptable que la variante, mais pas aussi efficace.

Mais cela ne résout pas mon pas compréhensif. Quelqu'un peut-il expliquer comment utiliser des paramètres de coût pour améliorer les résultats / performances?


0 commentaires

3 Réponses :


2
votes

Je ne sais pas comment cela pourrait aider avec ce que vous cherchez, mais je peux expliquer comment ces coûts fonctionnent.

Par défaut, le coût des opérations d'insertion, de remplacement et de suppression a une valeur de 1.

Cela signifie

chaîne A: Bonjour String B: Helloo

Levenshtein ($ stringa, $ stringb) = 1 Parce qu'il faut 1 "insertion" opération pour faire de la chaîne A == String B. En outre, car les coûts de l'insert sont 1. QUOI UNE POURQUOI LEVENSHTEIN RETOUR 1. Si vous définissez " Insérez les coûts »à 2, vous obtenez 2.

Même idée s'applique pour remplacer et supprimer des opérations.

N'oubliez pas que le nombre de LevenShtein inférieur, moins il faut utiliser pour faire chaîne A == String B.


0 commentaires

1
votes

La fonction Levennshtein calcule la distance d'édition entre 2 cordes. La distance d'édition est le coût minimum d'insertion / remplacement / Supprimer les opérations nécessaires pour transformer une chaîne en une autre. Par défaut, PHP applique un coût égal aux 3 opérations. Si vous souhaitez modifier les coûts par défaut, vous pouvez utiliser ces 3 paramètres.

Voir plus de détails ici: https://fr.wikipedia.org/wiki/edit_distance --/a >


0 commentaires

2
votes

Dans l'apprentissage de la machine, une fonction Cost est la fonction que vous essayez de minimiser pour obtenir le meilleur résultat. Lorsque la machine est exécutée, par exemple, étapes A, B et C, la fonction de coût calculera combien il "coûté" d'exécuter ces étapes. Le terme coût est connecté à une fonction mathématique qui sera évaluer la performance de votre résultat . . . .

Lorsque l'ordinateur, par exemple, exécutez les étapes B, C et A, la fonction de coût vous indiquera si vous avez un meilleur ou un pire résultat que l'étape précédente.

lire la documentation, vous pouvez voir que

La distance de Levenshtein est définie comme le nombre minimal de caractères que vous devez remplacer, insérer ou supprimer pour transformer STR1 en str2.

C'est votre fonction de coût: minimiser la distance en termes de remplacez Supprimer et insert . .

Chaque fois que l'algorithme doit effectuer une de ces tâches, elle ajoute un coût de cette opération. Ces 3 derniers paramètres vous permettent de décider de la valeur de chaque opération. À la fin de la comparaison, vous obtiendrez une valeur finale, à savoir coût de la fonction . Si cette valeur est plus petite qu'un seuil défini, c'est la même chose que d'assumer la fonction renvoyée true. Si le résultat est plus grand que votre seuil, cela signifie qu'il coûte plus que ce que vous permettez à une chaîne être égal à un autre.


0 commentaires