Rapport de Traitement Automatique des
               Langues:
        Recherche de citations.
           FONTAINE Fabrice
...
Table des mati`res
              e
1 Introduction                                                                         ...
1    Introduction
    Les applications relatives au traitement automatique des langues sont nom-
breuses et pr´sentes dans...
2     Pr´sentation du projet
        e
   Avant toute chose, il nous a fallu regrouper une liste de corpus afin de cr´er
  ...
2.2    D´finition d’une citation
        e
    Nous avons dˆ nous pencher sur l’´nonc´ pour d´finir ce qu’est une citation
 ...
2.3    Organisation pr´vue
                      e
  Nous avons alors pr´vu un plan d’action, afin d’organiser notre travai...
3       M´thodologie
         e
    Nous avons dˆ d´finir une m´thodologie avant de r´aliser le code de nos ap-
           ...
Recherche des DRDs :
La recherche des DRDs se fait en plusieurs ´tapes :
                                           e
   –...
mais pouvant ˆtre accessible de n’importe quel ordinateur, n’importe ou et sans
               e
installation. Nous avons ...
4     Contenu de l’Application
   Apr´s avoir d´cid´ de l’organisation, nous avons r´alis´ les diff´rents pro-
       e    ...
4.2    Programmes et fonctions en Python
   Nous avons r´alis´ plusieurs applications en python, car ce langage offre une
 ...
4.3     Fenˆtre d’utilisation en Php
           e
    Nous avons choisi le PHP comme langage de programmation pour la re-
...
5     Resultats obtenus
    Voici les r´sultats et les statistiques que nous avons obtenus au cours des
               e
t...
6    Conclusion
   Nous esp´rions obtenir un r´sultat plus automatique et ´loign´ de la m´thodologie
            e        ...
Prochain SlideShare
Chargement dans…5
×

Recherche de citations

981 vues

Publié le

Devoir de TAL de master 2 informatique

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
981
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Recherche de citations

  1. 1. Rapport de Traitement Automatique des Langues: Recherche de citations. FONTAINE Fabrice CHATELUS Damien BANVILLE Julien Master 1 RADI 6 mai 2008 1
  2. 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. 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. 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. 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. 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. 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. 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. 9. 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
  10. 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. 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. 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. 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. 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

×