BackBackMenuCloseFermerPlusPlusSearchUluleUluleChatFacebookInstagramLinkedInTwitterYouTubefacebooktwitterB CorporationBcorp /* ULULE BRAND LOGOS */

Grammalecte

Correcteur grammatical open source

  • Grammalecte 1.x — Bilan des travaux accomplis

    AMÉLIORATION DE LA CORRECTION GRAMMATICALE

    Le cœur du correcteur grammatical a été complètement réécrit. Il est plus efficace pour détecter les erreurs et bien plus rapide.

    Au lieu de chercher des erreurs avec une longue suite d’expressions régulières, le moteur sépare dorénavant les phrases en tokens (c’est-à-dire en mots et divers éléments textuels) puis parcourt plusieurs graphes de tokens à la recherche de motifs d’erreurs.
    Cette nouvelle méthode n’a pas complètement remplacé l’ancienne qui reste toujours pertinente dans quelques cas de figure. La combinaison des deux solutions apporte une grande souplesse d’utilisation.

    L’énorme avantage qu’apporte la nouvelle méthode, c’est de pouvoir gérer des cas bien trop complexes pour l’ancienne (uniquement possibles au prix d’un coût de traitement énorme). Il est bien moins difficile (quoique pas facile pour autant) de connaître le contexte et de traiter un nombre croissant de cas particuliers. Pour un coût la plupart du temps négligeable. Les graphes permettent en effet de traiter un nombre considérable de règles sans gréver notablement les performances d’analyse.
    Quoique traitant plus de deux fois plus de règles qu’autrefois, Grammalecte va environ deux fois plus vite pour traiter un même texte qu’avec la version précédente (pour le cas Python/LibreOffice). Avec JavaScript (Firefox/Thunderbird/Chrome), l’amélioration n’est pas si notable, mais ça va environ 20 % plus vite qu’avec Python. Par ailleurs, l’ajout de nouvelles règles ne change presque rien aux performances actuelles, si tant est qu’on prenne garde à les écrire de manière à minimiser le coût de traitement.

    Grammalecte 0.6.5 :
    — Analyse des paragraphes : 159 règles par expression régulière.
    — Analyse des phrases : 1934 règles par expression régulière.

    Grammalecte 1.2.1 :
    — Analyse des paragraphes : 169 règles par expression régulière.
    — Analyse des phrases : 5971 règles par description de tokens réparties en 9 graphes différents, et 24 règles par expression régulière.

    Bien que la manière de compter les règles soit quelque peu différente (certaines règles antérieures ont été fusionnées, beaucoup d’autres ont été décomposées), la nouvelle version comporte de très nombreuses nouvelles règles de contrôle. La réécriture quasi totale des anciennes règles m’a permis de resserrer les mailles du filet dans de nombreux cas de figure. Les nouvelles règles concernent à peu près tous les domaines, mais plus notablement la détection de certaines confusions et différentes formes de conjugaison. J’espère que cela sera visible à l’usage.

    En ce qui concerne les faux positifs, énormément ont été éradiqués. Le nouveau moteur permet d’écrire des règles d’immunité qui facilite la tâche.

    Cependant les nouvelles règles engendrent elles aussi inévitablement des possibilités de faire de nouveaux faux positifs. Selon le principe suivi par Grammalecte depuis le commencement, tout est fait pour les supprimer autant que possible et vous ne devriez pas en rencontrer plus qu’auparavant, et même j’espère bien moins.

     

    CRÉER UN DICTIONNAIRE PERSONNALISÉ

    L’éditeur lexical permet d’ajouter à votre lexique personnel toutes sortes de mots de natures grammaticales variées.

    Ce dictionnaire est exportable et peut être importé dans les autres applications utilisant Grammalecte.

     

    LIBREOFFICE

    — Révision de l’interface du conjugueur, du formateur de texte et de l’éditeur lexical.

    — Nouvel outil : Recenseur de mots.

    — [LibreOffice 6.2+] Les erreurs peuvent dorénavant être affichées avec des couleurs différentes.

    — [LibreOffice 6.3+] La forme et l’épaisseur du soulignement des erreurs grammaticales peuvent être modifiées.

     

    FIREFOX / CHROME

    — Portage de l’ancienne extension pour Firefox dans le système WebExtension.

    — Portage de l’extension pour Firefox sur Chrome.

    — Unification de plusieurs panneaux dans un seul.

    — Formateur de texte accessible pour tous les types de texte analysés.

    — [Firefox 63+] Grâce au ShadowDOM, les menus et panneaux de Grammalecte inclus dans une page ne sont plus altérés par les règles d’affichage de la page web (fonctionnalité apportée par un contributeur externe).

     

    AUTRES NOUVEAUTÉS ET AMÉLIORATIONS

    — Écriture des règles grandement facilitée (ça ne concerne que le développement, mais cette facilité rend plus aisée l’amélioration de l’existant).

    — Nouvelle option pour la normalisation des graphies épicènes (avec points médians).

    — Le correcteur orthographique de Grammalecte, nommé Graphspell, est désormais un paquet indépendant et pleinement fonctionnel. La suggestion orthographique a été beaucoup améliorée. Entre autres choses, le correcteur orthographique sait à présent séparer les mots qui ont été fusionnés (desordres -> des ordres, lorsquil -> lorsqu’il). Ce correcteur peut aussi faire des suggestions ad hoc pour gérer les cas particuliers.

     

    SITE WEB

    Le site vitrine a été refait. Les logiciels et le code sont dorénavant accessibles sur un nouveau nom de domaine : grammalecte.net.

     

    L’AVENIR

    Les travaux engagés par la campagne de financement sont à présent clos, mais cela ne signifie aucunement que Grammalecte ne sera plus amélioré. Le développement va se poursuivre.

    Ce qui est envisagé :

    Firefox / Chrome : Créer une interface intégrée qui insère directement les erreurs dans les zones de texte éditables, de sorte qu’il soit inutile d’ouvrir un panneau de correction annexe. Pour toutes sortes de raisons, c’est une fonctionnalité difficile à implémenter, il se pourrait que ça prenne du temps avant d’arriver.

    Dictionnaires communautaires : Étendre les dictionnaires existants avec d’autres fournis par un serveur de dictionnaires communautaires.

    Thunderbird : Une fois de plus, encore une fois, l’interface de programmation pour la prochaine version de Thunderbird (68) a été modifiée. Et elle sera encore modifiée pour la version suivante… ce qui devient plus que pénible. Et dans la version suivante, tout sera à refaire, attendu que l’“ancien” système (celui pour la version 68) sera rendu obsolète. Bref, le système traverse une période de turbulences fortes. Du coup, si les modifications pour la version 68 demandent trop de travail, aucune version de Grammalecte ne sera publiée jusqu’à la version suivante. Quant à l’interface de programmation suivante, il s’agit d’une forme de WebExtension étendue, c’est-à-dire qu’elle sera basera sur le système de Firefox, avec en sus d’autres interfaces spécifiques pour Thunderbird. Ce nouveau système s’appelle MailExtension, et on ne sait pas encore ce qui sera possible. Bref, orages en vue et mauvaise visibilité.

    Améliorer la correction grammaticale, encore et toujours.

  • Grammalecte — Nouvelles du front [2]

    Quelques nouvelles supplémentaires…

    Firefox/Chrome

    L’extension a été mise à jour pour corriger certains bugs concernant l’éditeur lexical.

    Thunderbird

    Constatant que les extensions pour Thunderbird ne sont plus disponibles pour les utilisateurs tant qu’elles n’ont pas été vérifiées par Mozilla, j’ai mis à disposition l’extension sur le site de Grammalecte.

    LibreOffice

    L’extension pour LibreOffice avec l’éditeur lexical est dorénavant disponible sur la page de téléchargement. Attendu qu’il y a un bug qui fait planter LibreOffice si on utilise un sélecteur de fichier, l’import et l’export de dictionnaire ne se fait que par un chemin et un nom prédéterminés.

    À noter que Graphspell, le correcteur orthographique de Grammalecte, remplace dorénavant Hunspell dans LibreOffice.

    Journal des modifications

  • Grammalecte — Nouvelles du front

    Il y a longtemps que je n’ai pas donné de nouvelles sur l’avancée des travaux, d’autant plus que la dernière fois que je l’ai fait, je n’ai publié mes annonces que sur Twitter (impossible de me connecter sur mon compte Ulule). Alors je vais faire comme si je n’avais rien dit jusqu’à présent.

    Grammalecte comme WebExtension
    En novembre est parue la nouvelle extension pour Firefox, basée sur la technologie WebExtension, devenue obligatoire pour continuer à proposer Grammalecte sur Firefox.
    Par certains aspects, développer une extension via ce système est plus facile, mais par d’autres il est aussi bien plus contraignant et restrictif. Il n’était pas possible de recréer l’extension comme elle existait autrefois (v0.5), attendu que le panneau principal (qui apparaît en superposition des pages Web) n’est plus aussi manipulable (impossible de le garder ouvert, par exemple, si on clique ailleurs). Le seul moyen était donc d’inclure la correction grammaticale à l’intérieur des pages Web, ce qui apporte un lot non négligeable de complications et de pièges, car cela implique d’éditer les pages Web consultées pour y insérer les panneaux de correction en évitant autant que possible les interférences. (La dernière version protège d’ailleurs mieux les altérations possibles des panneaux de Grammalecte par le code CSS des pages Web.)

    Grammalecte sur Chrome
    La bonne nouvelle inespérée c’est que la réécriture de l’extension pour Firefox a permis de faire un portage facile de l’extension pour Chrome.
    https://chrome.google.com/webstore/detail/grammalecte-fr/knbmiaaadhgbgjciepkagmcadapophpa
    Peu de temps après la campagne de financement est paru le brouillon d’un projet visant à harmoniser le système des extensions de tous les navigateurs. https://browserext.github.io/browserext/
    Ce projet est encore très loin d’être abouti, et il reste des incompatibilités entre Chrome et Firefox, mais il signifie qu’à l’avenir ces divergences devraient se réduire. À l’heure actuelle, ces incompatibilités ne sont que peu nombreuses pour le cas de Grammalecte. Cela dit, une même interface de programmation n’implique pas nécessairement un comportement totalement identique.
    L’autre bonne nouvelle, c’est que l’extension de Chrome est installable sur le navigateur Vivaldi.

    Quoi qu’il en soit de l’avenir de l’harmonisation du système d’extensions des navigateurs, c’est sur Firefox que le développement et les tests se font et se feront. Je n’ai pas le temps de tester les autres navigateurs. Je le fais parfois à la va-vite sur Chrome, mais c’est tout. C’est déjà bien assez chronophage de maintenir trois interfaces pour Firefox, Thunderbird et LibreOffice.

    Un dictionnaire personnalisable via un éditeur lexical
    La grande nouveauté, c’est l’arrivée de l’éditeur lexical qui permet de créer votre dictionnaire personnel. J’ai passé les dernières semaines à travailler l’interface de cet éditeur, j’espère avoir gommé la plupart des rugosités.
    Cet éditeur est disponible sur Firefox/Chrome et Thunderbird, et le sera bientôt pour LibreOffice. En fait, il est déjà prêt pour LibreOffice, mais il est nécessaire de remplacer le correcteur orthographique de LibreOffice (Hunspell) par un autre correcteur orthographique, ce qui nécessite d’autres aménagements.

    Graphspell, le correcteur orthographique
    À l’intérieur du correcteur grammatical existait un embryon de correcteur orthographique qui servait de ressource lexicale pour Grammalecte (il indiquait la nature grammaticale des mots), et il ne manquait plus grand-chose pour en faire un correcteur orthographique à part entière : la capacité de faire des suggestions sur les mots erronés. C’est maintenant chose faite, et les suggestions orthographiques de Firefox/Chrome sont dorénavant fournies par ce correcteur. C’est aussi le cas pour la dernière version de Grammalecte pour Thunderbird.
    Le moteur de suggestion est fonctionnel mais encore en phase bêta. La plus grosse difficulté n’est pas de suggérer quelque chose, mais de suggérer quelque chose rapidement. Les erreurs orthographiques étant potentiellement presque infinies, il faut permuter, substituer, ajouter, supprimer un nombre considérable de lettres pour trouver la bonne orthographe parmi les innombrables possibilités. Ceci est coûteux en ressources. C’est pourquoi cette recherche de graphies correctes se fait de manière asynchrone sur demande de l’utilisateur.

    Thunderbird
    Ça bouge du côté de Thunderbird. La mécanique interne du courrielleur va connaître pas mal de bouleversements dans les mois et années à venir. La prochaine version, la 60 (qui sortira dans quelques semaines ou mois), casse pas mal de choses en interne. J’ai commencé à réajuster le code de Grammalecte pour que ça fonctionne à nouveau, mais de nouveaux bugs de Thunderbird sont apparus (je ne sais pas s’ils seront corrigés). Mais il y a de gros bouleversements à l’horizon. Le gros changement viendra après la version 60 où il semble possible que tout saute… J’ai même lu, je ne sais plus où (navré pour l’aspect rumeur infondée), que les dévs envisageaient de maintenir les 10 principales extensions et que tout le reste passerait à la trappe. Ça n’a rien d’officiel et ça n’arrivera peut-être jamais, mais ça indique bien que les changements seront majeurs. Pour eux, la difficulté vient surtout du fait qu’ils se basent sur une technologie que Mozilla va complètement abandonner prochainement et qu’il n’est pas envisageable pour eux de la maintenir à eux seuls (ils sont trop peu nombreux).

    À venir
    Cet hiver, j’ai été malade assez longtemps et ça m’a fait prendre un peu de retard sur le programme.
    Les travaux vont se poursuivre sur l’éditeur lexical et LibreOffice. Mais surtout je vais bientôt entamer la refonte complète du moteur d’analyse grammaticale.

  • Continuation

    La campagne de financement est terminée depuis hier soir minuit.

    Merci à tous pour votre soutien, merci à ceux qui ont fait connaître le logiciel.

    Je vais répondre ici aux questions les plus fréquemment posées.

    En premier lieu, rappelons une chose évidente : la priorité sera donnée à ce qui a été financé. Ça ne veut pas dire que rien d’autre ne sera fait, mais c’est la moindre des choses, me semble-t-il, de ne pas passer trop de temps sur des sujets tiers.

    Désolé pour ceux que la technique passe au-dessus de la tête, la question des contreparties est traitée en fin de billet.

    # Interface pour Firefox

    L’un d’entre vous m’a fait part d’une possibilité intéressante pour améliorer l’interface pour Firefox. Pour l’instant, je ne vois pas comment faire ça, mais c’est un sujet à ne pas négliger, même si ce n’était pas prévu dans le cadre de cette campagne. Si c’est faisable dans un délai raisonnable, on verra ce qu’on pourra faire. Comme c’est technique, j’en parlerai dans quelque temps dans un billet à part pour ne pas ennuyer tout le monde.

    # Chrome

    En ce qui concerne Chrome, en théorie, le nouveau type d’extensions de Firefox devrait être à peu près compatible avec celui de Chrome. Tout le problème réside dans cet à peu près, car il y a des incompatibilités, et par ailleurs le moteur de JavaScript n’est pas le même. Or JavaScript n’est pas un langage réputé pour sa cohérence (il est même plutôt connu pour l’inverse). Autrement dit, le nombre d’obstacles à passer de Firefox à Chrome reste inconnu. Mais s’il s’avère qu’il n’y a pas particulièrement de difficultés, que je ne suis pas en retard sur le reste et que le temps à y consacrer est minimal, ce sera fait.

    J’ai péché par optimisme concernant JavaScript lors de la première campagne (c’est l’une des raisons principales des retards), et je n’ai pas voulu commettre la même erreur cette fois-là. C’est pourquoi Chrome a été placé à part.

    # Microsoft Word

    On m’a demandé plusieurs fois si je comptais écrire une extension pour Word (Microsoft appelle ça un complément). La réponse est : non, pas dans ce cycle de développement, et probablement pas dans les suivants. La possibilité n’est pas totalement exclue, mais je n’ai aucune motivation pour ça pour l’instant.

    # Les éditeurs de texte

    Plusieurs personnes m’ont fait part de demandes concernant leur éditeur de texte favori, certains dont j’ignorais même l’existence. Il existe des dizaines (des centaines ?) d’éditeurs de texte, il n’est pas possible de gérer les greffons pour tant de logiciels. Et je signale à ceux qui attendent impatiemment que Grammalecte existe en version autonome que ça existe depuis environ un an. La CLI (interface en ligne de commandes) et le serveur peuvent renvoyer des réponses au format JSON. Il y a un peu plus de six mois, j’ai modifié la CLI pour répondre aux demandes de l’auteur du greffon pour Vim. La CLI devrait donc pouvoir satisfaire les besoins des éditeurs de texte. Pour le reste, c’est à vous de jouer. :)

    # À propos de la campagne de financement

    Certaines personnes se sont étonnées du déroulement de la campagne, que ça progresse surtout au début et à la fin, et qu’on soit tributaire d’autrui pour se faire connaître. Mais c’est commun.

    Ulule signale que les fins de campagne sont toujours plus actives. Selon eux, si j’ai bonne mémoire, 20 % des fonds levés le sont lors des deux derniers jours.

    Si la campagne est bien pensée, ça démarre pas trop mal, puis vient une longue période molle où ça monte lentement, avec quelques pics si des gens à forte audience parlent de vous. Mais d’une manière générale, on dépend de la mobilisation des personnes autour, parce qu’on ne peut pas réussir seul à moins d’avoir déjà soi-même une très grande audience (ce qui est rare).

    # Priorités

    Pour commencer, je vais faire ce qu’il faut pour débloquer l’extension pour Firefox en modération, afin que les mises à jour reprennent (il y a un potentiel problème de sécurité, c’est un peu douteux à mon avis, mais passons…).

    Ensuite, l’important, c’est de faire transiter l’extension pour Firefox vers le nouveau système d’extensions, parce qu’il faut que ce soit fini avant fin novembre.

    Par ailleurs, j’ai déjà fait quelques travaux pour remplacer le correcteur orthographique dans LibreOffice pour régler la question des dictionnaires personnels. Pour l’instant, c’est encourageant. Si possible, ce sera mené en parallèle.

    Je veux aussi effacer la dette technique du cœur du correcteur grammatical.

    Une fois tout ça réglé, j’aurais l’esprit plus libre pour le cœur du correcteur lui-même.

    Dans les jours qui viennent, je vais être un peu moins présent, attendu que j’ai ajourné beaucoup d’affaires à régler durant le temps de cette campagne.

    # Rappel pour les derniers contributeurs

    Vous pouvez spécifier les contreparties que vous désirez sur cette page.

    Il y a aussi un questionnaire sur les noms propres. (Attention, ceci n’a aucun rapport avec les contreparties, c’est pour connaître le sentiment des utilisateurs sur ce que doit contenir le dictionnaire orthographique en matière de noms propres.)

  • 100 %

    Voilà, c’est fait ! Nous avons atteint 100 % du premier palier… Grammalecte va donc poursuivre sa route sereinement.

    Merci à vous tous pour votre soutien.

    Il reste encore une journée avant la fin officielle de la campagne, c’est sans doute trop court pour le palier suivant qui concerne Chrome… surtout que ce navigateur semble moins susciter d’intérêt. Enfin, on verra…

    J’ai préparé le questionnaire vous permettant de spécifier les contreparties que vous voulez. J’y ai ajouté quelques options optionnelles.

    Certains m’ont dit qu’ils avaient contribué sans demander de contreparties, mais qu’ils en voulaient finalement. Pas de problème. Remplissez simplement le questionnaire. Si vous ne voulez pas que votre nom apparaisse dans les remerciements, il suffit de laisser le champ idoine vide ou de ne pas répondre au questionnaire.

    En ce qui concerne la liste de mots, ne vous inquiétez pas si vous ne savez pas comment étiqueter certains d’entre eux. Faites au mieux. Ce sera corrigé si besoin. Par ailleurs, même s’il reste des erreurs, sachez que cette liste sera consultable et accessible dans la même base de données que le dictionnaire. Donc, ce sera toujours modifiable. Attendu que certains ont des listes assez longues à établir, je vais laisser jusqu’à septembre avant de procéder au traitement. Si ce délai est quand même trop court pour certains, ce n’est pas grave, il sera toujours possible d’ajouter les listes après ça. Mais prévenez-moi à ce moment-là qu’il vous faut encore du temps.

    Un dernier rappel important : les mots que vous devriez proposer sont ceux qui ne sont pas normalement acceptés dans le dictionnaire.

    Cliquez ici pour accéder au questionnaire.