Score de similarité - Levenshtein
J'ai implémenté l'algorithme de Levenshtein en Java et je suis maintenant obtenir les corrections apportées par l'algorithme, une.k.un. le coût. Cela aide un peu mais pas beaucoup, car je veux les résultats sous forme de pourcentage.
Donc je veux savoir comment calculer ces points de similitude.
Je voudrais aussi savoir comment vous les gens le font et pourquoi.
source d'informationauteur N00programmer
Vous devez vous connecter pour publier un commentaire.
Donc, si vous avez besoin d'un pourcentage, vous avez de l'utiliser pour les points à l'échelle. Par exemple:
"Bonjour", "Bonjour" -> distance de Levenstein 1
Max Levenstein distance de ces deux chaînes est: 5.
Le 20% des personnages ne correspondent pas.
Vous pouvez télécharger Apache Commons StringUtils et étudier (et peut-être utiliser) leur mise en œuvre de l'algorithme de Levenshtein.
La valeur maximale de Levenshtein différence entre deux chaînes de caractères serait le maximum de la longueur des deux chaînes. (Qui correspond à un changement de symbole pour chacun des personnages jusqu'à la longueur de la chaîne plus courte, plus des insertions ou des suppressions en fonction de si vous allez du plus court au plus long, ou vice versa.) Étant donné que, de la similitude des deux chaînes doit être le rapport entre le maximum et la différence entre le maximum et le nombre réel de Levenshtein différence.
Implémentations de l'algorithme de Levenshtein, ont tendance à ne pas enregistrer ce que ces modifications devraient être, mais il ne devrait pas être difficile à calculer, compte tenu de l'algorithme abstrait sur le Page Wikipedia.
Je pense qu'il serait utile de lien
LevenshteinDistance
Il peut être utilisé par maven dependency
maven dependency
Je pense qu'il est préférable d'utiliser cette mise en œuvre que d'écrire votre propre code.
Comme exemple regarder code soufflet