Lizzie Crowdagger : le blog

Un blog avec de la fantasy urbaine, des lesbiennes, des vampires, des flingues et des motos
Home

Aller au menu | Aller à la recherche

Calendrier septembre/octobre : Rustfest, YCON et festival de philosophie

, 14:55

Coucou ! Un petit billet rapide pour résumer les différentes dates pour lesquelles je ferai des apparitons publiques prochainement.

30 septembre : Rustfest (Zurich)

C’est pas vraiment en tant qu’écrivaine, mais je parlerai un peu de mon expérience lors du développement de Crowbook sur le fait d’utiliser le langage Rust pour une application de haut-niveau. Ce sera le samedi 30 septembre, à Zurich, dans le cadre du RustFest.

7 octobre : Médiations philosophiques (Lyon)

Le samedi 7 septembre, à Lyon, je participerai à une table ronde sur « Les représentations des sexes et des sexualités dans nos sociétés » dans le cadre du festival de philosophie 2017 organisé par Les médiations philosophiques.

14-15 octobre : Y-CON (Paris)

Le week-end du 14 et 15 octobre, je serai à la Y-CON 6, le salon des homo-fictions, à Paris. J’interviendrai notamment dans deux tables rondes sur la visibilité lesbienne et la représentation des personnes trans dans la fiction. Il y aura aussi des ventes et des dédicaces.

Caribon, un logiciel pour détecter les répétitions

, 18:20

En tant qu'autrice qui écrit en français, il y a toujours un moment assez pénible à la relecture d'un texte : repérer les répétitions et les éliminer. Ou, en tout cas, essayer de les éliminer. En réduire un peu le nombre, en tout cas.

L'objectif de ce billet, un peu hors sujet pour ce blog (quoique ce n'est pas la première fois que je présente un logiciel lié à l'écriture), est de vous présenter un petit programme qui vise à aider les auteurs à repérer ces répétitions. J'y case aussi quelques réflexions sur ces fichues répétitions, parce qu'en fait il y a plus à dire sur le sujet qu'on ne pourrait le penser à première vue.

Caribon en ligne

Ne faisons pas durer le suspens plus longtemps : le logiciel dont je veux vous parler s'appelle Caribon, et il y a une version utilisable en ligne ici. Pas besoin d'installer quoi que ce soit sur votre ordinateur, vous pouvez juste copier/coller un texte de votre choix et, zou, ça marche[1].

Si vous copiez/collez un document depuis un traitement de texte, comme LibreOffice, la mise en page devrait être préservée. Bon, avec un roman en entier c'est un peu too much et le serveur va vous envoyer bouler (d'après mes quelques essais, c'est possible de monter jusqu'à environ 30000 mots, mais ça varie sans doute selon la charge du serveur).

Je ne vais pas détailler toutes les options possibles (il y a une page de documentation si ça vous intéresse), mais je vais discuter un peu de certaines fonctionnalités, parce que je les trouve intéressantes et que ça permet d'aborder des questions liées à la jonction « linguistique / informatique ».

Racinisation

Un souci, quand on veut détecter les répétitions, c'est de réussir à faire comprendre au logiciel que des mots peuvent être de la même famille : par exemple le singulier et le pluriel d'un même mot, ou des conjugaisons différentes d'un même verbe sont des répétitions, même si ce n'est pas exactement le même mot.

Pour cela, Caribon utilise une bibliothèque dite de racinisation, ou stemming en anglais. La racinisation, c'est le fait de ne garder que la racine (ou le radical) d'un mot : par exemple, mange, mangerai et mangés ont tous trois la même racine. Il y a des algorithmes pour ça, et notamment la bibliothèque Snowball qui fournit des algorithmes pour différentes langues (parce qu'évidemment, il faut adapter à chaque langue).

Recherche approximative

Malheureusement, ces algorithmes ne sont pas parfaits. D'une part, ils ne se débrouillent pas forcément très bien sur les exceptions : par exemple il est impossible, juste avec un algorithme, de savoir que vais et irai sont le même verbe.

Sur ce cas précis, il n'y a pas beaucoup de solution à part avoir un dictonnaire énorme listant toutes les exceptions de chaque langue (donc, plus une approche algorithmique). Et d'ailleurs, pour en revenir au sujet des répétitions : est-ce que « vais » et « irai » en sont vraiment une, alors que les deux mots ne se ressemblent pas du tout ?.

En revanche, pour un certain nombre de cas, il peut être utile de « repérer » des mots (ou plutôt des racines) qui sont similaires sans être tout à fait identiques. C'est ce qui s'appelle la « recherche approximative »[2], alias fuzzy string searching ou approximate string matching en anglais. C'est notamment pratique lorsque l'algorithme de racinisation a des loupés... ou alors quand c'est vous, et que par exemple vous avez fait une faute de frappe mais que « répétition » et «répetition » étaient censés être le même mot.

Cela introduit néanmoins un souci lorsque des mots similaires ne sont en fait pas le même mot : la recherche approximative risque par exemple de considérer que pétition et répétition en sont une, de répétition. Mais là encore je pense qu'on peut débattre : est-ce que ça devrait être le cas ou pas ? D'un côté, ce n'est pas le même mot, mais de l'autre ils sonnent en partie pareil. Et c'est là que je réalise que s'il y a un consensus certain sur le fait qu'il faut éviter les répétitions, je ne suis pas sûre qu'il y ait une opinion aussi unanime sur ce qui constitue exactement une répétition.

Toujours est-il que Caribon vous propose d'activer ou de désactiver cette recherche approximative, et d'en modifier le paramètre (le « seuil d'approximation »). Mais alors, comment ça marche, la recherche approximative ? En gros ça se base sur la distance de Levenshtein, qui consiste à définir la distance entre deux mots comme le nombre d'opérations basiques (ajout d'une lettre, retrait d'une lettre, permutation de deux lettres) pour passer d'un mot à l'autre. Concrètement, Caribon divise cette distance entre deux mots par la taille du mot (lequel ? le premier ou le second, j'imagine) et si ce nombre (entre 0 et 1, qui correspond à un « taux de ressemblance ») est inférieur au « seuil d'approximation », alors les deux mots sont considérés comme une répétition.

À noter que ces deux notions, la « racinisation » et la « recherche approximative de mots », si elles servent ici juste à détecter des répétitions, sont en fait assez fondamentales pour un certain nombre de champs, comme les corrections orthographiques ou quand vous tapez du texte dans un moteur de recherche. Même si après, il y a évidemment des algorithmes beaucoup plus compliqués que ça.



Mots à ignorer

Caribon fournit également une liste de mots à ignorer, du moins pour le français et l'anglais. Il est aussi possible de rajouter d'autres mots à cette liste. Ces mots ne seront donc pas considérés comme des répétitions.

Bon, là il n'y a pas grand chose à dire d'intéressant sur l'algorithme sous-jacent, mais ça soulève encore une fois la question : une répétition, c'est quoi exactement ? Typiquement, il y a des mots qu'il est assez évident qu'on veut ignorer (le, la, les, des, ...) et d'autres où ça va dépendre des gens. Par exemple, selon certaines personnes, il faut éviter les répétitions des verbes être ou avoir, ce qui peut poser particulièrement problème si on écrit un texte au passé composé. Autre exemple : les noms propres, répétitions ou pas ? Vaut-il mieux utiliser des périphrases sans grand intérêt pour parler de vos protagonistes (comme alterner « le jeune homme » et « l'aventurier » pour ne pas répéter le nom de votre héros) ou alors se dire que si on répète les noms des personnages, c'est pas bien gênant ? (Là encore, Caribon vous laisse le choix, avec une case à cocher « Ignorer les noms propres ».)

La version en ligne de commande

Caribon est un logiciel libre que vous pouvez aussi télécharger et lancer sur votre ordinateur. En plus de la version « site web », il y a une version utilisable en ligne de commande, qui permet de générer des documents HTML semblables à ce qu'on peut voir avec la version en ligne. Il est également possible d'afficher les répétitions sur la sortie standard du terminal, mais pour pour un gros document ce n'est pas très pratique.

L'intérêt principal de l'exécuter sur votre ordinateur, c'est que ça va beaucoup plus vite : par exemple, si la version en ligne m'envoie balader quand j'essaie de lui passer l'intégralité du manuscrit d'Une autobiographie transsexuelle (avec des vampires), le programme téléchargé sur la machine arrive à l'analyser en moins d'une demi-seconde.

Par contre, avant de pouvoir lancer ce programme, il vous faudra le compiler,ce qui implique au minimum de copier/coller quelques lignes de commande, et je ne suis pas sûre que ça marche très bien sous Windows. Plutôt pour les gens qui s'y connaissent déjà un peu plus techniquement, donc ; pour les autres, il faudra se contenter de la version en ligne.

Conclusion

En commençant cet article, j'avais peur qu'il soit fort court puisque je ne voyais pas quoi mettre à part deux liens pour faire de la pub. Au final, il est plutôt trop long. Toujours est-il que j'espère que ce logiciel pourra être utile à quelques personnes, voire que mes élucubrations sur les répétitions ou comment les repérer auront intéressé des gens. Dans tous les cas, je vais m'arrêter là : il faut que je reprenne la relecture d'un roman et... oh, mon Dieu, tant de mots soulignés, j'ai vraiment fait autant de répétitions ?

Notes

[1] Ça devrait marcher. Avec l'informatique, on ne sait jamais.

[2] En fait, je ne sais pas si ça s'appelle vraiment comme ça, j'ai juste essayé de traduire, si ça se trouve il y a une autre formulation consacrée.

Billets connexes