(PHP 4, PHP 5, PHP 7)
similar_text — Calcule la similarité de deux chaînes
$first
, string $second
[, float &$percent
] ) : int
Calcule la similarité entre les deux chaînes first
et second
, selon la méthode décrite dans
Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Notez
que cette implémentation n'utilise pas la méthode de pile comme dans le
pseudo code d'Oliver, mais des appels récursifs, ce qui accélère ou pas
le processus. Notez que la complexité de l'algorithme est en O(N**3) où
N est la taille de la plus grande chaîne.
first
La première chaîne.
second
La seconde chaîne.
Note:
Inverser
first
etsecond
peut produire des résultats différents ; voir l'exemple ci-dessous.
percent
En passant une référence en tant que troisième argument, similar_text() va calculer la similarité en pourcentage, en divisant le résultat de similar_text() par la moyenne de la longeur des chaîne de caractères fournies fois 100.
Retourne le nombre de caractères correspondant dans les deux chaîne de caractères.
Le nombre de charactères correspondant est calculés en trouvant la première plus longue sous-chaîne commune, et puis faire ceci pour les préfixes et les sufixes, de façon récursive. La longeur de toutes les sous-chaînes communes sont ajoutées.
Exemple #1 Exemple de similar_text() en inversant les arguments
Cet exemple montre qu'inverser les arguments first
et
second
peut produire des résultats différents.
<?php
$sim = similar_text('bafoobar', 'barfoo', $perc);
echo "similarity: $sim ($perc %)\n";
$sim = similar_text('barfoo', 'bafoobar', $perc);
echo "similarity: $sim ($perc %)\n";
L'exemple ci-dessus va afficher quelque chose de similaire à :
similarity: 5 (71.428571428571 %) similarity: 3 (42.857142857143 %)