Bon voilà j'ai fini mon petit module qui recherche les chaines voisines, ça marche super sauf que...
Je suis obligé de découper en mot pour appliquer la fonction levenshtein()
Partant de là, c'est la merde.
Car lorsque je recherche le mot "ligne" dans le texte suivant:
il va me trouver le mot ligne qu'une fois... et il ne trouvera donc pas ni "ligne", ni "line" qui sont caché si on peut dire dans le texte.
Si vous avez une idée?
EDIT:
bon en version très simplifié, j'ai ça:
Je suis obligé de découper en mot pour appliquer la fonction levenshtein()
Partant de là, c'est la merde.
Car lorsque je recherche le mot "ligne" dans le texte suivant:
Citation :$malignequiestsuper = 'trop bien cette ligne dans la quel il y a masuperline';
il va me trouver le mot ligne qu'une fois... et il ne trouvera donc pas ni "ligne", ni "line" qui sont caché si on peut dire dans le texte.
Si vous avez une idée?
EDIT:
bon en version très simplifié, j'ai ça:
Code PHP :
<?php
function recherche($ligne, $chaine_recherche, &$resultat)
{
$phrase = explode(' ', $ligne);
//pour chaque mot dans la phrase (ou ligne)
foreach($phrase as $mot)
{
//verif que la chaine n'est pas plus grande que 255 caractere sinon la fonction bug
if(strlen($mot) < 256)
{
//je cherche avec une "precision" de 3
if(levenshtein($chaine_recherche, $mot) <= 3) $resultat++;
}
}
}