J'étudie Levenshtein fonction strong> 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 code> code> différents. Il y a une courte explication dans la documentation p> 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. P>
BlockQuote> 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? P> P>
3 Réponses :
Je ne sais pas comment cela pourrait aider avec ce que vous cherchez, mais je peux expliquer comment ces coûts fonctionnent. P>
Par défaut, le coût des opérations d'insertion, de remplacement et de suppression a une valeur de 1. p>
Cela signifie p>
chaîne A: Bonjour String B: Helloo P>
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. P>
Même idée s'applique pour remplacer et supprimer des opérations. p>
N'oubliez pas que le nombre de LevenShtein inférieur, moins il faut utiliser pour faire chaîne A == String B. P>
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. P>
Voir plus de détails ici: https://fr.wikipedia.org/wiki/edit_distance --/a > p>
Dans l'apprentissage de la machine, une fonction Cost em> 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 strong> est connecté à une fonction mathématique qui sera 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. P>
lire la documentation, vous pouvez voir que p>
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. p>
blockQuote>
C'est votre fonction de coût: minimiser la distance en termes de Chaque fois que l'algorithme doit effectuer une de ces tâches, elle ajoute un coût fort> 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