Mon détecteur de répétitions

J’ai enfin écrit le petit logiciel dont l’idée me trottait dans la tête depuis quelques temps. Afin de faciliter les corrections, il détecte les mots potentiellement de la même famille et les simples répétitions. Les résultats me satisfont, bien qu’il y ait matière à en améliorer la qualité. « Repet.py » (c’est le nom de cet outil) est multilingue et devrait fonctionner tout aussi bien en anglais qu’en français, allemand ou la plupart des langues occidentales. Plutôt que de se baser sur des listes de vocabulaire, pénibles à mettre en place, lourdes à maintenir, il n’analyse que les quatre premières lettres de chaque mot, ce qui provoque quelques faux positifs, bien sûr, mais à un prix que je juge acceptable.

Voici en exemple un texte extrêmement drôle (en fait juste un article précédent qui n’a pas reçu assez de visites😉 ), passé aux commentaires sans pitié de « repet.py »:

Pour chaque répétition, la ligne ainsi que la distance entre les deux mots est affichée. La première occurence du mot est mise en évidence en début de citation, et la racine commune est placée en bout de citation, à la suite du second mot. Vous noterez que la ponctuation a disparu, conséquence de la méthode par laquelle « repet.py » détecte les mots. Il y aurait évidemment moyen de rétablir tous ces signes disparus, mais pour l’instant cela me convient ainsi. J’optimiserai par la suite si il y a une demande.

Ma méthode prend en compte la plupart des conjugaisons, les pluriels et même des racines communes (vous remarquerez que « sensuel » rentre en potentiel conflit avec « sensation ») . Revers de la médaille: les faux positifs (« mais » et « maison », « pourceau » et « pourboire » alarmeront sans raison mon programme),  et certaines répétitions passeront inaperçues si les quatre premières lettres ne sont pas rigoureusement identiques (par exemple « venir » et « revenir », « fendre » et « pourfendre », etc). J’imagine déjà des solutions à ces problèmes, et il est fort probable que je me penche un jour sur une version améliorée de cet algorithme.

« Repet.py » m’a déjà bien aidé lors de la correction de ma dernière nouvelle, et me pousse à utiliser un langage plus intéressant.

Écrit en Python, ce script devrait fonctionner d’office sur la plupart des linux/*bsd ainsi que sous Windows et MacOS X pour peu que Python y soit installé.

Vous pouvez télécharger la dernière version de « repet.py » sur mon Dropbox.

Utilisation: repet.py <Nom du fichier à analyser>

Si la distance par défaut (50 mots) ne vous convient pas, vous pouvez la spécifier en second argument.

Caveat emptor et tutti quanti.

Commentaires et suggestions bienvenus.

Une réflexion sur “Mon détecteur de répétitions

  1. Merci pour l’outil, je vais l’expérimenter. Etant sous Linux je ne trouvais pas grand chose, donc j’allais le coder. Je le teste rapidement sur mes textes en cours de rédaction. J’ai bien quelques idées pour repérer les répétitions de participes, etc… qui travaillerait sur la fin des mots, mais je teste et je reviens.

    Cédric

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s