Rapport de Traitement Automatique des
               Langues:
        Recherche de citations.
           FONTAINE Fabrice
           CHATELUS Damien
            BANVILLE Julien

             Master 1 RADI
              6 mai 2008




                   1
Table des mati`res
              e
1 Introduction                                                                                                                 3

2 Pr´sentation du projet
     e                                                                                                                         4
  2.1 Liste des corpus de tests   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    4
  2.2 D´finition d’une citation
       e                          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    5
  2.3 Organisation pr´vue . .
                      e           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    6
  2.4 Gestion de la langue . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    6

3 M´thodologie
     e                                                                                                                        7
  3.1 Pr´-traitement . . . . . . . . . . . . .
          e                                                       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
       3.1.1 Choix du grain de recherches :                       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
       3.1.2 Motifs recherch´s : . . . . . . .
                             e                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
       3.1.3 Repr´sentation : . . . . . . . .
                  e                                               .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   8
       3.1.4 Explications additionnelles : . .                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   8
  3.2 Post-traitement . . . . . . . . . . . . .                   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   8

4 Contenu de l’Application                                                   10
  4.1 Base de donn´es en Sql . . . . . . . . . . . . . . . . . . . . . . . . 10
                    e
  4.2 Programmes et fonctions en Python . . . . . . . . . . . . . . . . 11
  4.3 Fenˆtre d’utilisation en Php . . . . . . . . . . . . . . . . . . . . . 12
         e

5 Resultats obtenus                                                           13
  5.1 Sur le corpus de test . . . . . . . . . . . . . . . . . . . . . . . . . 13
  5.2 Sur un corpus de presse . . . . . . . . . . . . . . . . . . . . . . . 13
  5.3 Sur un corpus quelconque . . . . . . . . . . . . . . . . . . . . . . 13

6 Conclusion                                                                                                                  14




                                              2
1    Introduction
    Les applications relatives au traitement automatique des langues sont nom-
breuses et pr´sentes dans un grand nombre de domaines, parmi lesquels la tra-
               e
duction automatique et la recherche de motifs dans un document (de langue
quelconque).
Avec l’essor d’Internet et la masse d’informations qu’il contient, il n’est dor´navant
                                                                               e
plus possible de classer ces renseignements manuellement, c’est pourquoi nous
devons impl´menter des m´thodes de traitement automatique sur ces donn´es.
              e              e                                                   e
L’internet ´tant un r´seau Mondial, les informations s’y trouvent dans de nom-
            e          e
breuses langues, il est par cons´quent n´cessaire de se d´tacher des langues
                                   e         e                   e
connues pour pouvoir g´rer et appliquer nos m´thodes quelle que soit la pro-
                          e                       e
venance ou la langue du document. C’est dans cet objectif que notre appli-
cation devra reconnaˆ et extraire les citations d’un corpus de documents de
                       ıtre
diff´rentes langues et les rendre rapidemment accessibles ` l’utilisateur. De plus,
    e                                                        a
il paraˆ utile et mˆme indispensable de lier chaque citation ` son auteur mais
       ıt           e                                              a
cette tˆche est tr`s d´licate.
       a          e e
En effet, ce type d’application est de plus en plus utilis´ par la presse qui d´sire
                                                           e                     e
retrouver les citations et les auteurs pour leurs articles.
Nous avons donc dˆ faire aussi bien un travail analytique que de programma-
                     u
tion afin d’arriver ` un r´sultat quant ` la reconnaissance, ` l’indexation et ` la
                    a      e             a                      a                 a
recherche de citation.
Nous allons donc commencer par une pr´sentation de notre projet ` travers les
                                           e                             a
corpus choisis, l’organisation et par la d´finition d’une citation. Pour ensuite
                                             e
d´tailler la m´thodologie utilis´e en pr´-traitement (r´cup´ration des citations)
  e             e                e       e               e     e
et en post-traitement (affichage des citations). Puis nous pr´senterons l’appli-
                                                                   e
cation que nous avons cr´´e ` travers les diff´rents modules qui la composent.
                            ee a                e
Et nous finirons par une analyse des r´sultats obtenus sur diff´rents corpus.
                                         e                           e




                                         3
2     Pr´sentation du projet
        e
   Avant toute chose, il nous a fallu regrouper une liste de corpus afin de cr´er
                                                                             e
nos applications. Puis, nous nous sommes pench´s sur les ´l´ments constituant
                                                 e          ee
d’une citation.


2.1     Liste des corpus de tests
    Nous avons commenc´ par cr´er un crawler afin de parcourir le web et de
                          e      e
t´l´charger une liste de documents pour composer notre corpus de tests. Nous
 ee
avons dˆ nettoyer le corpus de tout code html afin de ne garder que le contenu
        u
pertinent.

   Nous avons choisi de traiter 4 langues pour la premi`re version de notre
                                                       e
application :
    1. Fran¸ais : notre langue maternelle
           c
    2. Anglais : la langue la plus utilis´e sur internet.
                                         e
    3. Allemand : langue inconnue.
    4. Italien : langue inconnue.
L’Allemand et l’Italien ´tant pour nous des langues totalement opaques, et sur
                        e
lesquelles nous avons dˆ travailler sans les comprendre.
                       u

    Notre liste de corpus de tests se composait de 10 documents de chaque
langue, ce qui nous a permis d’´tudier pr´cis´ment les r´sultats de nos algo-
                                 e          e e             e
rithmes. Notre liste ´tendue de corpus de test se composait de 200 documents
                      e
par langue, il nous a offert un aper¸u des r´sultats sur un nombre de documents
                                   c       e
plus important.

     Nos corpus de tests sont issus de sites de presse, afin de s’assurer de la
pr´sence de citations.
   e
Nous avons r´alis´ un module responsable de la reconnaissance de la langue
               e e
selon la pr´sence et la fr´quence des petits mots courants.
           e              e
Cette m´thode permet d’automatiser la recherche de la langue, mais ne peut
         e
s’appliquer ` toutes les langues.
             a




                                          4
2.2    D´finition d’une citation
        e
    Nous avons dˆ nous pencher sur l’´nonc´ pour d´finir ce qu’est une citation
                 u                   e     e       e
et savoir ce que nous devons chercher et indexer.
En premier lieu, nous pouvons s´parer les discours d’un corpus entre :
                                e
  1. Les DA : Discours de l’auteur.
  2. Les DR : Discours rapport´s.
                              e
   Puis, nous pouvons s´parer les citations en deux cat´gories :
                       e                               e
  1. Les DRD : Discours Rapport´s Directs.
                               e
  2. Les DRI : Discours Rapport´s Indirects.
                               e
    Les discours rapport´s directs sont relativement faciles ` rep´rer dans un
                          e                                   a     e
document, par les ” (quotes) qui les caract´risent. Evidement, les marques de
                                               e
DRDs pourraient ˆtre diff´rentes selon les langues, mais cela ne limitera en
                     e       e
rien l’internationalisation de l’application. Une modification a d´j` ´t´ effectu´e
                                                                 eae e         e
pour le fran¸ais o` les quotes de DRDs peuvent ˆtre ” ou « », nous avons donc
             c     u                               e
internationalis´ les quotes et nous le ferons pour chaque nouvelle langue. La
                e
meilleure solution serait d’automatiser cette transformation par reconnaissance
d’un motif de DRDs et par la fr´quence moyenne de ceux-ci.
                                   e

    Les discours rapport´s indirects eux peuvent ˆtre reconnus ` certains mots
                         e                        e              a
caract´ristiques (verbes ou mots cl´s). Mais cela n´cessite de cr´er des diction-
      e                            e                e            e
naires de mots-cl´s (donc un par langue), ce qui limite l’utilisation de l’appli-
                  e
cation ` des langues qui ont ´t´ attendues. Cette op´ration aussi pourrait ˆtre
       a                     ee                       e                      e
automatis´e par la reconnaissance automatique de ces motifs.
          e

   Mais la plus grande difficult´ de notre travail n’est pas la reconnaissance
                               e
des citations en elles-mˆmes, mais les renseignements suppl´mentaires qui les
                        e                                  e
composent. Ainsi, nous pouvons ´noncer comme part d’une citation :
                                e
  1. La citation : rep´r´e par les patrons fournis juste avant.
                      ee
  2. L’auteur de la citation : rep´r´ par un premier mot commen¸ant par une
                                  ee                           c
     majuscule et peut-ˆtre un deuxi´me mot commen¸ant par une majuscule
                        e             e               c
     aussi.
  3. Le titre de l’auteur (sa fonction) : rep´r´ par une liste de mot-cl´s.
                                             ee                         e
  4. La date de la citation : rep´r´e par un format date ` proximit´ de la
                                 ee                      a         e
     citation.
    En plus des difficult´s apport´es par la recherches des ´l´ments suppl´mentaires
                       e         e                        ee            e
nomm´s ci-dessus, nous devons prendre en consid´ration que ces ´l´ments peuvent
       e                                          e              ee
ˆtre organis´s dans un ordre quelconque et sont donc difficiles ` rep´rer et ` dis-
e           e                                                  a     e     a
tinguer les uns des autres (dans certains cas). Nous savons aussi que les normes
que nous avons choisies peuvent ne pas ˆtre respect´es, mais la prise en compte
                                         e           e
de cette caract´ristique complexifierait grandement notre travail.
               e




                                       5
2.3    Organisation pr´vue
                      e
  Nous avons alors pr´vu un plan d’action, afin d’organiser notre travail pour
                       e
mener ` bien le projet. D´finir l’ordre des ´tudes et applications ` r´aliser.
      a                  e                 e                      a e

   Nous avons s´par´ notre temps de travail en 4 parties distinctes :
               e e
  1. Etude et d´duction : ´tude des corpus, et d´duction des formes g´n´rales
                e         e                     e                    e e
     des citations.
  2. D´veloppement des outils de r´cup´ration des citations (pr´-traitement).
      e                           e   e                        e
  3. D´veloppement des outils de recherche des citations (post-traitement).
      e
  4. Phase de tests : de nos outils sur des corpus diversifi´s.
                                                           e
    Chacune de ces parties ne pouvant commencer avant la fin de la pr´c´dente,
                                                                       e e
et n´cessitant une m´thodologie, des comp´tences (et des langages) diff´rents.
    e                e                      e                           e
Nous pouvons dire que notre travail a ´t´ pr´vu pour ˆtre r´parti ´quitablement
                                       ee e          e     e      e
entre la phase d’analyse linguistique et de programmation logicielle.


2.4    Gestion de la langue
   Nous avons dˆ choisir entre deux m´thodes de gestion des langues :
               u                     e
  1. Cr´er des m´thodes g´n´riques, applicables ` toutes les langues (ne pre-
       e          e        e e                    a
     nant pas en consid´ration la langue du document pour le traitement).
                        e
     La m´thode g´n´rique est plus adaptable et permet en th´orie de traiter
           e        e e                                         e
     toutes les langues, qu’elles soient ou non pr´vues lors du d´veloppement
                                                  e               e
     de l’application. Cependant, les r´sultats obtenus ne sont pas sens´s ˆtre
                                        e                               e e
     aussi bons que ceux issus de l’´tude de la langue trait´e.
                                     e                      e
  2. Cr´er des m´thodes d´pendantes de la langue du document (et donc d´finir
       e         e          e                                              e
     des m´thodes pour trouver la langue d’un document).
           e
     La m´thode d´pendante d’une langue est plus restrictive et mˆme si elle
          e         e                                                  e
     offre de meilleurs r´sultats, elle est limit´e par le nombre de langues
                           e                       e
     pr´vues ` l’origine. Notons qu’il n’est pas n´cessaire de connaˆ la langue
       e      a                                   e                 ıtre
     pour l’´tudier, mais il faut une langue connue de comparaison (donc des
            e
     corpus identiques sur le fond).

   Nous aurions pr´f´r´ ˆtre totalement ind´pendants de la langue du docu-
                     eee e                    e
ment, mais nous ne voyons pas comment nous en passer totalement (notamment
pour trouver le titre d’un auteur), nous avons alors opt´ pour une m´thode hy-
                                                        e            e
bride : La langue du document est recherch´e et trait´e avec les m´thodes les
                                             e         e            e
plus appropri´es, si elle est trouv´e. Sinon, nous appliquons les m´thodes les
              e                    e                                e
plus g´n´riques afin de fournir un r´sultat de moindre qualit´, mais permettant
      e e                           e                        e
de traiter toutes les langues.




                                       6
3       M´thodologie
         e
    Nous avons dˆ d´finir une m´thodologie avant de r´aliser le code de nos ap-
                  u e             e                      e
plications, ceci afin d’´viter de nous orienter dans de mauvaises directions et de
                       e
perdre du temps.
C’est pourquoi nous avons d´cid´ de d´couper le projet en deux parties dis-
                               e e        e
tinctes et ind´pendantes. A savoir, une partie pr´-traitement, responsable de
               e                                     e
la recherche et de l’indexation des citations. Et une partie post-traitement, qui
recherchera les citations (ou les auteurs) dans la liste con¸ue pr´c´demment.
                                                            c     e e


3.1     Pr´-traitement
          e
    Dans cette section, nous allons d´finir les moyens utilis´s pour la recherche
                                     e                       e
et l’indexation des citations mais aussi d´finir les relations entre les m´thodes
                                          e                              e
et la raison de leur cr´ation.
                       e


3.1.1    Choix du grain de recherches :
    Nous avons d´cid´ de d´couper les corpus en phrase afin de faire nos re-
                 e e         e
cherches.
    Nous avons longtemps h´sit´ ` utiliser le paragraphe comme grain lors de
                             e e a
la recherche afin de pouvoir r´cup´rer plus facilement les citations multiples
                                 e  e
d’un mˆme auteur (diss´min´ dans ce paragraphe), mais ´tant donn´ qu’un
       e                 e     e                              e         e
auteur peut ˆtre cit´ dans d’autres paragraphes, cette m´thode s’est montr´e
             e      e                                       e                 e
peu pertinente. De plus, l’utilisation d’un grain plus petit, tel que la phrase
permet d’extraire plus facilement les citations sur l’hypoth`se qu’une phrase ne
                                                            e
contient qu’un seul type de citation (DRD ou DRI). Quant ` la recherche des
                                                               a
auteurs, nous avons opt´ pour une m´morisation du nom et des initiales afin
                         e             e
de r´attribuer une citation ` son auteur mˆme si le nom de celui-ci n’est pas
    e                        a               e
pr´sent dans la phrase.
  e


3.1.2    Motifs recherch´s :
                        e
   Nous recherchons des auteurs, type d’auteurs et citations, ce que nous avons
not´ et appel´ atc.
   e         e


    Recherche d’Auteur :
Nous avons d´fini un auteur comme ´tant un ou plusieurs mots qui se suivent,
              e                      e
commen¸ant par une majuscule et pr´sent dans une phrase contenant une ci-
        c                              e
tation. Nous avons ensuite ´tendu notre d´finition aux sigles et initiales, qui
                             e              e
sont une suite de lettres en majuscule s´par´es par des points (optionnellement
                                         e e
identique ` un ´l´ment pr´sent dans notre table des initiales) et pr´sents dans
          a     ee         e                                         e
une phrase contenant une citation.




                                       7
Recherche des DRDs :
La recherche des DRDs se fait en plusieurs ´tapes :
                                           e
   – Nous commen¸ons par rechercher tous les types de guillemets existants.
                   c
   – Nous les transformons en marqueurs de d´but et de fin de citation.
                                              e
   – Nous transformons les points en marqueurs de phrases.
   – Pour chaque phrase nous recherchons des marqueurs de citation, si il y en
     a, nous recherchons les informations compl´mentaires (auteur, type...).
                                                e

   Recherche des DRIs :
Nous recherchons les DRIs de la mˆme mani`re que les DRDs, mais avec deux
                                    e         e
m´thodes diff´rentes :
 e           e
   – Par les verbes : On cherche un pattern de verbes de citation, en partant
     du principe que la citation se trouvera apr`s celui-ci. Selon les langues,
                                                    e
     nous rechercherons un pattern ou une comparaison par rapport ` une liste
                                                                       a
     de mots-cl´s. (Exemple : M. Truc a dit qu’il n’y avait pas de probl`me.)
               e                                                           e
   – Par les pr´positions : On cherche un pattern pr´position, en partant du
               e                                          e
     principe que la citation se trouvera avant celle-ci. Nous rechercherons dans
     ce cas un pattern d´pendant l` aussi de la langue. (Exemple : Il y a un
                          e           a
     probl´me selon M. Truc.)
          e

   Comme pour toutes les r´gles, il y a des exceptions et nous n’arrivons pas `
                          e                                                   a
obtenir 100% de r´ussite.
                 e


3.1.3   Repr´sentation :
            e
   – atc est une table de tuples (auteur, type, citation)
   – listeInitiale est un tableau regroupant les initiales des auteurs d´j` trouv´s
                                                                        ea       e
     dans le corpus (pour comparaison)
   – listeAuteur est un tableau regroupant tous les noms propres trouv´s dans
                                                                            e
     le document (et donc les auteurs possibles, mais dont les mots n’ont pas
     encore ´t´ cit´s).
             ee e
   – Nous avons aussi une listeVerbe (ou pattern verbe, selon la langue) et une
     listePreposition.


3.1.4   Explications additionnelles :
    Nos d´finitions des ´l´ments ne suivent pas la d´finition traditionnelle que
          e              ee                             e
l’on pourrait attendre, car nous avons essay´ de les adapter le plus possible `
                                                e                                 a
notre cas, la recherche de citation dans un document. Ainsi, garder une liste de
tous les auteurs, qu’ils soient a l’origine d’une citation ou juste acteurs dans le
                                `
document, nous permet d’attribuer des citations sans auteur ` la bonne per-
                                                                   a
sonne.


3.2     Post-traitement
    Nous expliquerons ici les choix que nous avons faits pour la recherche de
citation et les raisons de ces choix. Nous avons opt´ pour une interface simple,
                                                    e


                                        8
mais pouvant ˆtre accessible de n’importe quel ordinateur, n’importe ou et sans
               e
installation. Nous avons donc r´alis´ une application internet (en PHP) acc´dant
                               e e                                         e
a
` la mˆme base de donn´es que les modules de pr´-traitement.
       e                 e                          e

   Le module de recherche ne poss´de que peu de fonctionnalit´s pour l’instant,
                                  e                           e
mais elles peuvent ˆtre impl´ment´es facilement selon les besoins :
                   e        e     e
   – Recherche de toutes les citations d’un auteur.
   – Recherche de renseignement sur une citation (` partir de un ou tous les
                                                    a
     mots de la citation).
   – Recherche de citation par ann´e ou par langue.
                                    e

    L’application internet n’est qu’un moyen d’acc´der aux donn´es de la base
                                                     e             e
SQL, son am´lioration est donc d´pendante des informations contenues dans la
             e                    e
base de donn´es. Les recherches effectu´es sur cette base retournent ` la fois, le
              e                         e                              a
document original, et un document dont les auteurs, types et citations ont ´t´
                                                                             ee
colori´s, permettant ainsi de retrouver les citations plus facilement.
      e




                                       9
4     Contenu de l’Application
   Apr´s avoir d´cid´ de l’organisation, nous avons r´alis´ les diff´rents pro-
       e         e e                                 e e           e
grammes que nous avions pr´vus, nous en ferons ici une description succinte
                              e
avec une explication de leur fonctionnement.


4.1    Base de donn´es en Sql
                   e
    Nous avions plusieurs choix pour le stockage des donn´es, nous avons pens´
                                                          e                   e
a une base de donn´e SQL afin de profiter du syst´me de requˆte et d’optimiser
`                   e                             e            e
nos temps de traitement.
Elle est aussi responsable de la mise en relation du pr´-traitement et du post-
                                                       e
traitement.

    Voici une repr´sentation de la base de donn´es actuelle :
                  e                            e




                                       10
4.2    Programmes et fonctions en Python
   Nous avons r´alis´ plusieurs applications en python, car ce langage offre une
                e e
biblioth`que compl`te de fonctions de recherche de motifs dans un corpus.
        e         e

   Voici une liste des modules que nous avons estim´ n´cessaires ` l’extraction
                                                      e e            a
de citations :
   – traitementLangue : trouve la langue du document, applique les diction-
      naires et mot-cl´s selon la langue.
                      e
   – traitementFichier : ouvre et enregistre des fichiers, nettoie les fichiers du
      code html, recup`re les valeurs cl´s des fichiers (titre, date...).
                        e               e
   – traitementCitation : contient les m´thodes de recherche de citation, et le
                                           e
      programme d’application de ces m´thodes.
                                          e
   – insertionBD : organise les donn´es et fait les insertions dans la base de
                                       e
      donn´es.
           e
   – main : utilis´ comme programme principal, il ´num`re ` l’utilisateur les
                   e                                  e      e a
      actions en cours, pour un suivi facilit´.
                                             e

   Ainsi que les outils utilis´s pour la recherche de motifs dans un corpus :
                              e
   – Le pattern matching : biblioth´que regexp (compile, sub, match, findall,
                                       e
     group, groups).
     ==> Il est utilis´ pour sa polyvalence et sa rapidit´ de traitement
                       e                                   e
   – Les chaines de caract`res : biblioth´que string (split, equals, concatena-
                             e              e
     tion).
     ==> elle a ´t´ choisie pour les op´rations les plus simples, principalement
                 ee                      e
     la d´coupe du corpus apr`s application du pattern matching.
         e                       e

   Un exemple de d´roulement de l’application en python :
                  e




                                      11
4.3     Fenˆtre d’utilisation en Php
           e
    Nous avons choisi le PHP comme langage de programmation pour la re-
cherche de citation, car il permet de r´aliser une interface graphique simplement
                                       e
et poss`de de nombreuses fonctions d’acc`s ` une base de donn´es SQL.
        e                                   e a                    e
De plus, nous ne savions pas si nous aurions besoin de r´aliser des op´rations
                                                             e            e
sur les corpus en post-traitement, et PHP nous semblait dans ce cas la meilleure
solution.
Nous avons donc cr´´ une application web, ressemblant ` un moteur de re-
                      ee                                       a
cherche, afin d’afficher rapidement et simplement tous les renseignements rela-
tifs ` une citation.
     a
Les r´ponses de l’application sont des lignes comprenant les renseignements les
      e
plus importants sur une citation et des liens vers le document originel et vers le
document colori´ :e




   Grˆce aux options disponibles, on peut rechercher une citation, par :
     a

   –   Son auteur.
   –   Une partie de la citation.
   –   La date de l’article.
   –   La langue de l’article.




                                       12
5     Resultats obtenus
    Voici les r´sultats et les statistiques que nous avons obtenus au cours des
               e
tests sur divers types de corpus.


5.1     Sur le corpus de test
   Nous avons commenc´ par une s´rie de tests sur nos propres corpus, afin
                          e            e
de pouvoir v´rifier manuellement le bon fonctionnement de l’application. Bien
             e
que ce genre de tests ne soit pas repr´sentatif du fonctionnement r´el. Il permet
                                      e                            e
cependant de rep´rer les erreurs les plus ´videntes.
                 e                        e
Nos r´sultats sur notre corpus sont totalement acceptables, et nous ont surtout
     e
permis de remarquer les failles de notre raisonnement, mais aussi les limites de
notre traitement (comme par exemple, les documents mal format´s).  e


5.2     Sur un corpus de presse
    Nous avons alors r´alis´ des tests sur des corpus de presse, dans lesquels nous
                      e e
´tions sˆrs de trouver des citations.
e       u
Les r´sultats sont acceptables, mais cependant certaines citations sont mal re-
     e
connues ou pas enti`rement. Les titres des auteurs sont aussi difficiles ` rep´rer.
                    e                                                     a    e


5.3     Sur un corpus quelconque
    Enfin, nous avons r´alis´ une s´rie de tests sur des documents quelconques
                       e e        e
afin de v´rifier la robustesse de notre application.
         e
Les r´sultats sur des documents quelconques (particuli`rement sur des docu-
      e                                                  e
ments non-issus de sites journalistiques) donnent de tr`s mauvais r´sultats,
                                                           e         e
class´s en deux cat´gories majeures :
     e             e
    1. Nombre faible de citations trouv´es : car peu de citations, ou citations
                                       e
       difficiles ` reconnaˆ
                a        ıtre.
    2. Nombre important de citation trouv´es : car les titres, mots particuliers...
                                         e
       form´s comme des citations.
           e




                                        13
6    Conclusion
   Nous esp´rions obtenir un r´sultat plus automatique et ´loign´ de la m´thodologie
            e                  e                          e     e        e
manuelle, cependant nous n’avons pu impl´menter une telle m´thode. Nous
                                             e                     e
avons toutefois fourni une application fonctionnelle qui pourrait ˆtre utilis´e
                                                                     e        e
afin de rassembler et de rechercher efficacement des citations. Ce projet nous a
offert une vision des possibilit´s mais aussi des difficult´s du traitement auto-
                               e                        e
matique des langues et de leurs applications dans un cadre professionnel.




                                      14

Recherche de citations

  • 1.
    Rapport de TraitementAutomatique des Langues: Recherche de citations. FONTAINE Fabrice CHATELUS Damien BANVILLE Julien Master 1 RADI 6 mai 2008 1
  • 2.
    Table des mati`res e 1 Introduction 3 2 Pr´sentation du projet e 4 2.1 Liste des corpus de tests . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 D´finition d’une citation e . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Organisation pr´vue . . e . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Gestion de la langue . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 M´thodologie e 7 3.1 Pr´-traitement . . . . . . . . . . . . . e . . . . . . . . . . . . . . . 7 3.1.1 Choix du grain de recherches : . . . . . . . . . . . . . . . 7 3.1.2 Motifs recherch´s : . . . . . . . e . . . . . . . . . . . . . . . 7 3.1.3 Repr´sentation : . . . . . . . . e . . . . . . . . . . . . . . . 8 3.1.4 Explications additionnelles : . . . . . . . . . . . . . . . . . 8 3.2 Post-traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4 Contenu de l’Application 10 4.1 Base de donn´es en Sql . . . . . . . . . . . . . . . . . . . . . . . . 10 e 4.2 Programmes et fonctions en Python . . . . . . . . . . . . . . . . 11 4.3 Fenˆtre d’utilisation en Php . . . . . . . . . . . . . . . . . . . . . 12 e 5 Resultats obtenus 13 5.1 Sur le corpus de test . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.2 Sur un corpus de presse . . . . . . . . . . . . . . . . . . . . . . . 13 5.3 Sur un corpus quelconque . . . . . . . . . . . . . . . . . . . . . . 13 6 Conclusion 14 2
  • 3.
    1 Introduction Les applications relatives au traitement automatique des langues sont nom- breuses et pr´sentes dans un grand nombre de domaines, parmi lesquels la tra- e duction automatique et la recherche de motifs dans un document (de langue quelconque). Avec l’essor d’Internet et la masse d’informations qu’il contient, il n’est dor´navant e plus possible de classer ces renseignements manuellement, c’est pourquoi nous devons impl´menter des m´thodes de traitement automatique sur ces donn´es. e e e L’internet ´tant un r´seau Mondial, les informations s’y trouvent dans de nom- e e breuses langues, il est par cons´quent n´cessaire de se d´tacher des langues e e e connues pour pouvoir g´rer et appliquer nos m´thodes quelle que soit la pro- e e venance ou la langue du document. C’est dans cet objectif que notre appli- cation devra reconnaˆ et extraire les citations d’un corpus de documents de ıtre diff´rentes langues et les rendre rapidemment accessibles ` l’utilisateur. De plus, e a il paraˆ utile et mˆme indispensable de lier chaque citation ` son auteur mais ıt e a cette tˆche est tr`s d´licate. a e e En effet, ce type d’application est de plus en plus utilis´ par la presse qui d´sire e e retrouver les citations et les auteurs pour leurs articles. Nous avons donc dˆ faire aussi bien un travail analytique que de programma- u tion afin d’arriver ` un r´sultat quant ` la reconnaissance, ` l’indexation et ` la a e a a a recherche de citation. Nous allons donc commencer par une pr´sentation de notre projet ` travers les e a corpus choisis, l’organisation et par la d´finition d’une citation. Pour ensuite e d´tailler la m´thodologie utilis´e en pr´-traitement (r´cup´ration des citations) e e e e e e et en post-traitement (affichage des citations). Puis nous pr´senterons l’appli- e cation que nous avons cr´´e ` travers les diff´rents modules qui la composent. ee a e Et nous finirons par une analyse des r´sultats obtenus sur diff´rents corpus. e e 3
  • 4.
    2 Pr´sentation du projet e Avant toute chose, il nous a fallu regrouper une liste de corpus afin de cr´er e nos applications. Puis, nous nous sommes pench´s sur les ´l´ments constituant e ee d’une citation. 2.1 Liste des corpus de tests Nous avons commenc´ par cr´er un crawler afin de parcourir le web et de e e t´l´charger une liste de documents pour composer notre corpus de tests. Nous ee avons dˆ nettoyer le corpus de tout code html afin de ne garder que le contenu u pertinent. Nous avons choisi de traiter 4 langues pour la premi`re version de notre e application : 1. Fran¸ais : notre langue maternelle c 2. Anglais : la langue la plus utilis´e sur internet. e 3. Allemand : langue inconnue. 4. Italien : langue inconnue. L’Allemand et l’Italien ´tant pour nous des langues totalement opaques, et sur e lesquelles nous avons dˆ travailler sans les comprendre. u Notre liste de corpus de tests se composait de 10 documents de chaque langue, ce qui nous a permis d’´tudier pr´cis´ment les r´sultats de nos algo- e e e e rithmes. Notre liste ´tendue de corpus de test se composait de 200 documents e par langue, il nous a offert un aper¸u des r´sultats sur un nombre de documents c e plus important. Nos corpus de tests sont issus de sites de presse, afin de s’assurer de la pr´sence de citations. e Nous avons r´alis´ un module responsable de la reconnaissance de la langue e e selon la pr´sence et la fr´quence des petits mots courants. e e Cette m´thode permet d’automatiser la recherche de la langue, mais ne peut e s’appliquer ` toutes les langues. a 4
  • 5.
    2.2 D´finition d’une citation e Nous avons dˆ nous pencher sur l’´nonc´ pour d´finir ce qu’est une citation u e e e et savoir ce que nous devons chercher et indexer. En premier lieu, nous pouvons s´parer les discours d’un corpus entre : e 1. Les DA : Discours de l’auteur. 2. Les DR : Discours rapport´s. e Puis, nous pouvons s´parer les citations en deux cat´gories : e e 1. Les DRD : Discours Rapport´s Directs. e 2. Les DRI : Discours Rapport´s Indirects. e Les discours rapport´s directs sont relativement faciles ` rep´rer dans un e a e document, par les ” (quotes) qui les caract´risent. Evidement, les marques de e DRDs pourraient ˆtre diff´rentes selon les langues, mais cela ne limitera en e e rien l’internationalisation de l’application. Une modification a d´j` ´t´ effectu´e eae e e pour le fran¸ais o` les quotes de DRDs peuvent ˆtre ” ou « », nous avons donc c u e internationalis´ les quotes et nous le ferons pour chaque nouvelle langue. La e meilleure solution serait d’automatiser cette transformation par reconnaissance d’un motif de DRDs et par la fr´quence moyenne de ceux-ci. e Les discours rapport´s indirects eux peuvent ˆtre reconnus ` certains mots e e a caract´ristiques (verbes ou mots cl´s). Mais cela n´cessite de cr´er des diction- e e e e naires de mots-cl´s (donc un par langue), ce qui limite l’utilisation de l’appli- e cation ` des langues qui ont ´t´ attendues. Cette op´ration aussi pourrait ˆtre a ee e e automatis´e par la reconnaissance automatique de ces motifs. e Mais la plus grande difficult´ de notre travail n’est pas la reconnaissance e des citations en elles-mˆmes, mais les renseignements suppl´mentaires qui les e e composent. Ainsi, nous pouvons ´noncer comme part d’une citation : e 1. La citation : rep´r´e par les patrons fournis juste avant. ee 2. L’auteur de la citation : rep´r´ par un premier mot commen¸ant par une ee c majuscule et peut-ˆtre un deuxi´me mot commen¸ant par une majuscule e e c aussi. 3. Le titre de l’auteur (sa fonction) : rep´r´ par une liste de mot-cl´s. ee e 4. La date de la citation : rep´r´e par un format date ` proximit´ de la ee a e citation. En plus des difficult´s apport´es par la recherches des ´l´ments suppl´mentaires e e ee e nomm´s ci-dessus, nous devons prendre en consid´ration que ces ´l´ments peuvent e e ee ˆtre organis´s dans un ordre quelconque et sont donc difficiles ` rep´rer et ` dis- e e a e a tinguer les uns des autres (dans certains cas). Nous savons aussi que les normes que nous avons choisies peuvent ne pas ˆtre respect´es, mais la prise en compte e e de cette caract´ristique complexifierait grandement notre travail. e 5
  • 6.
    2.3 Organisation pr´vue e Nous avons alors pr´vu un plan d’action, afin d’organiser notre travail pour e mener ` bien le projet. D´finir l’ordre des ´tudes et applications ` r´aliser. a e e a e Nous avons s´par´ notre temps de travail en 4 parties distinctes : e e 1. Etude et d´duction : ´tude des corpus, et d´duction des formes g´n´rales e e e e e des citations. 2. D´veloppement des outils de r´cup´ration des citations (pr´-traitement). e e e e 3. D´veloppement des outils de recherche des citations (post-traitement). e 4. Phase de tests : de nos outils sur des corpus diversifi´s. e Chacune de ces parties ne pouvant commencer avant la fin de la pr´c´dente, e e et n´cessitant une m´thodologie, des comp´tences (et des langages) diff´rents. e e e e Nous pouvons dire que notre travail a ´t´ pr´vu pour ˆtre r´parti ´quitablement ee e e e e entre la phase d’analyse linguistique et de programmation logicielle. 2.4 Gestion de la langue Nous avons dˆ choisir entre deux m´thodes de gestion des langues : u e 1. Cr´er des m´thodes g´n´riques, applicables ` toutes les langues (ne pre- e e e e a nant pas en consid´ration la langue du document pour le traitement). e La m´thode g´n´rique est plus adaptable et permet en th´orie de traiter e e e e toutes les langues, qu’elles soient ou non pr´vues lors du d´veloppement e e de l’application. Cependant, les r´sultats obtenus ne sont pas sens´s ˆtre e e e aussi bons que ceux issus de l’´tude de la langue trait´e. e e 2. Cr´er des m´thodes d´pendantes de la langue du document (et donc d´finir e e e e des m´thodes pour trouver la langue d’un document). e La m´thode d´pendante d’une langue est plus restrictive et mˆme si elle e e e offre de meilleurs r´sultats, elle est limit´e par le nombre de langues e e pr´vues ` l’origine. Notons qu’il n’est pas n´cessaire de connaˆ la langue e a e ıtre pour l’´tudier, mais il faut une langue connue de comparaison (donc des e corpus identiques sur le fond). Nous aurions pr´f´r´ ˆtre totalement ind´pendants de la langue du docu- eee e e ment, mais nous ne voyons pas comment nous en passer totalement (notamment pour trouver le titre d’un auteur), nous avons alors opt´ pour une m´thode hy- e e bride : La langue du document est recherch´e et trait´e avec les m´thodes les e e e plus appropri´es, si elle est trouv´e. Sinon, nous appliquons les m´thodes les e e e plus g´n´riques afin de fournir un r´sultat de moindre qualit´, mais permettant e e e e de traiter toutes les langues. 6
  • 7.
    3 M´thodologie e Nous avons dˆ d´finir une m´thodologie avant de r´aliser le code de nos ap- u e e e plications, ceci afin d’´viter de nous orienter dans de mauvaises directions et de e perdre du temps. C’est pourquoi nous avons d´cid´ de d´couper le projet en deux parties dis- e e e tinctes et ind´pendantes. A savoir, une partie pr´-traitement, responsable de e e la recherche et de l’indexation des citations. Et une partie post-traitement, qui recherchera les citations (ou les auteurs) dans la liste con¸ue pr´c´demment. c e e 3.1 Pr´-traitement e Dans cette section, nous allons d´finir les moyens utilis´s pour la recherche e e et l’indexation des citations mais aussi d´finir les relations entre les m´thodes e e et la raison de leur cr´ation. e 3.1.1 Choix du grain de recherches : Nous avons d´cid´ de d´couper les corpus en phrase afin de faire nos re- e e e cherches. Nous avons longtemps h´sit´ ` utiliser le paragraphe comme grain lors de e e a la recherche afin de pouvoir r´cup´rer plus facilement les citations multiples e e d’un mˆme auteur (diss´min´ dans ce paragraphe), mais ´tant donn´ qu’un e e e e e auteur peut ˆtre cit´ dans d’autres paragraphes, cette m´thode s’est montr´e e e e e peu pertinente. De plus, l’utilisation d’un grain plus petit, tel que la phrase permet d’extraire plus facilement les citations sur l’hypoth`se qu’une phrase ne e contient qu’un seul type de citation (DRD ou DRI). Quant ` la recherche des a auteurs, nous avons opt´ pour une m´morisation du nom et des initiales afin e e de r´attribuer une citation ` son auteur mˆme si le nom de celui-ci n’est pas e a e pr´sent dans la phrase. e 3.1.2 Motifs recherch´s : e Nous recherchons des auteurs, type d’auteurs et citations, ce que nous avons not´ et appel´ atc. e e Recherche d’Auteur : Nous avons d´fini un auteur comme ´tant un ou plusieurs mots qui se suivent, e e commen¸ant par une majuscule et pr´sent dans une phrase contenant une ci- c e tation. Nous avons ensuite ´tendu notre d´finition aux sigles et initiales, qui e e sont une suite de lettres en majuscule s´par´es par des points (optionnellement e e identique ` un ´l´ment pr´sent dans notre table des initiales) et pr´sents dans a ee e e une phrase contenant une citation. 7
  • 8.
    Recherche des DRDs: La recherche des DRDs se fait en plusieurs ´tapes : e – Nous commen¸ons par rechercher tous les types de guillemets existants. c – Nous les transformons en marqueurs de d´but et de fin de citation. e – Nous transformons les points en marqueurs de phrases. – Pour chaque phrase nous recherchons des marqueurs de citation, si il y en a, nous recherchons les informations compl´mentaires (auteur, type...). e Recherche des DRIs : Nous recherchons les DRIs de la mˆme mani`re que les DRDs, mais avec deux e e m´thodes diff´rentes : e e – Par les verbes : On cherche un pattern de verbes de citation, en partant du principe que la citation se trouvera apr`s celui-ci. Selon les langues, e nous rechercherons un pattern ou une comparaison par rapport ` une liste a de mots-cl´s. (Exemple : M. Truc a dit qu’il n’y avait pas de probl`me.) e e – Par les pr´positions : On cherche un pattern pr´position, en partant du e e principe que la citation se trouvera avant celle-ci. Nous rechercherons dans ce cas un pattern d´pendant l` aussi de la langue. (Exemple : Il y a un e a probl´me selon M. Truc.) e Comme pour toutes les r´gles, il y a des exceptions et nous n’arrivons pas ` e a obtenir 100% de r´ussite. e 3.1.3 Repr´sentation : e – atc est une table de tuples (auteur, type, citation) – listeInitiale est un tableau regroupant les initiales des auteurs d´j` trouv´s ea e dans le corpus (pour comparaison) – listeAuteur est un tableau regroupant tous les noms propres trouv´s dans e le document (et donc les auteurs possibles, mais dont les mots n’ont pas encore ´t´ cit´s). ee e – Nous avons aussi une listeVerbe (ou pattern verbe, selon la langue) et une listePreposition. 3.1.4 Explications additionnelles : Nos d´finitions des ´l´ments ne suivent pas la d´finition traditionnelle que e ee e l’on pourrait attendre, car nous avons essay´ de les adapter le plus possible ` e a notre cas, la recherche de citation dans un document. Ainsi, garder une liste de tous les auteurs, qu’ils soient a l’origine d’une citation ou juste acteurs dans le ` document, nous permet d’attribuer des citations sans auteur ` la bonne per- a sonne. 3.2 Post-traitement Nous expliquerons ici les choix que nous avons faits pour la recherche de citation et les raisons de ces choix. Nous avons opt´ pour une interface simple, e 8
  • 9.
    mais pouvant ˆtreaccessible de n’importe quel ordinateur, n’importe ou et sans e installation. Nous avons donc r´alis´ une application internet (en PHP) acc´dant e e e a ` la mˆme base de donn´es que les modules de pr´-traitement. e e e Le module de recherche ne poss´de que peu de fonctionnalit´s pour l’instant, e e mais elles peuvent ˆtre impl´ment´es facilement selon les besoins : e e e – Recherche de toutes les citations d’un auteur. – Recherche de renseignement sur une citation (` partir de un ou tous les a mots de la citation). – Recherche de citation par ann´e ou par langue. e L’application internet n’est qu’un moyen d’acc´der aux donn´es de la base e e SQL, son am´lioration est donc d´pendante des informations contenues dans la e e base de donn´es. Les recherches effectu´es sur cette base retournent ` la fois, le e e a document original, et un document dont les auteurs, types et citations ont ´t´ ee colori´s, permettant ainsi de retrouver les citations plus facilement. e 9
  • 10.
    4 Contenu de l’Application Apr´s avoir d´cid´ de l’organisation, nous avons r´alis´ les diff´rents pro- e e e e e e grammes que nous avions pr´vus, nous en ferons ici une description succinte e avec une explication de leur fonctionnement. 4.1 Base de donn´es en Sql e Nous avions plusieurs choix pour le stockage des donn´es, nous avons pens´ e e a une base de donn´e SQL afin de profiter du syst´me de requˆte et d’optimiser ` e e e nos temps de traitement. Elle est aussi responsable de la mise en relation du pr´-traitement et du post- e traitement. Voici une repr´sentation de la base de donn´es actuelle : e e 10
  • 11.
    4.2 Programmes et fonctions en Python Nous avons r´alis´ plusieurs applications en python, car ce langage offre une e e biblioth`que compl`te de fonctions de recherche de motifs dans un corpus. e e Voici une liste des modules que nous avons estim´ n´cessaires ` l’extraction e e a de citations : – traitementLangue : trouve la langue du document, applique les diction- naires et mot-cl´s selon la langue. e – traitementFichier : ouvre et enregistre des fichiers, nettoie les fichiers du code html, recup`re les valeurs cl´s des fichiers (titre, date...). e e – traitementCitation : contient les m´thodes de recherche de citation, et le e programme d’application de ces m´thodes. e – insertionBD : organise les donn´es et fait les insertions dans la base de e donn´es. e – main : utilis´ comme programme principal, il ´num`re ` l’utilisateur les e e e a actions en cours, pour un suivi facilit´. e Ainsi que les outils utilis´s pour la recherche de motifs dans un corpus : e – Le pattern matching : biblioth´que regexp (compile, sub, match, findall, e group, groups). ==> Il est utilis´ pour sa polyvalence et sa rapidit´ de traitement e e – Les chaines de caract`res : biblioth´que string (split, equals, concatena- e e tion). ==> elle a ´t´ choisie pour les op´rations les plus simples, principalement ee e la d´coupe du corpus apr`s application du pattern matching. e e Un exemple de d´roulement de l’application en python : e 11
  • 12.
    4.3 Fenˆtre d’utilisation en Php e Nous avons choisi le PHP comme langage de programmation pour la re- cherche de citation, car il permet de r´aliser une interface graphique simplement e et poss`de de nombreuses fonctions d’acc`s ` une base de donn´es SQL. e e a e De plus, nous ne savions pas si nous aurions besoin de r´aliser des op´rations e e sur les corpus en post-traitement, et PHP nous semblait dans ce cas la meilleure solution. Nous avons donc cr´´ une application web, ressemblant ` un moteur de re- ee a cherche, afin d’afficher rapidement et simplement tous les renseignements rela- tifs ` une citation. a Les r´ponses de l’application sont des lignes comprenant les renseignements les e plus importants sur une citation et des liens vers le document originel et vers le document colori´ :e Grˆce aux options disponibles, on peut rechercher une citation, par : a – Son auteur. – Une partie de la citation. – La date de l’article. – La langue de l’article. 12
  • 13.
    5 Resultats obtenus Voici les r´sultats et les statistiques que nous avons obtenus au cours des e tests sur divers types de corpus. 5.1 Sur le corpus de test Nous avons commenc´ par une s´rie de tests sur nos propres corpus, afin e e de pouvoir v´rifier manuellement le bon fonctionnement de l’application. Bien e que ce genre de tests ne soit pas repr´sentatif du fonctionnement r´el. Il permet e e cependant de rep´rer les erreurs les plus ´videntes. e e Nos r´sultats sur notre corpus sont totalement acceptables, et nous ont surtout e permis de remarquer les failles de notre raisonnement, mais aussi les limites de notre traitement (comme par exemple, les documents mal format´s). e 5.2 Sur un corpus de presse Nous avons alors r´alis´ des tests sur des corpus de presse, dans lesquels nous e e ´tions sˆrs de trouver des citations. e u Les r´sultats sont acceptables, mais cependant certaines citations sont mal re- e connues ou pas enti`rement. Les titres des auteurs sont aussi difficiles ` rep´rer. e a e 5.3 Sur un corpus quelconque Enfin, nous avons r´alis´ une s´rie de tests sur des documents quelconques e e e afin de v´rifier la robustesse de notre application. e Les r´sultats sur des documents quelconques (particuli`rement sur des docu- e e ments non-issus de sites journalistiques) donnent de tr`s mauvais r´sultats, e e class´s en deux cat´gories majeures : e e 1. Nombre faible de citations trouv´es : car peu de citations, ou citations e difficiles ` reconnaˆ a ıtre. 2. Nombre important de citation trouv´es : car les titres, mots particuliers... e form´s comme des citations. e 13
  • 14.
    6 Conclusion Nous esp´rions obtenir un r´sultat plus automatique et ´loign´ de la m´thodologie e e e e e manuelle, cependant nous n’avons pu impl´menter une telle m´thode. Nous e e avons toutefois fourni une application fonctionnelle qui pourrait ˆtre utilis´e e e afin de rassembler et de rechercher efficacement des citations. Ce projet nous a offert une vision des possibilit´s mais aussi des difficult´s du traitement auto- e e matique des langues et de leurs applications dans un cadre professionnel. 14