Commit d014f863 authored by Clement GAUDUCHEAU's avatar Clement GAUDUCHEAU
Browse files

add dictionnary and levenshtein.php

parent 7ba49d0b
This diff is collapsed.
wanted
story
georgia
cohn
merely
inflexible
remainder
knowing
forbids
husbands
<form method="POST" action="levenshtein.php">
<p>
<label for="login">quel mot cherchez vous ?</label>
<input type="text" id="login" name="motCher"/>
</p>
<p>
<input type="submit" value="Envoyer" />
</p>
<p>
<input type="reset" value="annuler" />
</p>
<?php
if(isset($_POST["motCher"])){// mot mal orthographié
$input = $_POST["motCher"];
// tableau de mots à vérifier
$words = array('apple','pineapple','banana','orange',
'radish','carrot','pea','bean','potato','bananas',);
$filename = "dico-en_10.txt";
$handle = fopen($filename,"r");
$content = fread($handle, filesize($filename));
fclose($handle);
$split = explode(" ",$content);
// aucune distance de trouvée pour le moment
$shortest = -1;
// boucle sur les mots pour trouver le plus près
foreach ($split as $word) {
// calcule la distance avec le mot mis en entrée,
// et le mot courant
$lev = levenshtein($input, $word);
// cherche une correspondance exacte
if ($lev == 0) {
// le mot le plus près est celui-ci (correspondance exacte)
$closest = $word;
$shortest = 0;
// on sort de la boucle ; nous avons trouvé une correspondance exacte
break;
}
// Si la distance est plus petite que la prochaine distance trouvée
// OU, si le prochain mot le plus près n'a pas encore été trouvé
if ($lev <= $shortest || $shortest < 0) {
// définition du mot le plus près ainsi que la distance
$closest = $word;
$shortest = $lev;
}
}
echo "Mot entré : $input\n";
if ($shortest == 0) {
echo "Correspondance exacte trouvée : $closest\n";
} else {
echo "Vous voulez dire : $closest ?\n";
}
}
else {
echo "vous navez pas entré de mot";
}
?>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment