<?xml version="1.0" encoding="ISO-8859-15"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#"
      xmlns:dc="http://purl.org/dc/elements/1.1/">
  <title mode="escaped" type="text/html">Agnes Souque</title>
  <tagline>ATOM Feed - Agnes Souque</tagline>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque" />
  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque</id>
  <generator url="http://cps-project.org" version="3">CPS</generator>
  <modified>2007-03-15 19:55:51</modified>

  <link rel="service.feed"
        href=" http://blogs.nuxeo.com/sections/blogs/agnes-souque/atomFeed"
        title="Agnes Souque" type="application/atom+xml" />
  <link rel="service.post"
        href=" http://blogs.nuxeo.com/sections/blogs/agnes-souque/postAtom"
        title="Agnes Souque" type="application/atom+xml" />
  <link rel="service.categories"
        href=" http://blogs.nuxeo.com/sections/blogs/agnes-souque/atomCategories"
        title="Agnes Souque" type="application/atom+xml" />

  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">The end of my work on French grammar checking</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_07_19_the-end-of-my-work-on-french-grammar-checking" />
  <issued>2007-07-23T14:57:48Z</issued>
  <modified>2007-07-23T14:57:48Z</modified>
  <created>2007-07-19T14:31:59Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">I have finished my first work on LanguageTool. I have adapted the tool to
  French grammar checking. The following resume presents the end of this
  work.
   You can download the report (
  Mémoire) and the slides ( 
  Soutenance). They are written in French.
   
   

  Work on rules
  As I explained 
  previously, at the beginning of the French grammar checker project,
  ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">I have finished my first work on LanguageTool. I have adapted the tool to
  French grammar checking. The following resume presents the end of this
  work.&lt;br /&gt;
   You can download the report (&lt;a
  href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_07_13_memoire-slides-correction-grammaticale-du-francais/downloadFile/attachedFile_f0/AS_Memoire_M2.pdf?nocache=1185202563.49"&gt;
  Mémoire&lt;/a&gt;) and the slides ( &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_07_13_memoire-slides-correction-grammaticale-du-francais/downloadFile/attachedFile_1_f0/Soutenance.pdf?nocache=1184331787.07"&gt;
  Soutenance&lt;/a&gt;). They are written in French.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h2&gt;Work on rules&lt;/h2&gt;
  As I explained &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_20_resume-about-the-french-grammar-checker-project"&gt;
  previously&lt;/a&gt;, at the beginning of the French grammar checker project,
  Myriam&amp;nbsp;Lechelt has worked on An&amp;nbsp;Gramadóir. She has written many
  disambiguation and correction rules. Since An&amp;nbsp;Gramadóir was limited and
  did not really suit to French, it was abandoned.&lt;br /&gt;
   &lt;br /&gt;
   During my work, I have converted An&amp;nbsp;Gramadóir's rules to LanguageTool.
  Thanks to Marcin&amp;nbsp;Mi&amp;#322;kowski who implemented a disambiguator, according
  to my instructions, I could import disambiguation rules as well as
  correction rules. Moreover, I simplified them a lot and I considerably
  reduced their number thanks to the XML language.&lt;br /&gt;
   &lt;br /&gt;
   Then, I have analysed a corpus of mistakes (V. Lucci et A. Millet, 1994,
  &lt;i&gt;L'orthographe de tous les jours, enquête sur les pratiques
  orthographiques des français&lt;/i&gt;, Editions Champion) and I have
  extracted&amp;nbsp; new grammar rules from it.&lt;br /&gt;
   &lt;br /&gt;
   LanguageTool can detect the following kind of mistakes :&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;phonetic proximity (confusion of homophones like ont and on, ça and sa,
   etc.)&lt;/li&gt;
  &lt;/ul&gt;

  &lt;ul&gt;
   &lt;li&gt;mistakes in verb phrases (confusion between infinitive and past
   participle, conjugated form and past participle, etc.)&lt;/li&gt;
  &lt;/ul&gt;

  &lt;ul&gt;
   &lt;li&gt;subject-verb agreement (personal pronoun or noun phrase with only a
   determiner and a noun)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;br /&gt;
   

  &lt;h2&gt;Limits of the formalism&lt;/h2&gt;
  While working on the rules, I made tests that showed me the limits of the
  formalism of LanguageTool. Because of the rigid pattern matching on which it
  is based, if the patterns described in the rules do not exactly match the
  text, the rules become inefficient and prevent some mistakes from being
  detected. Moreover, it is necessary to foresee every wrong combination of
  words to describe them in the rules. It leads to a combinatory explosion of
  the number of rules, especially in noun phrases.&lt;br /&gt;
   &lt;br /&gt;
   The formalism also generates lots of wrong alarms, because of ambiguities
  or wrong tags. Some mistakes can be detected simultaneously several times by
  different rules. And when a word is wrong, it can cause wrong alarms on
  nearby words, since the rules are based on the context.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h2&gt;New formalism&lt;/h2&gt;
  I have developed a new formalism to improve French grammar checking in
  LanguageTool. It is based on chunks and unification of features structures
  (see &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_20_resume-about-the-french-grammar-checker-project"&gt;
  &lt;i&gt;An alternative with chunks and unification&lt;/i&gt;&lt;/a&gt;). I mix a contextual
  syntactic theory (chunks, &lt;i&gt;Abney&lt;/i&gt;) and a generative syntactic theory
  (unification, &lt;i&gt;Chomsky&lt;/i&gt;). This is not a typical combination, but it
  makes possible to go further in grammar checking by delimiting an area in
  the sentence where all words must agree. It is then no longer necessary to
  describe all wrong combinations of words. Instead of listing agreement
  mistakes, inconsistencies are detected in phrases.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h2&gt;Conclusion&lt;/h2&gt;
  Thanks to my work for my MPhil, French grammar checking is available for
  OpenOffice.org. But there is still a lot of work left. It is necessary to
  create a tool compatible with the new formalism, and to build and analyse a
  corpus of mistakes to write new grammar rules.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h3&gt;A new approach for grammar checking&lt;/h3&gt;
  To improve grammar checking, I am considering another method which consists
  in doing at the same time the morphosyntactic analysis and the grammar
  checking, while the sentence is read. This "left-right" method is based on
  the principle of latencies (&lt;i&gt;Tesnières&lt;/i&gt;, 1959). With the declaration of
  what is expected after a word or a phrase, inconsistencies can be detected,
  instead of listing all possible mistakes.&lt;br /&gt;
   This approach will also solve the problem of the vicious circle in grammar
  checking. Indeed, for mistakes to be detected, the tagging must not be
  wrong. But for it to be correct, the text must not contain any
  mistake...&lt;br /&gt;</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_07_19_the-end-of-my-work-on-french-grammar-checking</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_07_19_the-end-of-my-work-on-french-grammar-checking/atom?2007_07_19_the-end-of-my-work-on-french-grammar-checking"
        title="Edit Here - The end of my work on French grammar checking" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Mémoire et slides (Correction grammaticale du français)</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_07_13_memoire-slides-correction-grammaticale-du-francais" />
  <issued>2007-07-23T14:56:16Z</issued>
  <modified>2007-07-23T14:56:16Z</modified>
  <created>2007-07-13T12:59:53Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Voici mon mémoire de recherche ainsi que les slides de soutenance.
  
  Le travail que j'ai effectué est integré à LanguageTool et utilisable dans
  OpenOffice.org en tant qu'extension. Le fichier ainsi que les instructions
  d'installation sont disponibles sur le site de LanguageTool. 
  
  D'autres personnes ont commencé à écrire de nouvelles règles pour le
  français, pour augmenter la ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">Voici mon mémoire de recherche ainsi que les slides de soutenance.&lt;br /&gt;
  &lt;br /&gt;
  Le travail que j'ai effectué est integré à LanguageTool et utilisable dans
  OpenOffice.org en tant qu'extension. Le fichier ainsi que les instructions
  d'installation sont disponibles sur le site de &lt;a
  href="http://www.languagetool.org/"&gt;LanguageTool&lt;/a&gt;. &lt;br /&gt;
  &lt;br /&gt;
  D'autres personnes ont commencé à écrire de nouvelles règles pour le
  français, pour augmenter la couverture de correction de LanguageTool. La
  base de règles évolue donc régulièrement.&lt;br /&gt;
  &lt;br /&gt;
  Il reste encore beaucoup de travail...&lt;br /&gt;</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_07_13_memoire-slides-correction-grammaticale-du-francais</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_07_13_memoire-slides-correction-grammaticale-du-francais/atom?2007_07_13_memoire-slides-correction-grammaticale-du-francais"
        title="Edit Here - Mémoire et slides (Correction grammaticale du français)" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Bilan du travail sur le correcteur grammatical LanguageTool</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_07_13_bilan-du-travail-sur-correcteur-grammatical-languagetool" />
  <issued>2007-07-13T12:26:22Z</issued>
  <modified>2007-07-13T12:26:22Z</modified>
  <created>2007-07-13T12:26:21Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">
  
  J'ai terminé mon premier travail sur LanguageTool, qui consistait à adapter
  cet outil à la correction grammaticale du français. Voici un résumé qui
  présente la fin de ce travail.
  

  Travail sur les règles
  Grâce à Marcin Mi&amp;#322;kowski qui a développé un désambiguïseur selon mes
  indications, j'ai pu convertir au formalisme de LanguageTool toutes les
  règles de ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">&lt;br /&gt;
  &lt;br /&gt;
  J'ai terminé mon premier travail sur LanguageTool, qui consistait à adapter
  cet outil à la correction grammaticale du français. Voici un résumé qui
  présente la fin de ce travail.&lt;br /&gt;
  &lt;br /&gt;

  &lt;h2&gt;Travail sur les règles&lt;/h2&gt;
  Grâce à Marcin&amp;nbsp;Mi&amp;#322;kowski qui a développé un désambiguïseur selon mes
  indications, j'ai pu convertir au formalisme de LanguageTool toutes les
  règles de désambiguïsation et de correction écrites pour An&amp;nbsp;Gramadóir.
  Le langage XML m'a permis de beaucoup simplifier les règles et de réduire
  leur nombre en faisant des regroupements.&lt;br /&gt;
  &lt;br /&gt;
  J'ai par la suite analysé un corpus de fautes (V. Lucci et A. Millet, 1994,
  &lt;i&gt;L'orthographe de tous les jours, enquête sur les pratiques
  orthographiques des français&lt;/i&gt;, Éditions Champion) afin d'en extraire de
  nouvelles règles de correction.&lt;br /&gt;
  &lt;br /&gt;
  LanguageTool détecte actuellement des erreurs :&lt;br /&gt;

  &lt;ul&gt;
   &lt;li&gt;de proximité phonétique (confusion d'homophones : &lt;i&gt;ça/sa, ont/on,
   cet/cette/c'est/ces,&lt;/i&gt; etc.)&lt;/li&gt;
  &lt;/ul&gt;
  d'accord dans le syntagme nominal (en genre et en nombre)&lt;br /&gt;

  &lt;ul&gt;
   &lt;li&gt;dans le groupe verbal (confusion infinitif et participe passé, forme
   conjuguée et participe passé, etc.)&lt;/li&gt;
  &lt;/ul&gt;

  &lt;ul&gt;
   &lt;li&gt;d'accord sujet-verbe (pronom personnel sujet ou syntagme nominal simple
   : déterminant + nom)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;br /&gt;

  &lt;h2&gt;Limites du formalisme&lt;/h2&gt;
  Avec des tests effectués lors du travail sur les règles, j'ai pu constater
  les faiblesses du formalisme de LanguageTool. Il se fonde sur le
  &lt;i&gt;pattern-matching&lt;/i&gt; rigide, ce qui implique que si les modèles décrits
  dans les règles ne correspondent pas exactement au texte, au mot près, les
  règles deviennent inefficaces et génèrent du silence dans la détection des
  fautes. Par ailleurs, il faut prévoir toutes les combinaisons de mots
  erronées. On obtient ainsi une explosion combinatoire des règles, surtout
  pour les syntagmes nominaux.&lt;br /&gt;
  Le formalisme est aussi à l'origine de beaucoup de bruit (mauvaises
  détections). Les mots mal étiquetés ou ambigus, par exemple, provoquent des
  fausses alarmes. Nous avons des détections redondantes lorsque certaines
  erreurs sont détectées par plusieurs règles différentes simultanément.
  Enfin, les règles se fondant sur le contexte immédiat des mots, une erreur
  sur un mot peut entrainer de fausses détections en cascade sur les autres
  mots du contexte.&lt;br /&gt;
  &lt;br /&gt;

  &lt;h2&gt;Nouveau formalisme&lt;/h2&gt;
  Pour dépasser les limites de LanguageTool, j'ai développé un nouveau
  formalisme, fondé sur la segmentation en &lt;i&gt;chunks&lt;/i&gt; et l'unification de
  structures de traits. Je mêle ici une théorie syntaxique contextuelle
  (&lt;i&gt;chunks&lt;/i&gt;, Abney) et une théorie syntaxique générativiste (grammaire
  d'unification, Chomsky). Cette combinaison est atypique, mais elle permet
  d'aller plus loin dans la correction grammaticale, en délimitant des zones
  de calculs à l'intérieur desquelles tout doit s'accorder. Il n'est alors
  plus nécessaire de décrire toutes les combinaisons de mots erronées. Au lieu
  d'énumérer les fautes d'accord, nous détectons les incohérences au sein des
  syntagmes.&lt;br /&gt;
  &lt;br /&gt;

  &lt;h2&gt;Conclusion&lt;/h2&gt;
  Mon travail de mémoire de Master Recherche permet de doter OpenOffice.org de
  la correction grammaticale pour le français. Il reste cependant beaucoup de
  travail en perspective. Il faut notamment développer un outil capable de
  prendre en charge le nouveau formalisme, et également constituer et analyser
  un corpus de fautes pour modéliser de nouvelles règles de correction.&lt;br /&gt;
  &lt;br /&gt;

  &lt;h3&gt;Vers une autre approche de la correction grammaticale&lt;/h3&gt;
  Pour améliorer encore la correction grammaticale, j'envisage une autre
  approche. Elle consiste à effectuer simultanément l'analyse morphosyntaxique
  et la correction grammaticale au fur et à mesure de la lecture de la phrase.
  C'est une approche gauche-droite qui se fonde sur le principe de latences
  (Tesnières, 1959). Elle permet de déclarer ce qui est attendu après un mot
  ou un syntagme et de détecter ainsi les incohérences, au lieu d'énumérer les
  fautes possibles.&lt;br /&gt;
  Cette approche permet aussi de sortir du cercle vicieux en correction
  grammaticale. En effet, pour que les fautes soient bien détectées, les mots
  doivent être bien étiquetés morphosyntaxiquement. Mais pour que le calcul
  des étiquettes soit correct, le texte ne doit pas contenir de fautes...</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_07_13_bilan-du-travail-sur-correcteur-grammatical-languagetool</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_07_13_bilan-du-travail-sur-correcteur-grammatical-languagetool/atom?2007_07_13_bilan-du-travail-sur-correcteur-grammatical-languagetool"
        title="Edit Here - Bilan du travail sur le correcteur grammatical LanguageTool" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Transcription des règles d'erreurs, de An Gramadóir vers LanguageTool</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_27_transcriptions-regles-d-erreurs-an-gramadoir-vers-languagetool" />
  <issued>2007-06-18T08:06:05Z</issued>
  <modified>2007-06-18T08:06:05Z</modified>
  <created>2007-04-27T15:20:01Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Transcription des règles
  Myriam a
  écrit un peu plus de 500 règles d'erreurs pour An Gramadóir. Cette
  semaine, nous les avons importées dans LanguageTool. Pour cela nous avons dû
  les réécrire en XML. Bien sûr,  nous n'avons pas fait ce travail
  manuellement. Nous avons écrit un petit programme permettant de transcrire
  les règles automatiquement dans le bon formalisme.
  ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">&lt;h1&gt;Transcription des règles&lt;/h1&gt;
  &lt;a href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt"&gt;Myriam&lt;/a&gt; a
  écrit un peu plus de 500 règles d'erreurs pour An&amp;nbsp;Gramadóir. Cette
  semaine, nous les avons importées dans LanguageTool. Pour cela nous avons dû
  les réécrire en XML. Bien sûr,&amp;nbsp; nous n'avons pas fait ce travail
  manuellement. Nous avons écrit un petit programme permettant de transcrire
  les règles automatiquement dans le bon formalisme.&lt;br /&gt;
   &lt;br /&gt;
   Par exemple, la règle de An&amp;nbsp;Gramadóir du type :&lt;br /&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DS&amp;gt;ANYTHING&amp;lt;/DS&amp;gt;
  &amp;lt;JS&amp;gt;ANYTHING&amp;lt;/JS&amp;gt; &amp;lt;NP&amp;gt;ANYTHING&amp;lt;/NP&amp;gt;:NOMBRE&lt;br /&gt;
   &lt;br /&gt;
   a été réécrite en :&lt;br /&gt;
   &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rule&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pattern mark_from="2"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="D .* s" postag_regexp="yes"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="J .* s" postag_regexp="yes"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="N .* p" postag_regexp="yes"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;message&amp;gt;Il y a une erreur
  d'accord en nombre&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;example type="correct"&amp;gt;le beau
  château&amp;lt;/example&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;example type="correct"&amp;gt;les
  beaux châteaux&amp;lt;/example&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;example type="incorrect"&amp;gt;le
  beau châteaux&amp;lt;/example&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h2&gt;Quelques modifications&lt;/h2&gt;
  Nous avons dû par la suite retravailler un peu le fichier XML généré.&lt;br /&gt;
   Pour la plupart des règles, nous avons personnalisé le message d'erreurs et
  les exemples.&lt;br /&gt;
   &lt;br /&gt;
   Nous avons aussi effectué plusieurs modifications sur les règles relatives
  aux syntagmes verbaux. Le formalisme XML est plus souple que celui de
  An&amp;nbsp;Gramadóir, ce qui nous a permis de faire des simplifications et de
  regrouper plusieurs règles en une seule.&lt;br /&gt;
   &lt;br /&gt;
   Dans An&amp;nbsp;Gramadóir, il faut par exemple 4 règles pour dire qu'il y a
  une erreur si :&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;"je" est suivi d'un verbe à la 1ère personne du pluriel&lt;/li&gt;
  &lt;/ul&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; [Jj]e &amp;lt;VUNP&amp;gt;ANYTHING&amp;lt;/VUNP&amp;gt;:AGGREEMENT&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;"je" est suivi d'un verbe à la 3ème ou 4ème personne&lt;/li&gt;
  &lt;/ul&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; [Jj]e &amp;lt;VUN&amp;gt;ANYTHING&amp;lt;/VUN&amp;gt;:AGGREEMENT&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;"je" est suivi d'un mot quelconque, puis d'un verbe à la 1ère personne
   du pluriel&lt;/li&gt;
  &lt;/ul&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; [Jj]e ANYTHING
  &amp;lt;VUNP&amp;gt;ANYTHING&amp;lt;/VUNP&amp;gt;:AGGREEMENT&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;"je" est suivi d'un mot quelconque, puis d'un verbe à la 3ème ou 4ème
   personne&lt;/li&gt;
  &lt;/ul&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; [Jj]e ANYTHING
  &amp;lt;VUN&amp;gt;ANYTHING&amp;lt;/VUN&amp;gt;:AGGREEMENT&lt;br /&gt;
   &lt;br /&gt;
   Dans LanguageTool,&amp;nbsp; nous avons pu tout regrouper en une seule règle
  :&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;rule name="je + (x) + V"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="R pers suj 1 s" postag_regexp="yes" skip="1"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="V .* 1 p|V .* 2 .*|V .* 3 .*" postag_regexp="yes"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;message&amp;gt;Le pronom personnel
  n'est pas accordé avec le verbe&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;example type="correct"&amp;gt;je
  travaille&amp;lt;/example&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;example type="incorrect"&amp;gt;je
  travaillons&amp;lt;/example&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   Dans An&amp;nbsp;Gramadóir, nous pouvons aussi trouver une règle différente
  pour &lt;i&gt;"il", "elle", "on", "elles"&lt;/i&gt; et "&lt;i&gt;ils&lt;/i&gt;". Il semblait plus
  logique de généraliser ces règles pour les regrouper. Ainsi, les 5 pronoms
  sont traités dans seulement 2 règles qui concernent les pronoms personnels
  sujets, à la 3ème du singulier pour &lt;i&gt;"il", "elle"&lt;/i&gt; et "&lt;i&gt;on&lt;/i&gt;", ou
  bien du pluriel pour "&lt;i&gt;ils&lt;/i&gt;" et "&lt;i&gt;elles&lt;/i&gt;". Par ailleurs, nous
  avons rajouté les cas de "&lt;i&gt;elle&lt;/i&gt;" et "&lt;i&gt;elles&lt;/i&gt;" dans certaines
  règles car ils avaient été oubliés.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h2&gt;Quelques tests&lt;/h2&gt;
  Après ces modifications, nous avons effectué quelques tests. Nous avons
  alors remarqué plusieurs problèmes.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;Les règles sur les syntagmes nominaux génèrent des alarmes redondantes.
   Si nous écrivons par exemple : "*&lt;i&gt;le couverture bleue déchirée"&lt;/i&gt;,
   l'erreur d'accord en genre entre le déterminant et le reste du syntagme va
   être signalée 3 fois par 3 règles différentes :&lt;/li&gt;

   &lt;li
   style="list-style-type: none; list-style-image: none; list-style-position: outside;"&gt;
    &lt;ul&gt;
     &lt;li&gt;une première règle va s'appliquer à "&lt;i&gt;le couverture&lt;/i&gt;" =&amp;gt; Det
     + N&lt;/li&gt;

     &lt;li&gt;une seconde règle va s'appliquer à "&lt;i&gt;le couverture bleue"&lt;/i&gt; =&amp;gt;
     Det + N + Adj&lt;/li&gt;

     &lt;li&gt;une dernière règle va s'appliquer à "&lt;i&gt;le couverture bleue
     déchirée&lt;/i&gt;" =&amp;gt; Det + N + Adj + Adj&lt;br /&gt;
     &lt;/li&gt;
    &lt;/ul&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;Les mots épicènes et invariables ne sont pas pris en compte dans les
   règles. Dans une phrase comme "*&lt;i&gt;Il va épouser un célèbre actrice&lt;/i&gt;",
   aucune faute ne sera détectée car "&lt;i&gt;célèbre&lt;/i&gt;" est épicène et aucune
   règle n'est prévue avec ce genre de mots.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;L'absence de désambiguïsation génère énormément de fausses alarmes. Par
   exemple, "&lt;i&gt;je vois"&lt;/i&gt; et "&lt;i&gt;je mange&lt;/i&gt;" sont tous deux signalés
   comme faux. Les deux verbes sont bien étiquetés "1ère personne du
   singulier", mais ils possèdent aussi d'autres tags, dont respectivement
   celui de "2ème personne" et "3ème personne", ce qui est incompatible avec
   un pronom personnel à la 1ère personne.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;br /&gt;
   

  &lt;h2&gt;Quelques ajouts possibles&lt;/h2&gt;
  Nous avons étudié un corpus d'erreurs à notre disposition. Nous avons
  d'abord éliminé les phrases contenant des fautes d'orthographe et non de
  grammaire. Nous avons ensuite fait un petit classement des phrases
  restantes, en 4 catégories :&lt;br /&gt;
   

  &lt;ol&gt;
   &lt;li&gt;les erreurs qui sont déjà détectées par les règles actuelles ("&lt;i&gt;je ne
   doit pas être...")&lt;/i&gt;&lt;/li&gt;

   &lt;li&gt;les erreurs pour lesquelles nous pensons pouvoir créer des règles avec
   le formalisme actuel de LanguageTool ("&lt;i&gt;on désir..."&lt;/i&gt;)&lt;/li&gt;

   &lt;li&gt;les erreurs qui pourront être détectées avec un nouveau formalisme
   utilisant les chunks et l'unification ("&lt;i&gt;le monde
   m'appartenais...&lt;/i&gt;")&lt;/li&gt;

   &lt;li&gt;les erreurs qui nous semblent très difficiles, voire impossibles à
   repérer ( "&lt;i&gt;je serais" &amp;#8800; "je serai&lt;/i&gt;")&lt;br /&gt;
   &lt;/li&gt;
  &lt;/ol&gt;
  &lt;br /&gt;
   Pour le moment, nous allons nous concentrer sur la seconde catégorie. Nous
  avons vu que nous pourrions créer des règles sur la négation, rajouter des
  règles sur l'accord des participes passés après le verbe être (par exemple :
  &lt;i&gt;sont+ppa =&amp;gt; le ppa doit être au pluriel&lt;/i&gt;), modifier les règles
  actuelles sur les accords des verbes pour qu'elles tiennent compte de
  l'insertion possible d'un ou plusieurs mots entre le sujet et le verbe, le
  verbe et le participe passé, etc...&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h2&gt;Un désambiguïseur pour bientôt ?&lt;/h2&gt;
  Marcin Milkowski a proposé de travailler sur l'implantation du
  désambiguïseur qui nous posait problème. Si tout va bien, nous devrions en
  disposer très prochainement. Nous pourrons alors faire en sorte d'avoir un
  minimum de désambiguïsation pour pouvoir travailler sur les règles d'erreurs
  dans de meilleures conditions.</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_04_27_transcriptions-regles-d-erreurs-an-gramadoir-vers-languagetool</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_27_transcriptions-regles-d-erreurs-an-gramadoir-vers-languagetool/atom?2007_04_27_transcriptions-regles-d-erreurs-an-gramadoir-vers-languagetool"
        title="Edit Here - Transcription des règles d'erreurs, de An Gramadóir vers LanguageTool" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Resume about the french grammar checker project</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_20_resume-about-the-french-grammar-checker-project" />
  <issued>2007-07-19T08:34:06Z</issued>
  <modified>2007-07-19T08:34:06Z</modified>
  <created>2007-04-20T21:08:19Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">
   I have recently started to work on the project of a free french grammar
  checker which could be implemented in OpenOffice.org.
   Myriam
  Lechelt had initiated this project 2 years ago by adapting Gramadoir, a gaelic grammar
  checker developped by Kevin Scanell. But this tool appeared not to be very
  suitable for french grammar.
   Myriam had also analyzed other grammar checker, ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">&lt;br /&gt;
   I have recently started to work on the project of a free french grammar
  checker which could be implemented in OpenOffice.org.&lt;br /&gt;
   &lt;a href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt"&gt;Myriam
  Lechelt&lt;/a&gt; had initiated this project 2 years ago by adapting &lt;a
  href="http://borel.slu.edu/gramadoir/"&gt;Gramadoir&lt;/a&gt;, a gaelic grammar
  checker developped by Kevin Scanell. But this tool appeared not to be very
  suitable for french grammar.&lt;br /&gt;
   Myriam had also analyzed other grammar checker, amongst which &lt;a
  href="http://www.danielnaber.de/languagetool/"&gt;LanguageTool&lt;/a&gt;. It is a
  rule-based style and grammar checker initially developped for English by
  Daniel Naber, and then extended to German, Polish or Hungarian. It was
  rejected at the time by Myriam, but it has progressed a lot. So we have
  decided to work on the new version for our french grammar checker.&lt;br /&gt;
   &lt;br /&gt;
   In her work, &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt"&gt;Myriam&lt;/a&gt; has
  given leads to create a new grammar checker for French. For example, she
  advises to segment sentences in chunks, between the sentence and the word.
  She also suggests to use grammar unification and feature structure to find
  grammar mistakes.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h1&gt;How do grammar checkers work ?&lt;/h1&gt;
  First of all, a tokenizer segments the text into sentences and words. Then a
  tagger gives tag(s) to each token, containing morphosyntactic information
  like the gender, the number, the tense, the person, etc...&lt;br /&gt;
   &lt;br /&gt;
   Many words have several tags, so a disambiguation is often necessary to
  eliminate inappropriate tags in certain contexts and to keep only the good
  tag. The method to disambiguate can either be statistic or rule based. The
  statistic methods needs a learning tagged corpus, and then the grammar
  checking is very dependent on this corpus. The rule-based method requires a
  large number of hand-made rules, describing the context in which a word must
  have a certain tag. This second method is easier to control.&lt;br /&gt;
   &lt;br /&gt;
   Finally, a pattern matching with the text and rules is used in the grammar
  checking. It can either be&amp;nbsp; grammar rules or error rules. The first
  describe what is good and everything that does not match them is considered
  as false. This can be very annoying since it can wrongly detect many errors
  if rules are not exhaustive. On the contrary, error rules describe what is
  wrong and everything that matches them is considered as false. But even if
  rules are very numerous, as it is impossible to anticipate all mistakes,
  there will always be not detected errors. But this is preferable to wrong
  detections.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h1&gt;About LanguageTool&lt;/h1&gt;
  LanguageTool is a style and grammar checker developped by Daniel Naber. It
  is composed of several parts in java successively proceeding to the
  tokenization in sentences and words, the tagging&amp;nbsp; and the detection of
  grammar mistakes.&lt;br /&gt;
   &lt;br /&gt;
   There is no disambiguation after the tagging, so many words can have more
  than one tag. But a disambiguator interface has been implemented for the
  languages for which it is a problem not to have disambiguation.&lt;br /&gt;
   &lt;br /&gt;
   The detection of errors is based on error rules formalized in XML. Each
  rule has an identifier (id), a name, a pattern describing the context of the
  mistake, a message explaining the mistake, and examples to show a correct
  and incorrect sentence corresponding to the mistake.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h1&gt;Tests with French and problems encountered&lt;/h1&gt;
  We have tested the few rules ported from An&amp;nbsp;Gramadóir and written by
  Myriam Lechelt. We have immediately noticed that the absence of
  disambiguation would be an important problem for French checking.
  Indeed,&amp;nbsp; the detection of mistakes almost always failed because of
  ambiguous words.&lt;br /&gt;
   We have tried to get round this problem by modifying the rules to take
  ambiguity in account, but we realized that it would be very tedious to build
  every rule like that. The best solution is to implement a disambiguator
  after the tagging. That is what we will try to do.&lt;br /&gt;
   &lt;br /&gt;
   We also became aware of the problem raised by the structure of the rules,
  and more precisely of the pattern in the rules and the method of rigid
  pattern matching. It requires the description of all contexts in which a
  mistake can be found, that is to say the description of all possible
  combinations of words, and a rule for each one. But it is just impossible to
  anticipate all of them. We could only write a very large number of rules
  which would never be exhaustive, and which would be costly for the
  processing.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h1&gt;An alternative with chunks and unification&lt;/h1&gt;
  According to Abney, "&lt;i&gt;The typical chunk consists of a single content word
  surrounded by a constellation of function words, matching a fixed
  template&lt;/i&gt;" (S. P. Abney, 1991, &lt;i&gt;Parsing by chunks&lt;/i&gt;).&lt;br /&gt;
   The internal structure of a chunk is fixed, but function words inside are
  all dependant of the lexical head and agree with it. In the sentence, chunks
  agree whit each other, and they can easily permute, contrary to words in a
  chunk.&lt;br /&gt;
   &lt;br /&gt;
   Feature structures describe each element in a sentence with a list of pairs
  feature-value. Unification consists in matching the feature structures of
  different elements. The matching failes if a feature does not have the same
  value in the feature structures of the different elements tested.&lt;br /&gt;
   &lt;br /&gt;
   The use of both chunks and unification is a very interesting alternative.
  It can make grammar checking really easier. First, by unifying features
  only, and not grammatical category, we reduce considerably the number of
  necessary rules, since we do no more need to enumerate all possible
  combinations of words.&lt;br /&gt;
   Then, the relations between chunks will be very helpful for some checkings,
  like the aggreement with the subject and the verbal chunk, or more generally
  for all agreement with distant words. Indeed, distant relations cannot be
  checked with a system only applying pattern matching on the immediate
  context.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h1&gt;Disambiguation&lt;/h1&gt;
  Myriam Lechelt has built many disambiguation rules for An&amp;nbsp;Gramadóir. We
  intended to port them to LanguageTool, so we have analyzed java files to see
  how we could add them, and we have thought about how to improve
  disambiguation.&lt;br /&gt;
   &lt;br /&gt;
   It would be logical to rewrite the rules in XML, since it is the formalism
  used by LanguageTool for all rules. Moreover, XML rules can be more easily
  understood and maintained by linguists who are not necessarily computer
  scientists.&lt;br /&gt;
   &lt;br /&gt;
   It could be preferable, in some cases, not to disambiguate a word totally,
  but only the grammatical category. Because of an ambiguity of features, some
  mistakes may not be detected, but with a bad disambiguation of features,
  wrong mistakes can be detected, which is much more annoying for the
  user.&lt;br /&gt;
   &lt;br /&gt;
   We have thought about disambiguation, how to improve it and how to port
  rules to LanguageTool. But in fact, we have finally decided not to implement
  disambiguation now, since we lack time and it is more important for us to
  improve grammar checking. Instead, we will tag and disambiguate sentences
  from a corpus of mistakes, and we will use these sentences for the next
  step, that is to say the grammar checking.</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_04_20_resume-about-the-french-grammar-checker-project</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_20_resume-about-the-french-grammar-checker-project/atom?2007_04_20_resume-about-the-french-grammar-checker-project"
        title="Edit Here - Resume about the french grammar checker project" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Suite du travail sur LanguageTool</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_20_suite-du-travail-sur-languagetool" />
  <issued>2007-06-18T08:01:43Z</issued>
  <modified>2007-06-18T08:01:43Z</modified>
  <created>2007-04-20T19:54:17Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Ces derniers jours ont été consacrés en partie à l'étude des possibilités
  d'intégration d'un désambiguïseur dans LanguageTool.
   
   Nous avions parlé, dans le précédent billet, de réécrire les règles de
  désambiguïsation de An Gramadóir dans le formalisme XML. Il y a bien
  sûr beaucoup de manières différentes de représenter les règles en XML.
   
   Voici deux propositions qui ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">Ces derniers jours ont été consacrés en partie à l'étude des possibilités
  d'intégration d'un désambiguïseur dans LanguageTool.&lt;br /&gt;
   &lt;br /&gt;
   Nous avions parlé, dans le précédent billet, de réécrire les règles de
  désambiguïsation de An&amp;nbsp;Gramadóir dans le formalisme XML. Il y a bien
  sûr beaucoup de manières différentes de représenter les règles en XML.&lt;br /&gt;
   &lt;br /&gt;
   Voici deux propositions qui reprennent des règles écrites par &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt"&gt;Myriam
  Lechelt&lt;/a&gt;. Les deux premières règles sont très proches de la
  représentation des règles d'erreurs de LanguageTool. Dans les deux
  suivantes, nous avons ajouté un attribut "ambigu" à l'élément &lt;i&gt;token&lt;/i&gt;,
  pour spécifier quel est le token ambigu, et une balise "disambig" qui
  contient le tag à attribuer au token ambigu.&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;rulegroup name="Pronoms personnels objets" id="Pro_Pers_Obj"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;rule name="nous"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="R Pers"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  ambig="yes"&amp;gt;nous&amp;lt;/token&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;disambig token="nous" postag="R
  pers obj 1 p"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;&lt;br /&gt;
   &amp;lt;/rulegroup&amp;gt;&lt;br /&gt;
   &amp;lt;rulegroup name="D ambig + N" id="D_ambig_N"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;rule name ="Dms"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  ambig="yes" postag="D m s"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="N"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;disambig&amp;nbsp; postag="D m
  s"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;&lt;br /&gt;
   &amp;lt;/rulegroup&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   ---------------------------------------------------&lt;br /&gt;
   &lt;br /&gt;
   &amp;lt;rulegroup name="Pronoms personnels objets" id="Pro_Pers_Obj"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;rule name="nous"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pattern mark_from="1"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="R Pers"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;lt;token&amp;gt;nous&amp;lt;/token&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;message&amp;gt;&amp;lt;suggestion&amp;gt;R
  pers obj 1 p&amp;lt;/suggestion&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;&lt;br /&gt;
   &amp;lt;/rulegroup&amp;gt;&lt;br /&gt;
   &amp;lt;rulegroup name="D ambig + N" id="D_ambig_N"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;rule name ="Dms"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;pattern mark_to="-1"&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="D m s"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token
  postag="N"/&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/pattern&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;message&amp;gt;&amp;lt;suggestion&amp;gt;D m
  s&amp;lt;/suggestion&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/rule&amp;gt;&lt;br /&gt;
   &amp;lt;/rulegroup&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
   &lt;br /&gt;
   Nous avons aussi "décortiqué" un peu le code de LanguageTool pour voir
  comment sont gérées les règles d'erreurs, et nous en inspirer pour gérer les
  règles de désambiguïsation. Nous avons donc vu qu'il nous faudrait adapter
  principalement 3 fichiers : PatternRule.java, PatternRuleLoader.java et
  XMLRuleHandler.java.&lt;br /&gt;
   &lt;br /&gt;
   &lt;br /&gt;
   Cependant, par manque de temps, nous n'allons pas réaliser ce travail
  d'implantation d'un désambiguïseur.&lt;br /&gt;
   Nous allons donc passer directement à l'étape du traitement des fautes de
  grammaire. Par contre,&amp;nbsp; pour pouvoir travailler sur cette partie de
  LanguageTool, nous avons besoin de phrases correctement&amp;nbsp; étiquetées, et
  donc désambiguïsées. Nous avons donc extrait une centaine de phrases d'un
  corpus d'erreurs, utilisé dans l'ouvrage de V. Lucci &amp;amp; A. Millet (1994 ;
  &lt;i&gt;L'orthographe de tous les jours, enquête sur les pratiques
  orthographiques des français&lt;/i&gt;, Champion), et nous allons les étiqueter,
  en utilisant le tagset de LanguageTool.&lt;br /&gt;
   &lt;br /&gt;
   Nous pourrons ensuite utiliser ces phrases étiquetées pour tester les
  règles d'erreurs écrites par Myriam pour An&amp;nbsp;Gramadóir, et que nous
  aurons préalablement importées dans LanguageTool, ainsi que de nouvelles
  règles que nous pourrons ajouter à partir du corpus.&lt;br /&gt;
   &lt;br /&gt;
   Nous verrons sans doute ainsi les limites du formalisme actuel et nous
  tâcherons de les dépasser.</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_04_20_suite-du-travail-sur-languagetool</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_20_suite-du-travail-sur-languagetool/atom?2007_04_20_suite-du-travail-sur-languagetool"
        title="Edit Here - Suite du travail sur LanguageTool" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Réflexions sur le "désambiguïseur"</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_06_reflexions-sur-desambiguiseur" />
  <issued>2007-06-18T08:05:04Z</issued>
  <modified>2007-06-18T08:05:04Z</modified>
  <created>2007-04-06T15:17:31Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">J'ai commencé à regarder d'un peu plus près le code source de LanguageTool,
  le but étant de mieux comprendre le fonctionnement du programme et de voir
  comment implanter un désambiguïseur. L'opération s'est révélée un peu
  laborieuse étant donné que je suis débutante en Java et qu'il m'a fallu
  apprivoiser un peu ce langage...
   J'ai essayé de voir comment utiliser l'interface ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">J'ai commencé à regarder d'un peu plus près le code source de LanguageTool,
  le but étant de mieux comprendre le fonctionnement du programme et de voir
  comment implanter un désambiguïseur. L'opération s'est révélée un peu
  laborieuse étant donné que je suis débutante en Java et qu'il m'a fallu
  apprivoiser un peu ce langage...&lt;br /&gt;
   J'ai essayé de voir comment utiliser l'interface "disambiguator", récemment
  ajoutée à LanguageTool (par Jozef Li&amp;#269;ko). Elle permet l'implantation
  éventuelle d'un désambiguïseur pour les différentes langues supportées par
  le programme. Il nous reste donc à développer ce désambiguïseur pour le
  français.&lt;br /&gt;
   &lt;br /&gt;
   Pour ce qui est de la désambiguïsation en elle-même, nous allons reprendre
  les règles écrites par &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/"&gt;Myriam&lt;/a&gt; pour
  Gramadoir. Nous avons plusieurs possibilités pour les formaliser. Nous
  pourrions les écrire simplement au format texte, ou bien encore conserver
  leur formalisme actuel. Nous avons plutôt décidé de les réécrire dans un
  fichier au format XML. Ce formalisme a l'avantage d'être plus facilement
  lisible et modifiable par des linguistes, qui ne sont pas forcément
  informaticiens. Par ailleurs, nous restons ainsi cohérents avec le programme
  qui utilise déjà ce formalisme pour les règles d'erreurs.&lt;br /&gt;
   Nous allons donc garder les règles écrites pour Gramadoir et conserver leur
  ordre. Cet ordre est essentiel et correspond à une précision décroissante
  des règles : il y a d'abord des règles particulières qui traitent des cas
  précis, puis des règles par défaut un peu plus générales, et enfin des
  règles brutes très générales qui traitent tous les cas qui ne l'ont pas été
  par les précédentes règles.&lt;br /&gt;
   Après l'étape du tagging, lorsque les mots ont reçu leur(s) étiquette(s),
  il faut vérifier si une règle de désambiguïsation dans le fichier XML peut
  s'appliquer à un mot ambigu. Plus précisément, il faut passer toutes les
  règles en revue, dans l'ordre, jusqu'à ce que l'une d'entre elles soit
  applicable à un des tags, et ne conserver alors que le tag correspondant à
  cette règle.&lt;br /&gt;
   &lt;br /&gt;
   Les classes java intervenant dans la détection des fautes de grammaire vont
  nous servir d'exemple et nous permettre de mieux voir comment construire
  notre désambiguïseur. Même si le fonctionnement n'est pas vraiment
  identique, on retrouve le système du "pattern matching" (concordance entre 2
  éléments) entre des règles en XML, et des mots et leur contexte.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;h3&gt;Des problèmes à prévoir&lt;/h3&gt;
  Les règles s'appuient sur le contexte du mot ambigu. &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/2005_03_21_gramooo_tagging"&gt;
  Myriam&lt;/a&gt; a indiqué à leur sujet que si le contexte est lui-même ambigu (au
  niveau des catégories morpho-syntaxiques), ces règles ne peuvent pas
  fonctionner. Nous allons nous aussi bien sûr être confrontés à ce
  problème.&lt;br /&gt;
   Si la désambiguïsation est effectuée linéairement, au fur et à mesure, nous
  aurons alors un contexte gauche désambiguïsé et un contexte droit très
  souvent encore ambigu. Or quelques règles (environ 1 sur 5) utilisent ce
  contexte droit. Il est donc à prévoir qu'elles ne pourront, dans certains
  cas, pas s'appliquer. Pour ce qui est des règles qui portent sur le contexte
  gauche, elles sont dépendantes de la bonne désambiguïsation de ce contexte.
  En cas d'erreur, la suite de la désambiguïsation peut être mal
  effectuée.&lt;br /&gt;
   &lt;br /&gt;
   Pour le moment, nous n'allons pas chercher à améliorer la désambiguïsation.
  Nous n'en avons malheureusement pas le temps. Ceci fera probablement l'objet
  d'un travail ultérieur. Nous avons tout de même réfléchi à des solutions. Il
  faudrait par exemple que le traitement ne se fasse pas linéairement, mais
  plutôt en fonction des mots ambigus ou pas : commencer par désambiguïser les
  mots qui peuvent l'être de manière sûre, ceux dont le contexte n'est pas
  ambigu par exemple, et continuer jusqu'à ce que tous les mots de la phrase
  soient traités, en gardant les cas les plus compliqués pour la fin.&lt;br /&gt;
   Il faudrait aussi pouvoir revenir en arrière pour pouvoir corriger une
  mauvaise désambiguïsation. Et comme nous l'avons déjà vu, une segmentation
  en chunks pourrait également être utile.</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_04_06_reflexions-sur-desambiguiseur</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_04_06_reflexions-sur-desambiguiseur/atom?2007_04_06_reflexions-sur-desambiguiseur"
        title="Edit Here - Réflexions sur le &quot;désambiguïseur&quot;" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Désambiguïsation</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_29_desambiguisation" />
  <issued>2007-06-18T08:03:48Z</issued>
  <modified>2007-06-18T08:03:48Z</modified>
  <created>2007-03-29T15:49:21Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Avant de nous lancer dans la conception d'un outil de désambiguïsation,
  prenons le temps de faire un petit point sur ce sujet. Nous verrons d'abord
  quelles sont les différentes méthodes existantes pour désambiguïser les mots
  polycatégoriels (appartenant à plusieurs catégories morpho-syntaxiques).
  Nous parlerons ensuite de la méthode choisie par Myriam,
  ainsi que des problèmes ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">&lt;p&gt;Avant de nous lancer dans la conception d'un outil de désambiguïsation,
  prenons le temps de faire un petit point sur ce sujet. Nous verrons d'abord
  quelles sont les différentes méthodes existantes pour désambiguïser les mots
  polycatégoriels (appartenant à plusieurs catégories morpho-syntaxiques).
  Nous parlerons ensuite de la méthode choisie par &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/"&gt;Myriam&lt;/a&gt;,
  ainsi que des problèmes qu'elle a rencontrés, et pour finir nous ferons des
  suggestions pour résoudre certaines difficultés et améliorer la
  désambiguïsation.&lt;br /&gt;
  &lt;/p&gt;

  &lt;h1&gt;Méthodes de désambiguïsation&lt;/h1&gt;
  &lt;b&gt;Les désambiguïseurs sont de deux types. Certains sont probabilistes et
  d'autres à base de règles.&lt;/b&gt; Ils ont tous deux des avantages et des
  inconvénients.&lt;br /&gt;
   

  &lt;h2&gt;1. Méthode statistique&lt;/h2&gt;
  &lt;b&gt;Des probabilités sont calculées à partir d'un apprentissage sur un corpus
  étiqueté&lt;/b&gt;. Selon le système, les probabilités calculées sont celles de la
  contiguïté de 3 tags (ex.: GRAC), de 2 tags (ex.: première version de
  LanguageTool), ou celles que tel mot prenne tel tag.&lt;br /&gt;
   &lt;br /&gt;
   Cette méthode a l'avantage d'être automatique et donc relativement facile à
  mettre en place. Un outil probabiliste peut par ailleurs être facilement
  appliqué à des langues diverses. Il suffit de fournir le corpus adéquat pour
  l'apprentissage des probabilités.&lt;br /&gt;
   &lt;br /&gt;
   Par contre, &lt;b&gt;la désambiguïsation est par la suite entièrement dépendante
  du corpus sur lequel a été effectué l'apprentissage.&lt;/b&gt; Ce corpus ne doit
  pas être trop spécialisé et doit être suffisamment grand pour contenir le
  maximum de structures, tout en ne pouvant jamais les contenir toutes. Qui
  plus est, il n'existe pas pour le français par exemple de corpus étiqueté
  qui soit librement utilisable, ce qui constitue donc un obstacle.&lt;br /&gt;
   &lt;br /&gt;
   Par ailleurs,&amp;nbsp; en cas d'erreur de désambiguïsation, il n'y a
  aucun&amp;nbsp; recours possible au texte. Cette méthode n'est donc pas vraiment
  maîtrisable. &lt;br /&gt;
   

  &lt;h2&gt;2. Méthode par règles&lt;/h2&gt;
  &lt;b&gt;Les règles sont construites manuellement, elles se présentent
  généralement sous forme d'expressions régulières&lt;/b&gt; (ex.: Gramadoir) et
  portent sur le contexte immédiat.&lt;br /&gt;
   Comme les règles de détection d'erreurs, &lt;b&gt;elles fonctionnent sur le
  système du "pattern matching".&lt;/b&gt; Le mot et son contexte proche doivent
  donc correspondre exactement aux descriptions faites dans les règles pour
  pouvoir être désambiguïsés.&lt;br /&gt;
   Si les systèmes appliquent les règles dans l'ordre où elles apparaissent
  dans le fichier, elles doivent être ordonnées (les plus générales en
  dernier).&lt;br /&gt;
   &lt;br /&gt;
   L'avantage de cette méthode, par rapport à la méthode statistique, est
  qu'elle est bien plus maitrîsable. En cas d'erreur de désambiguïsation, il
  est facile de retrouver et modifier la règle qui pose problème. Il est par
  ailleurs possible de rajouter de nouvelles règles ou d'en supprimer selon
  les besoins.&lt;br /&gt;
   &lt;br /&gt;
   Par contre, &lt;b&gt;cette méthode requiert la rédaction, longue et coûteuse, de
  nombreuses règles.&lt;br /&gt;
  &lt;/b&gt; 

  &lt;h1&gt;Désambiguïsation pour Gramadoir&lt;/h1&gt;
  &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/archive/2005/03"&gt;Myriam
  Lechelt&lt;/a&gt; a réalisé un important travail sur la désambiguïsation dans le
  cadre de l'adaptation de Gramadoir au français. &lt;br /&gt;
   Elle a réalisé des règles de désambiguïsation dont elle a pu tester
  l'efficacité, en terme de décision (nombre de mots désambiguïsés) et de
  précision (nombre de mots désambiguïsés correctement), avec les outils de la
  campagne d'évaluation &lt;a
  href="http://aune.lpl.univ-aix.fr/projects/grace/"&gt;GRACE&lt;/a&gt;.&lt;br /&gt;
   &lt;br /&gt;
   Ces règles sont de trois types :&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;Au début du fichier se trouvent les &lt;b&gt;règles particulières, qui
   désambiguïsent des cas bien précis&lt;/b&gt;. Ces règles ne fonctionnent que sur
   contexte non ambigu (au niveau de la catégorie morpho-syntaxique).&lt;/li&gt;

   &lt;li&gt;Viennent ensuite les &lt;b&gt;règles par défaut&lt;/b&gt;. Ces règles sont
   appliquées par exemple lorsque qu'un contexte ambigu empêche l'application
   des règles particulières. L'utilisation de règles par défaut est suggérée
   par Jacques Vergne et Emmanuel Giguet (&lt;a
   href="http://users.info.unicaen.fr/%7Egiguet/taln98/"&gt;Regards théoriques
   sur le tagging&lt;/a&gt;, 1998, GREYC, Université de Caen).&lt;/li&gt;

   &lt;li&gt;Pour finir, des &lt;b&gt;règles brutes très générales désambiguïsent tout (ou
   presque)&lt;/b&gt; ce qui n'a pas pu être désambiguïsé avec les règles
   précédentes. Ces règles sont nécessaires pour que plus aucun mot ne soit
   ambigu, car sinon la correction échoue. Le système de Gramadoir ne tolère
   en effet aucune ambiguïté.&lt;br /&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;br /&gt;
   Avec ses règles, &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/2005_04_08_gramooo_tagging"&gt;
  Myriam&lt;/a&gt; a pu désambiguïser 98,88% des mots (décision), dont 84,49% avec
  la bonne étiquette (précision), ce qui est plutôt encourageant même s'il
  reste encore beaucoup de travail et de problèmes à résoudre.&lt;br /&gt;
   &lt;br /&gt;
   Par exemple, la désambiguïsation de la négation &lt;i&gt;ne pas&lt;/i&gt;, ainsi que
  des modes et des personnes pour les verbes, pose un problème qui n'a pas été
  résolu.&lt;br /&gt;
   Ce problème est dû notamment au fait que &lt;b&gt;la désambiguïsation utilise le
  contexte immédiat du mot à désambiguïser&lt;/b&gt;. Dans le cas des modes, le
  contexte immédiat ne suffit pas et une analyse de la phrase entière est
  nécessaire pour désambiguïser.&lt;br /&gt;
   Par ailleurs, &lt;b&gt;le contexte peut parfois être inconnu, ambigu ou faux, et
  dans ce cas la désambiguïsation est mal ou pas du tout effectuée.&lt;/b&gt; Une
  règle disant que "si &lt;i&gt;pas&lt;/i&gt; est précédé de &lt;i&gt;ne&lt;/i&gt;, alors &lt;i&gt;pas&lt;/i&gt;
  est adverbe de négation" ne désambiguïsera que si elle trouve &lt;i&gt;ne&lt;/i&gt; dans
  le contexte. Or, l'oubli de &lt;i&gt;ne&lt;/i&gt; est justement une faute très fréquente
  en français.&lt;br /&gt;
   

  &lt;h1&gt;Suggestions d'amélioration&lt;/h1&gt;
  La désambiguïsation a pour but de définir pour chaque mot une étiquette
  unique, parmi celles attribuées par le tagger. Mais une désambiguïsation
  erronée, conduisant donc à un mauvais étiquetage, peut entraîner de fausses
  détections lors de la vérification grammaticale. Or, le bruit est très
  gênant pour l'utilisateur, bien plus que le silence.&lt;br /&gt;
   &lt;br /&gt;
   Ne vaudrait-il pas mieux laisser plusieurs étiquettes dans certains cas ?
  En particulier dans le cas d'une ambiguïté au niveau des traits pour une
  même catégorie ? Nous pourrions &lt;b&gt;limiter la désambiguïsation aux seules
  catégories, et non aux tags complets.&lt;/b&gt;&lt;br /&gt;
   &lt;br /&gt;
   Par exemple, si l'utilisateur a écrit &lt;i&gt;une livre&lt;/i&gt;, le désambiguïseur
  déduira sans doute sans difficulté, grâce au déterminant, que &lt;i&gt;livre&lt;/i&gt;
  est ici un nom et non le verbe &lt;i&gt;livrer&lt;/i&gt;. Mais une ambiguïté persiste
  alors au niveau du genre de ce nom, puisqu'il peut être masculin ou féminin.
  Si une règle par défaut attribue le tag "N sing masc" à &lt;i&gt;livre&lt;/i&gt;, lors
  de la détection d'erreurs, le système va repérer un problème d'accord entre
  &lt;i&gt;une&lt;/i&gt; et &lt;i&gt;livre&lt;/i&gt;, alors que l'utilisateur n'avait en fait pas
  commis d'erreur. En laissant l'ambiguïté au niveau du trait genre, aucune
  erreur n'aurait été détectée.&lt;br /&gt;
   &lt;b&gt;&lt;br /&gt;
   L'avantage de cette méthode est qu'elle privilégie le silence au bruit&lt;/b&gt;.
  Elle peut en effet laisser passer de vraies fautes puisque l'étiquetage est
  moins précis, mais elle permet aussi de réduire les mauvaises détections
  dues à un mauvais étiquetage. La faute est détectée seulement si aucune des
  étiquettes ne convient.&lt;br /&gt;
   &lt;br /&gt;
   &lt;b&gt;L'intérêt réside aussi dans la résolution partielle des problèmes dus à
  un contexte faux&lt;/b&gt;. Il faut en effet garder à l'esprit que &lt;b&gt;le tagging
  s'effectue sur des phrases potentiellement fausses&lt;/b&gt;, puisque le but est
  justement d'en vérifier la grammaire. Ainsi, si nous avons le syntagme &lt;i&gt;le
  plante&lt;/i&gt;, (&lt;i&gt;plante&lt;/i&gt; pouvant être un nom ou un verbe) avec une règle
  qui dit que "si un nom féminin singulier ambigu est précédé d'un déterminant
  féminin singulier, alors c'est un nom féminin singulier", dans ce cas la
  règle ne correspond pas puisque le déterminant est masculin. La
  désambiguïsation n'est donc pas effectuée.&lt;br /&gt;
   En ne travaillant qu'avec les catégories des mots ambigus, on aurait une
  règle du type : "si un nom ambigu est précédé d'un déterminant, alors c'est
  un nom". Dans ce cas, la règle de désambiguïsation peut s'appliquer.&lt;br /&gt;
   &lt;br /&gt;
   Par contre, LanguageTool fonctionne actuellement d'une manière différente
  de celle que nous venons d'évoquer, à savoir la non application d'une règle
  d'erreur si un des tags ne lui correspond pas. En effet, lorsqu'il rencontre
  un mot ambigu (il n'a pas de désambiguïseur), il essaye d'appliquer les
  règles à tous les tags du mot. Il suffit qu'un seul d'entre eux corresponde
  à la règle pour qu'elle s'applique (&lt;i&gt;cf. &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_22_test-rapide-languagetool"&gt;
  test des règles&lt;/a&gt;&lt;/i&gt;). Il faudrait au contraire que la règle ne
  s'applique que si tous les tags lui correspondent. Autrement dit, une seule
  étiquette ne remplissant pas les conditions de la règle devrait suffire à
  empêcher son application.&lt;br /&gt;
   &lt;br /&gt;
   Par ailleurs, la désambiguïsation pourrait aussi être améliorée en
  utilisant des règles de déduction négative, c'est-à-dire &lt;b&gt;des règles
  permettant de dire que, dans tel contexte, un mot ne peut pas avoir telle
  étiquette.&lt;/b&gt;&lt;br /&gt;
   Gramadoir ne prend pas en charge ce genre de règles. Il n'utilise que la
  déduction "affirmative", pour laquelle il est nécessaire d'écrire des règles
  parfois nombreuses pour énumérer tous les contextes dans lesquels tel mot
  prend tel tag. Il serait utile dans ces cas-là de pouvoir utiliser des
  règles fonctionnant sur le principe de l'élimination.&lt;br /&gt;
   Cependant, tout comme l'application des règles "affirmatives" dépend du
  contexte immédiat, les règles négatives dépendent de l'exhaustivité de la
  liste des tags attribués à chaque mot. En effet, il faut impérativement que
  l'étiquette attendue fasse partie de la liste. Or les lexiques ne sont pas
  nécessairement exhaustifs.&lt;br /&gt;
   

  &lt;h1&gt;Conclusion&lt;/h1&gt;
  Nous voyons un peu mieux ce qu'il en est de la désambiguïsation, les
  différentes manières de la réaliser, avec leurs avantages et leurs
  inconvénients, les problèmes qui peuvent se poser, les solutions et
  améliorations que l'on peut apporter.&lt;br /&gt;
   Nous pouvons donc maintenant réfléchir plus sérieusement à la manière dont
  nous allons construire le désambiguïseur que nous implanterons dans
  LanguageTool, pour traiter les nombreux cas d'ambiguïté morpho-syntaxique
  que compte la langue française.&lt;br /&gt;
   &lt;br /&gt;</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_03_29_desambiguisation</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_29_desambiguisation/atom?2007_03_29_desambiguisation"
        title="Edit Here - Désambiguïsation" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Intérêt des chunks et de l'unification pour la correction grammaticale</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_26_interet-chunks-unification-pour-correction-grammaticale" />
  <issued>2007-06-18T07:35:05Z</issued>
  <modified>2007-06-18T07:35:05Z</modified>
  <created>2007-03-26T09:52:28Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">L'intérêt le plus évident concerne les accords entre les divers éléments de
  la phrase. Il peut s'agir aussi bien d'accords dans un groupe nominal que
  d'accords entre le sujet et le verbe par exemple.
   

  Correction "intra-chunk"
  Les mots fonctionnels contenus dans un chunk sont dépendants de la tête du
  chunk et contraints de s'accorder avec elle. En attribuant des traits
  ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">L'intérêt le plus évident concerne les accords entre les divers éléments de
  la phrase. Il peut s'agir aussi bien d'accords dans un groupe nominal que
  d'accords entre le sujet et le verbe par exemple.&lt;br /&gt;
   

  &lt;h2&gt;Correction "intra-chunk"&lt;/h2&gt;
  Les mots fonctionnels contenus dans un chunk sont dépendants de la tête du
  chunk et contraints de s'accorder avec elle. En attribuant des traits
  morpho-syntaxiques à tous les éléments d'un syntagme et en utilisant une
  méthode d'unification des traits, il est assez facile, au niveau de la
  correction grammaticale, de détecter une erreur au sein d'un syntagme.
  &lt;b&gt;Tous les éléments d'un chunk doivent avoir leurs traits qui s'unifient
  entre eux. Si ça n'est pas le cas, c'est qu'il y a une erreur.&lt;/b&gt;&lt;br /&gt;
   Autrement dit, dans un chunk nominal qui serait du type "DET ADJ N" (ex:
  &lt;i&gt;les grandes vacances&lt;/i&gt;), le déterminant "DET" et l'adjectif "ADJ"
  doivent tous deux s'accorder avec le nom "N" qui est la tête du chunk. Leurs
  traits doivent donc s'unifier.&lt;br /&gt;
   En utilisant un découpage par chunks et l'unification de traits, on ne fait
  plus d'accord mot à mot et entre catégories de mots. On n'accorde plus un
  "déterminant masculin singulier" avec un "nom masculin singulier", mais un
  élément "masculin singulier" avec un autre "masculin singulier". &lt;b&gt;En
  s'intéressant aux traits et non plus aux catégories, on évite ainsi d'avoir
  à prévoir toutes les combinaisons de mots pouvant constituer un syntagme
  nominal par exemple ("DET NOM", "DET ADJ NOM", "DET NOM ADJ", "DET ADV ADJ
  NOM ADJ", etc).&lt;/b&gt;&lt;br /&gt;
   

  &lt;h2&gt;Correction "inter-chunks"&lt;/h2&gt;
  La détection des fautes de grammaire passe ensuite par une bonne mise en
  relation des éléments dans la phrase. De la même manière que tous les
  éléments d'un chunk doivent s'unifier entre eux, &lt;b&gt;tous les chunks d'une
  phrase doivent aussi s'unifier&lt;/b&gt;. &lt;b&gt;La méthode d'unification des traits
  peut donc permettre d'accorder facilement les syntagmes, en fonction des
  relations qu'ils entretiennent entre eux et avec le syntagme
  verbal.&lt;/b&gt;&lt;br /&gt;
   Par exemple, si le chunk verbal a le trait "3ème pers sing", alors le chunk
  sujet doit obligatoirement avoir le trait "3ème pers sing" pour que
  l'unification des 2 chunks puisse se faire. Dans le cas contraire, une
  erreur d'accord sujet-verbe sera détectée.&lt;br /&gt;
   Les accords se font entre groupes. Il n'est plus nécessaire de construire
  un nombre très important de règles décrivant toutes les combinaisons
  possibles. On évite par exemple d'avoir à prévoir toutes les combinaisons de
  mots que l'on peut trouver avant un verbe, en tant que sujet, ce qui est par
  ailleurs impossible. Les chunks permettent le traitement par groupes de
  mots, ayant chacun des règles spécifiques selon leur type, ce qui permet de
  beaucoup simplifier l'analyse syntaxique.&lt;br /&gt;
   

  &lt;h2&gt;Correction dans les relations distantes&lt;/h2&gt;
  Ce type de traitement peut aussi s'avérer &lt;b&gt;utile pour traiter certaines
  relations de dépendance distantes&lt;/b&gt;, qui posent beaucoup de problèmes aux
  correcteurs grammaticaux. Un simple accord entre un sujet et un verbe
  éloignés peut être très difficile à vérifier. Or, une propriété du chunk
  sujet est d'être généralement le premier syntagme à gauche du chunk verbal,
  à condition que ce syntagme soit nominal. Le découpage en chunks peut donc
  aider à résoudre les problèmes de détection de certaines fautes auxquels se
  heurtent une grande partie des correcteurs.&lt;br /&gt;
   

  &lt;h2&gt;Aide à la désambiguïsation&lt;br /&gt;
  &lt;/h2&gt;
  Par ailleurs, &lt;b&gt;la segmentation en syntagmes peut avoir un intérêt au
  niveau de la désambiguïsation.&lt;/b&gt; Par exemple, même si cela semble évident,
  un chunk nominal doit obligatoirement contenir un nom. Si un syntagme
  nominal ne contient pas de nom, le système recherche dans le chunk un mot
  ambigu qui peut avoir le tag "nom" mais qui ne lui a pas été attribué, et
  rectifie alors l'étiquetage afin que le chunk contienne un nom. Un chunk
  nominal sans nom peut être défini lorsque le système rencontre un
  déterminant (condition d'ouverture d'un chunk nominal) et lorsque le nom qui
  le suit est ambigu (avec un verbe par exemple) et mal étiqueté. On obtient
  ansi un chunk nominal constitué d'un déterminant, puis d'un verbe.&lt;br /&gt;
   

  &lt;h2&gt;Conclusion&lt;/h2&gt;
  L'utilisation combinée des chunks et de l'unification peut donc nous
  permettre de réduire considérablement le nombre de règles nécessaires à la
  bonne correction de la grammaire française. Elle peut aussi aider à la
  détection problématique de certaines fautes entre chunks distants, et
  éventuellement compléter la désambiguïsation.&lt;br /&gt;
   &lt;br /&gt;</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_03_26_interet-chunks-unification-pour-correction-grammaticale</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_26_interet-chunks-unification-pour-correction-grammaticale/atom?2007_03_26_interet-chunks-unification-pour-correction-grammaticale"
        title="Edit Here - Intérêt des chunks et de l'unification pour la correction grammaticale" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Chunks et unification</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_26_chunks-unification" />
  <issued>2007-06-18T07:51:43Z</issued>
  <modified>2007-06-18T07:51:43Z</modified>
  <created>2007-03-26T08:16:27Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Nous avons pu noter, à travers quelques tests, que les points faibles de
  LanguageTool, pour la correction grammaticale du français en particulier,
  sont l'absence de désambiguïsation et les règles de détection des
  fautes.
   
   Une partie de notre travail va donc consister à réaliser un outil de
  désambiguïsation qui nous permettra de réduire le nombre de tags des mots
  ambigus ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">Nous avons pu noter, à travers quelques tests, que les points faibles de
  LanguageTool, pour la correction grammaticale du français en particulier,
  sont l'absence de désambiguïsation et les règles de détection des
  fautes.&lt;br /&gt;
   &lt;br /&gt;
   Une partie de notre travail va donc consister à réaliser un outil de
  désambiguïsation qui nous permettra de réduire le nombre de tags des mots
  ambigus (sans toutefois le limiter nécessairement à un tag unique). Nous
  pourrons nous aider pour cela des règles de désambiguïsation écrites par &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/archive/2005/03"&gt;Myriam
  Lechelt&lt;/a&gt; pour Gramadoir.&lt;br /&gt;
   &lt;br /&gt;
   Pour ce qui est des règles d'erreurs, nous allons utiliser l'approche
  proposée par &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/2005_04_15_gramooo_necessite_d"&gt;
  Myriam&lt;/a&gt;, à savoir la segmentation en chunks et l'unification de
  structures de traits. Voici une petite explication sur ce qui se cache
  derrière ces deux notions.&lt;br /&gt;
   

  &lt;h1&gt;Qu'est-ce qu'un &lt;a id="chunk" name="chunk" title="chunk"&gt;&lt;/a&gt;chunk
  ?&lt;/h1&gt;
  Un chunk, ou syntagme, est &lt;i&gt;"une unité constituée d'une série de mots tous
  contigus les uns aux autres et regroupés autour d'une tête lexicale, le plus
  souvent un nom ou un verbe, plus rarement un adverbe, un adjectif ou un
  pronom.&lt;/i&gt;" (GIGUET, 1998).&lt;br /&gt;
   &lt;br /&gt;
   Les chunks sont délimités grâce aux mots grammaticaux, à la ponctuation ou
  aux marques morphologiques. En général, un chunk commence par un mot
  grammatical ou juste après une ponctuation, et se termine juste avant une
  ponctuation ou le mot grammatical suivant, qui marquent le début d'un
  nouveau syntagme.&lt;br /&gt;
   &lt;br /&gt;
   Par exemple, un syntagme nominal contient obligatoirement un nom (tête du
  chunk) et commence généralement par un déterminant. Un syntagme verbal
  commence par un verbe, parfois un pronom personnel ou un adverbe de
  négation, et contient nécessairement un verbe.&lt;br /&gt;
   &lt;br /&gt;
   Un chunk dépend généralement de son prédécesseur, sauf dans le cas d'un
  chunk verbal. Ce dernier dépend du chunk sujet, qui correspond en principe
  au premier syntagme à gauche, à condition qu'il soit nominal.&lt;br /&gt;
   &lt;br /&gt;
   La structure interne d'un chunk est relativement figée. Les mots
  fonctionnels qu'il contient entretiennent des relations de dépendance avec
  la tête lexicale et les contraintes d'accords sont assez fortes. Par contre,
  au sein d'une phrase, les différents chunks sont permutables. Dans l'exemple
  suivant extrait du Bourgeois Gentilhomme de Molière, nous pouvons voir que
  la phase est constituée de cinq syntagmes que l'on peut permuter, mais au
  sein desquels les éléments ont une place fixe :&lt;br /&gt;
   &lt;br /&gt;
   [&lt;i&gt;Belle Marquise], [vos beaux yeux] [me font] [mourir] [d'amour].&lt;br /&gt;
   [D'amour] [mourir] [me font], [belle Marquise], [vos beaux yeux].&lt;br /&gt;
   [Vos yeux beaux] [d'amour] [me font], [belle Marquise], [mourir].&lt;br /&gt;
   [Mourir] [vos beaux yeux], [belle Marquise], [d'amour] [me font].&lt;br /&gt;
   [Me font] [vos yeux beaux] [mourir], [belle Marquise], [d'amour].&lt;br /&gt;
  &lt;br /&gt;
  &lt;/i&gt; Un chunk dépend généralement de son prédécesseur, sauf dans le cas d'un
  chunk verbal.&lt;br /&gt;
   

  &lt;h1&gt;Qu'est-ce que l'&lt;a id="unification" name="unification"
  title="unification"&gt;&lt;/a&gt;unification de structure de traits ?&lt;/h1&gt;
  Les structures de traits décrivent chaque élément d'une phrase un énumérant
  ses caractéristiques linguistiques, syntaxiques ou sémantiques, sous la
  forme de listes de couples trait-valeur.&lt;br /&gt;
   Un trait peut avoir pour valeur un ou plusieurs couples trait-valeur. Dans
  ce cas, la structure de trait est dite récursive.&lt;br /&gt;
   &lt;br /&gt;
   L'unification consiste à combiner les informations (sous forme de
  structures de traits) de deux éléments d'une phrase et permet de vérifier
  leur compatibilité.&lt;br /&gt;
   Si 2 structures de traits ont les mêmes valeurs pour des traits identiques,
  alors elles peuvent s'unifier. Si 2 traits identiques n'ont pas la même
  valeur dans les 2 structures de traits, alors l'unification échoue. Si un
  trait n'est présent que dans une des deux structures, cela n'influe pas sur
  l'unification, qui échoue dans le cas de valeurs contradictoires pour un
  même trait, mais pas dans le cas d'absence d'un trait.&lt;br /&gt;
   &lt;br /&gt;
   Il y a unification entre &lt;i&gt;les&lt;/i&gt; et &lt;i&gt;chats&lt;/i&gt; dans l'exemple 1
  ci-dessous, mais pas entre &lt;i&gt;les&lt;/i&gt; et &lt;i&gt;chat&lt;/i&gt; dans l'exemple 2, car
  les traits "nombre" ont deux valeurs contradictoires :&lt;br /&gt;
   &lt;br /&gt;
   &lt;img
  src="http://blogs.nuxeo.com/workspaces/members/asouque/st/downloadFile/file/ST.jpg?nocache=1175005950.12" /&gt;
   &lt;br /&gt;
   &lt;br /&gt;
   &lt;br /&gt;</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_03_26_chunks-unification</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_26_chunks-unification/atom?2007_03_26_chunks-unification"
        title="Edit Here - Chunks et unification" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Test rapide de LanguageTool (sur le français)</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_22_test-rapide-languagetool" />
  <issued>2007-06-18T07:33:02Z</issued>
  <modified>2007-06-18T07:33:02Z</modified>
  <created>2007-03-22T14:14:44Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Tests de règles existantes
  
  Nous avons rapidement testé LanguageTool avec quelques règles en français,
  écrites par Myriam
  Lechelt pour Gramadoir, et adaptées ensuite au formalisme de
  LanguageTool.
   

  Conséquences de l'absence de désambiguïsation
  
  Nous avons alors pu remarquer beaucoup de problèmes dans la détection des
  erreurs, dus principalement à l'absence de ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">&lt;h1&gt;Tests de règles existantes&lt;br /&gt;
  &lt;/h1&gt;
  Nous avons rapidement testé LanguageTool avec quelques règles en français,
  écrites par &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/archive/2005/04"&gt;Myriam
  Lechelt&lt;/a&gt; pour Gramadoir, et adaptées ensuite au formalisme de
  LanguageTool.&lt;br /&gt;
   

  &lt;h2&gt;Conséquences de l'absence de désambiguïsation&lt;br /&gt;
  &lt;/h2&gt;
  Nous avons alors pu remarquer beaucoup de problèmes dans la détection des
  erreurs, dus principalement à l'absence de désambiguïsation après le
  tagging. En effet, &lt;b&gt;les mots ambigus ont plusieurs tags et lors de
  l'application des règles d'erreurs, il suffit qu'un des tags corresponde à
  une règle pour que celle-ci soit appliquée, même si un ou plusieurs autres
  tags du mot ne correspondent pas à cette règle.&lt;/b&gt;&lt;br /&gt;
   On peut constater cela avec l'exemple suivant, portant sur la confusion
  entre sa et ça.&lt;br /&gt;
   &lt;br /&gt;
   Nous disposons des deux règles suivantes :&lt;br /&gt;
   

  &lt;ol&gt;
   &lt;li&gt;si &lt;i&gt;sa&lt;/i&gt; est suivi d'un verbe puis d'un mot quelconque, alors il y
   a une erreur et il faut remplacer &lt;i&gt;sa&lt;/i&gt; par &lt;i&gt;ça&lt;/i&gt;.&lt;/li&gt;

   &lt;li&gt;si &lt;i&gt;ça&lt;/i&gt; est suivi d'un nom puis d'un mot quelconque, alors il y a
   une erreur et il faut remplacer &lt;i&gt;ça&lt;/i&gt; par &lt;i&gt;sa&lt;/i&gt;.&lt;br /&gt;
   &lt;/li&gt;
  &lt;/ol&gt;
  &lt;br /&gt;
   Prenons maintenant les deux phrases :&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;(a) &lt;i&gt;Sa voiture est en panne.&lt;/i&gt;&lt;/li&gt;

   &lt;li&gt;(b)&lt;i&gt;*Ça voiture est en panne.&lt;/i&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;br /&gt;
   Le mot &lt;i&gt;voiture&lt;/i&gt; est ambigu. Il peut s'agir du nom &lt;i&gt;voiture&lt;/i&gt; ou
  du verbe &lt;i&gt;voiturer&lt;/i&gt;. Le mot a donc 2 étiquettes : "nom" et
  "verbe".&lt;br /&gt;
   &lt;br /&gt;
   Lors de la vérification des phrases, tous les tags d'un mot sont pris en
  compte pour l'application des règles.&lt;br /&gt;
   La règle 1. s'applique donc (à tort) à la phrase (a) car elle trouve un tag
  "verbe" pour &lt;i&gt;voiture&lt;/i&gt;, précédé de &lt;i&gt;sa&lt;/i&gt;. Il est alors suggéré de
  remplacer &lt;i&gt;sa&lt;/i&gt; par &lt;i&gt;ça&lt;/i&gt;. Il aurait fallu ici que le tag "verbe"
  soit ignoré et que seul le tag "nom" soit pris en compte puisque c'est celui
  qui correspond au mot &lt;i&gt;voiture&lt;/i&gt; dans cet exemple.&lt;br /&gt;
   &lt;br /&gt;
   La règle 2. s'applique à la phrase (b) car elle trouve un tag "nom" pour
  &lt;i&gt;voiture&lt;/i&gt;, précédé de &lt;i&gt;ça&lt;/i&gt;. Il est alors suggéré de remplacer
  &lt;i&gt;ça&lt;/i&gt; par &lt;i&gt;sa&lt;/i&gt;. Ici, la détection est correcte. Il y a bien une
  faute.&lt;br /&gt;
   &lt;br /&gt;
   Les énoncés (a) et (b) sont donc tous deux considérés comme faux, chacun
  donnant l'autre comme correction, ce qui est contradictoire.&lt;br /&gt;
   

  &lt;h2&gt;Tentative de contournement du problème...&lt;/h2&gt;
  Nous avons tenté de réduire le bruit provoqué par la règle 1. en la
  modifiant : &lt;i&gt;ça&lt;/i&gt; suivi de 2 verbes au lieu d'un seul. Cela permet de
  pallier en partie le problème de l'ambiguïté de &lt;i&gt;voiture&lt;/i&gt;, mais nous
  réalisons alors qu&lt;b&gt;'il est nécessaire d'avoir des règles plus complexes et
  précises pour contourner l'absence de désambiguïsation et le fait que
  beaucoup de mots ont plus d'une étiquette.&lt;/b&gt;&lt;br /&gt;
   

  &lt;h2&gt;D'autres exemples sur ce problème&lt;br /&gt;
  &lt;/h2&gt;
  Les autres règles aussi entraînent beaucoup de mauvaises détections
  d'erreurs, dues à l'ambiguïté verbe-nom le plus souvent.&lt;br /&gt;
   Par exemple :&lt;br /&gt;
   &lt;i&gt;La visite &lt;span style="color: rgb(255, 0, 0);"&gt;a&lt;/span&gt; duré
  longtemps&lt;/i&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; est
  corrigé : &lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; La visite &lt;span
  style="color: rgb(255, 0, 0);"&gt;à&lt;/span&gt; duré longtemps&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; car le tag "verbe" de &lt;i&gt;visite&lt;/i&gt;
  correspond à la règle.&lt;br /&gt;
   &lt;i&gt;Il &lt;span style="color: rgb(255, 0, 0);"&gt;se&lt;/span&gt; trompe toujours de
  numéro&lt;/i&gt; &amp;nbsp;&amp;nbsp; est corrigé : &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Il &lt;span
  style="color: rgb(255, 0, 0);"&gt;ce&lt;/span&gt; trompe toujours de
  numéro&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; car le tag "nom" de &lt;i&gt;trompe&lt;/i&gt; correspond à
  la règle.&lt;br /&gt;
   &lt;i&gt;Tu peux utiliser &lt;span style="color: rgb(255, 0, 0);"&gt;ce&lt;/span&gt;
  téléphone&lt;/i&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; est corrigé :
  &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;i&gt;Tu peux utiliser &lt;span
  style="color: rgb(255, 0, 0);"&gt;se&lt;/span&gt; téléphone&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; à cause du tag "verbe" de &lt;i&gt;téléphone&lt;/i&gt; qui correspond
  à la règle.&lt;br /&gt;
   &lt;i&gt;Ces lignes ne &lt;span style="color: rgb(255, 0, 0);"&gt;sont&lt;/span&gt; pas
  droites&lt;/i&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; est corrigé :
  &lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ces lignes ne &lt;span
  style="color: rgb(255, 0, 0);"&gt;son&lt;/span&gt; pas droites&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; car &lt;i&gt;pas&lt;/i&gt; a le tag "nom" qui entraine l'application
  de la règle.&lt;br /&gt;
   &lt;i&gt;Il a publié &lt;span style="color: rgb(255, 0, 0);"&gt;son&lt;/span&gt; livre&lt;/i&gt;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; est corrigé : &lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Il a
  publié &lt;span style="color: rgb(255, 0, 0);"&gt;sont&lt;/span&gt;
  livre&lt;/i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; car le tag "verbe" de
  &lt;i&gt;livre&lt;/i&gt; correspond à la règle.&lt;br /&gt;
   

  &lt;h1&gt;Création de nouvelles règles&lt;/h1&gt;
  Nous avons aussi tenté de créer des règles nouvelles pour nous confronter
  aux problèmes d'écriture de règles d'erreur.&lt;br /&gt;
   

  &lt;h2&gt;La négation&lt;/h2&gt;
  Nous avons écrit une règle pour la détection d'erreur sur la négation, qui
  permet de détecter l'omission de la particule ne dans une phrase négative
  avec pas ou jamais.&lt;br /&gt;
   Si dans une phrase un verbe n'est pas précédé de &lt;i&gt;ne&lt;/i&gt; ou &lt;i&gt;n'&lt;/i&gt;,
  mais qu'il est suivi de &lt;i&gt;pas&lt;/i&gt; ou &lt;i&gt;jamais&lt;/i&gt; (eux-mêmes non précédés
  d'un déterminant pour éviter la confusion avec le nom &lt;i&gt;pas&lt;/i&gt;), avec une
  suite quelconque de mots entre le verbe et pas, alors une faute est
  détectée.&lt;br /&gt;
   &lt;br /&gt;
   Même si la règle fonctionne relativement bien, nous nous rendons compte là
  encore qu'il est nécessaire de contourner l'absence de désambiguïsation par
  des règles plus compliquées.&lt;br /&gt;
   

  &lt;h2&gt;L'accord déterminant-nom&lt;/h2&gt;
  Nous avons voulu faire une règle pour l'accord entre un déterminant et un
  nom qui détecterait une erreur dans le cas où un nom masculin singulier ne
  serait pas précédé d'un déterminant autre que masculin singulier. Mais nous
  avons eu un souci avec l'expression régulière qui n'a jamais voulu
  fonctionner... &lt;br /&gt;
   &lt;br /&gt;
  Cependant, cela nous a quand même permis de prendre conscience du très grand
  nombre de règles qu'il est nécessaire de rédiger pour couvrir le plus de cas
  possibles. Dans son mémoire, &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/2005_11_30_gramooo-memoire-slides"&gt;
  Myriam&lt;/a&gt; avait calculé le nombre de combinaisons possibles &lt;i&gt;déterminant,
  adjectif, nom&lt;/i&gt; et &lt;i&gt;déterminant, nom, adjectif.&lt;/i&gt; Étant donné que
  chacune de ces catégories peut avoir trois genres (masculin, féminin,
  épicène) et trois nombres (singulier, pluriel, invariable), on obtient 1458
  combinaisons possibles, donc presque autant de règles à rédiger (il faut
  enlever les combinaisons correctes puisque les règles décrivent des
  erreurs).&lt;br /&gt;
   Il y a bien sûr moyen de créer un programme qui génère ces règles
  automatiquement, mais c'est un nombre tout de même très important et qui
  correspond au traitement d'une petite partie de la syntaxe seulement. On
  voit donc que &lt;b&gt;la liste de règles à créer peut vite devenir considérable,
  sans jamais pouvoir être exhaustive, car il n'est pas possible de prévoir
  toutes les erreurs qui peuvent être commises dans un texte.&lt;/b&gt;&lt;br /&gt;
   

  &lt;h1&gt;Conclusion&lt;/h1&gt;
  En conclusion de ces petits tests, nous pouvons dire que le principal
  problème que nous avons rencontré est celui de l'absence de
  désambiguïsation, que nous allons essayer de combler. Nous allons par
  ailleurs modifier la méthode actuelle de détection des fautes, qui nécessite
  trop de règles, afin qu'elle soit plus adaptée à la grammaire
  française.&lt;br /&gt;</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_03_22_test-rapide-languagetool</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_22_test-rapide-languagetool/atom?2007_03_22_test-rapide-languagetool"
        title="Edit Here - Test rapide de LanguageTool (sur le français)" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Présentation de LanguageTool</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_22_fonctionnement-languagetool" />
  <issued>2007-03-22T08:40:56Z</issued>
  <modified>2007-03-22T08:40:56Z</modified>
  <created>2007-03-22T08:39:07Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">LanguageTool est un correcteur libre de style et de grammaire, développé
  initialement pour l'anglais par Daniel Naber et adapté par la suite à
  d'autres langues comme l'allemand, le hongrois ou encore le polonais.
  
  Il était à l'origine programmé en python mais a été entièrement réécrit en
  java (pour un meilleur support du format XML utilisé notamment pour les
  fichiers de règles ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">LanguageTool est un correcteur libre de style et de grammaire, développé
  initialement pour l'anglais par Daniel Naber et adapté par la suite à
  d'autres langues comme l'allemand, le hongrois ou encore le polonais.&lt;br /&gt;
  &lt;br /&gt;
  Il était à l'origine programmé en python mais a été entièrement réécrit en
  java (pour un meilleur support du format XML utilisé notamment pour les
  fichiers de règles d'erreurs, comme nous allons le voir pas la suite).&lt;br /&gt;&lt;br /&gt;
  Il est composé de plusieurs modules qui effectuent successivement :&lt;br /&gt;

  &lt;ol&gt;
   &lt;li&gt;la segmentation du texte à vérifier en phrases&lt;/li&gt;

   &lt;li&gt;la segmentation des phrases en mots&lt;/li&gt;

   &lt;li&gt;l'étiquetage morpho-syntaxique des mots : les mots ambigus reçoivent
   plusieurs étiquettes correspondant aux diverses catégories
   morpho-syntaxiques auxquelles ils peuvent appartenir ainsi qu'aux
   différents traits qu'ils peuvent avoir dans une catégorie, et ils les
   conservent toutes car aucune désambiguïsation n'est effectuée. Ainsi
   &lt;i&gt;bête&lt;/i&gt; aura les étiquettes &amp;lt;nom féminin singulier&amp;gt;, &amp;lt;adjectif
   masculin singulier&amp;gt; et &amp;lt;adjectif féminin singulier&amp;gt;.&lt;/li&gt;

   &lt;li&gt;la détection des erreurs de grammaire : elle s'effectue par comparaison
   de chaque segment de phrase avec une base de règles décrivant des erreurs.
   Si un segment correspond à une règle, alors une erreur est détectée.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  Les règles d'erreurs sont formalisées en XML et sont composées de plusieurs
  éléments :&lt;br /&gt;

  &lt;ul&gt;
   &lt;li&gt;id et name : respectivement l'identifiant et le nom de la règle&lt;/li&gt;

   &lt;li&gt;pattern : modèle de l'erreur&lt;/li&gt;

   &lt;li&gt;message : description de la règle à l'usage de l'utilisateur&lt;/li&gt;

   &lt;li&gt;example&amp;nbsp; : exemple d'énoncé correspondant à la faute commise. Il y
   a en général au moins deux exemples : un exemple d'énoncé correct et un
   exemple d'énoncé incorrect.&lt;/li&gt;
  &lt;/ul&gt;

  L'élément pattern est le plus important. C'est lui qui décrit le modèle de
  l'erreur et avec lui que les phrases sont comparées lors de la détection. Le
  modèle se présente généralement sous la forme d'expression(s)
  régulière(s).&lt;br /&gt;
  &lt;br /&gt;
  Voici un exemple de règle en français :&lt;br /&gt;&lt;br /&gt;
  &amp;lt;rule &lt;b&gt;name&lt;/b&gt;="&lt;i&gt;ma (m'a&lt;b&gt;)&lt;/b&gt;&lt;/i&gt;&lt;b&gt;"
  id&lt;/b&gt;="&lt;i&gt;MA&lt;/i&gt;"&amp;gt;&lt;br /&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&lt;b&gt;pattern&lt;/b&gt; mark_to="-1"&amp;gt;&lt;br /&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
  &amp;nbsp;&amp;lt;token&amp;gt;&lt;i&gt;ma&lt;/i&gt;&amp;lt;/token&amp;gt;&lt;br /&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;token postag="&lt;i&gt;V.*&lt;/i&gt;"
  postag_regexp="yes"/&amp;gt;&lt;br /&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/pattern&amp;gt;&lt;br /&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&lt;b&gt;message&lt;/b&gt;&amp;gt;&lt;i&gt;Voulez vous
  écrire&lt;/i&gt;&amp;lt;suggestion&amp;gt;&lt;i&gt;m'a&lt;/i&gt;&amp;lt;/suggestion&amp;gt;&lt;i&gt;?&lt;/i&gt;&amp;lt;/message&amp;gt;&lt;br /&gt;

  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&lt;b&gt;example&lt;/b&gt; type="incorrect"&amp;gt;&lt;i&gt;Il&lt;/i&gt;
  &amp;lt;marker&amp;gt;&lt;i&gt;ma&lt;/i&gt;&amp;lt;/marker&amp;gt;&lt;i&gt;répondu.&lt;/i&gt;&amp;lt;/example&amp;gt;&lt;br /&gt;
  &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;&lt;b&gt;example&lt;/b&gt; type="correct"&amp;gt;&lt;i&gt;Il&lt;/i&gt;
  &amp;lt;marker&amp;gt;&lt;i&gt;m'a&lt;/i&gt;&amp;lt;/marker&amp;gt;&lt;i&gt;répondu.&lt;/i&gt;&amp;lt;/example&amp;gt;&lt;br /&gt;
  &amp;lt;/rule&amp;gt;&lt;br /&gt;&lt;br /&gt;
  Cette règle détecte une confusion dans l'utilisation des homophones
  &lt;i&gt;m'a&lt;/i&gt;&amp;nbsp; et &lt;i&gt;ma&lt;/i&gt;. Si le texte à vérifier contient &lt;i&gt;ma&lt;/i&gt;
  suivi d'un verbe (&lt;i&gt;V&lt;/i&gt;), suivi de n'importe quel mot (&lt;i&gt;.*&lt;/i&gt;), alors
  il y a une erreur.</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_03_22_fonctionnement-languagetool</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_22_fonctionnement-languagetool/atom?2007_03_22_fonctionnement-languagetool"
        title="Edit Here - Présentation de LanguageTool" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Fonctionnement d'un correcteur grammatical</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_21_fonctionnement-d-correcteur-grammatical" />
  <issued>2007-06-18T07:29:42Z</issued>
  <modified>2007-06-18T07:29:42Z</modified>
  <created>2007-03-21T15:22:38Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Avant de décrire la structure de LanguageTool, nous pouvons commencer par
  expliquer le fonctionnement des correcteurs grammaticaux de manière
  générale.
   
   Le texte à vérifier est d'abord découpé en phrases, puis les phrases en
  mots. C'est la tokenisation.
  
   Vient ensuite la phase d'étiquetage morpho-syntaxique
  (ou tagging). Chaque mot se voit attribuer une ou plusieurs ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">Avant de décrire la structure de LanguageTool, nous pouvons commencer par
  expliquer le fonctionnement des correcteurs grammaticaux de manière
  générale.&lt;br /&gt;
   &lt;br /&gt;
   Le texte à vérifier est d'abord découpé en phrases, puis les phrases en
  mots. C'est la &lt;span style="color: rgb(255, 0, 0);"&gt;tokenisation.&lt;br /&gt;
  &lt;br /&gt;
  &lt;/span&gt; Vient ensuite la phase &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span
  style="color: rgb(0, 0, 0);"&gt;d'&lt;/span&gt;étiquetage morpho-syntaxique&lt;/span&gt;
  (ou tagging). Chaque mot se voit attribuer une ou plusieurs étiquettes
  (tags) contenant des informations telles que la catégorie morpho-syntaxique
  (verbe, nom, adjectif, pronom, etc), ainsi que le genre et le nombre (pour
  les noms, les adjectifs...), le temps, le mode, la personne, etc... pour les
  verbes.&lt;br /&gt;
   &lt;br /&gt;
   Lors du tagging, les très nombreux mots ambigus reçoivent plusieurs tags.
  Une &lt;span style="color: rgb(255, 0, 0);"&gt;désambiguïsation&lt;/span&gt; est
  nécessaire pour limiter le nombre d'étiquettes de chaque mot et améliorer
  par la suite la détection de fautes de grammaire. &lt;br /&gt;
   Certains correcteurs utilisent une méthode probabiliste pour désambiguïser
  les mots. Ils nécessitent un corpus d'apprentissage sans erreurs et étiqueté
  avec les informations morpho-syntaxiques. Ils calculent alors la probabilité
  que tel mot ait tel tag plutôt qu'un autre, ou encore la probabilité qu'un
  mot ait un certain tag en fonction des tags des mots qui l'entourent. Lors
  du tagging, ces probabilités sont appliquées aux mots du texte à analyser et
  chaque mot reçoit alors le tag qui correspond à la plus forte
  probabilité.&lt;br /&gt;
   Cette méthode est contraignante dans la mesure où la détection des fautes
  est très dépendante du corpus ayant servi à l'apprentissage. Par ailleurs,
  le corpus étiqueté nécessaire doit être le plus grand possible. Il n'en
  existe pas forcément de disponible ou de convenable, et la constitution d'un
  tel corpus est très coûteuse. &lt;br /&gt;
   Une autre méthode consiste à utiliser des règles manuelles de
  désambiguïsation sous forme d'expressions régulières, basées sur le contexte
  immédiat. Cette méthode est plus contrôlable que la méthode statistique,
  mais elle nécessite des règles descriptives qui doivent être suffisamment
  nombreuses pour couvrir le plus de cas possibles, des règles qui sont
  rédigées manuellement et donc longues à produire, et qui ne peuvent par
  ailleurs pas être exhaustives.&lt;br /&gt;
   Certains correcteurs combinent les 2 méthodes, d'autres ne font pas de
  désambiguïsation.&lt;br /&gt;
   &lt;br /&gt;
   Une fois l'étiquetage terminé, commence alors l'étape de &lt;span
  style="color: rgb(255, 0, 0);"&gt;détection des erreurs&lt;/span&gt;. Il existe là
  encore deux manières de procéder.&lt;br /&gt;
   Certains correcteurs utilisent des règles prescriptives et d'autres des
  règles d'erreurs. Les premiers comparent donc le texte avec une liste de
  formes correctes. Dans le cas où ils ne trouvent pas de correspondance, ils
  détectent une erreur. Les seconds, au contraire, comparent le texte avec des
  règles décrivant des erreurs. S'il y a correspondance, c'est qu'il y a une
  faute.&lt;br /&gt;
   Dans les deux cas, plus il y a de règles, meilleure sera la détection. Mais
  il est impossible de prévoir et donc de décrire toutes les erreurs
  possibles. Il y aura donc potentiellement toujours des erreurs non décrites
  dans les règles, non détectables par le correcteur, et donc beaucoup de
  silence.&lt;br /&gt;
   Les règles de grammaire sont moins nombreuses mais tout de même difficiles
  à rédiger de manière exhaustive, et tout ce qui ne correspond pas à une
  règle étant considéré comme une faute, il peut y avoir beaucoup de bruit,
  c'est-à-dire beaucoup de détections d'erreurs qui n'en sont pas.</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_03_21_fonctionnement-d-correcteur-grammatical</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_21_fonctionnement-d-correcteur-grammatical/atom?2007_03_21_fonctionnement-d-correcteur-grammatical"
        title="Edit Here - Fonctionnement d'un correcteur grammatical" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Résumé du travail de Myriam Lechelt</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_21_travail-effectue-par-myriam-lechelt" />
  <issued>2007-04-12T11:32:32Z</issued>
  <modified>2007-04-12T11:32:32Z</modified>
  <created>2007-03-21T12:48:16Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Je vais ici faire un résumé rapide de l'important travail effectué par Myriam
  Lechelt sur le projet de correcteur grammatical dont je prends la
  suite.
   
   Dans le cadre de son mémoire de DEA, Myriam a
  donc initié un travail dont l'objectif est, à terme, de créer un outil de
  correction grammaticale libre pouvant être intégré à OpenOffice.org. Plutôt
  que de chercher à réaliser ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">Je vais ici faire un résumé rapide de l'important travail effectué par &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/"&gt;Myriam
  Lechelt&lt;/a&gt; sur le projet de correcteur grammatical dont je prends la
  suite.&lt;br /&gt;
   &lt;br /&gt;
   Dans le cadre de son mémoire de DEA, &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/"&gt;Myriam&lt;/a&gt; a
  donc initié un travail dont l'objectif est, à terme, de créer un outil de
  correction grammaticale libre pouvant être intégré à OpenOffice.org. Plutôt
  que de chercher à réaliser entièrement un nouvel outil, elle a réalisé une
  analyse de plusieurs correcteurs grammaticaux libres déjà existants, afin de
  déterminer lequel serait le plus adaptable au français.&lt;br /&gt;
   &lt;br /&gt;
   Parmi les correcteurs analysés (&lt;a
  href="http://grac.sourceforge.net/"&gt;GRAC&lt;/a&gt; , &lt;a
  href="http://www.danielnaber.de/languagetool/"&gt;LanguageTool&lt;/a&gt; et&amp;nbsp; &lt;a
  href="http://borel.slu.edu/gramadoir/"&gt;An Gramadoir&lt;/a&gt;), c'est Gramadoir
  qui a été retenu pour être adapté au français. Son adaptation s'est traduite
  par la définition d'un jeu d'étiquettes pour l'étiquetage morpho-syntaxique
  des mots (&lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/2005_02_25_gramooo_importance_du"&gt;
  tagging&lt;/a&gt;), par l'écriture de règles de désambiguïsation pour la phase du
  tagging, puis par la création de quelques règles&amp;nbsp; pour la détection des
  fautes.&lt;br /&gt;
   &lt;br /&gt;
   L'adaptation de Gramadoir au français n'a pas été achevée, et malgré des
  résultats plutôt satisfaisants lors des premiers tests, l'outil a montré des
  limites pour le traitement du français.&lt;br /&gt;
   &lt;br /&gt;
   Une approche alternative a finalement été proposée, dans l'éventualité de
  la conception d'un nouveau correcteur. Elle consiste à introduire un niveau
  intermédiaire entre le mot et la phrase, le chunk (ou syntagme), lors de la
  segmentation des phrases et à utiliser le principe de l'unification de
  structures de traits au niveau de la vérification grammaticale. Nous
  reviendrons ultérieurement sur les notions de chunk et d'unification.&lt;br /&gt;
   &lt;br /&gt;
   

  &lt;div align="right"&gt;
   &lt;hr size="2" width="100%" /&gt;
   &lt;br /&gt;
  &lt;/div&gt;
  Les travaux de &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/"&gt;Myriam&lt;/a&gt;
  ayant montré que le traitement du français par Gramadoir restera limité,
  nous n'allons pas continuer à exploiter ce système. Nous avons décidé par
  ailleurs de ne pas non plus concevoir un correcteur entièrement nouveau.
  Nous allons plutôt réaliser une adaptation de la dernière version de
  LanguageTool. En effet, il y a eu beaucoup d'évolutions entre l'ancienne
  version rejetée à l'époque, et la nouvelle, qui semble mieux adaptable au
  français. Nous allons la compléter en suivant les pistes données par &lt;a
  href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt/"&gt;Myriam&lt;/a&gt; pour
  la conception d'un nouveau correcteur.</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_03_21_travail-effectue-par-myriam-lechelt</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_21_travail-effectue-par-myriam-lechelt/atom?2007_03_21_travail-effectue-par-myriam-lechelt"
        title="Edit Here - Résumé du travail de Myriam Lechelt" />
</entry>

  
  
      <entry xmlns="http://purl.org/atom/ns#"
       xmlns:dc="http://purl.org/dc/elements/1.1/">
     
  <title mode="escaped" type="text/html">Correcteur grammatical... la suite</title>
  <link rel="alternate" type="text/html"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_19_correcteur-grammatical-suite" />
  <issued>2007-03-25T14:59:16Z</issued>
  <modified>2007-03-25T14:59:16Z</modified>
  <created>2007-03-19T11:06:49Z</created>
  <draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
  <author>
    <name>asouque</name>
  </author>
  
  
    <dc:subject>indesko</dc:subject>
  
  
    <dc:subject>openoffice</dc:subject>
  
  
  <summary type="text/html" mode="escaped">Je suis étudiante en 2ème année de Master recherche Industries de la langue.
  Mon mémoire de recherche s'inscrit dans le prolongement du travail initié
  par Myriam
  Lechelt en 2005, à savoir le projet de développement d'un correcteur
  grammatical libre pouvant être intégré à la suite OpenOffice.org.
   
   Le travail effectué par Myriam a permis de montrer les limites des outils
  ...</summary>

  <content type="text/html" mode="escaped"
           xml:space="preserve">Je suis étudiante en 2ème année de Master recherche Industries de la langue.
  Mon mémoire de recherche s'inscrit dans le prolongement du travail initié
  par &lt;a href="http://blogs.nuxeo.com/sections/blogs/myriam_lechelt"&gt;Myriam
  Lechelt&lt;/a&gt; en 2005, à savoir le projet de développement d'un correcteur
  grammatical libre pouvant être intégré à la suite OpenOffice.org.&lt;br /&gt;
   &lt;br /&gt;
   Le travail effectué par Myriam a permis de montrer les limites des outils
  Gramadoir (&lt;a
  href="http://borel.slu.edu/gramadoir/"&gt;http://borel.slu.edu/gramadoir/&lt;/a&gt;)
  de Kevin Scannell et LanguageTool (&lt;a
  href="http://www.danielnaber.de/languagetool/"&gt;http://www.danielnaber.de/languagetool/&lt;/a&gt;)
  de Daniel Naber pour leur adaptation à la correction grammaticale du
  français.&lt;br /&gt;
   LanguageTool a entre temps beaucoup évolué et la nouvelle version semble
  plus adaptable au français que ne l'étaient l'ancienne version et
  Gramadoir.&lt;br /&gt;
   &lt;br /&gt;
   Mon travail va donc consister&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;à reprendre le travail de Myriam Lechelt, notamment sur les règles
   d'erreurs à compléter&lt;/li&gt;

   &lt;li&gt;à étudier la nouvelle version de LanguageTool et lui apporter les
   modifications nécessaires à une meilleure adaptation à la grammaire
   française,&lt;/li&gt;

   &lt;li&gt;dans le but d'obtenir un outil générique et libre adapté au français et
   pouvant être intégré à OpenOffice.org ou à d'autres projets.&lt;br /&gt;
   &lt;/li&gt;
  &lt;/ul&gt;
  &lt;br /&gt;
   J'ai par ailleurs effectué un stage au sein de la société Nuxeo-InDesko
  durant l'été 2006. L'objectif était la création d'un outil d'extraction
  automatique d'affixes à partir d'une liste de mots, afin de pouvoir générer
  automatiquement, pour toute langue, un fichier d'affixes et un dictionnaire
  compatibles avec le correcteur orthographique d'OpenOffice.org. Les
  fichiers actuels sont construits manuellement et très coûteux à
  produire.&lt;br /&gt;
   &lt;a
  href="http://w3.u-grenoble3.fr/lebarbe/agnes/index.php"&gt;http://w3.u-grenoble3.fr/lebarbe/agnes/index.php&lt;/a&gt;</content>

  <id>tag:blogs.nuxeo.com:sections:blogs:agnes-souque:2007_03_19_correcteur-grammatical-suite</id>
  <link rel="service.edit" type="application/atom+xml"
        href="http://blogs.nuxeo.com/sections/blogs/agnes-souque/2007_03_19_correcteur-grammatical-suite/atom?2007_03_19_correcteur-grammatical-suite"
        title="Edit Here - Correcteur grammatical... la suite" />
</entry>

  

</feed>
