BackBackMenuClosePlusPlusSearchUluleUluleUluleChatFacebookInstagramLinkedInTwitterYouTube

Grammalecte

Correcteur grammatical open source

  • Grammalecte pour Thunderbird

    Voici enfin l’extension pour Thunderbird :

    https://addons.mozilla.org/fr/thunderbird/addon/grammalecte-fr-thunderbird/

    Mozilla n’a pas encore vérifié le code de l’extension: la liste d’attente est très longue, il y a environ 600 extensions en attente, ce ne sera donc pas fait avant longtemps. Mais contrairement à Firefox il est possible d’installer une extension non vérifiée et non signée. Cela dit, il n’y a aucun risque de confidentialité. Le correcteur n’envoie aucune donnée en ligne, ce que vous écrivez n’est pas transmis, tout se passe sur votre ordinateur.

    Le fonctionnement de l’extension est assez similaire à celle pour Firefox. Votre texte est analysé dans un panneau annexe. En revanche, contrairement à Firefox, les erreurs sont listées en dessous du paragraphe analysé. Hormis cela, tout est relativement semblable, sauf l’allure générale de l’extension, qui fait plus vieux jeu, parce que l’interface de programmation de Thunderbird est d’une conception plus ancienne.

    Il reste encore quelques problèmes mineurs, comme les fenêtres modales qui refusent de s’ouvrir au milieu de l’écran. Mais j’ose croire que ça a été suffisamment testé, et que c’est fiable. N’hésitez pas à rapporter les problèmes sur le forum de Grammalecte.

    L’avenir de Thunderbird semble toujours incertain… La documentation le concernant étant en partie tombée en déshérence (liens cassés, pages manquantes, sections disparues, sites web à l’abandon ou évaporés), j’ai parfois fait emploi de techniques trouvées dans d’autres extensions, mais ça ne concerne qu’une minorité de problèmes, et je me suis contenté autant que possible de suivre ce qui était documenté.

  • Addendum à l’annonce précédente

    J’ai oublié d’aborder certains points, l’annonce précédente ayant été faite dans l’urgence avant que la nouvelle se répande malgré moi. (J’attendais la validation de l’extension par Mozilla.)

    L’extension est compatible avec Firefox 45+ (à cause de la syntaxe JavaScript ES6).

    Sous certaines versions de Linux, il existe apparemment un bug qui pourrit l’affichage des panneaux. C’est indépendant de Grammalecte. Ça concerne GTK3, semble-t-il : https://bugzilla.mozilla.org/show_bug.cgi?id=1269786

    Il est possible que l’affichage sur certaines versions de Linux ne soit pas bien calibré. Pour ma part, j’ai testé sur Netrunner/Plasma5. Ça va se résoudre avec le temps. Mais je vais éviter de bombarder les vérificateurs de code de chez Mozilla avec une nouvelle version tous les 3 jours.

    Je viens de m’apercevoir que j’ai oublié de calibrer le moteur de suggestion du correcteur grammatical en fonction du correcteur orthographique choisi. Donc, ajoutez les dictionnaires que vous voulez, mais laissez le dictionnaire Classique activé dans tous les cas. Mea culpa.

  • Grammalecte pour Firefox sort de son cocon

    La route a été plus longue que prévu, mais voici enfin Grammalecte pour Firefox.
    https://addons.mozilla.org/fr/firefox/addon/grammalecte-fr/
    Pour la mise à jour la plus récente, allez ici :
    https://addons.mozilla.org/fr/firefox/addon/grammalecte-fr/versions/

    (Je voulais attendre que Mozilla ait vérifié l’extension avant de publier l’annonce, mais comme certains m’ont devancé, je suis le mouvement.)

    Pour l’instant, attendu que Mozilla n’a toujours pas implémenté l’interface de programmation qui permettra de souligner en bleu les erreurs directement dans les zones de texte, la correction se fait dans un panneau annexe. Mais dès que cette interface sera disponible, c’est bien sûr ainsi que les corrections se feront.

    A priori, Grammalecte pour Firefox peut et doit signaler les mêmes erreurs que la version pour LibreOffice. Les tests de qualité confirment ce point, mais ces tests ne sont pas encore complets. Il est donc possible qu’il y ait encore quelques divergences de comportement entre les deux correcteurs.

    Implémenter la version en JavaScript du correcteur n’a pas toujours été facile, d’où mon retard, ça a même été parfois assez cauchemardesque, mais l’hydre semble à peu près sous contrôle à présent.

    Il reste sans doute encore pas mal de rugosités à polir. Mais ici la question est plus culturelle que technique. Avant l’existence de l’extension pour Firefox, avec le correcteur, je faisais surtout des tests avec des documents plutôt littéraires et pas trop mal écrits. Mais le Web est vaste et chaotique: le type de textes qu’on y trouve est extrêmement variable et ceux-ci présentent de nombreux cas de figure différents. Ces derniers jours, j’ai fait passer au correcteur des centaines de textes tirés de blogs et de journaux. J’ai corrigé des tas de faux positifs et j’ai ajouté des centaines de mots dans le dictionnaire. Le Web fourmille de sigles, de néologismes, d’anglicismes, de termes et d’écritures techniques plus ou moins cohérents. Pour éviter que le correcteur ne voit trop rouge, je vais devoir assouplir l’éligibilité de certains mots dans le dictionnaire. J’ai aussi désactivé le signalement des sigles non reconnus, revu la tokenisation pour éviter le signalement des hashtags et des hyperliens. La version 0.5.4, résultat de ces nombreux tests, diffère donc déjà pas mal de la version 0.5.1. (Je vous conseille donc la version 0.5.4, même si Mozilla n’a pas encore vérifié le code.)

    Bien sûr, le correcteur a aussi été amélioré. De nouvelles règles de contrôle ont été implémentées, le moteur de suggestion est plus efficace, le désambiguïsateur aide à s’y retrouver et il y a moins de faux positifs.

    Propos techniques (les non-geeks peuvent passer les paragraphes en italique)
    Pour ceux que la mécanique intéresse, je suis passé d’un moteur multi-passes avec des règles mono-action à un moteur bi-passes avec des règles multi-actions. Mais c’est un point dont je parlerai quand j’aurai le temps d’écrire un billet récapitulatif du développement fait.

    Le correcteur grammatical en JavaScript est environ 12 fois plus lent que celui en Python si on l’exécute dans le thread principal de Firefox (ce qui m’a donné des sueurs froides), mais environ 33 % plus rapide que celui en Python si on l’exécute dans un thread séparé (ce qui fut un soulagement). Donc, tout est exécuté dans un thread séparé de manière asynchrone (environ 20 fois plus rapide que dans le thread principal… ne me demandez pas pourquoi…).

    Le moteur d’expressions régulières de JavaScript est très déficient (restons poli), nettement en retrait par rapport à celui de Python. Il manque les assertions “lookbehind”, un support commode de l’Unicode (lamentable) et surtout il n’y a rien pour récupérer les index de position des groupes (ça m’avait échappé quand j’ai lancé la campagne de financement), ce qui a été problématique. Il a donc fallu suppléer ces déficiences (et disons même pas mal magouiller). Ce qui m’a fait perdre pas mal de temps et rendu le processus de build assez délicat (disons même bordélique), mais ça ne concerne que le dév après tout.

    J’ai décidé d’utiliser autant que possible toutes les nouveautés syntaxiques d’ES6 : let, const, les classes, les générateurs, Map, Set, les fonctions fléchées, for … of, la déstructuration, les paramètres par défaut, les paramètres du reste, les gabarits de chaînes de caractères, les array comprehensions (ES7), les promesses, à peu près tout ce qui se fait en ES6. Sauf les tableaux typés, qui se sont révélés plus lents qu’un simple Array, et import/export, pas encore implémentés dans Firefox.

    Le serveur
    J’en ai un peu marre de JavaScript en ce moment. Alors d’ici quelques jours, je sors une version du serveur. Comme je l’ai déjà dit, désimbriquer Grammalecte de LibreOffice, c’est avoir accompli la plus grande partie du boulot pour le serveur. Donc, il n’y a donc a priori plus grand-chose à faire.
    Je vais le baser sur Bottle (http://bottlepy.org/docs/0.12/index.html) qui présente l’avantage de tenir dans un seul fichier, qu’il suffit d’inclure dans Grammalecte. Le correcteur n’aura ainsi besoin d’aucune dépendance.

    Thunderbird
    Je n’ai pas encore commencé le travail sur ce point. En théorie, puisque Thunderbird intègre le moteur de JavaScript de Firefox, le cœur du correcteur n’a pas à être modifié. En revanche, tout ce qui concerne l’interface est probablement à revoir. Comme Thunderbird est abandonné par Mozilla et survit entre deux eaux (il est probable que Thunderbird passe sous une autre bannière: celle de TDF peut-être), sa documentation est en pleine décrépitude, le désordre règne, je ne sais pas encore ce qui est faisable, et j’ignore combien de temps ça va me prendre.

    Les contreparties

    La liste de ces mots inclus dans les dictionnaires est consultable par ce lien. Merci de me signaler les éventuelles erreurs et les oublis.

    Bon nombre de ces mots (beaucoup des noms communs et quelques-uns des noms propres) sont éligibles pour être intégrés dans le dictionnaire commun. Ils y seront donc transférés dans quelque temps, au fur et à mesure, quand j’aurai le temps de faire les vérifications nécessaires. Voici par exemple certains des noms propres qui sont éligibles : Clothilde, Andrei, Joakim, Léopoldine, Euphrasie, Mouhammad, Fantine, Florestan, Florie, Terence, Hypnos, etc.
    À noter que certains mots proposés étaient déjà présents dans le dictionnaire. En voici la liste : fada, Arthur, Marilou, jardin, vélo, grammatologie, Léopold, Héloïse, héraldique, Terry, Marcia, Narcisse, Lionel, Théo, Florence, plussoyer, Freud, schmilblick, Richard, Val d'Isère, Fernando, Grenoble, Buenos Aires, bépo, nuoc mam (sous la forme nuoc-mâm), yiddish, apostolicité, adamantin, Occitanie, occitant (mais il n’y a pas de “t” final), Gascogne, gascon-ne-s, OK, gouterreau (mais ça s’écrit avec deux “t”), email (sous la forme e-mail), escagasser, esquicher, esclaffer, emboucaner, µmole (sous la forme µmol), Min (le symbole des minutes s’écrit min, sans majuscule).

    Certains des mots proposés n’ont pas été ajoutés au dictionnaire et certains ne le seront probablement pas (la décision est en suspens). En voici la liste : Southern blot, Northern blot, Zea Invent, Apex Agri, Agro Bio, The Document Foundation, Apache Software Foundation, Free Software Foundation, Golden Show, Lovely Rita, Mix Bizarre, Scred TV, Las Gastios, Hero Corp, Texas Instruments, Standard de Liège, Creative Commons, Madame&Services.
    La raison, c’est que le dictionnaire ne peut accepter que des mots entiers (pas d’espace et pas de caractères spéciaux comme “&”). Il faudrait donc ajouter ces mots séparément. Mais certains d’entre eux sont susceptibles de créer des confusions (Creative, The, etc.). Parfois, ces mots existent déjà dans le dictionnaire (Rita, apache, software, document, bizarre, mix, golden, show, etc.). Bon, ça reste encore à voir. N’hésitez pas à m’écrire si je tarde…

  • 01 Juillet

    Pour ceux que ça intéresse, un petit billet sur l’avancée des travaux.

    Je vais à présent m’occuper des contreparties. Si vous n’avez pas eu le temps de dresser votre liste de mots, pas de panique, il n’est pas trop tard. Je pourrai l’intégrer plus tard, mais si possible signalez-moi dès à présent par courriel que vous avez une liste en cours de préparation, afin que je sache si vous serez encore nombreux à envoyer des mots.

  • Comment me joindre

    Cette news est réservée aux contributeurs du projet. Vous savez ce qu'il vous reste à faire !