LanguageTool : corrigez les fautes dans vos textes avec cet outil open source
Sommaire
I. Présentation
Dans cet article, je vous présente LanguageTool, un correcteur d’orthographe et de syntaxe intelligent, basé sur l’IA et intégré directement à votre navigateur. Ce n'est pas tout : en plus d'être open source, il s'intègre à d'autres applications !
Quelle que soit l’époque où les technologies utilisées, les fautes d’orthographe ont la vie dure. Les technologies actuelles nous permettent cependant d’avoir une aide supplémentaire pour identifier et corriger nos fautes d’orthographe, de frappes et de syntaxe. LanguageTool fait partie de ces technologies.
Nous allons voir comment l’installer rapidement sur les principaux navigateurs, mais aussi améliorer la confidentialité via une installation locale basée sur Docker. En effet, LanguageTool est un correcteur d'orthographe que vous pouvez auto-héberger (en local sur votre machine ou sur un serveur).
Note : LanguageTool se présente comme une alternative à d'autres solutions comme Antidote et Grammarly.
II. Présentation du correcteur orthographique LanguageTool
LanguageTool est un outil gratuit et open source qui permet de vérifier en temps réel la grammaire, l'orthographe et le style de vos textes. Il est disponible sous forme d'extension pour les navigateurs, mais aussi en tant qu'application locale (utile pour l'utiliser dans Word ou d'autres applications) ou service en ligne. Il prend en charge plus de 30 langues, même s’il est probable que vous n’en utilisiez qu’une ou deux.
Remarque : il existe également une version Premium de LanguageTool, avec des fonctionnalités supplémentaires. Les tarifs sont raisonnables, notamment pour un usage personnel.
Ce qui est particulièrement intéressant avec cet outil de relecture est qu’il s’intègre parfaitement à tout champ d’édition de n’importe quelle application web (y compris l’interface WordPress dans laquelle je saisis ce texte). Que ce soit l’interface web d’un webmail, un tchat en ligne ou un blog, LanguageTool est en capacité d’analyser le texte saisi par l'utilisateur.
Une fois installé, la relecture de LanguageTool se matérialise par la présence de l’icône suivant proche du champ de saisie :

Cliquer dessus permet d’avoir un pop-up qui détaille les fautes découvertes et les corrections proposées. Dans un texte relu, toutes les erreurs sont signalées par un soulignage en rouge (mot inconnu, faute ou typo) ou jaune (syntaxe, formulation, etc.) :

Également, lorsque l’on écrit une phrase beaucoup trop longue, il est possible que l’outil la souligne en violet. Cela permet de montrer qu’il y a une phrase qui pourrait être réécrite de façon plus lisible :

En complément, il est aussi possible d’accéder à une interface dédiée dans laquelle saisir un texte, dont on pourra ensuite copier la version relue et corrigée ailleurs :

LanguageTool dispose de nombreuses options comme l’activation du mode méticuleux, qui permet de passer en revue le registre des mots utilisés, l’ouverture du pop-up sur un double clic, la désactivation rapide via un raccourci, etc. Dans ces options, il est aussi possible d’ajouter des mots à notre dictionnaire personnel (qui seront ignorés par la suite), de choisir les langues qui nous intéressent ou activer/désactiver l’analyse de LanguageTool pour certains sites, etc :

Pour finir sur cette brève présentation, il s’agit d’un outil qui m’est devenu indispensable. Il n’est certes pas parfait, mais pour une version gratuite qui n’expose quasiment pas de limite pour une taille raisonnable de texte et une intégration dans les navigateurs, difficile d’avoir mieux !
L'installation de LanguageTool sur un navigateur est simple et rapide, elle se fait de façon classique. Voici les étapes à suivre pour les principaux navigateurs :
A. Google Chrome
- Ouvrez Google Chrome et rendez-vous sur le Chrome Web Store.
- Recherchez "LanguageTool" dans la barre de recherche.
- Cliquez sur "Ajouter à Google Chrome" puis sur "Ajouter l'extension".
- Une fois installé, l'icône de LanguageTool apparaîtra dans la barre d'outils de votre navigateur.
B. Mozilla Firefox
- Ouvrez Firefox et allez sur le site Firefox Add-ons.
- Recherchez "LanguageTool" dans la barre de recherche.
- Cliquez sur "Ajouter à Firefox" puis sur "Ajouter".
- L'extension sera ajoutée à votre navigateur et vous pourrez commencer à l'utiliser.

C. Microsoft Edge
- Ouvrez Microsoft Edge et accédez au Microsoft Edge Add-ons.
- Recherchez "LanguageTool" dans la barre de recherche.
- Cliquez sur "Obtenir" puis sur "Ajouter l'extension".
- L'extension sera installée et prête à l'emploi.
Quel que soit le navigateur, la présence de l’extension se manifeste par cet icône dans la barre supérieure :

Mais également par une petite fenêtre cliquable dès que l’on commence à saisir du texte, comme vu plus haut.
Au-delà de l'extension pour navigateur Web, il existe aussi des applications LanguageTool, notamment pour Windows, macOS, iOS et des modules Thunderbird et Outlook. L'installation sur le système d'exploitation permet d'en profiter dans d'autres applications (Word, par exemple).
Attention à la confidentialité !
Il va de soi que le petit code d’un plugin ne permet pas d’effectuer des analyses syntaxiques et orthographiques avancées comme le fait LanguageTool. Cela signifie que le texte saisi est analysé sur des serveurs hors de votre ordinateur. Si la confidentialité est de mise (notamment dans le contexte professionnel), sachez qu’il existe des solutions. Le serveur LanguageTool peut être déployé en local, sur un serveur d’entreprise et notamment via Docker. Ainsi, tout le texte saisi est analysé par des systèmes que vous maitrisez.
C’est ce que nous allons voir par la suite. Pour faire simple, nous allons déployer le serveur LanguageTool sur un Docker local à notre système. Cela permet de démontrer rapidement qu’une utilisation de LanguageTool respectueuse de la confidentialité est possible.
IV. Installation en local de LanguageTool via Docker
Pour ceux qui souhaitent une solution plus privée et sécurisée, il est possible d'installer LanguageTool en local via Docker. Une fois que Docker est en place est fonctionnel sur notre système, on commence par télécharger l’image Docker de LanguageTool.
Il n’existe pas d’image Docker officielle de LanguageTool. Mais, certains dépôts Github proposent des DockerFile et sont référencés dans le dépôt GitHub officiel de la solution. Nous utiliserons ceux-ci en priorité.
Source Docker Hub utilisée : github.com/Erikvl87/docker-languagetool
Pour ma part, je vais créer un répertoire dans ~/Documents/ pour le déploiement :
mkdir -p ~/Documents/LanguageTool/ngrams
Comme vous pouvez les voir, j’ai créé un répertoire /ngrams/ dans lequel nous allons stocker des fichiers à télécharger depuis le site officiel. Nous pouvons voir les "ngrams" comme des dictionnaires ou bases de données de mots sur lequel LanguageTool se base pour trouver des erreurs. Ils sont regroupés par langue, nous devons donc récupérer le "ngram" français (ngrams-fr-<data>.zip, 1,8 Go) sur l’URL suivante :
Je décompresse ensuite son contenu dans le répertoire ~/Documents/LanguageTool/ngrams/. Dans un second temps, nous pouvons télécharger et déployer l’image Docker erikvl87/languagetool en spécifiant un volume partagé avec l’hôte afin qu’il puisse trouver nos ngrams :
docker run --name langtool -p 8010:8010 -d -e langtool_abTest=null -e langtool_abTestClients=null -e langtool_languageModel=/ngrams -v ~/Documents/LanguageTools/ngrams/:/ngrams:ro erikvl87/languagetool
L’option -p permet d’exposer le port TPC/8010 du Docker sur le réseau, pour que le service soit accessible à d’autres systèmes.
Une fois ce déploiement réalisé, nous pouvons aller dans la configuration du plugin LanguageTool de nos clients et nous rendre dans la partie Paramètres avancés, sélectionner Autre serveur, et saisir l’URL suivante : http://192.168.56.122:8010/v2 (pensez à adapter l’IP/DNS de la cible à votre contexte) :
Dans mon contexte, le conteneur Docker LanguageTool est sur un autre système qui expose le port TCP/8010 sur le réseau et qui possède l’IP 192.168.56.122. Dans le cas d’une utilisation à partir d’un conteneur déployé sur le même système que votre plugin, vous pourrez tout à fait saisir http://127.0.0.1:8010/v2. À l’inverse, dans un environnement d’entreprise, il s’agira plutôt d’un nom DNS.

Bref, une fois cette configuration en place, pensez bien à paramétrer explicitement les langages à relire, au risque d’avoir de mauvaises surprises. Il faut pour cela vérifier la configuration des langues prises en compte (Options de langue). Pour ma part, j’utiliserai uniquement le français :

Une fois cette configuration sauvegardée, vous pourrez retourner dans n’importe quel champ de saisi de n’importe quel site et constater que LanguageTool relit bien votre texte :

Au passage, vous pourrez rapidement constater que la relecture par LanguageTool consomme beaucoup de ressources serveur. C’est une chose à considérer si vous le mettez en place au sein d’une entreprise avec plusieurs centaines d’utilisateurs :

L’installation du serveur LanguageTool sur un serveur dédié (sans Docker) est décrite dans la documentation GitHub (github.com/languagetool-org/languagetool).
V. Conclusion
J’utilise LanguageTool quotidiennement et le déploiement du serveur via Docker est largement suffisant pour mes besoins. Les fonctionnalités et l’intégration de LanguageTool dans tous les champs des applications web est vraiment un gros plus.
N’hésitez pas à tester le plugin sur votre navigateur, mais n’oubliez pas l’aspect confidentialité si vous êtes sur un poste d’entreprise ! Si vous avez un NAS Synology, vous pouvez le déployer en local à l'aide de Docker en suivant ce tutoriel :

