Maison >développement back-end >tutoriel php >Trouver et corriger les mots mal orthographiés avec PSpell
Points de base
Chacun de nous a fait des erreurs d'orthographe dans les recherches Google, telles que la «musique alternative». Vous avez peut-être remarqué que Google essaiera de vous aider en disant "voulez-vous dire de la musique alternative?" Si votre site Web a une fonction de recherche, en signalant une fausse orthographiée lorsqu'aucun résultat n'est trouvé ou trop peu de résultats est une fonctionnalité très utile, surtout si le mauvais anglais du visiteur peut vous faire manquer des opportunités de vente. Heureusement, le module PSPELL de PHP vous permet de vérifier l'orthographe des mots et de les remplacer en fonction de ses suggestions de dictionnaire par défaut (vous pouvez également créer des dictionnaires personnalisés).
Tout d'abord, nous devons vérifier si PSpell est installé:
<code class="language-php"><?php $config_dic= pspell_config_create ('en'); ?></code>
Si une erreur se produit, cela signifie qu'il n'est pas installé. Sur les systèmes Linux, suivez les instructions ci-dessous pour résoudre ce problème. (Les étapes spécifiques pour l'installation de PSPELL dans les systèmes Linux doivent être ajoutées ici)
Utilisez le dictionnaire par défaut
Ce qui suit est une petite fonction qui vous aide à comprendre comment fonctionne PSpell:
<code class="language-php"><?php function orthograph($string) { $config_dic = pspell_config_create('en'); pspell_config_ignore($config_dic, 3); pspell_config_mode($config_dic, PSPELL_FAST); $dictionary = pspell_new_config($config_dic); $replacement_suggest = false; $string = explode(' ', trim(str_replace(',', ' ', $string))); foreach ($string as $key => $value) { if (!pspell_check($dictionary, $value)) { $suggestion = pspell_suggest($dictionary, $value); if (strtolower($suggestion[0]) != strtolower($value)) { $string[$key] = $suggestion[0]; $replacement_suggest = true; } } } return $replacement_suggest ? implode(' ', $string) : null; } ?></code>
Pour utiliser cette fonction, passez-le simplement un paramètre de chaîne:
<code class="language-php"><?php $search = $_POST['input']; $suggestion_spell = orthograph($search); if ($suggestion_spell) { echo "建议拼写:$suggestion_spell"; } ?></code>
Si la chaîne soumise à PSpell est "voici mon mot mignon", le script précédent reviendra: "Speller suggéré: voici mon mot mal orthographié". Cependant, Pspell n'est pas tout-en-un, surtout si vous utilisez automatiquement la première alternative d'orthographe suggérée! Pour de meilleurs résultats, vous pouvez utiliser toutes les suggestions fournies par PSpell. Le script suivant renvoie vingt suggestions entourant le mot "lappin": (des exemples de code doivent être ajoutés ici)
Vous devez configurer un dictionnaire pour initialiser PSpell. Pour ce faire, créez un descripteur pointant vers le fichier de configuration du dictionnaire, modifiez certaines des options de ce descripteur, puis utilisez le dictionnaire de configuration pour créer un deuxième descripteur pour le dictionnaire réel. Si cela semble un peu compliqué, ne vous inquiétez pas: le code change très peu et vous pouvez généralement le copier à partir d'un autre script. Mais ici, nous allons le regarder étape par étape. Ce qui suit est le code du dictionnaire de configuration: (l'exemple de code doit être ajouté ici et les fonctions de chaque fonction dans le code doivent être expliquées)
À partir de ce moment, vous pouvez utiliser le dictionnaire de deux manières:
pspell_check($dictionary, "word")
Renvoie True si "Word" est dans le dictionnaire. pspell_suggest($dictionary, "word")
Si "Word" n'est pas dans le dictionnaire, un tableau de mots suggérés est retourné (le premier élément de ce tableau est le candidat le plus probable). Le nombre de mots obtenus varie, mais vous pouvez en obtenir plus avec pspell_slow et moins avec pspell_fast. Maintenant que le dictionnaire est prêt, nous avons coupé la chaîne passée en tant que paramètres pour obtenir le tableau de mots: "Ici ma phrase" devient un tableau de trois éléments, "ici", "mon" et "phrase". Nous vérifions ensuite l'orthographe de chaque mot en utilisant le dictionnaire par défaut. Parce qu'il n'aime pas les virgules, nous les supprimons toujours avant d'exploser les cordes. Si le mot dépasse trois caractères, vérifiez-le et si l'orthographe est erronée, nous effectuons les éléments suivants: (Les instructions d'étape doivent être ajoutées ici et l'expression du langage doit être améliorée)
Ajoutez un dictionnaire personnalisé à pspell
Si un mot n'est pas dans le dictionnaire par défaut, vous pouvez facilement l'ajouter. Cependant, vous pouvez également créer un dictionnaire personnalisé à utiliser avec le dictionnaire par défaut.
Créez un répertoire PHP sur votre site avec des autorisations d'écriture et initialisez un nouveau dictionnaire. Pour créer un nouveau fichier de dictionnaire nommé perso.pws, utilisez le script suivant: (L'exemple de code doit être ajouté ici et expliquer le rôle des fonctions individuelles dans le code et comment ajouter des mots à un dictionnaire personnalisé)
Conclusion
pspell peut vous aider à améliorer les conversions en offrant aux visiteurs un moyen de corriger automatiquement et de remarquer leurs fautes de frappe. Il améliore la précision globale du langage de l'expérience de recherche, des soumissions de forum et des sites Web avec du contenu soumis à l'utilisateur. Si vous voulez avoir un aperçu plus approfondi de PSpell ou la mettre en œuvre de manière intéressante, faites-le nous savoir dans les commentaires ci-dessous!
FAQ (FAQ) sur la correction des fautes de frappe
(La partie FAQ doit être ajoutée ici, et la FAQ d'origine doit être polie et réécrite pour la rendre plus concise et facile à comprendre)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!