Recherche de citations

  • 684 views
Uploaded on

Devoir de TAL de master 2 informatique

Devoir de TAL de master 2 informatique

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
684
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Rapport de Traitement Automatique 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 ˆ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. 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