tag:linuxfr.org,2005:/tags/orthographe_et_grammaire/publicLinuxFr.org : les contenus étiquetés avec « orthographe_et_grammaire »2022-09-18T11:31:18+02:00/favicon.pngtag:linuxfr.org,2005:Post/430752022-08-14T17:30:02+02:002022-08-16T12:16:53+02:00Logiciel pour correcteur d'orthographe et/ou grammatical<p>Bonjour,</p>
<p>Je fais actuellement un rapport de stage, mais plutôt que de passer par <a href="https://www.reverso.net/orthographe/correcteur-francais/">reverso</a> avec ses 400/500 caractères par requête de correction je voudrais passer par un correcteur libre (si possible pas besoin de l'installer).</p>
<p>Avec Grammalecte inclus dans LibreOffice, j'ai parfois des fautes qui ne sont pas vérifiées…</p>
<p>Merci d'avance pour les propositions ;)</p>
<p>[EDIT]</p>
<p>J'ai LibreOffice 7.3 et j'utilise des termes non connus par le dictionnaire (API REST, nom d'une entreprise)</p>
<div><a href="https://linuxfr.org/forums/general-cherche-logiciel/posts/logiciel-pour-correcteur-d-orthographe-et-ou-grammatical.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/128501/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-cherche-logiciel/posts/logiciel-pour-correcteur-d-orthographe-et-ou-grammatical#comments">ouvrir dans le navigateur</a>
</p>
Amiralgabyhttps://linuxfr.org/nodes/128501/comments.atomtag:linuxfr.org,2005:Diary/376382017-12-13T13:36:22+01:002017-12-13T13:36:22+01:00L’écriture neutreLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 id="les-problèmes-de-lécriture-dite-inclusive">Les problèmes de l’écriture dite « inclusive »</h2>
<h3 id="cest-laide">C’est laide</h3>
<p>Très.</p>
<h3 id="cela-ninclut-pas-toute-la-monde">Cela n’inclut pas toute la monde</h3>
<p>Très bien, ça donne de la visibilité aux femmes. Dans quelques années toutes les « non-binaires » et autres « agenres » risquent de venir râler parce qu’elles se sentent exclues, et on va se retrouver à faire comme les gens sur tumblr avec des pronoms idiotes telles que « xir, fær, … », qu’il faudra réussir à intégrer dans l’écriture « inclusive ».</p>
<h3 id="laccessibilité">L’accessibilité</h3>
<p>C’est très complexe à lire et à écrire (par exemple, sous Windows, à part en installant manuellement la disposition bépo ou quelque chose de similaire, on ne peut pas faire la caractère « · »)</p>
<p>Ça ne résout aucune problème à l’oral (comment prononcer « agriculteur·ice·s » ?)</p>
<p>La point (.) possède déjà une sens (la fin d’une phrase), lui en ajouter une nouvelle est donc plutôt gênante.</p>
<h2 id="lécriture-neutre">L’écriture neutre</h2>
<p>J’ai donc décidé de vous proposer la réforme suivante, que j’appelle « écriture neutre ».</p>
<p>Les règles sont simples : les genres disparaissent.</p>
<p>Je pars de la constat suivante : la genre n’a quasiment jamais d’intérêt:</p>
<ul>
<li>pour toutes les objets inanimées, ça ne sert strictement à rien (quelle est l’intérêt de savoir qu’on dit « une chaise » mais « un tabouret » ?)</li>
<li>il est inutile de préciser la sexe d’une personne dans 99% des phrases que l’on faite.</li>
</ul><p>Il est donc possible de n’utiliser qu’une seule « genre », que l’on appellera « neutre ». Cette genre est extrêmement simple à apprendre puisqu’elle est composée exactement comme la genre féminine dans l’écriture « traditionnelle ».<br>
Ainsi, comme vous avez pu la remarquer jusqu’à maintenant en lisant cette journal, on ne dira plus « Je lis mon gros journal en regardant la télé en attendant que l’avocat m’appelle » mais « Je lis ma grosse journal en regardant la télé en attendant que l’avocate m’appelle ». Les mots comme « un », « le », « mon », « il » disparaissent complètement.</p>
<p>Dans l’exemple précédente, il est à noter qu’on n’a aucune idée de la sexe (ou la genre) de la dite avocate. Cela peut très bien être une femme ou une homme, mais de toute façon on s’en fiche.</p>
<p>Si vraiment on a besoin de signaler la sexe de quelqu’une, il suffit alors de la préciser à l’aide d’autres mots par exemple « la personne de sexe féminine », ou « la singe mâle est en colère » voire même « cette homme est grande ».</p>
<h2 id="quelques-notes-supplémentaires">Quelques notes supplémentaires</h2>
<p>La mot « monsieur » disparait : lorsqu’on salue une personne, elle est inutile de signaler sa sexe présumée (c’est encore une fois inutile, et de plus certaines personnes peuvent se vexer si l’on se trompe, ce qui peut créer de nombreuses problèmes). On utilisera donc uniquement « madame ». « Monsieur et Madame Dupond » deviendra donc « Mesdames Dupond ».</p>
<p>Cette règles à de très nombreuses avantages :</p>
<ul>
<li>Malgré une petite période d’adaptation, ça devrait être assez simple à apprendre. C’est simplement une réflexe à acquérir, et non pas une toute nouvelle orthographe.</li>
<li>toutes les personnes sont, cette fois, incluses (vu qu’elle n’est aucunement question de genre ou de sexe, même les non-binaires seront ravies)</li>
<li>ça passe très bien à l’oral</li>
<li>pas besoin de trouver une nouvelle caractère sur nos claviers, et toutes les lecteurs pour aveugles et autres s’en sortiront très bien</li>
<li>ça facilite grandement l’apprentissage de la langue pour les étrangers. À l’instar de l’anglais, plus besoin d’apprendre les genres de chaque mots (et Jane Birkin n’aura plus d’excuse pour faire semblant d’inverser la genre des mots alors qu’elle pratique la français depuis des dizaines d’années)</li>
</ul><p>Vous vous demandez sûrement pourquoi j’ai choisi de baser cette genre neutre sur la genre féminine (de l’écriture traditionnelle) : tout simplement pour éviter toutes les remarques des pseudo-féministes qui vont venir râler parce que « si on ne garde que le masculin, c’est encore pire » ou « ça invisibilise les femmes, olala ». Personnellement, je trouve que se baser sur la genre masculine aurait été plus simple, vu qu’elle faisait déjà office de neutre dans l’écriture « traditionnelle ». Ceci étant dit, je ne suis absolument pas fixée, et on peut très bien choisir l’une ou l’autre, les deux me conviennent.</p><div><a href="https://linuxfr.org/users/louizatakk/journaux/l-ecriture-neutre.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/113300/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/louizatakk/journaux/l-ecriture-neutre#comments">ouvrir dans le navigateur</a>
</p>
louiz’https://linuxfr.org/nodes/113300/comments.atomtag:linuxfr.org,2005:Poll/4872016-03-26T18:47:33+01:002016-04-01T16:11:14+02:00Pour mes problèmes d'orthographe...<ul><li>Cpas grave, l'important c'est de se faire comprendre</li><li>J'utilise le correcteur intégré à mon éditeur favori et [Grammalecte](http://www.dicollecte.org/grammalecte/)</li><li>Robert, Larousse et Bescherelle sont mes amis !</li><li>Je corrige tout en ligne avec le [Wiktionnaire](https://fr.wiktionary.org) et [Sensmotdire](http://sensmotdire.gnunux.info) </li><li>Ma vie a changé depuis que j'ai découvert le portail lexical du CNRTL dans les options de recherche de Firefox</li><li>J'ai mis un [Kiwix](http://www.kiwix.org/wiki/Main_Page/fr) dans mon moteur</li><li>Je me relis souvent et si je veux être sûr de moi, à la fin je demande à quelqu'un</li><li>J'augmente la taille des caractères ou j'imprime pour me relire</li><li>Je ne fait casiment jamai de fôtes</li></ul><div><a href="https://linuxfr.org/sondages/pour-mes-problemes-d-orthographe.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/108471/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/sondages/pour-mes-problemes-d-orthographe#comments">ouvrir dans le navigateur</a>
</p>
Yves Bourguignonhttps://linuxfr.org/nodes/108471/comments.atomtag:linuxfr.org,2005:Diary/360522015-08-19T20:45:19+02:002015-08-19T20:45:19+02:00Améliorer la correction orthographique et grammaticale sous EmacsLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li><a href="#correction-orthographique">Correction orthographique</a></li>
<li><a href="#correction-grammaticale">Correction grammaticale</a></li>
</ul><p>Comme je suis en train de continuer la traduction de la seconde édition de Progit et qu'en même temps, des lecteurs me remontent de nombreuses fautes dans ce qui existe déjà, il est grand temps de mettre en route les aides à la rédaction sous mon éditeur favori.</p>
<h2 id="correction-orthographique">Correction orthographique</h2>
<p>Sous Emacs, la solution la plus directe pour la correction et d'utiliser <code>M-x ispell</code>, en ayant au préalable correctement paramétré le module, c'est-à-dire</p>
<ul>
<li>en ayant installé les paquets hunspell et hunspell-fr</li>
<li>en ayant paramétré le module ispell pour utiliser hunspell</li>
</ul><p>Pour éliminer les sections inintéressantes de la vérification dans le cas d'un document asciidoc, on peut ajouter au <code>~/.emacs</code></p>
<pre><code class="lisp"><span class="p">(</span><span class="nv">add-to-list</span> <span class="ss">'ispell-skip-region-alist</span>
<span class="o">'</span><span class="p">(</span><span class="s">"^\\[source"</span> <span class="o">.</span> <span class="s">"^----\n\n"</span><span class="p">)</span> <span class="c1">;; source exerpts</span>
<span class="o">'</span><span class="p">(</span><span class="s">"\\[\\["</span> <span class="o">.</span> <span class="s">"\\]\\]"</span><span class="p">)</span> <span class="c1">;; links</span>
<span class="p">)</span></code></pre>
<p>hunspell a l'avantage de connaître comment décliner les formes nominales ou verbales. Mais il ne connaît pas tout. Pour Git, par exemple, on utilise à tour de bras les termes <em>commit</em>, rebaser, etc qui ne sont pas dans le dictionnaire par défaut. Et justement, quand on veut ajouter ces nouveaux mots on ne veut sûrement pas avoir à en saisir toutes les formes.</p>
<p>C'est là où hunspell dans emacs offre vraiment la possibilité de renseigner ces nouveaux mots sous forme intelligente. Supposons que nous ayons saisi le texte :</p>
<pre><code>Dans Git, il y a deux façons d'intégrer les commits d'une branche dans une autre : en fusionnant (`merge`) et en rebasant (`rebase`).
</code></pre>
<p>Le lancement de <code>M-x ispell</code> bloque en premier sur <em>Git</em>. C'est un mot à ajouter au dictionnaire. Dans les propositions, on peut appuyer sur <code>i</code>, pour simplement insérer le mot tel quel dans mon dictionnaire personnel.</p>
<p>Ensuite, il bloque sur <em>commits</em>, qu'on pourrait tout à fait intégrer comme tel, mais pour lequel on a intérêt à ajouter la forme au singulier. Qu'à cela ne tienne ! Au lieu de presser <code>i</code>, pressons <code>m</code>, ce qui permet de saisir la forme sous laquelle on veut entrer le nouveau mot dans le dictionnaire. Ici, c'est avec hunspell qu'il faut s'arranger. Dans le dictionnaire personnel, on peut saisir une entrée en utilisant la forme <code><mot racine>\<mot modèle du dictionnaire></code>.</p>
<p>Dans hunspell tel que renseigné par dicollecte,</p>
<ul>
<li>les noms communs sont intégrés sous leur forme féminine singulière si elle existe,</li>
<li>sous leur forme masculin singulier sinon,</li>
<li>les verbes sont intégrés sous la forme infinitive.</li>
</ul><p>Ici, on a donc intérêt à saisir <code>commit/stage</code>, ce qui signifie que le mot <code>commit</code> peut être décliné comme <code>stage</code>, donc au pluriel <code>commits</code> comme dans notre texte. On fait d'une pierre deux coups pour le vocabulaire. En plus, si on demande à hunspell d'analyser ce mot, il sera correctement étiqueté comme un nom masculin pluriel, ce qui peut être utilisé pour une vérification grammaticale.</p>
<p>Un peu plus loin, hunspell bloque sur <code>merge</code>, et là, on ne veut pas le faire entrer dans le dictionnaire, mais juste l'ignorer. On appuie sur si on veut l'ignorer juste cette fois, ou sur <code>a</code>, pour l'autoriser pour tout le reste de la session de correction.</p>
<p>Enfin, on s'arrête sur <code>rebasant</code>, et comme on a pigé le truc, on appuie sur <code>m</code> et on propose <code>rebaser/recaser</code>, ce qui autorise la forme participe présent en cours. Cette correction autorise de même la forme <code>rebase</code> en fin de texte, ainsi que toutes les autres formes conjuguées</p>
<p>Un petit <code>hunspell -m</code> sur le fichier montre bien comment les mots ont été intégrés :</p>
<pre><code>—
Git st:Git
—
commits st:commit is:pl
—
rebasant st:rebaser po:ppre
</code></pre>
<h2 id="correction-grammaticale">Correction grammaticale</h2>
<p>La correction orthographique, c'est bien, mais ça ne corrige pas les erreurs d'accord ou d'homonymes. Pour cela, il faut passer à la version correction grammaticale.</p>
<p>Sous Emacs, je n'ai pas trouvé beaucoup de choix. Il y a LanguageTool qu'on peut coupler à langtool.el.</p>
<ul>
<li>Télécharger <a href="https://www.languagetool.org/download/LanguageTool-3.0.zip">LanguageTool en ligne de commande</a> et le décompresser.</li>
<li>Télécharger <a href="https://github.com/mhayashi1120/Emacs-langtool">langtool.el</a> en clonant le dépôt et en linkant langtool.el sous <code>~/.emacs.d/lisp</code>
</li>
<li>Installer langtool dans le <code>.emacs</code>:</li>
</ul><pre><code class="lisp"><span class="p">(</span><span class="nv">add-to-list</span> <span class="ss">'load-path</span> <span class="s">"~/.emacs.d/lisp/"</span><span class="p">)</span>
<span class="p">(</span><span class="nb">require</span> <span class="ss">'langtool</span><span class="p">)</span>
<span class="p">(</span><span class="k">setq</span> <span class="nv">langtool-language-tool-jar</span> <span class="s">"/chemin/vers/LanguageTool-3.0/languagetool-commandline.jar"</span><span class="p">)</span>
<span class="p">(</span><span class="k">setq</span> <span class="nv">langtool-default-language</span> <span class="s">"fr"</span><span class="p">)</span>
<span class="p">(</span><span class="k">setq</span> <span class="nv">langtool-java-bin</span> <span class="s">"/usr/bin/java"</span><span class="p">)</span>
<span class="p">(</span><span class="k">setq</span> <span class="nv">langtool-mother-tongue</span> <span class="s">"fr"</span><span class="p">)</span></code></pre>
<p>Maintenant on peut démarrer la session de correction avec <code>M-x langtool-check</code>. LanguageTool analyse le buffer et surligne les erreurs qu'il trouve. Même vocabulaire, mêmes effets. Les mots inconnus sont marqués comme faute de frappe.</p>
<p>L'ennui est qu'on ne peut pas tirer parti du travail déjà réalisé pour hunspell. Il faut tout reprendre du début, et LanguageTool ne simplifie pas la vie.</p>
<p>Pour faire accepter et correctement étiqueter les nouveaux mots, il faut à la fois</p>
<ul>
<li>les ajouter dans le vocabulaire connu. À la différence de hunspell, il faut fournir toutes les formes des mots qu'on entre. Ça se passe, dans le fichier <code>LanguageTool-3.0/org/languagetool/resource/fr/hunspell/spelling.txt</code> :
<code>
# Words that extend the spell checker. See ignore.txt for words that should be
# completely ignored (i.e. not used to create suggestions).
commit
commits
Git
rebase
rebasage
rebaser
rebasons
rebasez
rebasé
rebasés
rebasées
rebasée
rebasant
</code>
</li>
<li>Ensuite, il faut leur donner une signification grammaticale, en renseignant les formes grammaticales dans <code>LanguageTool-3.0/org/languagetool/resource/fr/added.txt</code>
<code>
# A part-of-speech dictionary that's used additionally to the binary dictionary (*.dict)
# File Encoding: UTF-8
# Format: three tab-separated fields: fullform baseform postags
Git Git Z
Perforce Perforce Z e sp
commit commit N m s
commits commit N m p
rebasage rebasage N m s
rebasages rebasage N m p
rebasant rebaser V ppr
rebase rebaser V ind pres 1 s
rebase rebaser V ind pres 3 s
rebaser rebaser V inf
rebasons rebaser V ind pres 1 p
rebasons rebaser V imp pres 1 p
rebasez rebaser V imp pres 2 p
rebasez rebaser V ind pres 2 p
</code>
</li>
</ul><p>Les formes grammaticales sont assez explicites. Pour référence, on les retrouve dans <code>LanguageTool-3.0/org/languagetool/resource/fr/tagset.txt</code></p>
<p>C'est clairement plus lourd que hunspell (éditer d'autres fichiers à côté) et c'est dommage que l'effort déjà consenti ne puisse pas repayer. Les gains sont aussi plus importants, surtout pour les têtes-en-l'air.</p><div><a href="https://linuxfr.org/users/jn/journaux/ameliorer-la-correction-orthographique-et-grammaticale-sous-emacs.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/106558/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/jn/journaux/ameliorer-la-correction-orthographique-et-grammaticale-sous-emacs#comments">ouvrir dans le navigateur</a>
</p>
JNhttps://linuxfr.org/nodes/106558/comments.atomtag:linuxfr.org,2005:Diary/358272015-05-01T14:03:04+02:002015-05-01T14:03:04+02:00Quelques actualités concernant Firefox et FirefoxOSLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p><img src="//img.linuxfr.org/img/68747470733a2f2f6661726d312e737461746963666c69636b722e636f6d2f352f31303530303438395f616639613964633433645f6f2e706e67/10500489_af9a9dc43d_o.png" alt="Firefox_Mosaic" title="Source : https://farm1.staticflickr.com/5/10500489_af9a9dc43d_o.png"></p>
<p>Voici, en vrac, quelques actualités que j'ai relevées concernant Firefox et FirefoxOS :</p>
<ul>
<li><p>Le financement participatif de Grammalecte, un correcteur grammatical libre pour Firefox et Thunderbird présenté dans <a href="//linuxfr.org/news/grammalecte-correcteur-grammatical">cette dépêche</a> par son auteur est à 40% : il est encore temps de participer (<a href="http://fr.ulule.com/grammalecte/">page du projet</a> sur ulule) !</p></li>
<li><p><a href="https://wiki.mozilla.org/Platform/GFX/OffMainThreadCompositing">OMTC (OffMainThreadCompositing)</a> devrait enfin être activé sur GNU/Linux dans la version 40 de Firefox (prévue pour <a href="https://wiki.mozilla.org/Mobile/Roadmap">le 11 août 2015</a>). Outre quelques avantages à court terme (plus grande fluidité du scrolling par exemple <a href="https://www.reddit.com/r/firefox/comments/1tj9if/why_is_scrolling_performance_so_bad_in_firefox/">semble t-il</a>), c'est une étape nécessaire pour tout un tas d'autres choses assez poussées techniquement comme <a href="https://benoitgirard.wordpress.com/2014/04/07/graphics-meetup-2014q01/">ceci</a> ou encore <a href="https://wiki.mozilla.org/Electrolysis">cela</a> qui toutes devraient à terme améliorer l'expérience utilisateur.</p></li>
<li><p><a href="http://www.dadall.info/blog/index.php?article426/tomtom-et-mozilla-s-associent-pour-pondre-un-gps-pour-firefoxos">TomTom et Mozilla s'associent pour pondre un GPS pour FirefoxOS</a> : presque tout est dit le billet ; je m'interroge sur les termes financiers de l'accord en revanche. L'application, en HTML5 donc, est <a href="https://marketplace.firefox.com/app/maps-online-1">téléchargeable ici</a> pour FirefoxOS et Firefox pour Android notamment. En attendant une hypothétique version libre en HTML5 basée sur <a href="https://fr.wikipedia.org/wiki/OpenStreetMap">OpenStreetMap</a>, c'est toujours mieux que <a href="https://fr.wikipedia.org/wiki/G%C3%A9ants_du_Web">le GAFA</a>.</p></li>
<li><p>Le développeur initial de uBlock (bloqueur de publicités et traqueurs) reprend en main son extension sous l’appellation "<a href="https://addons.mozilla.org/fr/firefox/addon/ublock-origin/">uBlock Origin</a>". Il semble par ailleurs que l'arrêt d'AdBlock Edge soit d'ores et déjà programmé. Plus d'infos dans <a href="http://ohax.fr/oubliez-pachydermique-adblock-plus-ublock-origin-est-arrive">ce billet</a> (NB : <a href="http://libre-ouvert.toile-libre.org/index.php?article207/optimiser-firefox-pour-les-petites-configurations">on peut aussi utiliser le logiciel Privoxy comme alternative à une extension quelle qu'elle soit</a>).</p></li>
</ul><p>Voilà !</p>
<p>(<a href="https://secure.flickr.com/photos/lordcolus/10500489/">crédit illustration</a>)</p><div><a href="https://linuxfr.org/users/antistress/journaux/quelques-actualites-concernant-firefox-et-firefoxos.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/105621/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/antistress/journaux/quelques-actualites-concernant-firefox-et-firefoxos#comments">ouvrir dans le navigateur</a>
</p>
antistresshttps://linuxfr.org/nodes/105621/comments.atomtag:linuxfr.org,2005:News/363432015-04-22T01:16:44+02:002015-05-03T19:05:43+02:00Grammalecte, correcteur grammaticalLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6469636f6c6c656374652e6f72672f6772616d6d616c656374652f696d672f6c6f676f5f74657874655f6772616d6d616c65637465322e706e67/logo_texte_grammalecte2.png" alt="Grammalecte logo" title="Source : http://www.dicollecte.org/grammalecte/img/logo_texte_grammalecte2.png"></p>
<p>Grammalecte est un <strong>correcteur grammatical</strong> récent (né en janvier 2011), écrit en Python, dédié à la langue française, et, pour l’instant, uniquement disponible pour LibreOffice et OpenOffice. Une campagne de financement participatif est lancée pour porter Grammalecte sur <strong>Firefox</strong> et <strong>Thunderbird</strong> et en faire par ailleurs un serveur indépendant (voir plus bas). Cette dépêche peut donc intéresser tous ceux qui s’intéressent à la grammaire.</p></div><ul><li>lien nᵒ 1 : <a title="http://www.dicollecte.org/grammalecte" hreflang="fr" href="https://linuxfr.org/redirect/93760">Site officiel</a></li><li>lien nᵒ 2 : <a title="http://fr.ulule.com/grammalecte" hreflang="fr" href="https://linuxfr.org/redirect/93761">Campagne de financement participatif</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#principes-de-fonctionnement">Principes de fonctionnement</a><ul>
<li><a href="#historique-des-fonctionnalit%C3%A9s">Historique des fonctionnalités</a></li>
<li><a href="#comparaison-avec-languagetool">Comparaison avec LanguageTool</a></li>
<li><a href="#le-pr%C3%A9processeur-de-texte-par-lexemple">Le préprocesseur de texte par l’exemple</a></li>
<li><a href="#le-dictionnaire">Le dictionnaire</a></li>
</ul>
</li>
<li><a href="#pourquoi-la-correction-grammaticale-est-difficile">Pourquoi la correction grammaticale est difficile</a></li>
<li>
<a href="#campagne-de-financement">Campagne de financement</a><ul>
<li><a href="#fournir-de-meilleures-suggestions">Fournir de meilleures suggestions</a></li>
<li><a href="#am%C3%A9liorer-la-d%C3%A9tection-des-erreurs">Améliorer la détection des erreurs</a></li>
<li><a href="#d%C3%A9sambigu%C3%AFsation">Désambiguïsation</a></li>
<li><a href="#fiabilit%C3%A9-des-versions-tests-unitaires">Fiabilité des versions (tests unitaires)</a></li>
<li><a href="#en-finir-avec-la-d%C3%A9pendance-%C3%A0-hunspell-et-%C3%A0-libreofficeopenoffice">En finir avec la dépendance à Hunspell et à LibreOffice/OpenOffice</a></li>
<li><a href="#conversion-du-code-en-javascript-pour-lextension-firefoxthunderbird">Conversion du code en JavaScript pour l’extension Firefox/Thunderbird</a></li>
</ul>
</li>
<li>
<a href="#autres-consid%C3%A9rations">Autres considérations</a><ul>
<li><a href="#les-autres-langues">Les autres langues ?</a></li>
<li><a href="#et-la-gestion-du-dictionnaire">Et la gestion du dictionnaire ?</a></li>
<li><a href="#les-correcteurs-grammaticaux-servent-ils-%C3%A0-quelque-chose">Les correcteurs grammaticaux servent-ils à quelque chose ?</a></li>
</ul>
</li>
<li><a href="#le-mot-de-la-fin">Le mot de la fin</a></li>
</ul><p>Grammalecte est un dérivé de Lightproof, un correcteur écrit initialement pour le hongrois. Le logiciel s’est peu à peu éloigné de Lightproof avec les années. Même si Lightproof a été conçu pour gérer diverses langues, j’ai eu besoin de modifier nombre de choses dans le moteur interne pour le rendre efficace pour le français. Sans cela, pas grand-chose n’aurait été possible.</p>
<p>Ce correcteur est né un peu par hasard. En 2010, j’avais décidé de m’occuper de la partie française de LanguageTool, avec réticence, car je n’aime ni le Java et ni le XML dans lequel sont écrites les règles de grammaire. Par ailleurs, je voulais contrôler le processus de création des règles de contrôle. Or, à l’époque, LanguageTool possédait de nombreuses règles que je n’aimais pas, qui généraient beaucoup de faux positifs, mais il eût été indélicat d’envoyer à la benne tout ce qui me déplaisait. Enfin, comme je ne pouvais pas non plus ajuster certaines règles typographiques comme je l’aurais voulu (le développement étant centralisé, il fallait convaincre), j’ai finalement laissé tomber et je me suis penché sur Lightproof, qui avait l’avantage de fournir un kit minimal à partir duquel je pouvais faire comme je l’entendais. Je voulais me concentrer sur l’essentiel, éviter autant que possible les faux positifs, et être assez strict sur les questions typographiques. J’ai d’abord travaillé pour moi, surtout par curiosité, afin de voir ce qui était possible.</p>
<p>Après pas mal de déboires divers, la première version alpha paraît en janvier 2011 et connaît un petit succès d’estime. Du coup, bien que je n’avais pas vraiment l’intention de me consacrer à ça, j’ai mis le doigt dans l’engrenage.</p>
<h2 id="principes-de-fonctionnement">Principes de fonctionnement</h2>
<p>D’une manière générale, Grammalecte est un correcteur utilisant les motifs de correspondance (“pattern matching”) pour détecter les erreurs. Il examine le texte qu’on lui passe en se basant sur une liste de règles de contrôle, qu’il faut bien sûr écrire à l’avance parce que le correcteur ne peut pas deviner ce qui est une erreur, il ne fait pas de suppositions. Pour savoir à quoi correspondent les mots, il se base sur un lexique qui lui indique leur nature grammaticale. Les règles de contrôle sont décrites par un motif de détection d’erreur, des conditions d’application, un message informatif et si possible des suggestions. (Détecter une erreur et suggérer une correction sont deux choses plus distinctes qu’il n’y paraît. Suggérer peut s’avérer plus difficile que détecter une erreur, je reviendrai sur ce point plus tard.)</p>
<p>Un motif de détection est une expression régulière plus ou moins complexe. Une fois un motif détecté, il est en général nécessaire de faire une analyse plus poussée des éléments, notamment en examinant la nature grammaticale des mots du motif repéré, ce qui se fait par d’autres expressions régulières. Bref, on lance des expressions rationnelles tous azimuts, tout le temps. Les conditions d’application et l’analyse des motifs trouvés se font avec du code ad hoc en Python, simple ou complexe, c’est selon.</p>
<p>La difficulté de fonctionner avec des motifs de correspondance, c’est que les règles à écrire sont innombrables, tant l’écriture d’une langue humaine recèle de possibilités, tant le nombre d’erreurs possibles est grand. Par ailleurs, les faux positifs (ou fausses alertes) sont très difficiles à éviter. Car, s’il est facile d’écrire une règle pour détecter une erreur dans un contexte donné, il est difficile d’écrire une règle valable pour tous les cas de figure possibles.</p>
<p>L’atout de Grammalecte pour faire face à l’explosion combinatoire des possibilités, c’est son préprocesseur de texte.</p>
<p>Le préprocesseur de texte est un outil qui transforme en interne le texte à corriger. Il le modifie pour simplifier le travail des règles de contrôle. Pour ce faire, il dispose de règles de transformation qui sont décrites par un motif de détection, des conditions d’application et une chaîne ou une fonction de remplacement.</p>
<p>Néanmoins, toutes les transformations ne peuvent être mises en œuvre en une seule fois. C’est pourquoi le correcteur va effectuer plusieurs passes sur le texte. Chaque passe s’effectue en deux temps : d’abord l’application des transformations du préprocesseur de texte, puis les règles de contrôle. Ceci permet de simplifier le texte au fur et mesure des analyses et de supprimer les éléments qui ont été vérifiés ou qui n’ont pas besoin de l’être, puis de se concentrer lors de la passe suivante sur d’autres points.</p>
<p>Le correcteur effectue à l'heure actuelle six passes sur le texte. (Théoriquement, il peut en faire un nombre infini, il suffit de spécifier dans le fichier des règles qu’on veut une nouvelle passe et d’écrire de nouvelles instructions.) </p>
<ul>
<li>La première passe contrôle les paragraphes entiers et sert notamment à vérifier tous les aspects typographiques, les espaces insécables, les guillemets, les espaces surnuméraires.</li>
<li>Après cette première passe, le paragraphe est scindé en phrases.</li>
<li>La seconde et la troisième passe servent à contrôler notamment les accords entre les noms et les adjectifs, les pluriels, le genre, etc.</li>
<li>Les trois passes suivantes vérifient principalement les accords des verbes avec leur sujet, les participes passés, les formes interrogatives ou impératives.</li>
</ul><p>Il n’est pas du tout exclu d’ajouter de nouvelles passes.</p>
<h3 id="historique-des-fonctionnalités">Historique des fonctionnalités</h3>
<p>Grammalecte n’a pas toujours fonctionné ainsi. Dans la version 0.1, comme Lightproof, il faisait tout le travail en une seule passe, paragraphe par paragraphe. Il m’est vite apparu qu’il serait pratique d’effectuer le contrôle en deux temps, paragraphe par paragraphe, puis phrase par phrase. Et il m’a semblé judicieux de simplifier le texte entre les deux passes. Ainsi naquit la version 0.2, qui prenait déjà pas mal de distance avec Lightproof. Le préprocesseur de texte, qui n’était au commencement qu’une commodité, m’est apparu peu à peu comme un élément essentiel, un outil susceptible de résoudre des problèmes quasi insurmontables sans lui. C’est pourquoi, à partir de la version 0.3, le préprocesseur est devenu la baguette magique avec laquelle une quantité gigantesque de difficultés ont été résolues. À ce stade, le correcteur effectuait déjà cinq passes, et il a fallu plus tard en rajouter une sixième.</p>
<p>Avec la version 0.3 sont apparus les outils annexes : le lexicographe, le formateur de texte, puis le conjugueur.</p>
<p>Le lexicographe et le conjugueur sont deux outils dont le rôle est pédagogique : informer et aider l’utilisateur en cas de doute. Le lexicographe, avec un clic droit, donne de la nature grammaticale de n’importe quel mot. Le conjugueur permet de connaître, là encore en quelques clics, la conjugaison de n’importe quel verbe. Par exemple, un clic droit sur le mot “suis” vous permet d’accéder immédiatement à la conjugaison d’être et de suivre, ce qui évite la peine d’avoir à chercher sur le Net ou dans son dictionnaire. Comme un correcteur grammatical ne saurait corriger toutes erreurs possibles, il m’a toujours paru utile de fournir une aide pédagogique à l’utilisateur, car lui seul peut vraiment décider.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6469636f6c6c656374652e6f72672f6772616d6d616c656374652f696d672f73732d6c657869636f6772617068652e706e67/ss-lexicographe.png" alt="Grammalecte - lexicographe" title="Source : http://www.dicollecte.org/grammalecte/img/ss-lexicographe.png"><br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6469636f6c6c656374652e6f72672f6772616d6d616c656374652f696d672f73732d636f6e6a7567756575722e706e67/ss-conjugueur.png" alt="Grammalecte - conjugueur" title="Source : http://www.dicollecte.org/grammalecte/img/ss-conjugueur.png"></p>
<p>Le formateur de texte est un outil de correction typographique automatisé, qui propose de corriger la plupart des erreurs en un seul clic, même s’il en y a des milliers. Il propose aussi quelques fonctions de nettoyage et de restructuration d’un texte. Cet outil, que je jugeais anecdotique au commencement, est celui qui a suscité le plus d’engouement et que les utilisateurs ont le plus sollicité. Les outils qui bossent tout seul, ça semble beaucoup plaire. ;)</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6469636f6c6c656374652e6f72672f6772616d6d616c656374652f696d672f73732d666f726d61746575722e706e67/ss-formateur.png" alt="Grammalecte - formateur de texte" title="Source : http://www.dicollecte.org/grammalecte/img/ss-formateur.png"></p>
<p>La version 0.4 apporte beaucoup d’améliorations internes, mais surtout des mécanismes de suggestion qui permettent enfin d’offrir dans la plupart des cas autre chose qu’un simple message d’erreur (parfois mystérieux pour ceux qui ne savent plus ce qu’est un COD ou un participe passé).</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6469636f6c6c656374652e6f72672f6772616d6d616c656374652f696d672f73732d73756767657374696f6e732e706e67/ss-suggestions.png" alt="Grammalecte - suggestions" title="Source : http://www.dicollecte.org/grammalecte/img/ss-suggestions.png"></p>
<h3 id="comparaison-avec-languagetool">Comparaison avec LanguageTool</h3>
<p>LanguageTool, comme Grammalecte, fonctionne avec des motifs de correspondance (“pattern matching”) chargés de déceler les erreurs. Et les similitudes s’arrêtent là. Dans le détail technique, tout est différent, et ces différences font que le potentiel qu’on peut tirer de ces deux logiciels n’est pas le même.</p>
<p>LanguageTool est très formaliste, il faut écrire des règles en XML. C’est descriptif, rigide et assez contraignant, mais il n’est pas difficile de rentrer dans le code des règles. Tout est assez intelligible, même si c’est verbeux.</p>
<p>Grammalecte, en revanche, est beaucoup moins formaliste, c’est plutôt un vaste chantier en cours de construction, avec pas mal de bizarreries, mais c’est plutôt souple, et on peut se permettre bien plus de fantaisies. En revanche, concernant la lisibilité des règles, disons que ce n’est pas son point fort, car les règles appellent directement du code en Python et il faut toujours garder à l’esprit qu’on analyse un texte qui va être modifié par le préprocesseur de texte. De plus, il faut se plonger dans le code du moteur pour comprendre ce que font certaines fonctions. Par ailleurs, l’ordonnancement des règles est primordial. Si vous déplacez quelque chose sans comprendre comment ça fonctionne et les principes généraux, il est fort probable que vous cassiez quelque chose. Même quand on connaît bien l’ensemble, c’est assez difficile, attendu que les effets de bord ne sont pas toujours évidents à estimer.</p>
<p>LanguageTool ne possède pas de préprocesseur de texte, il lui faut plus de règles de détection que Grammalecte pour faire des choses similaires. Il en faut tellement plus qu’il est peu probable qu’en l’état actuel, LanguageTool puisse faire bien des choses que fait Grammalecte aujourd’hui relativement aisément, car il faudrait écrire énormément de règles.</p>
<p>Mais LanguageTool dispose d’un outil que Grammalecte ne possède pas : un désambiguïsateur. LanguageTool n’effectue qu’une seule passe sur le texte, phrase par phrase. En premier lieu, il découpe les phrases en “tokens” (mots, ponctuations, guillemets, etc.). Puis, grâce à son désambiguïsateur, il fait de la désambiguïsation sur les “tokens” ambigus, c’est-à-dire qu’il détermine la nature grammaticale d’un mot quand il en a plusieurs (par exemple : “est” peut être un nom masculin, une conjugaison du verbe être, un élément d’une locution adverbiale “id est”). En somme, grâce à cet outil, LanguageTool pose des étiquettes explicatives sur les tokens. Puis, il analyse la succession des tokens selon les règles écrites. Il renvoie les erreurs et c’est fini. Ce qu’il faut retenir, c’est que la désambiguïsation permet d’avoir plus de certitudes dans l’analyse du texte.</p>
<p>De son côté, Grammalecte ne découpe pas les phrases en tokens. Dans Grammalecte, il n’y a pas de tokens ni même de mots à proprement parler, il n’y a que des zones de texte définies par des expressions régulières qui servent de déclencheurs pour une analyse spécifique des passages correspondant aux motifs trouvés. On ne travaille pas sur des éléments déterminés à l’avance, mais sur des zones, souvent des mots bien sûr, mais aussi des bouts de phrases ou des motifs de caractères sans nécessairement se soucier des délimitations des mots et de leur position dans le texte (même si on s’en soucie assez souvent comme vous pouvez l’imaginer). Je peux par exemple chercher un motif “ni… ni…” sans me soucier du nombre de “tokens” qu’il pourrait y avoir entre les deux “ni”, sans me soucier où c’est précisément. C’est souple, mais cette souplesse se paye par une plus grande complexité et c’est régulièrement l’occasion de faire des nœuds mentaux pour comprendre ce qui se passe, surtout pour gérer toutes les questions d’apostrophes, de majuscules, de traits d’union, de délimitations des mots (plus problématique que ce que vous pouvez supposer) et divers détails subtils qui n’ont l’air de rien, mais qui compliquent souvent la tâche de manière imprévue. Certains problèmes, on ne les auraient pas, ou seulement à moindre degré, avec des phrases découpées de manière prédictible et uniforme en “tokens”. Cela dit, la tokenisation ne semble pas la solution miracle non plus, si j’en crois ce que j’ai lu parfois sur la liste de discussion de LanguageTool, car il ne semble pas évident de gérer la question des apostrophes et des traits d’union.<br>
Par ailleurs, dans Grammalecte, comme à chaque passe le texte est transformé, un même motif de correspondance ne renverra pas forcément la même chose selon la passe dans lequel il est lancé. Il faut toujours garder à l’esprit où on est dans le flux des règles de transformation et estimer ce qui se passe globalement.<br>
Et, comme il n’y a pas de “tokens” dans Grammalecte, il n’y a pas non plus de désambiguïsateur qui pose des étiquettes sur les mots. Le correcteur fait quand même de la désambiguïsation, mais à la volée, c’est-à-dire que chaque règle se charge elle-même de s’y retrouver parmi les ambiguïtés du texte. C’est un désavantage par rapport à LanguageTool. Ce dernier permet d’écrire des règles dans un environnement plus “sûr” que dans Grammalecte où règnent l’incertitude et le flou. Cela dit, le préprocesseur de texte, encore lui, va nous épargner bien des peines et solutionner nombre de cas difficiles, en faisant faire de la “désambiguïsation” à sa manière, c’est-à-dire en supprimant tout simplement des zones de texte.<br>
Les règles de transformation du préprocesseur de texte consistent pour la très grande majorité à faire du nettoyage, c’est-à-dire à effacer le superflu, ce qui, de fait, nous évite de faire un gros travail d’analyse. Certaines règles de transformation introduisent aussi dans le texte des caractères signalétiques que certaines règles de contrôle savent reconnaître. Et quelques règles servent réellement à modifier ce qui est écrit, là encore pour simplifier. Cette manière de faire apporte beaucoup d’avantages par rapport à LanguageTool, mais dans certains cas s’avère moins efficace que l’étiquetage. Le problème de Grammalecte, c’est une certaine forme d’amnésie, le préprocesseur nettoie et fait parfois du signalement, mais après ça chaque règle se débrouille seule.</p>
<p>Hormis les différences techniques inhérentes aux logiciels, la manière d’écrire les règles peut aussi faire varier grandement leurs capacités de détection. On peut écrire les règles de manière stricte (moins de détection d’erreurs, moins de faux positifs) ou audacieuse (plus de détection, plus de faux positifs). LanguageTool possède des règles de contrôle que je n’ai pas implémentées dans Grammalecte parce que je les trouve trop susceptibles de générer des faux positifs en l’état actuel des choses. Il y a des vérifications que Grammalecte fait que son rival n’essaie pas de faire (trop risqué ou compliqué pour lui). Ensuite, il y a les règles qu’un correcteur peut juger superflues. Par exemple, LanguageTool vérifie si vous écrivez correctement Britney Spears, Warren Buffett et des tas d’autres célébrités, ce que Grammalecte ne prend pas la peine de contrôler.</p>
<h3 id="le-préprocesseur-de-texte-par-lexemple">Le préprocesseur de texte par l’exemple</h3>
<p>Mettons que nous tapons dans Writer :<br><code><br>
Cette pièces de théâtre-là (http://www.site.fr/blabla) d’Albert Camus² sur «l’absurde» étaient, comme d’habitude, passionnants.<br></code></p>
<p>Trois erreurs grammaticales, deux typographiques.</p>
<p>Sachez d’abord que le texte que le correcteur reçoit ne correspond pas toujours au texte que voit l’utilisateur. En effet, les marques de formatage sont effacées. Si vous tapez des passages en italique ou gras, l’italique et le gras vont disparaître. Dans notre exemple, il y a le caractère “²”. Il peut être obtenu en tapant le caractère “²” ou tapant le caractère “2” et en le mettant en exposant. Dans le second cas, la mise en exposant est une marque de formatage. C’est probablement ainsi que l’utilisateur a obtenu ce caractère. Dans ce cas, le correcteur reçoit :<br><code><br>
Cette pièces de théâtre-là (http://www.site.fr/blabla) d’Albert Camus2 sur «l’absurde» étaient, comme d’habitude, passionnants.<br></code></p>
<p>Autrement dit, même si l’utilisateur voit le caractère “²”, le correcteur reçoit le caractère “2”.</p>
<p>Passe 1. Pour commencer, le préprocesseur de texte va supprimer les URL (entre autres choses).<br><code><br>
Cette pièces de théâtre-là (@@@@@@@@@@@@@@@@@@@@@@@@@) d’Albert Camus2 sur «l’absurde» étaient, comme d’habitude, passionnants.<br></code></p>
<p>Ensuite, les règles de contrôle vont vérifier les espacements, la ponctuation, les guillemets, etc. C’est lors de la première passe que le correcteur signalera qu’il faut des espaces insécables autour de “l’absurde”.</p>
<p>Passe 2. Les arobases sont supprimées. La note de référence “2” qui suit Camus est supprimée, ainsi que les guillemets. On obtient alors :<br><code><br>
Cette pièces de théâtre-là (_________________________) d’Albert Camus_ sur _l’absurde_ étaient, comme d’habitude, passionnants.<br></code></p>
<p>Passe 3. C’est dans cette passe qu’on nettoie le plus. On supprime le “-là” qui suit “théâtre”. Le patronyme “Camus” est supprimé. Puis “d’Albert” est supprimé, ainsi que “comme d’habitude”. Puis “pièces de théâtre” est simplifié et réduit à un seul mot : “pièces”. Comme il n’y a plus que du vide entre les parenthèses et les virgules, on les supprime aussi. Ce qui donne :<br><code><br>
Cette pièces _________________________________________________________ sur _l’absurde_ étaient __________________ passionnants.<br></code></p>
<p>Lors de cette passe, la première erreur d’accord sur “pièces” est repérée.</p>
<p>Passe 4, 5 et 6. Après la 3 ème passe, on considère que les accords dans les groupes nominaux ont été vérifiés. Donc on simplifie les groupes nominaux afin de pouvoir vérifier l’accord avec les verbes. Ce qu’on fera dans les 3 passes suivantes. Ici, “sur l’absurde” est supprimé puisqu’il ne peut être un sujet. Il reste :<br><code><br>
Cette pièces _________________________________________________________________________ étaient __________________ passionnants.<br></code></p>
<p>À présent, il n’y plus rien à simplifier. Après la correction de “pièce”, le correcteur verra l’erreur sur “étaient” et après la correction de ce dernier, il pourra faire les bonnes suggestions sur “passionnants”.</p>
<p>Ce système n’est pas parfait. Voici un autre exemple.<br><code><br>
Les petits étais endormis.<br></code></p>
<p>Ici, le correcteur ne détecte rien, car “étais” est aussi un nom masculin pluriel.</p>
<p>D’autres erreurs que le correcteur peut trouver grâce au préprocesseur de texte :<br><code><br>
L’homme sur le bateau de Patrick viens de temps en temps mangé chez moi.<br>
Ces marchands passe leur temps à se quereller.<br>
Ils jugeront en toute impartialité de ce cas délirante.<br>
Ils sont de manière si étonnante et si admirable arrivé à ce résultat…<br>
Les tests grand public de Jean-Paul montre des résultats surprenants.<br>
Ils ont à plusieurs reprises perdus leur sang-froid.<br>
Ces attaques à main armée donne la chair de poule.<br>
Réfléchir à tête reposée prends du temps.<br>
Des chambres plus ou moins fortement éclairé.<br>
Ce qui, la plupart du temps, donnes des maux de tête.<br>
La N.S.A. espionneras toujours tout le monde.<br></code></p>
<p>Avec le dernier exemple, vous verrez l’une des choses que le préprocesseur réécrit pour faciliter le travail du correcteur. En interne, la graphie “N.S.A.” a été transformée en “NSA” (le message d’erreur trahit cette modification).</p>
<p>Le préprocesseur fait aussi de la simplification de certains <a href="http://fr.wikipedia.org/wiki/Syntagme">syntagmes</a> nominaux. Exemples :<br><code><br>
armé jusqu’aux dents --> armé<br>
fille au pair ---------> fille<br>
médecin de garde ------> médecin<br></code></p>
<p>Le préprocesseur peut faire énormément de choses, mais il ne peut en l’état actuel résoudre tous les problèmes, car il doit lui-même demeurer prudent quand il fait face à des ambiguïtés. Dans bien des cas, il arrivera à simplifier les groupes nominaux. Dans d’autres cas, il n’y arrivera pas. Il y a encore beaucoup de progrès à faire sur ce chapitre. Concevoir un désambiguïsateur aiderait beaucoup. Un préprocesseur de texte associé à un désambiguïsateur, ce serait une combinaison utile pour accroître notablement la détection des erreurs.</p>
<h3 id="le-dictionnaire">Le dictionnaire</h3>
<p>La graphie d’un mot français ne permet pas de déterminer sa nature. Un mot finissant par -ent peut être un nom, un adjectif, un adverbe ou la forme conjuguée d’un verbe. C’est pourquoi un correcteur grammatical ne peut souvent pas grand-chose sans un lexique étiqueté référençant tous les mots d’une langue. Cet étiquetage, c’est la base de la connaissance du correcteur. Le dictionnaire français pour Hunspell, le correcteur orthographique, est actuellement la source directe de Grammalecte.</p>
<p>Quelques données sur le dictionnaire :</p>
<ul>
<li>plus de 77000 entrées,</li>
<li>toutes les entrées sont grammaticalement étiquetées,</li>
<li>environ 12 % d’entre elles sont sémantiquement étiquetées (médecine, informatique, botanique, etc.), mais cet étiquetage ne sert pas encore.
Améliorer la base lexicale et son étiquetage, c’est l’une des tâches les plus importantes de la conception d’un correcteur grammatical.</li>
</ul><p>Ce dictionnaire, vous l’avez probablement tous utilisé, puisqu’il est inclus dans Firefox, Thunderbird, LibreOffice, Chrome, Opera et une multitude de logiciels dont je serais bien en peine de faire la liste si on me la demandait. Cela dit, vous en utilisez peut-être une vieille version, je ne l’intègre qu’à LibreOffice et ne fournit des extensions que pour OpenOffice, Firefox et Thunderbird. L’intégration dans les autres logiciels est faite par d’autres personnes à des rythmes très divers.</p>
<p>Tout le travail sur le dictionnaire se fait sur <a href="http://www.dicollecte.org/home.php?prj=fr">Dicollecte</a>, où sont collectées les propositions des utilisateurs.</p>
<h2 id="pourquoi-la-correction-grammaticale-est-difficile">Pourquoi la correction grammaticale est difficile</h2>
<p>Commençons par un exemple :<br><code><br>
Il est conseiller à la mairie. [Correct]<br>
Il est aller à la mairie. [Incorrect]<br></code></p>
<p>Pourtant, l’étiquetage grammatical de ces phrases est strictement identique. Les mots “conseiller” et “aller” sont tous les deux à la fois un verbe à l’infinitif et un nom masculin. Or, un correcteur grammatical ne comprend absolument rien à ce que vous écrivez, même si vous ne faites aucune erreur. Il ne peut se baser que sur une suite d’étiquettes grammaticales.</p>
<p>Il est parfois irritant de s’entendre dire : “il y a une erreur ici, c’est évident”. Car, en fait, il y a rarement quoi que ce soit d’évident pour un correcteur grammatical. Le mot “évident” n’est lui-même pas seulement un adjectif, c’est aussi la conjugaison du verbe “évider” à la 3e personne du pluriel au présent. D’une manière générale, il semble souvent facile d’écrire une règle qui détecte les erreurs dans une phrase ou un contexte spécifique. En revanche, il est souvent difficile, voire impossible, d’écrire une règle qui détecte les erreurs dans tous les contextes sans générer nombre de faux positifs. Du coup, l’écriture des règles, c’est très souvent un compromis entre ce qu’on voudrait détecter et la tolérance pour les fausses alertes (la mienne est assez basse).</p>
<p>Autres exemples :<br><code><br>
Des caractéristiques matériels [Incorrect]<br>
Des matériels caractéristiques [Correct]<br>
Des nouvelles caractéristiques [Correct]<br>
Des matérielles caractéristiques [Incorrect]<br></code></p>
<p>Vous, humains, savez que “caractéristiques” est dans le premier cas un nom féminin. Mais c’est aussi un adjectif épicène. Le correcteur grammatical ne sait pas décider si ce doit être un nom ou un adjectif. Pour lui, “matériel”, “caractéristique” et “nouvelle” sont dans tous les cas nom et adjectif.</p>
<p>Autrement dit, l’étiquetage grammatical ne suffit pas. Seul le sens permet aux humains de trouver les erreurs. Mais, comme je l’ai dit, le correcteur ne comprend rien du tout. Il faudrait prendre le temps d’étiqueter les entrées avec des informations plus spécifiques, susceptibles de nous aider à contextualiser ce qu’on corrige. Une tâche titanesque. Nous en sommes encore loin.</p>
<p>Et ce ne sont là que des exemples très simples, très loin des phrases complexes qu’on peut écrire.</p>
<p>Parmi les difficultés du français, l’une des principales, c’est qu’il y a énormément de mots dont la nature grammaticale dépend du contexte :<br><code><br>
tu ________ pronom personnel sujet épicène singulier // participe passé du verbe taire<br>
lui _______ pronom personnel sujet masculin // pronom personnel objet masculin et féminin // participe passé du verbe luire<br>
sommes ____ forme conjuguée de être // forme conjuguée de sommer // nom féminin ou masculin pluriel<br>
ton _______ déterminant // nom masculin<br>
son _______ déterminant // nom masculin<br>
la ________ déterminant // nom masculin // pronom personnel objet<br>
avoir _____ nom masculin // verbe auxiliaire<br>
été _______ participe passé du verbe être // nom masculin<br>
est _______ forme conjuguée de être // nom masculin // élément d’une locution latine (id est)<br>
a _________ forme conjuguée de avoir // nom masculin invariable<br>
avions ____ forme conjuguée de avoir // nom masculin pluriel<br>
pas _______ adverbe de négation // nom masculin<br>
une _______ déterminant // nom féminin (la une des journaux)<br>
aura ______ forme conjuguée de avoir // nom féminin<br>
as ________ forme conjuguée de avoir // nom masculin<br>
contre ____ préposition // nom masculin singulier // forme conjuguée de contrer<br>
vers ______ préposition // nom masculin singulier ou pluriel<br>
mais ______ conjonction de coordination // adverbe // nom masculin pluriel<br>
si ________ conjonction de subordination // adverbe // nom masculin<br>
évident ___ adjectif masculin // forme conjuguée de évider<br>
dément ____ adjectif masculin // forme conjuguée de démentir<br>
prise _____ nom féminin // participe passé de prendre // forme conjuguée de priser<br>
courant ___ nom masculin // participe présent de courir // préposition<br>
or ________ conjonction de coordination // nom masculin singulier<br>
plus ______ adverbe // adverbe de négation // nom masculin<br>
point _____ adverbe de négation // nom masculin singulier<br>
vis _______ nom féminin // forme conjuguée de voir et de vivre<br>
montre ____ nom féminin // forme conjuguée de montrer<br>
partis ____ forme conjuguée de partir // participe passé pluriel // nom masculin pluriel<br>
vous ______ pronom personnel sujet ou objet.<br>
nous ______ idem<br>
etc.<br></code></p>
<p>Il y a de nombreux mots qui ont plusieurs natures grammaticales, et le correcteur doit trouver laquelle s’applique dans le contexte. Il faut constamment faire attention à ça, sinon c’est d’explosion de faux positifs assurée. Pourtant, malgré les règles de prudence, il y a toujours des faux positifs. Parce que si on ne signalait que les erreurs certaines, on ne signalerait pas grand-chose.</p>
<p>L’autre problème, c’est que les homonymes en français sont nombreux et les confusions pas forcément faciles à détecter.</p>
<ul>
<li>a / à / as / ha</li>
<li>est / et / es / ai / ait / aie / aies / ais / hé / eh / haie / hais</li>
<li>été / étai / était / étais</li>
<li>dans / d’en / dent</li>
<li>desceller / déceler / desseller</li>
<li>faite / faîte / fête</li>
<li>la / là / l’a / l’as / las</li>
<li>mal / mâle / malle</li>
<li>or / hors</li>
<li>ou / où</li>
<li>on / ont</li>
<li>notre / nôtre</li>
<li>par / part / pare</li>
<li>prêt / près / pré</li>
<li>quand / quant / qu’en</li>
<li>sans / s’en / sens / c’en / cens / sent / cent / sang</li>
<li>serre / serf / sers / cerf</li>
<li>sot / seau / sceau</li>
<li>soi / soie / soit / sois</li>
<li>son / sont</li>
<li>soutien / soutiens / soutient</li>
<li>suis / suie / sui / suit</li>
<li>tort / tore / taure / tord</li>
<li>ver / vers / vert / verre</li>
</ul><p>Ajoutons à cela les conjugaisons homophones :</p>
<ul>
<li>manger / mangé / mangez / mangeais / mangeait</li>
<li>fus / fut / fût</li>
</ul><p>En bref, la difficulté du français, c’est qu’il est rempli de nombreux mots qui s’écrivent de la même façon avec des natures différentes et de nombreux mots différents qui se prononcent de la même façon et qui engendrent nombre de confusions à l’écrit.</p>
<p>Les manières d’écrire en respectant la grammaire sont extrêmement nombreuses, mais les manières de mal écrire sont illimitées.</p>
<h2 id="campagne-de-financement">Campagne de financement</h2>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6469636f6c6c656374652e6f72672f6772616d6d616c656374652f696d672f4772616d6d616c656374655f66696e616e63656d656e745f3830302e706e67/Grammalecte_financement_800.png" alt="Campagne de financement participatif" title="Source : http://www.dicollecte.org/grammalecte/img/Grammalecte_financement_800.png"></p>
<p>Pour ceux que ça intéresse, c’est <a href="https://fr.ulule.com/grammalecte">sur Ulule</a>.</p>
<p>Je vais évoquer ici quelques aspects techniques dont je ne parle pas sur Ulule.</p>
<h3 id="fournir-de-meilleures-suggestions">Fournir de meilleures suggestions</h3>
<p>Détecter les erreurs et suggérer quelle est la bonne graphie sont deux choses bien différentes. Dans certains cas, il est plus facile de détecter les erreurs que de savoir que suggérer. Mais l’inverse est aussi vrai, il existe des erreurs difficiles à détecter où il serait pourtant facile de suggérer la graphie correcte.</p>
<p>Grammalecte parvient à présent à faire des suggestions dans la plupart des cas, mais il reste quand même du travail à faire sur ce point. Prenons un exemple simple, <a href="https://www.google.fr/search?q=%22je+m%27en+fou%22+site:linuxfr.org">une erreur que j’ai fréquemment vue sur ce site</a> :<br><code><br>
Je m’en fou.<br></code></p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6469636f6c6c656374652e6f72672f6772616d6d616c656374652f696d672f6a656d656e666f752e706e67/jemenfou.png" alt="Erreur fréquente sur LinuxFR" title="Source : http://www.dicollecte.org/grammalecte/img/jemenfou.png"></p>
<p>Ici, le correcteur voit l’erreur mais est incapable de fournir une suggestion, parce qu’il n’existe aucun lien entre l’entrée “fou” et l’entrée “foutre” d’où dérivent toutes ses conjugaisons. Le correcteur ne sait pas où chercher une conjugaison adéquate. Pour parfaire le système de suggestion, il faudrait établir des passerelles entre tous les mots grammaticalement distincts sur leurs liens phonétiques éventuels.</p>
<p>Évidemment, si on prend la peine d’écrire des règles spécifiques pour gérer les cas particuliers, c’est possible de suggérer correctement, mais ce ne serait guère efficace dans la mesure où les mots homophones sont nombreux. Il faudrait écrire trop de règles.</p>
<h3 id="améliorer-la-détection-des-erreurs">Améliorer la détection des erreurs</h3>
<p>Pour l’instant, si le préprocesseur de texte est déjà très employé, il est encore sous-exploité et on peut aller plus loin, mais cela réclame du temps et beaucoup de tests et de patience. La correction grammaticale est encore grandement améliorable, même si les choses “faciles” à faire sont de moins en moins nombreuses. La simplification des groupes nominaux pourrait être bien meilleure, c’est un vaste chantier qui est entamé depuis environ un an. Le principal obstacle à son renforcement, c’est justement l’absence d’une désambiguïsation efficace.<br>
Il y a encore aussi pas mal de vérifications simples à écrire sur des tas de confusions possibles. Je me suis assez peu occupé de ça jusqu’à présent.</p>
<p>Le développement du correcteur suit depuis le commencement la même logique : une montée en puissance progressive en essayant d’éviter les faux positifs.</p>
<p>Écrire des règles, c’est assez rapide ; détecter les faux positifs, c’est beaucoup plus long ; ceux-ci ont tendance à survenir là où on s’y attend le moins. C’est ce qui est le plus exigeant : maintenir un ensemble de règles, améliorer l’existant, tester, trouver de nouvelles possibilités. Lorsqu’on s’occupe d’un correcteur grammatical, on passe surtout son temps à peaufiner des détails, à ajuster le fonctionnement de l’existant, à arrondir les angles. Oubliez l’idée de concevoir l’algorithme ultime qui saura gérer tous les cas. Même quand on est à peu près sûr d’écrire une petite règle tranquille qui ne générera aucun faux positif, la réalité va très probablement nous rappeler à l’ordre et nous obliger à slalomer sur ce qui paraissait au commencement comme une belle ligne droite. S’occuper de correction grammaticale, c’est marcher sur un chemin pavé d’embûches subtiles.</p>
<h3 id="désambiguïsation">Désambiguïsation</h3>
<p>Bien que le correcteur fasse déjà de la désambiguïsation à sa manière, brutalement, améliorer cet aspect ne serait pas du luxe pour la connaissance du contexte des erreurs. J’hésite encore sur la mise en œuvre. “Tokeniser”, pourquoi pas, mais ce n’est pas ma solution favorite. Utiliser le préprocesseur de texte pour créer un genre de carte signalétique, c’est pas mal, mais ça ressemble à de la bidouille. Employer des trucs et astuces, comme je le fais déjà maintenant, toujours via le préprocesseur de texte, ce n’est pas ce qu’il y a de plus commode, surtout pour l’intelligibilité de l’ensemble des règles. <s>Je n’ai pas encore trouvé une solution simple et efficace.</s> En rédigeant ce billet, <a href="http://www.dicollecte.org/thread.php?prj=fr&t=452">une solution plaisante m’est venue</a>. Ce sera un désambiguïsateur multi-passes sans tokenisation. Il fonctionnera en dressant un index de balises grâce des règles de désambiguïsation qui seront exécutées au commencement de chaque passe, avant même le préprocesseur de texte. Il suffira, lors de l’analyse lexicale, que le correcteur interroge en premier lieu cet index. Ce mécanisme devrait accroître grandement la capacité de reconnaissance des erreurs, car le désambiguïsateur diminuera les incertitudes.</p>
<h3 id="fiabilité-des-versions-tests-unitaires">Fiabilité des versions (tests unitaires)</h3>
<p>Triste à dire, mais il n’y a à l’heure actuelle aucun test unitaire dans Grammalecte. Tout simplement parce que le correcteur est pour l’instant incapable de fonctionner hors de Writer. Les tests faits avant chaque publication se limitent à deux fichiers ODT que j’ouvre dans le traitement de texte : un qui référence les faux positifs éventuels, un autre qui liste des erreurs grammaticales à détecter. J’ouvre encore quelques autres fichiers pour voir si tout va bien. Mais ce n’est pas du tout pratique. Les tests unitaires accéléreraient beaucoup le développement, car les bugs et les régressions seraient détectés aussitôt, ce qui ne serait pas du luxe.</p>
<h3 id="en-finir-avec-la-dépendance-à-hunspell-et-à-libreofficeopenoffice">En finir avec la dépendance à Hunspell et à LibreOffice/OpenOffice</h3>
<p>La raison pour laquelle Grammalecte est pour l’instant dépendant de LibreOffice/OpenOffice, c’est sa dépendance à Hunspell, le correcteur orthographique, qu’il interroge sans cesse pour connaître la nature grammaticale des mots.</p>
<p>Hunspell remplit sa tâche, mais les informations qu’il fournit sont présentées en vrac. Il faut traiter les données avant de pouvoir les exploiter. Quand vous demandez la nature grammaticale d’un mot, vous récupérez en fait toutes les étiquettes que le dictionnaire contient (et il y en a potentiellement pas mal). Il faut trier. Du coup, pour l’instant, je limite les données incluses dans le dictionnaire aux seules étiquettes grammaticales, afin d’éviter d’alourdir le boulot.</p>
<p>Plutôt que de recréer Hunspell en Python, il est préférable de créer un dictionnaire binaire indexable bâti sous la forme d’un gigantesque graphe de mots, facilement parcourable, ce qu’on peut appeler aussi un automate à états finis.</p>
<p>Un graphe de mots, ça ressemble à ça :<br><img src="//img.linuxfr.org/img/687474703a2f2f7777772e6469636f6c6c656374652e6f72672f6772616d6d616c656374652f696d672f776f726467726170682e706e67/wordgraph.png" alt="Graphe de mots" title="Source : http://www.dicollecte.org/grammalecte/img/wordgraph.png"></p>
<p>Pour savoir si un mot existe dans un graphe, on part de l’état initial et on suit les arcs représentés par les flèches, et si l’on parvient jusqu’à l’état final, le mot est considéré comme existant. Pour le correcteur, le graphe devra contenir tous les mots du français, et à la suite de chaque mot les informations grammaticales. Cette construction se fait à partir d’un simple fichier texte listant toutes les formes fléchies du français, leur lemme et les étiquettes informatives.</p>
<p>Les principales fonctions de cet automate seront de dire si un mot existe dans le lexique, donner son lemme (“aimer” est le lemme de “aime”), fournir ses étiquettes grammaticales, et éventuellement d’autres. Doté d’un module de suggestion, il peut même servir de correcteur orthographique.</p>
<p>Grammalecte existera bien sûr toujours comme extension pour Writer mais, grâce à cela, il pourra exister comme serveur autonome capable de fournir des corrections grammaticales à tout programme lui passant du texte à analyser, au format JSON. Chaque erreur contiendra les informations suivantes :</p>
<ul>
<li>position de l’erreur,</li>
<li>type d’erreur (pour les applications qui auraient l’intelligence de souligner avec différentes couleurs),</li>
<li>message explicatif,</li>
<li>suggestion(s),</li>
<li>[optionnellement] hyperlien vers une page explicative plus complète,</li>
<li>identifiant de la règle détectant l’erreur (utile seulement pour le débogage).</li>
</ul><h3 id="conversion-du-code-en-javascript-pour-lextension-firefoxthunderbird">Conversion du code en JavaScript pour l’extension Firefox/Thunderbird</h3>
<p>Pour rappel, le but est bien d’avoir une extension qui peut fonctionner sans faire appel à un serveur local ou distant. Il faudra tout réimplémenter en JavaScript. Pour Firefox, je voudrais que le correcteur puisse aussi analyser le contenu d’une page web et pas seulement les zones d’édition de texte. Pour l’instant, Firefox, contrairement à LibreOffice et OpenOffice, ne possède pas (encore) d’API pour la grammaire, ce qui complique l’interfaçage avec les utilisateurs, mais ça ne semble pas insurmontable. À part ça, il n’a pas grand-chose à dire si ce n’est qu’il y a des épines et des ronces en perspective.</p>
<h2 id="autres-considérations">Autres considérations</h2>
<h3 id="les-autres-langues">Les autres langues ?</h3>
<p>Bonne nouvelle ! Même si je n’ai pas l’intention de m’occuper des autres langues, ce qui sera fait pour le français sera également possible pour bien d’autres. L’une des raisons pour lesquelles Lightproof est peu employé, c’est l’absence de ressources lexicales. Lightproof utilise les dictionnaires pour Hunspell, dont bien peu peuvent servir à la correction grammaticale puisque seuls les dictionnaires français et hongrois sont grammaticalement étiquetés. Or, le compilateur de lexique en dictionnaire binaire indexable dont j’ai parlé ci-dessus pourra réutiliser tous les lexiques de LanguageTool. Autrement dit, toutes les langues qui disposent d’un lexique chez LanguageTool pourront utiliser le moteur de Grammalecte.</p>
<h3 id="et-la-gestion-du-dictionnaire">Et la gestion du dictionnaire ?</h3>
<p>Le site qui gère le dictionnaire français a fait son temps. Il est encore utile et assez pratique, mais il pourrait être bien mieux, plus simple notamment. Même s’il n’est pas difficile de participer, il faut quand même un peu de temps pour comprendre la logique. Mais comprendre n’est même pas exigé, il suffit de proposer de nouveaux mots. Malheureusement ça rebute apparemment beaucoup de monde. Les utilisateurs veulent aller vite et ne voient les résultats de leur participation que des mois plus tard, quand une nouvelle version est publiée. Le site est pensé sur un mode cathédrale et non sur un mode bazar. Après des années d’utilisation, j’en vois les limites, et je pense qu’il aurait dû être conçu autrement. Le refonte du site ne fait pas partie de la campagne de financement participatif. Idéalement, j’aimerais avoir un jour le temps de tout réécrire en Python (avec un framework comme Flask) en utilisant un autre concept que celui d’aujourd’hui, permettant une plus grande personnalisation, une plus grande modularité, un contrôle plus simple. C’est un vaste chantier.<br>
Pour pallier ce problème, je prévois de créer dans le correcteur de LibreOffice et de Firefox un assistant qui simplifiera toute la procédure.</p>
<h3 id="les-correcteurs-grammaticaux-servent-ils-à-quelque-chose">Les correcteurs grammaticaux servent-ils à quelque chose ?</h3>
<p>Certaines personnes, en général avec une forte estime de leurs connaissances en orthographe et en grammaire, pensent que les correcteurs grammaticaux sont tous mauvais et ne servent à rien, et surtout pas à eux. Cette opinion est en partie légitime et en partie fausse.</p>
<p>Les correcteurs informatiques, ne comprenant rien à ce que vous écrivez, ont bien sûr du mal à détecter les erreurs dans les phrases complexes et parfois même dans des contextes simples. Dans bien des cas, les connaissances en grammaire d’un utilisateur bien instruit lui permettront de trouver plus d’erreurs que le correcteur grammatical.</p>
<p>Néanmoins, ceux qui pensent que connaître la langue parfaitement suffit à ne jamais faillir se trompent, car nombre d’erreurs sont dues à l’inattention, à la fatigue, à des copier-coller mal ajustés, à des défauts de reconnaissance optique. Or, l’ordinateur ne relâche jamais son attention, son œil ne fatigue jamais et il examine même ce qui ne vous vient pas à l’esprit.</p>
<p>Par ailleurs, pour les personnes dont les connaissances sont lacunaires, il peut se révéler pédagogue. Si par exemple vous ne connaissez pas le participe passé du verbe “avoir” (“eu”, que beaucoup écrivent erronément “eut”) ou du verbe “lire” (“lu”, et non “lut”), le correcteur finira immanquablement par trouver des occasions de vous signaler vos erreurs, même s’il peut ne pas toujours les repérer dans les contextes complexes, car il les détectera dans les contextes simples (Erreurs détectées dans “j’ai eut”, “ils n’ont pas eut”, etc.).</p>
<h2 id="le-mot-de-la-fin">Le mot de la fin</h2>
<p>Merci de m’avoir lu jusqu’ici.</p>
<p>Il semble que l’orthographe et la grammaire françaises soient de plus en plus ignorées, même des personnes les plus instruites. C’est du moins ce que disent souvent des articles alarmistes. J’ignore si cela est vrai, mais ce que je lis sur le Web m’étonne parfois, tant les bases de la grammaire semblent parfois méconnues. Qu’on ne connaisse pas la conjugaison de tous les verbes, c’est compréhensible, mais confondre “ça” et “sa”, “ce” et “se”, “quand”, “quant” et “qu’en” semble signifier qu’il faudrait une remise à niveau pour pas mal de monde. Cela dit, ce n’est peut-être pas si étonnant si l’on songe que le Web a remis à l’écriture des personnes qui n’écrivaient plus rien depuis fort longtemps.</p>
<p>Si vous pensez que Grammalecte mérite de s’étendre hors de LibreOffice, si vous trouvez que la langue française est maltraitée et qu’il faudrait avoir un outil pour dénicher les erreurs sur le Web, si vous voulez voir des mots normalement rejetés intégrés dans le correcteur, c’est sur <a href="http://fr.ulule.com/grammalecte">Ulule que ça se passe</a>.</p></div><div><a href="https://linuxfr.org/news/grammalecte-correcteur-grammatical.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/105503/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/grammalecte-correcteur-grammatical#comments">ouvrir dans le navigateur</a>
</p>
orBenoît Sibaudpalm123Nils Ratusznikhttps://linuxfr.org/nodes/105503/comments.atomtag:linuxfr.org,2005:Diary/348932014-04-15T21:01:27+02:002014-04-15T22:02:17+02:00HermaiaLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p><strong>en bref</strong> : <a href="https://github.com/suizokukan/hermaia">Hermaia</a> est un projet (Python3/GPLv3) pour créer et consulter des listes de mots préalablement analysés du point de vue morphologique. Un exemple <a href="http://94.23.197.37/phokaia/hermaia/hermaia.dumpfile.txt">ici</a> (si vous voyez n'importe quoi, pensez à utiliser l'unicode comme encodage).</p>
<hr><p><strong>Hermaia</strong> est un (très modeste) <a href="https://github.com/suizokukan/hermaia">projet</a> (Python3/GPLv3) <strong>permettant</strong> </p>
<ul>
<li>de créer une liste de mots accompagnés de leur analyse morphologique. Exactement comme si l'on associait le mot "aimerai" à "aimer"+"futur.3S".</li>
<li>de rechercher un mot et de l'analyser. Ex : est-ce que le mot "aimerai" existe ? Oui, il s'agit d' "aimer"+"futur.3S" .</li>
</ul><p>Un objet Hermaia lit et écrit ses informations dans une base de données MySQL <a href="//linuxfr.org/forums/programmationautre/posts/table-mysql-a-optimiser">pour la structure de laquelle j'ai dû demander de l'aide</a>.<br>
Il est également possible de demander une <a href="http://94.23.197.37/phokaia/hermaia/hermaia.dumpfile.txt">image texte (un dump) de la base de données</a> : on obtient alors un fichier texte qu'il est possible de modifier et de retransformer en base de données.</p>
<p>La base de données est gérée par le module sqlite3 : si certains veulement m'aider à utiliser PostgreSQL, je suis preneur.</p>
<p>La recherche se fait par l'intermédiaire d'un buffer qui garde en mémoire les demandes les plus fréquentes.</p>
<p>J'ai essayé d'écrire un code aussi propre que possible : Pylint m'accorde une note de 10/10 au prix de quelques concessions (voir le fichier pylint.rc dans le dépôt).</p>
<hr><p><strong>Comment utiliser Hermaia pour chercher un mot dans la base ?</strong></p>
<pre><code class="python"><span class="k">with</span> <span class="n">sqlite3</span><span class="o">.</span><span class="n">connect</span><span class="p">(</span><span class="s">"database.db"</span><span class="p">)</span> <span class="k">as</span> <span class="n">database</span><span class="p">:</span>
<span class="k">with</span> <span class="n">Hermaia</span><span class="p">(</span><span class="n">database</span> <span class="o">=</span> <span class="n">database</span><span class="p">)</span> <span class="k">as</span> <span class="n">h</span><span class="p">:</span>
<span class="n">h</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="s">"aimerai"</span><span class="p">)</span></code></pre>
<p>… ce qui renvoie une liste des occurrences du mot à chercher : dans le cas d' "aimerai", cette liste serait composée d'un seul dict contenant les informations nécessaires.</p>
<hr><p><strong>Comment remplir la base de données ? L'exemple de Phokaia</strong></p>
<p>J'ai développé Hermaia pour servir d'extension au projet <a href="https://github.com/suizokukan/logotheras">Logotheras</a> qui crée des dictionnaires. Comme les articles d'un dictionnaire Logotheras peuvent contenir l'ensemble des formes possibles d'un mot (project <a href="https://github.com/suizokukan/inflectiones">inflectiones</a>) il suffit de récupérer le contenu du tableau généré et de l'injecter dans la base de données.<br>
Travaillant principalement sur une ébauche de dictionnaire <a href="http://94.23.197.37/phokaia/phokaia.html">grec ancien->français</a> j'ai donc récupéré l'ensemble des formes calculées. Le résultat se trouve <a href="http://94.23.197.37/phokaia/hermaia/">là</a>. Le résultat me paraît encourageant.</p>
<hr><p><strong>et la suite ?</strong></p>
<p>Je cherche des personnes susceptibles de m'aider à passer de MySQL à PostgreSQL mais aussi des profils plus orientés "lettres" et désireux d'utiliser Hermaia pour leurs projets personnels, pour d'autres langues… Faites-moi signe !</p><div><a href="https://linuxfr.org/users/suizokukan/journaux/hermaia.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/101886/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/suizokukan/journaux/hermaia#comments">ouvrir dans le navigateur</a>
</p>
Xavier Faurehttps://linuxfr.org/nodes/101886/comments.atomtag:linuxfr.org,2005:Post/336742014-02-15T14:52:47+01:002014-02-17T00:55:10+01:00démarrer languagetool en tant qu'user [résolu]<p>Bonjour à tous.</p>
<p>Comme certains d'entre vous l'ont remarqué (hélas), je suis très mauvais en orthographe. J'essaye de faire attention, mais cela ne suffit pas. J'ai donc voulu installer <a href="https://languagetool.org/">languagetool</a> pouvoir l'utiliser sur Firefox, et dans un futur proche vim.<br>
Actuellement pour démarrer le serveur languagetool, je fais « su -c 'languagetool -t' ». Le « -t » permettant de la lancer dans le «system tray». Je suis obligé de le lancer en tant que root, sans doute à cause d'un problème de permission. Le serveur utilise le port 8080. Si je le lance en tant qu'user, il n'y as pas d'erreur dans la console, mais je ne peux pas y accéder à l'aide de l'extension languagetool pour Firefox, ou directement avec son ip.</p>
<p>J'aimerai :<br>
- pouvoir le lancer en que simple user<br>
- le lancer au démarrage</p>
<p>Pour cela, je n'ai trouvé que très peu d'info sur google et duckduckgo. Sur le <a href="https://wiki.archlinux.org/index.php/Autostarting">wiki arch</a>, il semblerait que l'on puisse transformer une application en démon pour pouvoir le lancer avec systemd « systemctl start languagetool », mais je n'ai pas trouvé comment faire.<br>
Merci de votre aide.</p><div><a href="https://linuxfr.org/forums/general-general/posts/demarrer-languagetool-en-tant-qu-user-resolu.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/101273/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-general/posts/demarrer-languagetool-en-tant-qu-user-resolu#comments">ouvrir dans le navigateur</a>
</p>
robinhttps://linuxfr.org/nodes/101273/comments.atomtag:linuxfr.org,2005:News/350732014-02-13T11:33:30+01:002014-02-17T13:42:04+01:00Inflectiones, déclinaisons et conjugaisons en grec ancienLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>En bref : inflectiones est une bibliothèque (Python3, GPLv3) qui permet de conjuguer et de décliner des mots. Le travail inverse (analyser un mot pour en dégager les caractéristiques morphologiques) ne m'intéressant pas, n'a pas été codé. Enfin, seuls quelques exemples tirés du grec ancien et de l'esperanto sont disponibles, voyez les exemples ci-dessous. Le projet n'en est qu'à ses débuts et attend du renfort !</p></div><ul><li>lien nᵒ 1 : <a title="https://github.com/suizokukan/inflectiones" hreflang="fr" href="https://linuxfr.org/redirect/89419">Inflectiones sur GitHub</a></li><li>lien nᵒ 2 : <a title="http://94.23.197.37/phokaia/phokaia.html" hreflang="fr" href="https://linuxfr.org/redirect/89420">Phokaia, un dictionnaire utilisant la bibliothèque Inflectiones</a></li></ul><div><h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#1-buts-dinflectiones">(1) buts d'Inflectiones</a><ul>
<li><a href="#11-buts">(1.1) buts</a></li>
<li><a href="#12-int%C3%A9r%C3%AAt">(1.2) intérêt</a></li>
</ul>
</li>
<li>
<a href="#2-utiliser-inflectiones">(2) utiliser Inflectiones</a><ul>
<li><a href="#21-cr%C3%A9er-une-simple-liste-de-formes">(2.1) créer une simple liste de formes</a></li>
<li><a href="#22-cr%C3%A9er-un-tableau-html">(2.2) créer un tableau HTML</a></li>
</ul>
</li>
<li>
<a href="#3-quelques-r%C3%A9sultats-en-grec-ancien">(3) quelques résultats en grec ancien</a><ul>
<li><a href="#31-deuxi%C3%A8me-d%C3%A9clinaison--%E1%BC%80%CE%B8%CE%B7%CE%BD%CE%B1%E1%BF%96%CE%BF%CF%82">(3.1) deuxième déclinaison : ἀθηναῖος</a></li>
<li><a href="#32-verbes-th%C3%A9matiques--%CF%84%CF%81%E1%BD%B7%CC%84%CF%90%CF%89">(3.2) verbes thématiques : τρί̄ϐω</a></li>
</ul>
</li>
<li><a href="#4-installation">(4) installation</a></li>
<li><a href="#5-fonctionnement-dinflectiones">(5) fonctionnement d'Inflectiones</a></li>
<li><a href="#6-et-%C3%A0-lavenir">(6) et à l'avenir ?</a></li>
</ul><h2 id="1-buts-dinflectiones">(1) buts d'Inflectiones</h2>
<h3 id="11-buts">(1.1) buts</h3>
<p>Dans le cadre de différents projets (comme <a href="http://94.23.197.37/phokaia/phokaia.html">celui-ci</a>) j'ai eu besoin de récupérer des formes automatiquement fléchies (conjuguées/déclinées) dans quelques langues, dont le grec ancien. La bibliothèque <strong>Inflectiones</strong> répond à ce problème en renvoyant une liste de formes décrites, d'une part à l'aide de la bibliothèque <strong>DChars</strong> (trace orthographique), d'autre part à l'aide de la bibliothèque <strong>Phoseg</strong> (trace phonétique). Une exportation sous forme de tableaux HTML est possible : vous en trouverez deux exemples ci-après.</p>
<p><strong>Inflectiones</strong> peut être utilisé pour faire le travail inverse et analyser une forme pour en reconstituer les caractéristiques morphologiques : ayant trop peu de temps à consacrer à ce projet, j'ai volontairement supprimé tout le code permettant de faire de telles analyses car je n'en étais pas satisfait. Si vous étiez intéressés par cette possibilité, faites-le-moi savoir.</p>
<h3 id="12-intérêt">(1.2) intérêt</h3>
<p>Le point fort de cette bibliothèque est de générer <em>automatiquement</em> des grilles de flexions. S'agissant du grec ancien, son utilisation permet(trait) de réduire les erreurs que je vois souvent dans les tableaux tapés péniblement à la main et qui sont rarement corrigés même quand une erreur est signalée.</p>
<p>J'utilise <strong>Inflectiones</strong> dans le cadre d'un dictionnaire de grec ancien → français dont les articles sont partiellement remplis par des grilles de flexion construites et par <strong>Inflectiones</strong> et par les données du dictionnaire : reportez à l'article <a href="http://94.23.197.37/phokaia/rst/art000515.html">χρόνος</a> pour en avoir un exemple.</p>
<p>Enfin, il est facile de construire une table inverse associant à une formée donnée sa décomposition grammaticale (ex. en français : aima → aimer::passé simple.3S) : le module <strong>Infgrid</strong> permet de construire facilement de tels dictionnaires.</p>
<h2 id="2-utiliser-inflectiones">(2) utiliser Inflectiones</h2>
<h3 id="21-créer-une-simple-liste-de-formes">(2.1) créer une simple liste de formes</h3>
<p>Le code suivant …</p>
<pre><code>word = "γεωργός"
infgrid = INFLECTIONES["grc.λόγος"].inflect( input_parameters = {
"Nsg" : word,
"gender" : "masculine",
},
)
for key in infgrid.gridsv:
orthophone_objects = infgrid.gridsv[key]
print(key,
orthophone_objects[0].ortho,
orthophone_objects[0].phone.get_ipa_representation())
</code></pre>
<p>… remplit un objet nommé <em>infgrid</em> de type <strong>Infgrid</strong> qui est une grille de flexions (ici, un tableau de déclinaison). Dans cet exemple, la flexion nommée <em>grc.λόγος</em> est appelée avec deux paramètres, le nominatif singulier <em>γεωργός</em> et le genre de ce mot.</p>
<p><em>infgrid.gridsv</em> est par exemple un dictionnaire associant à une clef un objet <strong>Phrase</strong> qui n'est rien d'autre qu'une liste d'objets <strong>OrthoPhone</strong>. </p>
<pre><code>o key est une clef de type string valant par exemple "case=N;number=sg;dialect=att".
o orthophone_objects[0] est de type Orthophone
o orthophone_objects[0].ortho est un objet de type DString, une liste d'objets DChars
o orthophone_objects[0].phone est un objet de type PhoSeg
</code></pre>
<h3 id="22-créer-un-tableau-html">(2.2) créer un tableau HTML</h3>
<p>Si vous écriviez maintenant …</p>
<pre><code>htmldata = INFLECTIONES["grc.λόγος"].inflectAndExportAsHTML( input_parameters = {
"Nsg" : "ἀθηναῖος",
"gender" : "masculine",
},
morphogrid = "fra__grc_logos",
formatstring = "ORTHO [PHONE]",
captiontitle = word,
tableborder = "1",
characters_output = {"grc::ignore makron":True},
)
</code></pre>
<p>… vous obtiendriez du code HTML générant un tableau de type « tableau de grammaire que l'on trouve dans les manuels scolaires ». Pour plus de lisibilité (affichage en console par exemple), le code HTML généré peut être interprété par l'outil w3m à l'aide de la commande : <code>python example.py | w3m -dump -cols 200 -T text/html</code>. C'est ce que j'ai fait pour présenter les deux tableaux suivants, liés au grec ancien.</p>
<h2 id="3-quelques-résultats-en-grec-ancien">(3) quelques résultats en grec ancien</h2>
<p>Les conjugaisons et déclinaisons du grec ancien sont <em>compliquées</em> à expliquer à un ordinateur : il s'agissait pour moi d'un bon test pour jauger les capacités <strong>d'Inflectiones</strong> !</p>
<p>S'agissant de la transcription phonétique, elle n'a rien de trivial. Par exemple dans <code>ἀθηναίω [a.t̪ʰɛː.nˈa˧˥.jːɔː]</code>, vous pouvez remarquer que la transcription d'<code>αίω</code> est <code>[ˈa˧˥.jːɔː]</code>, et non le simple (mais ambigu) <code>[ˈai̯.ɔː]</code>.</p>
<p>Les deux seules flexions acceptées pour le moment sont les mots de la deuxième déclinaison et quelques temps des verbes thématiques non contractes et non préfixés; les « accidents phonétiques » (exemples au futur : <code>τρίβω > τρίψω</code>, <code>πείθω > πείσω</code>, …) sont bien intégrées (voyez le résumé des possibilités dans <a href="https://github.com/suizokukan/inflectiones/blob/master/inflectiones/languages/grc/paideuo.py">l'en-tête du fichier paideuo.py</a>).</p>
<p>Pour être complet, les tableaux qui suivent présentent, pour chaque forme, et la trace orthographique et la trace phonétique entre crochets (<code>formatstring = "ORTHO [PHONE]"</code>). Il est bien sûr possible de ne retenir que la trace orthographique en spécifiant par exemple <code>formatstring = "ORTHO"</code>.</p>
<h3 id="31-deuxième-déclinaison--ἀθηναῖος">(3.1) deuxième déclinaison : ἀθηναῖος</h3>
<pre><code>word = "ἀθηναῖος"
infgrid = INFLECTIONES["grc.λόγος"].inflectAndExportAsHTML( input_parameters = {
"Nsg" : word,
"gender" : "masculine",
},
morphogrid = "fra__grc_logos",
formatstring = "ORTHO [PHONE]",
captiontitle = word,
tableborder = "1",
characters_output = {"grc::ignore makron":True},
)
print(infgrid)
ἀθηναῖος
┌─────────────┬────────────────────────────┬──────────────────────────────┬──────────────────────────────────┐
│ │singulier │duel │pluriel │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│nominatif │ἀθηναῖος [a.t̪ʰɛː.nˈa˥˧.jːos]│ἀθηναίω [a.t̪ʰɛː.nˈa˧˥.jːɔː] │ἀθηναῖοι [a.t̪ʰɛː.nˈa˥˧.jːoi̯] │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│vocatif │ἀθηναῖε [a.t̪ʰɛː.nˈa˥˧.jːe] │ἀθηναίω [a.t̪ʰɛː.nˈa˧˥.jːɔː] │ἀθηναῖοι [a.t̪ʰɛː.nˈa˥˧.jːoi̯] │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│accusatif │ἀθηναῖον [a.t̪ʰɛː.nˈa˥˧.jːon]│ἀθηναίω [a.t̪ʰɛː.nˈa˧˥.jːɔː] │ἀθηναίους [a.t̪ʰɛː.nˈa˧˥.jːoːs] │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│génitif │ἀθηναίου [a.t̪ʰɛː.nˈa˧˥.jːoː]│ἀθηναίοιν [a.t̪ʰɛː.nˈa˧˥.jːoi̯n]│ἀθηναίων [a.t̪ʰɛː.nˈa˧˥.jːɔːn] │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│datif │ἀθηναίῳ [a.t̪ʰɛː.nˈa˧˥.jːɔː] │ἀθηναίοιν [a.t̪ʰɛː.nˈa˧˥.jːoi̯n]│ἀθηναίοις [a.t̪ʰɛː.nˈa˧˥.jːoi̯s] │
├─────────────┼────────────────────────────┼──────────────────────────────┼──────────────────────────────────┤
│datif(ionien)│ │ │ἀθηναίοισι [a.t̪ʰɛː.nˈa˧˥.jːoi̯.si] │
└─────────────┴────────────────────────────┴──────────────────────────────┴──────────────────────────────────┘
</code></pre>
<h3 id="32-verbes-thématiques--τρί̄ϐω">(3.2) verbes thématiques : τρί̄ϐω</h3>
<pre><code>word = "τρί̄ϐω"
infgrid = INFLECTIONES["grc.παιδεύω"].inflectAndExportAsHTML( input_parameters = {
"AIndPresent1S" : word,
"AIndImperfect1S" : None,
"AIndFuture1S" : None,
"AIndAorist_no_augment" : None,
"PIndFuture1S" : None,
"PIndAorist_no_augment" : None,
},
morphogrid = "fra__grc_paideuo",
formatstring = "ORTHO [PHONE]",
captiontitle = word,
tableborder = "1",
characters_output = {"grc::ignore makron":True},
)
print(infgrid)
τρί̄ϐω
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│ACTIF │
├──┬─────────┬───────────────────────────────────────┬───────────────────────────────────────┤
│ │ │ │ │
│ │ │indicatif │infinitif │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│ │ │τρίϐω [t̪rˈiː˧˥.bɔː] │τρίϐειν [t̪rˈiː˧˥.beːn] │
│ │présent │τρίϐεις [t̪rˈiː˧˥.beːs] │ │
│ │ │τρίϐει [t̪rˈiː˧˥.beː] │ │
│ │ │τρίϐομεν [t̪rˈiː˧˥.bo.men] │ │
│ │ │τρίϐετε [t̪rˈiː˧˥.be.t̪e] │ │
│ │ │τρίϐουσι [t̪rˈiː˧˥.boː.si] │ │
│ │ │τρίϐετον [t̪rˈiː˧˥.be.t̪on] │ │
│ │ │τρίϐετον [t̪rˈiː˧˥.be.t̪on] │ │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│ │ἔτριϐον [ˈet̪.riː.bon] │ │
│2S│imparfait│ἔτριϐες [ˈet̪.riː.bes] │ │
│3S│ │ἔτριϐε [ˈet̪.riː.be] │ │
│1P│ │ἐτρίϐομεν [et̪.rˈiː˧˥.bo.men] │ │
│2P│ │ἐτρίϐετε [et̪.rˈiː˧˥.be.t̪e] │ │
│3P│ │ἔτριϐον [ˈet̪.riː.bon] │ │
│2D│ │ἐτριϐέτην [et̪.riː.bˈe.t̪ɛːn] │ │
│3D│ │ἐτριϐέτην [et̪.riː.bˈe.t̪ɛːn] │ │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│ │ἔτριψα [ˈet̪.riːp.sa] │τρῖψαι [t̪rˈiː˥˧p.sai̯] │
│2S│aoriste │ἔτριψας [ˈet̪.riːp.sas] │ │
│3S│ │ἔτριψε [ˈet̪.riːp.se] │ │
│1P│ │ἐτρίψαμεν [et̪.rˈiː˧˥p.sa.men] │ │
│2P│ │ἐτρίψατε [et̪.rˈiː˧˥p.sa.t̪e] │ │
│3P│ │ἔτριψαν [ˈet̪.riːp.san] │ │
│2D│ │ἐτριψάτην [et̪.riːp.sˈa.t̪ɛːn] │ │
│3D│ │ἐτριψάτην [et̪.riːp.sˈa.t̪ɛːn] │ │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│ │τρίψω [t̪rˈiː˧˥p.sɔː] │τρίψειν [t̪rˈiː˧˥p.seːn] │
│2S│futur │τρίψεις [t̪rˈiː˧˥p.seːs] │ │
│3S│ │τρίψει [t̪rˈiː˧˥p.seː] │ │
│1P│ │τρίψομεν [t̪rˈiː˧˥p.so.men] │ │
│2P│ │τρίψετε [t̪rˈiː˧˥p.se.t̪e] │ │
│3P│ │τρίψουσι [t̪rˈiː˧˥p.soː.si] │ │
│2D│ │τρίψετον [t̪rˈiː˧˥p.se.t̪on] │ │
│3D│ │τρίψετον [t̪rˈiː˧˥p.se.t̪on] │ │
├──┴─────────┴───────────────────────────────────────┴───────────────────────────────────────┤
│PASSIF │
├──┬─────────┬───────────────────────────────────────┬───────────────────────────────────────┤
│ │ │ │ │
│ │ │indicatif │infinitif │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│ │ │τρίϐομαι [t̪rˈiː˧˥.bo.mai̯] │τριϐέσθαι [t̪riː.bˈes.t̪ʰai̯] │
│ │présent │τρίϐει [t̪rˈiː˧˥.beː] │ │
│ │ │τρίϐεται [t̪rˈiː˧˥.be.t̪ai̯] │ │
│ │ │τριϐόμεθα [t̪riː.bˈo.me.t̪ʰa] │ │
│ │ │τρίϐεσθε [t̪rˈiː˧˥.bes.t̪ʰe] │ │
│ │ │τρίϐονται [t̪rˈiː˧˥.bon.t̪ai̯] │ │
│ │ │τρίϐεσθον [t̪rˈiː˧˥.bes.t̪ʰon] │ │
│ │ │τρίϐεσθον [t̪rˈiː˧˥.bes.t̪ʰon] │ │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│ │ἐτριϐόμην [et̪.riː.bˈo.mɛːn] │ │
│2S│imparfait│ἐτρίϐου [et̪.rˈiː˧˥.boː] │ │
│3S│ │ἐτρίϐετο [et̪.rˈiː˧˥.be.t̪o] │ │
│1P│ │ἐτριϐόμεθα [et̪.riː.bˈo.me.t̪ʰa] │ │
│2P│ │ἐτρίϐεσθε [et̪.rˈiː˧˥.bes.t̪ʰe] │ │
│3P│ │ἐτρίϐοντο [et̪.rˈiː˧˥.bon.t̪o] │ │
│2D│ │ἐτρίϐεσθον [et̪.rˈiː˧˥.bes.t̪ʰon] │ │
│3D│ │ἐτριϐέσθην [et̪.riː.bˈes.t̪ʰɛːn] │ │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│ │ἐτρίφθην [et̪.rˈiː˧˥pʰ.t̪ʰɛːn] │τριφθῆναι [t̪riːpʰ.t̪ʰˈɛː˥˧.nai̯] │
│2S│aoriste │ἐτρίφθης [et̪.rˈiː˧˥pʰ.t̪ʰɛːs] │ │
│3S│ │ἐτρίφθην [et̪.rˈiː˧˥pʰ.t̪ʰɛːn] │ │
│1P│ │ἐτρίφθημεν [et̪.rˈiː˧˥pʰ.t̪ʰɛː.men] │ │
│2P│ │ἐτρίφθητε [et̪.rˈiː˧˥pʰ.t̪ʰɛː.t̪e] │ │
│3P│ │ἐτρίφθησαν [et̪.rˈiː˧˥pʰ.t̪ʰɛː.san] │ │
│2D│ │ἐτρίφθητον [et̪.rˈiː˧˥pʰ.t̪ʰɛː.t̪on] │ │
│3D│ │ἐτριφθήτην [et̪.riːpʰ.t̪ʰˈɛː˧˥.t̪ɛːn] │ │
├──┼─────────┼───────────────────────────────────────┼───────────────────────────────────────┤
│1S│ │τριφθήσομαι [t̪riːpʰ.t̪ʰˈɛː˧˥.so.mai̯] │τριφθήσεσθαι [t̪riːpʰ.t̪ʰˈɛː˧˥.ses.t̪ʰai̯] │
│2S│futur │τριφθήσει [t̪riːpʰ.t̪ʰˈɛː˧˥.seː] │ │
│3S│ │τριφθήσεται [t̪riːpʰ.t̪ʰˈɛː˧˥.se.t̪ai̯] │ │
│1P│ │τριφθησόμεθα [t̪riːpʰ.t̪ʰɛː.sˈo.me.t̪ʰa] │ │
│2P│ │τριφθήσεσθε [t̪riːpʰ.t̪ʰˈɛː˧˥.ses.t̪ʰe] │ │
│3P│ │τριφθήσονται [t̪riːpʰ.t̪ʰˈɛː˧˥.son.t̪ai̯] │ │
│2D│ │τριφθήσεσθον [t̪riːpʰ.t̪ʰˈɛː˧˥.ses.t̪ʰon] │ │
│3D│ │τριφθήσεσθον [t̪riːpʰ.t̪ʰˈɛː˧˥.ses.t̪ʰon] │ │
└──┴─────────┴───────────────────────────────────────┴───────────────────────────────────────┘
</code></pre>
<h2 id="4-installation">(4) installation</h2>
<p>Le projet est hébergé sur <a href="https://github.com/suizokukan/inflectiones">Github</a>; le code utilise d'autres bibliothèques que j'ai développées : <a href="https://github.com/suizokukan/dchars">DChars</a>, <a href="https://github.com/suizokukan/dictinfos">DictInfos</a>, <a href="https://github.com/suizokukan/infgrid">InfGrid</a>, <a href="https://github.com/suizokukan/orthophone">OrthoPhone</a> et <a href="https://github.com/suizokukan/phoseg">Phoseg</a>. Placez-les à la racine du répertoire où se trouve <code>inflectiones/</code> et lancez par exemple le script suivant :</p>
<pre><code>from inflectiones.inflectiones import INFLECTIONES
htmldata = INFLECTIONES["grc.λόγος"].inflectAndExportAsHTML( input_parameters = {
"Nsg" : "ἀθηναῖος",
"gender" : "masculine",
},
morphogrid = "fra__grc_logos",
formatstring = "ORTHO [PHONE]",
captiontitle = word,
tableborder = "1",
characters_output = {"grc::ignore makron":True},
)
print(htmldata)
</code></pre>
<h2 id="5-fonctionnement-dinflectiones">(5) fonctionnement d'Inflectiones</h2>
<p>Il faut comprendre que cette bibliothèque génère des informations orthographiques et phonétiques. C'est la bibliothèque <strong>OrthoPhone</strong> qui gère le lien entre ces deux types d'informations :</p>
<p>objets DChars + objet Phoseg = OrthoPhone</p>
<p>Grâce à <strong>OrthoPhone</strong>, il est par exemple possible de supprimer un suffixe à un mot et d'obtenir le résultat orthographique et phonétique attendu. C'est encore <strong>OrthoPhone</strong> qui gère le délicat problème de l'accentuation ou des signes diacritiques ayant une signification phonétique. Ainsi, l'application de la loi « σωτῆρα » se trouve dans <a href="https://github.com/suizokukan/orthophone/blob/master/orthophone/languages/grc/orthophone.py">OrthoPhoneGRC.setTheAccentOnThePenult()</a>.</p>
<p>En se limitant à la partie d'OrthoPhone liée au grec ancien, voici quelques exemples de fonctions :</p>
<pre><code>o remove_any_initial_vocalic_breathing()
o setTheAccentuation(new_accent='ὀξύτονος', ... 'περισπώμενος', etc. )
o hasAnAnacliticAccent()
</code></pre>
<p><strong>Inflectiones</strong> remplit des grilles de flexion créées par le module <strong>InfGrid</strong>. Par exemple, la grille <code>fra__grc_logos</code> prévoit des cellules du type "cas=nominatif;nombre=singulier". Chaque object <strong>Infgrid</strong> contient un dictionnaire associant le nom d'une cellule à un objet <strong>OrthoPhone</strong>.</p>
<p>Enfin, un objet <strong>Infgrid</strong> contient le code HTML du tableau qu'il sert à remplir : voyez un exemple de ces "templates" <a href="https://github.com/suizokukan/infgrid/blob/master/infgrid/morphogrids/fra__grc_logos.py">ici</a>.</p>
<h2 id="6-et-à-lavenir">(6) et à l'avenir ?</h2>
<p>Je cherche des hellénistes susceptibles de relire mes tableaux et des Pythoneux pour étendre Inflectiones à d'autres langues. Si vous êtes intéressés, faites-moi signe !</p></div><div><a href="https://linuxfr.org/news/inflectiones-declinaisons-et-conjugaisons-en-grec-ancien.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/101251/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/inflectiones-declinaisons-et-conjugaisons-en-grec-ancien#comments">ouvrir dans le navigateur</a>
</p>
Xavier FaureBenoît Sibaudtuiu polhttps://linuxfr.org/nodes/101251/comments.atomtag:linuxfr.org,2005:Post/336292014-01-31T10:14:51+01:002014-01-31T10:14:51+01:00Correction orthographique : vérification abusive<p>bonjour,</p>
<p>avec firefox, sur linuxfr (uniquement), presque chaque mot que je tape dans le champs markitup (commentaire, journal etc) est souligné en rouge comme étant mal orthographié (alors que ce n'est pas le cas). Il s'agit sans doute d'un problème de réglage, mais pourtant dans les options > contenu, la langue indiquée est premier est bien le français. Je n'ai pas cela avec chrome. (Le rendu de prévisualisation s'affiche correctement sous firefox)</p>
<p>Savez-vous de quoi ça peut venir ? Serait-il également possible de désactiver la vérification d'orthographe sur linuxfr par rapport aux options du compte ? </p>
<p>Mon navigateur gère a priori correctement celle-ci (sur les autres sites je n'ai pas ce problème), aussi je préfèrerais l'utiliser.</p><div><a href="https://linuxfr.org/forums/general-general/posts/correction-orthographique-verification-abusive.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/101126/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/general-general/posts/correction-orthographique-verification-abusive#comments">ouvrir dans le navigateur</a>
</p>
fravashyohttps://linuxfr.org/nodes/101126/comments.atomtag:linuxfr.org,2005:Diary/331092012-09-12T22:34:10+02:002012-09-12T22:34:10+02:00Grammalecte 0.2 est de sortie<p>Grammalecte est un correcteur grammatical pour LibreOffice. Il est similaire à <a href="http://www.languagetool.org/">LanguageTool</a>, sauf qu'il est développé en Python.<br />
En outre, sa création est partie du fait que LanguageTool propose trop de faux positifs.</p>
<p>C'est ainsi que la version 0.2 est sortie le trois septembre, et pour les notes de version, <a href="http://www.dicollecte.org/thread.php?prj=fr&t=283">c'est par là.</a></p><div><a href="https://linuxfr.org/users/jiehong/journaux/grammalecte-0-2-est-de-sortie.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/95585/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/jiehong/journaux/grammalecte-0-2-est-de-sortie#comments">ouvrir dans le navigateur</a>
</p>
Jiehonghttps://linuxfr.org/nodes/95585/comments.atomtag:linuxfr.org,2005:Diary/329922012-08-18T18:02:53+02:002012-08-18T18:02:53+02:00La langue française, un standard commun ?Licence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<h2 id="sommaire">Sommaire</h2>
<ul><li>
<ul><li>
<a href="#toc_0">Introduction</a>
</li>
<li>
<a href="#toc_1">Les règles de base</a>
</li>
<li>
<a href="#toc_2">Les outils</a>
<ul><li>
<a href="#toc_3">Dictionnaires</a>
</li>
<li>
<a href="#toc_4">Conjugaison</a>
</li>
<li>
<a href="#toc_5">Grammaire</a>
</li>
</ul></li>
<li>
<a href="#toc_6">Conclusion</a>
</li>
</ul></li>
</ul><h3 id="toc_0">Introduction</h3>
<p>Fréquentant ce site depuis maintenant plusieurs années je n'ai pu m'empêcher de remarquer que, parfois, la communication entre deux contributeurs se heurtait à une différence de niveau de maîtrise de la langue française. Je souhaite donc partager avec vous les solutions dont je pense qu'elles peuvent, sinon régler le problème, améliorer la communication entre nous tous "LinuxFRiens".</p>
<h3 id="toc_1">Les règles de base</h3>
<ul><li>Faire, chacun à son niveau, l'effort de se rapprocher du standard bien établi que l'on nomme <em>Langue française</em>.</li>
<li>Accepter la critique et la correction d'autrui, se remettre en question.</li>
<li>S'astreindre à une relecture consciencieuse de sa propre prose avant de faire le pas de la publication.</li>
<li>Accepter la déviance de certains de nos interlocuteurs, mais la combattre avec mansuétude, fermeté et humanisme.</li>
</ul><h3 id="toc_2">Les outils</h3>
<p>Ces béquilles informatiques peuvent parfois parer nos faiblesses bien humaines.</p>
<h4 id="toc_3">Dictionnaires</h4>
<p>Le <a href="http://fr.wiktionary.org/wiki/Wiktionnaire:Page_d%E2%80%99accueil">Wiktionnaire</a>, un incontournable. C'est un wiki utilisant le même moteur que Wikipdia (Mediawiki). Il est simple, sobre et efficace.</p>
<p>Le <a href="http://www.cnrtl.fr">CNRTL</a> propose au sein d’un portail unique, un ensemble de ressources linguistiques informatisées et d’outils de traitement de la langue. Notamment des dictionnaires français <a href="http://www.cnrtl.fr/dictionnaires/anciens">anciens</a> et <a href="http://www.cnrtl.fr/dictionnaires/modernes">modernes</a>. Personnellement je fais mes requêtes sur <a href="http://www.cnrtl.fr/definition">http://www.cnrtl.fr/definition</a>. Les définitions renvoyées par cet outil peuvent paraître trop complexes (on m'a déjà fait la remarque) par rapport au Wiktionary. Le plus de ce dictionnaire est que pour chaque définition de mot, il indique les extraits de la littérature française (au sens large) dans laquelle ce mot est apparu en premier. Par exemple pour espérance, voici ce que ce dictionnaire nous retournera, j'ai retiré certains passages par soucis de concision :</p>
<pre>
<code class="text">ESPÉRANCE, subst. fém.
A.− PHILOS., PSYCHOL.
1. Disposition de l'âme qui porte l'homme à considérer dans l'avenir un bien important qu'il désire et qu'il croit pouvoir se réaliser. L'espérance est le désir joint à un jugement (Destutt de Tr., Idéol.,1, 1801, p. 237).Cette belle espérance, qui consiste à croire sans preuve, à adorer ce qu'on ignore et à attendre avec ferveur ce qu'on ne sait pas du tout (Flaub., Tentation,1849, p. 344).Et l'espérance n'espère pas l'espérance, mais d'heureux lendemains (Jankél., Je-ne-sais-quoi,1957, p. 240):
[...]
a) RELIG. CHRÉT. Vertu surnaturelle par laquelle les croyants attendent de Dieu, avec confiance, sa grâce en ce monde et la gloire éternelle dans l'autre[...]
− LITT. (cf. L'Enfer de Dante) :
5. « Je n'aime point, disait M., ces femmes impeccables, au-dessus de toute faiblesse. Il me semble que je vois sur leur porte le vers du Dante sur la porte de l'enfer : Lasciate ogni speranza, voi che intrate. Vous qui entrez ici, laissez toute espérance. » C'est la devise des damnés. Chamfort, Caract. et anecd.,1794, p. 172
− MYTH. [La vérité] doit demeurer ensevelie dans le sein du sage, comme l'espérance au fond de la boîte de Pandore (Chateaubr., Essai Révol.,t. 2, 1797, p. 268).
c) Locutions
− Contre toute espérance. Contre toute attente, alors que personne ne s'y attendait, ne l'espérait (cf. Rob., Lar. Lang. fr.).
− De grande/belle/haute/riche espérance (vieilli). Dont on espère beaucoup; qui donne dès maintenant une haute idée de ce que sera l'avenir. Jeune homme de la plus haute espérance (Delille, Homme des champs,1800, p. xix):
[...]
♦ Avoir des espérances. Être enceinte. Laura m'a confié qu'elle avait des espérances; mais chut!... elle préfère qu'on ne le sache pas encore (Gide, Faux-monn.,1925, p. 1122).
♦ (Avoir des) espérances. (Avoir un) héritage en perspective. Monsieur diplômé, (...) recherche en vue mariage jeune personne (...) avec dot minimum 500 000 et espér. possible (Montherl., J. filles,1936, p. 925):
9. ... je fis remarquer à mon ami que d'excellentes gens emploient communément le mot « espérances » pour désigner la fortune qui doit leur échoir lorsqu'ils auront eu le malheur de devenir orphelins. « Cent mille francs de dot, sans compter les espérances... » Petite phrase coutumière et qui n'a pas l'air méchant, mais qui ouvre un jour, comme on dit, sur les bas-fonds humains. Mauriac, Journal 1,1934, p. 60.
Prononc. et Orth. : [εspeʀ ɑ ̃:s]. D'apr. Grammont Prononc. 1958, p. 41 : [εspε ʀ ɑ ̃:s], p. harmonis. vocalique. Ds Ac. dep. 1694. Étymol. et Hist. 1. Ca 1100 n'aveir esperance de « ne pas s'attendre à » (Roland, éd. J. Bédier, 1411); 2. 1remoitié xiies. esperance « disposition de l'âme qui nous fait considérer ce que nous désirons comme devant se réaliser » (Psautier Oxford, éd. Fr. Michel, LXI, 7, p. 79); 3. mil. xiies. « personne ou chose sur laquelle on fonde son espérance » (Psautier Cambridge, éd. Fr. Michel, LXI, 8, p. 105). Dér. du rad. de espérer*; suff. -ance*. Fréq. abs. littér. : 6 700. Fréq. rel. littér. : xixes. : a) 15 418, b) 9 311; xxes. : a) 7 534, b) 5 815. Bbg. Gossen (C.-T.). Ma plus douce espérance est de perdre l'espoir. Z. rom. Philol. 1955, t. 71, pp. 337-364.
</code>
</pre><h4 id="toc_4">Conjugaison</h4>
<p>La conjugaison c'est l'art d'accorder genre et nombre dans le passé, le présent et futur.</p>
<p><a href="http://perso.b2b2c.ca/sarrazip/dev/verbiste.html">Verbiste</a> est un système de conjugaison française. Il s'agit d'une librairie écrite en C++, de deux programmes aussi écrits en C++ qui peuvent être utilisés à la ligne de commande ou à partir d'un autre programme, et d'une applet GNOME. Il est sûrement disponible dans les dépots de votre distribution favorite.</p>
<p><a href="http://leconjugueur.lefigaro.fr">Leconjugueur.com</a> est le conjugueur en ligne du site du journal <em>Le Figaro</em>. Il y a de la publicité mais il est plus complet que Verbiste. Il semble qu'il y ait <a href="http://leconjugueur.lefigaro.fr/frtelechargelinux.php">un client lourd pour GNU/Linux</a> mais il ne doit pas être libre et je ne l'ai jamais testé.</p>
<h4 id="toc_5">Grammaire</h4>
<p>La grammaire c'est le fondement d'une langue ou d'un langage.</p>
<p><a href="http://grammaire.reverso.net">Reverso.net</a> semble être une ressource de qualité. Je ne l'ai jamais utilisé mais il doit permettre d'apprendre ou réviser sa grammaire de manière efficace. Par exemple la page sur la proposition relative ressemble à ça :</p>
<pre>
<code class="text">La proposition relative
La proposition relative est une subordonnée introduite par un pronom relatif (qui, que, quoi, dont, où, lequel, quiconque). a) C'est le bureau dans lequel il a toujours travaillé. b) Vous compléterez le dossier que vous avez reçu. c) Je l'aperçois qui arrive en toute hâte. d) Qui veut voyager loin ménage sa monture. e) Embrassez qui vous voudrez. La proposition relative est généralement complément de l'antécédent du pronom relatif.
a) La proposition dans lequel il a toujours travaillé est complément du nom antécédent bureau (tout comme le serait du directeur dans une phrase telle que C'est le bureau du directeur).
b) La proposition que vous avez reçu est complément du nom antécédent dossier.
c) La proposition qui arrive en tout hâte est complément du pronom antécédent l'.
Quand le pronom relatif n'a pas d'antécédent, la relative est sujet (d) ou complément (e) du verbe de la principale.
Le pronom relatif, contrairement à la conjonction de subordination, a toujours une fonction dans la relative. a) lequel : complément circonstanciel du verbe a travaillé. b) que : complément d'objet direct du verbe avez reçu. c) qui : sujet du verbe arrive. d) qui : sujet du verbe veut voyager. e) qui : complément d'objet direct du verbe voudrez. Le verbe de la relative peut être à l'infinitif. Dans ce cas, le sujet n'est pas exprimé. Il répertorie les organismes à qui adresser une demande de subventions. La proposition relative peut ne pas comporter de verbe, notamment avec dont et voici, voilà. C'est un statut particulier puisque normalement toute proposition se compose d'un sujet et d'un verbe. Aliette a eu neuf enfants dont huit filles. L'homme que voici est notre nouveau directeur.
</code>
</pre><h3 id="toc_6">Conclusion</h3>
<p>La clé pour bien écrire c'est de lire beaucoup, ça aide énormément. À force de <em>voir</em> le français écrit correctement on arrive à l'intégrer et à l'écrire mieux. Savoir s'exprimer dans un français correct, un français commun, est le pré-requis à une diffusion efficace de ses idées à l'oral et surtout à l'écrit. J'ai conscience que cet effort peut paraître insurmontable, mais c'est une obligation inévitable.</p>
<p>J'espère que ce journal ne vous aura pas trop chauffé les neurones car en cette période de canicule les miens semblent fondre de par cette chaleur diabolique.</p><div><a href="https://linuxfr.org/users/m4rotte/journaux/la-langue-francaise-un-standard-commun.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/95237/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/m4rotte/journaux/la-langue-francaise-un-standard-commun#comments">ouvrir dans le navigateur</a>
</p>
Marotte ⛧https://linuxfr.org/nodes/95237/comments.atomtag:linuxfr.org,2005:News/329572012-05-15T09:21:55+02:002012-05-15T09:34:27+02:00Apache OpenOffice 3.4, LibreOffice 3.5.3 et LanguageTool 1.7<div><p>Les plus attentifs d'entre vous (notamment ceux qui lisent les <a href="http://linuxfr.org/journaux">journaux</a> de ce site) auront remarqué qu'une nouvelle version de la suite bureautique libre OpenOffice.org a été publiée par la Fondation Apache. Ainsi, <strong>Apache OpenOffice 3.4</strong> est donc officiellement disponible : il démarre plus rapidement et… la note de publication est disponible pour les curieux.</p>
<p>Du côté <strong>LibreOffice</strong>, une mise à jour corrective de la branche courante 3.5 vient d'être annoncée (3.5.3) - la branche 3.4 a également connu une mise à jour. Pour des nouveautés, il faudra attendre LibreOffice 3.6 prévue pour cet été.</p>
<p>Mais quelles sont les différences entre ces deux suites bureautiques libres et multi-plateforme (Linux, MacOS X et Windows) dérivées d'OpenOffice.org ? Bonne question. Michael Meeks (de SUSE) a formulé <a href="http://people.gnome.org/~michael/blog/2012-04-26-ooo-comparison.html">une réponse assez longue et minutieuse</a>.</p>
<p>Enfin, que vous utilisiez l'une ou l'autre de ces deux suites, vous serez sans doute intéressés par la nouvelle version de <strong>LanguageTool</strong> le correcteur grammatical multilingue. Ses améliorations concernant la prise en charge du français sont particulièrement appréciables.</p></div><ul><li>lien nᵒ 1 : <a title="http://www.openoffice.org/news/aoo34.html" hreflang="en" href="https://linuxfr.org/redirect/82015">The Apache OpenOffice Project Announces Apache OpenOffice 3.4</a></li><li>lien nᵒ 2 : <a title="https://cwiki.apache.org/confluence/display/OOOUSERS/AOO+3.4+Release+Notes" hreflang="en" href="https://linuxfr.org/redirect/82016">AOO 3.4 Release Notes</a></li><li>lien nᵒ 3 : <a title="http://www.openoffice.org/fr/" hreflang="fr" href="https://linuxfr.org/redirect/82017">Projet francophone Apache OpenOffice</a></li><li>lien nᵒ 4 : <a title="http://wiki.documentfoundation.org/ReleasePlan#3.5_release" hreflang="en" href="https://linuxfr.org/redirect/82018">Plan de route LibreOffice</a></li><li>lien nᵒ 5 : <a title="http://fr.libreoffice.org/home/" hreflang="fr" href="https://linuxfr.org/redirect/82019">LibreOffice</a></li><li>lien nᵒ 6 : <a title="http://people.gnome.org/~michael/blog/2012-04-26-ooo-comparison.html" hreflang="en" href="https://linuxfr.org/redirect/82020">A LibreOffice/Apache OpenOffice Comparison</a></li><li>lien nᵒ 7 : <a title="http://www.languagetool.org" hreflang="en" href="https://linuxfr.org/redirect/82021">LanguageTool : Style and Grammar Checker</a></li><li>lien nᵒ 8 : <a title="http://linuxfr.org/users/icecat/journaux/openoffice-n-est-pas-mort" hreflang="fr" href="https://linuxfr.org/redirect/82022">Journal DLFP : OpenOffice n'est pas mort !</a></li></ul><div></div><div><a href="https://linuxfr.org/news/apache-openoffice-3-4-libreoffice-3-5-3-et-languagetool-1-7.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/94130/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/apache-openoffice-3-4-libreoffice-3-5-3-et-languagetool-1-7#comments">ouvrir dans le navigateur</a>
</p>
jBenoît Sibaudpatrick_ghttps://linuxfr.org/nodes/94130/comments.atomtag:linuxfr.org,2005:Tracker/6482011-10-30T22:39:22+01:002018-03-25T15:36:12+02:00Rédaction : LanguageTool Style and Grammar Checker<p><a href="http://www.languagetool.org/">Language tool</a> est un outil (en java) de vérification de style et de grammaire qui supporte le français. Il faudrait regarder si c'est pertinent de l'utiliser sur LinuxFr.org et, si oui, comment.</p> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/87990/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/suivi/languagetool-style-and-grammar-checker#comments">ouvrir dans le navigateur</a>
</p>
Bruno Michelhttps://linuxfr.org/nodes/87990/comments.atomtag:linuxfr.org,2005:News/286102011-10-11T09:39:16+02:002021-07-11T19:28:41+02:00OpenDocument 1.2 normalisé par l’OASISLicence CC By‑SA http://creativecommons.org/licenses/by-sa/3.0/deed.fr<div><p>L’organisme de normalisation OASIS (<em>Organization for the Advancement of Structured Information Standards</em>) vient de ratifier les spécifications du <a href="https://fr.wikipedia.org/wiki/format%20ouvert" title="Définition Wikipédia">format ouvert</a> de bureautique <em>Open Document</em> (ODF), en version 1.2.</p>
<p>Petit rappel historique :</p>
<ul>
<li>mai 2005, OpenDocument 1.0 normalisé par l’OASIS ;</li>
<li>mai 2006, OpenDocument 1.0 normalisé par l’ISO (ISO/IEC 26300:2006) ;</li>
<li>février 2007, OpenDocument 1.1 normalisé par l’OASIS ;</li>
<li>5 octobre 2011, OpenDocument 1.2 normalisé par l’OASIS ;</li>
<li>actuellement OpenDocument 1.1 est en cours d’évaluation par l’ISO (qui ensuite devrait s’attaquer dans la foulée à la version 1.2).</li>
</ul>
<p>ODF 1.2 est déjà disponible (en tout ou partie) dans les logiciels bureautiques libres Abiword, Calligra, Gnumeric, LibreOffice, Apache OpenOffice.org.</p>
<p>Parmi les nouveautés, les signatures numériques, du <a href="http://www.robweir.com/blog/2007/10/odf-enters-semantic-web.html">Web sémantique</a> et le langage pour tableur <a href="https://fr.wikipedia.org/wiki/OpenFormula" title="Définition Wikipédia">OpenFormula</a>.</p>
<p>Au passage, rappelons l’existence de deux correcteurs grammaticaux libres pour la langue française pour LibreOffice et OpenOffice.org, sous forme d’extensions (ça serait aussi pratique comme extension dans un navigateur d’ailleurs) :</p>
<ul>
<li>Grammalecte (en Python) ;</li>
<li>LanguageTool (en Java).</li>
</ul>
</div><ul><li>lien nᵒ 1 : <a title="http://www.pcinpact.com/actu/news/66296-oasis-odf-12-nouveautes-standardisation.htm" hreflang="fr" href="https://linuxfr.org/redirect/73404">PC INpact : « L'OASIS standardise la version 1.2 du format bureautique ODF »</a></li><li>lien nᵒ 2 : <a title="http://www.oasis-open.org/news/pr/odf-1-2-approval" hreflang="en" href="https://linuxfr.org/redirect/73405">OASIS : "Members Approve OpenDocument Format (ODF) Version 1.2 as OASIS Standard"</a></li><li>lien nᵒ 3 : <a title="http://fr.wikipedia.org/wiki/Open_Document" hreflang="fr" href="https://linuxfr.org/redirect/73406">Wikipédia : Open Document Format</a></li><li>lien nᵒ 4 : <a title="http://linuxfr.org/news/la-sp%C3%A9cification-d%E2%80%99odf12-est-termin%C3%A9e" hreflang="fr" href="https://linuxfr.org/redirect/73407">LinuxFr.org (mars) : « La spécification d’ODF 1.2 est terminée »</a></li><li>lien nᵒ 5 : <a title="http://www.dicollecte.org/grammalecte/index.php" hreflang="fr" href="https://linuxfr.org/redirect/73408">Grammalecte</a></li><li>lien nᵒ 6 : <a title="http://www.languagetool.org/" hreflang="en" href="https://linuxfr.org/redirect/73409">LanguageTool</a></li></ul><div><h2 id="toc-quelques-fonctionnalités-intéressantes-">Quelques fonctionnalités intéressantes :</h2>
<ul>
<li>
<strong>intégration d’OpenFormula</strong>. Les précédentes versions de la norme ne décrivaient pas le stockage des formules des feuilles de calcul dans les fichiers, c’est désormais chose faite ;</li>
<li>
<strong>système de métadonnées sémantiques</strong> basée sur RDF/XML ;</li>
<li>
<strong>signature numérique des documents</strong>. La technologie, précédemment utilisée dans OpenOffice.org, <a href="http://fr.wikipedia.org/wiki/XML_Signature">XML-Dsig</a>, est utilisée.</li>
</ul>
</div><div><a href="https://linuxfr.org/news/opendocument-12-normalise-par-l-oasis.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/87750/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/opendocument-12-normalise-par-l-oasis#comments">ouvrir dans le navigateur</a>
</p>
Benoît Sibaudhttps://linuxfr.org/nodes/87750/comments.atom