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