« OrthoBot » : différence entre les versions
Aucun résumé des modifications |
(Annulation des modifications 37575 de Orthobot (discussion)) |
||
(25 versions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
==Description== | ==Description== | ||
[[OrthoBot]] détecte les fautes d'orthographe. Il parcourt l'ensemble des mots d'une page, les compare à une liste de mots français(dictionnaire), et propose une correction si un mot n'appartient pas à cette liste. | [[OrthoBot]] détecte les fautes d'orthographe. Il parcourt l'ensemble des mots d'une page, les compare à une liste de mots français(dictionnaire), et propose une correction si un mot n'appartient pas à cette liste. | ||
Lorsque le bot détecte une faute, il modifie la page en colorant le mot, et propose une correction de la forme: <span style="color:red">faute</span>(correction: <span style="color:green">'correction1'</span>,<span style="color:green">'correction2'</span>,...) . | Lorsque le bot détecte une faute, il modifie la page en colorant le mot, et propose une correction de la forme: <span style="color:red">faute</span>(correction: <span style="color:green">'correction1'</span>,<span style="color:green">'correction2'</span>,...) . | ||
[[OrthoBot]] ne corrige pas les hypermots. | [[OrthoBot]] ne corrige pas les hypermots étant donnée qu'il s'agit souvent de noms propres et qu'ils sont normalement correctement orthographiés. | ||
==Méthodes de correction== | ==Méthodes de correction== | ||
Ligne 15 : | Ligne 17 : | ||
Il teste l'ajout d'une lettre à chaque emplacement possible(au début du mot, entre la 1e et la 2e lettre, etc.), cherche une correspondance dans le dictionnaire, propose une correction si elle existe. | Il teste l'ajout d'une lettre à chaque emplacement possible(au début du mot, entre la 1e et la 2e lettre, etc.), cherche une correspondance dans le dictionnaire, propose une correction si elle existe. | ||
-Cas 3: Cas particuliers. | -Cas 3: Il y a une lettre en trop. | ||
Il essaye d'effacer chaque lettre une à une et contrôle s'il existe une correspondance dans le dictionnaire et propose une éventuelle proposition. | |||
-Cas 4: Cas particuliers. | |||
Modifie la lettre 'f' par 'ph' et cherche une correction dans le dictionnaire. | Modifie la lettre 'f' par 'ph' et cherche une correction dans le dictionnaire. | ||
==Exemples de Résultats== | |||
Si notre bot rencontre une page contenant le texte suivant: | |||
Ceci est une pâge test pour [[OrthoBot]]. Elle contien des fautes d'orthografe. | |||
Il va modifier la page comme ci-dessous: | |||
Ceci est une <span style="color:red">pâge</span> (correction(s): <span style="color:green">page, pâme, âge, pige, pâte, pâle</span>) test pour [[OrthoBot]]. Elle <span style="color:red">contien</span> (correction(s): <span style="color:green">contiens, contient</span>) des fautes d'<span style="color:red">orthografe</span> (correction(s): <span style="color:green">orthographe</span>). | |||
Cet exemple est tiré de la page créée pour tester notre bot: [[testOrthobot]] | |||
==Remarques== | ==Remarques== | ||
Ligne 24 : | Ligne 41 : | ||
-Possibilité d'étendre le dictionnaire au noms propres en ajoutant à celui-ci des listes de mots (par exemple une liste de pays). | -Possibilité d'étendre le dictionnaire au noms propres en ajoutant à celui-ci des listes de mots (par exemple une liste de pays). | ||
-[[OrthoBot]] ne détecte ni les fautes d'accords, ni celles de conjugaison. | -[[OrthoBot]] ne détecte ni les fautes d'accords, ni celles de conjugaison, car ce ne sont pas des fautes d'orthographe à proprement parler. | ||
-La partie 'Cas particuliers' de la correction peut être étendue à de nombreuses fautes. | -La partie 'Cas particuliers' de la correction peut être étendue à de nombreuses fautes. | ||
-Une fois qu' [[OrthoBot]] trouve une faute sur une page, il la garde en mémoire pour ne pas avoir à corriger ce mot plusieurs fois. | -Une fois qu' [[OrthoBot]] trouve une faute sur une page, il la garde en mémoire pour ne pas avoir à corriger ce mot plusieurs fois. | ||
-Si [[OrthoBot]] rencontre du texte coloré soit en vert soit en rouge il ne le prend pas en compte. Si un mot est vert c'est qu'il est une proposition de correction donc il est correct, et si il est rouge, ce mot est orthographié faux et a déjà été signalé à son auteur. Il est donc inutile dans ces deux cas de contrôler l'orthographe. | |||
-[[OrthoBot]] ne corrige pas le mot, il ne fait que proposer une solution, tout en modifiant la page. Il revient donc aux utilisateurs de corriger cette dernière après le passage du bot. | -[[OrthoBot]] ne corrige pas le mot, il ne fait que proposer une solution, tout en modifiant la page. Il revient donc aux utilisateurs de corriger cette dernière après le passage du bot. | ||
-Le dictionnaire est, pour le moment, un dictionnaire de mots en français uniquement. | -Le dictionnaire est, pour le moment, un dictionnaire de mots en français uniquement. | ||
-Le bot ignore les parties des pages contenant du code, ainsi que les tableaux. | |||
==Évaluation du Bot== | |||
- Lorsqu'un mot est mal orthographié, il est systématiquement découvert. Mais un mot correctement orthographié peut être évalué comme faux. Nous avons trouvé un total de 571 fautes différentes sur toutes les pages du wiki. Parmi ces fautes, 32% sont des mots provenant d'autres langues, principalement de l'anglais, 24% sont des noms propres (lieu, personnes), 21% sont des fautes diverses comme des abréviations ou des noms de méthodes de python. Enfin, 18% sont des vraies fautes: des mots réellement mal écrits qui doivent être corrigés. Et 5% des mots faux trouvés sont des mots correctement orthographiés qui ne sont malheureusement pas dans le dictionnaire que nous avons utilisé. | |||
Une solution pour augmenter le pourcentage des vraies fautes serait de joindre à notre dictionnaire français un dictionnaire anglais ainsi qu'un dictionnaire des noms propres. Cela réduirait déjà passablement le nombre de fautes trouvées et améliorerait l'efficacité de notre bot. Il faudrait aussi si possible trouver un dictionnaire le plus récent possible qui contient tous les néologismes de ces dernières années. Le dictionnaire que nous utilisons n'est aussi pas complet au niveau des conjugaisons et cela peut amener notre bot à trouver une fausse erreur. | |||
- Le bot trouve toutes les corrections, selon les critères décrits ci-dessus, d'un mot en un temps moyen d'environ 1 seconde pour un mot de 6 à 8 caractères. Ce qui est raisonnable puisqu'une page contenant 60 fautes est évaluée en 1 minute environ tandis qu'il faudrait beaucoup plus de temps pour le faire à la main suivant la taille de la page. | |||
-Notre Bot serait prêt à être mis sur un serveur et exécuté périodiquement toutes les 24h. | |||
==Code== | ==Code== | ||
Sur ce dépôt: [https://github.com/brunowicht/OrthoBot] | Sur ce dépôt: [https://github.com/brunowicht/OrthoBot] | ||
Dernière version du 30 mai 2017 à 11:39
Description
OrthoBot détecte les fautes d'orthographe. Il parcourt l'ensemble des mots d'une page, les compare à une liste de mots français(dictionnaire), et propose une correction si un mot n'appartient pas à cette liste. Lorsque le bot détecte une faute, il modifie la page en colorant le mot, et propose une correction de la forme: faute(correction: 'correction1','correction2',...) .
OrthoBot ne corrige pas les hypermots étant donnée qu'il s'agit souvent de noms propres et qu'ils sont normalement correctement orthographiés.
Méthodes de correction
Lorsqu'une faute est trouvée, OrthoBot va chercher une correction possible en modifiant le mot pour trouver un correctif dans son dictionnaire. Pour se faire, il va appliquer successivement différentes méthodes pour pouvoir trouver le maximum de corrections possibles:
-Cas 1: 1 lettre est fausse. Il modifie une à une chaque lettre du mot et teste s'il existe une correspondance dans le dictionnaire. Si oui, il proposera cette correction.
-Cas 2: Il manque une lettre. Il teste l'ajout d'une lettre à chaque emplacement possible(au début du mot, entre la 1e et la 2e lettre, etc.), cherche une correspondance dans le dictionnaire, propose une correction si elle existe.
-Cas 3: Il y a une lettre en trop. Il essaye d'effacer chaque lettre une à une et contrôle s'il existe une correspondance dans le dictionnaire et propose une éventuelle proposition.
-Cas 4: Cas particuliers. Modifie la lettre 'f' par 'ph' et cherche une correction dans le dictionnaire.
Exemples de Résultats
Si notre bot rencontre une page contenant le texte suivant:
Ceci est une pâge test pour OrthoBot. Elle contien des fautes d'orthografe.
Il va modifier la page comme ci-dessous:
Ceci est une pâge (correction(s): page, pâme, âge, pige, pâte, pâle) test pour OrthoBot. Elle contien (correction(s): contiens, contient) des fautes d'orthografe (correction(s): orthographe).
Cet exemple est tiré de la page créée pour tester notre bot: testOrthobot
Remarques
-Le dictionnaire ne comprenant pas de nom propres, OrthoBot les signale comme des fautes, notamment les lieux ou pays. Il semble donc important que ces mots soient des hypermots.
-Possibilité d'étendre le dictionnaire au noms propres en ajoutant à celui-ci des listes de mots (par exemple une liste de pays).
-OrthoBot ne détecte ni les fautes d'accords, ni celles de conjugaison, car ce ne sont pas des fautes d'orthographe à proprement parler.
-La partie 'Cas particuliers' de la correction peut être étendue à de nombreuses fautes.
-Une fois qu' OrthoBot trouve une faute sur une page, il la garde en mémoire pour ne pas avoir à corriger ce mot plusieurs fois.
-Si OrthoBot rencontre du texte coloré soit en vert soit en rouge il ne le prend pas en compte. Si un mot est vert c'est qu'il est une proposition de correction donc il est correct, et si il est rouge, ce mot est orthographié faux et a déjà été signalé à son auteur. Il est donc inutile dans ces deux cas de contrôler l'orthographe.
-OrthoBot ne corrige pas le mot, il ne fait que proposer une solution, tout en modifiant la page. Il revient donc aux utilisateurs de corriger cette dernière après le passage du bot.
-Le dictionnaire est, pour le moment, un dictionnaire de mots en français uniquement.
-Le bot ignore les parties des pages contenant du code, ainsi que les tableaux.
Évaluation du Bot
- Lorsqu'un mot est mal orthographié, il est systématiquement découvert. Mais un mot correctement orthographié peut être évalué comme faux. Nous avons trouvé un total de 571 fautes différentes sur toutes les pages du wiki. Parmi ces fautes, 32% sont des mots provenant d'autres langues, principalement de l'anglais, 24% sont des noms propres (lieu, personnes), 21% sont des fautes diverses comme des abréviations ou des noms de méthodes de python. Enfin, 18% sont des vraies fautes: des mots réellement mal écrits qui doivent être corrigés. Et 5% des mots faux trouvés sont des mots correctement orthographiés qui ne sont malheureusement pas dans le dictionnaire que nous avons utilisé. Une solution pour augmenter le pourcentage des vraies fautes serait de joindre à notre dictionnaire français un dictionnaire anglais ainsi qu'un dictionnaire des noms propres. Cela réduirait déjà passablement le nombre de fautes trouvées et améliorerait l'efficacité de notre bot. Il faudrait aussi si possible trouver un dictionnaire le plus récent possible qui contient tous les néologismes de ces dernières années. Le dictionnaire que nous utilisons n'est aussi pas complet au niveau des conjugaisons et cela peut amener notre bot à trouver une fausse erreur.
- Le bot trouve toutes les corrections, selon les critères décrits ci-dessus, d'un mot en un temps moyen d'environ 1 seconde pour un mot de 6 à 8 caractères. Ce qui est raisonnable puisqu'une page contenant 60 fautes est évaluée en 1 minute environ tandis qu'il faudrait beaucoup plus de temps pour le faire à la main suivant la taille de la page.
-Notre Bot serait prêt à être mis sur un serveur et exécuté périodiquement toutes les 24h.
Code
Sur ce dépôt: [1]