Création d'un correcteur orthographiqueSalut,
J'ai téléchargé des fichiers texte sur Internet et j'ai l'intention d'y exécuter des analyses de texte. Cependant, ils sont remplis de fautes de frappe et je souhaite les ranger autant que possible avant de les intégrer à la plate-forme Text Explorer. La première tâche la plus évidente sera de corriger automatiquement autant de fautes de frappe que possible.
Pour ce faire, j’ai besoin d’une liste relativement complète de mots courants avec lesquels comparer mes fichiers. Le correcteur orthographique de MS Word doit avoir accès à une telle liste. Je ne sais pas si cette liste fait partie intégrante de MS Word ou s'il s'agit simplement d'un composant standard de Windows - mais dans tous les cas, est-ce que quelqu'un sait si je peux accéder à cette liste directement depuis JMP ?
Sur un point connexe, comment puis-je calculer la « meilleure correspondance » entre un mot mal orthographié et une liste de mots anglais correctement orthographiés ? Je suis convaincu qu'il existe de nombreuses façons de procéder, mais il doit y en avoir des assez standards. (Je ne connais pas suffisamment Regex pour savoir si c'est comment résoudre un tel problème, mais si je dois l'apprendre, je le ferai.)
Merci beaucoup.
Re : Créer un correcteur orthographiqueUn grand merci à tous ceux qui ont répondu à ce fil : chaque suggestion a été vraiment utile. Je vais consacrer du temps à examiner la distance de Levenshtein pour voir ce qu'on peut en faire (pour lequel le script va être inestimable) ; également la fonction Shortest Edit Script(), qui semble pouvoir être très utile. Conformément aux conseils reçus, je ne m'attarderai pas sur Regex, mais je pourrais très bien étudier la possibilité d'écrire une macro Word - nous verrons comment ça se passe. Il me vient également à l'esprit que quelqu'un a peut-être résolu ce problème dans R, auquel cas il pourrait y avoir quelque chose sur Internet qui pourrait être importé via les fonctions liées à R de JMP. Beaucoup de pistes à explorer, mais je marque la question comme résolue.
Encore une fois, un grand merci à tous.
Re : Créer un correcteur orthographiqueJuste une information. Ci-joint un script qui définit une fonction appelée calculateLevenshteinDistance() et comprend plusieurs exemples et une description du script d'édition le plus court() fonction. Il comprend également des exemples de recherche de la séquence commune la plus longue.
Ce script a été écrit comme exemple supplémentaire pour nettoyer le texte, documenté au chapitre 9 de JSL Companion, Applications du langage de script JMP, 2e édition, et parce que nous avons trouvé que c'était une fonction intéressante.
Lors du nettoyage des colonnes d'enquête ou de commentaires (et non d'un document entier), la colonne Recoder peut être utile.
Re : Créer un correcteur orthographiquePour la comparaison de mots, vous pouvez utiliser la distance de Levenshtein.https://en.wikipedia.org/wiki/Levenshtein_distance
Re : Créer un correcteur orthographiquequelques informations sur la liste de mots dans ce blog https://community.jmp.com/t5/Uncharted/WordNet/ba-p/28984
Il y a longtemps, un algorithme comme celui-ci était utilisé :
recherchez le mot dans un tableau associatif de bons mots connus. Si la recherche échoue, essayez quelques règles pour supprimer les suffixes s, ing, ed et recherchez à nouveau. si cela échoue toujours, faites des suggestions en recherchant des mots similaires formés en changeant de paires de lettres, en insérant des lettres, en supprimant des lettres.
Je pense que les suggestions d'utilisation d'un programme externe sont appropriées et je pense que les expressions régulières ne sont généralement pas la réponse. Vous pourrez peut-être utiliser le recode dans l'explorateur de texte, même s'il s'agira d'un processus manuel.
Voici une fonction intéressante de JMP qui pourrait être utile si vous décidez de créer votre propre solution
shortest edit script("maintainence","maintenance")
{{"Common", "maint"}, {"Insert", "en"}, {"Common", "a"}, {"Remove", "i"}, {"Common",
"n"}, {"Remove", "en"}, {"Common", "ce"}}
Le script d'édition est une description des différences entre les deux mots. Vous pouvez créer une métrique à partir de cela en utilisant le nombre de caractères insérés et supprimés.
Re : Créer un correcteur orthographiqueDeux choses:
1. La communauté LaTeX dispose d'un certain nombre de listes de mots qui peuvent être utilisées avec les correcteurs orthographiques intégrés dans leur IDE. Vous pourrez peut-être en utiliser un.
2. Plutôt que d'essayer de pirater votre propre correcteur orthographique, vous pouvez essayer de vous connecter directement à GNU Aspell. C'est assez solide (et je pense que c'est assez intelligent pour ignorer le code). Je ne sais pas comment vous feriez cela, mais vous pourrez peut-être y parvenir via un appel Python ou quelque chose du genre.
Vous pouvez être dirigé vers les listes de mots et l'application Aspell ici : http://aspell.net .
M
Re : Créer un correcteur orthographiqueJe ne sais pas comment accéder à une liste externe, comme celle qui pourrait être utilisée par le vérificateur orthographique de MS Word, depuis JMP. De plus, la liste est utilisée par le vérificateur. Le vérificateur serait difficile à dupliquer dans un script JMP.
Vous pouvez envisager de créer une macro Visual Basic pour MS Word afin de vérifier et de corriger l'orthographe des fichiers texte d'origine avant de les importer dans une table de données JMP pour analyse.
Les expressions régulières sont un moyen puissant de faire correspondre des modèles, mais cette approche deviendrait lourde si elle était appliquée à la tâche consistant à trouver tous les mots mal orthographiés et à renvoyer le mot correct.