L'objectif final du projet intitulé Boîte à Outils est le suivant :
obetnir des informations linguistiques de plusieurs rubriques provenant du journal Le Monde. Le projet a pour but de nous familiariser avec un autre type de langage très en vogue il y a quelques années, le langage Perl. Une série de boîte à outils (BaO) seront présentées sur cette vitrine, accompagnées de scripts Perl et Python afin de montrer d'autres méthodes d'application au but pour lequel les BaO ont été crées.
Le travail s'est fait de la façon décrite ci-dessous :
1. Lacement des scripts
2. Elaboration de scripts dans d'autres langages de programmation
3. Extraction et analyse des résultats obtenus
4. Fabrication d'une vitrine contenant les boîtes à outils, les résultats et éventuelles remarques
Chaque Boite à outil permet l'exécution d'une tache précise. Cette tâche peut aussi s'effectuer par le biais d'autres langages de programmations que nous expliciteront plus tard.
On peut notamment citer python et ses modules ou bien xslt et les xqueries. A travers les boîtes à outils, on cherche à :
- l'extraction de texte,
- l'étiquettage, la lemmatisation
- et enfin, la classification des différentes rubriques
Le script joint ci-contre est une concaténation des trois bao en un script.
Ce dernier permet notamment d'obtenir une sortie de fichier en plus des fichiers de sorties de la bao 1. Les sorties sont rangées par fichiers et par date de publication. Plus loin, nous présentons quatre autres bao1. Les quatre autres bao1, sont quant à elles rangées par items.
Le script a été appliqué sur les rubriques :
- Rubrique A la Une : Sortie .txt , XML,
- Rubrique Médias : Sortie .txt, et XML
- Rubrique Sport : Sortie XML, et .txt
- Rubrique Cinéma : Sortie.txt et XML
- Rubrique Planète : Sortie XML et .txt
- Rubrique Voyage : Sortie .txt et XML
Enfin, la sortie Udpipe, Patron au format txt, et les sorties de patron pour Udpipe : VDN, NPRN, NADPNADP, NADJ, DADJNV, ADJN, Dépendance, et Classification
Parmi les résultats recensés après application du classifier Cosine Similarity, nous avons remarqué qu'une seule catégorie avait un résultat plutôt moyen...
Chaque rubrique a un taux de classification qui relève du 98-100%. Or, la rubrique planète semble bien nous donner des petits soucis avec un premier essai montant à 90% de réussite.
Cette chute nous conduit donc à comprendre pourquoi.
Quand on affiche le sac de mots dans planète, aucun élément ne ressort, mais beaucoup d'occurences comme "rôles", "films", "acteur", "prix", césar" prennent le pas dans cinéma.
De même, la diversité des mots dans planète montre bien qu'il n'y pas d'occurrence dominante. De plus, il fait partie des rubriques les plus complexe de par sa taille (tout petit).
Ce qu'il serait intéressant de faire, c'est de prendre en compte la taille des rubriques en implémentant un coefficient sur la taille. Ceci permettrait de mettre en concurrence cette catégories avec d'autres rubriques aussi petites (voyages, médias notamment). On règle alors un problème de faux positifs, ce qui résoleverait le problème.
Comme dit précédemment, il est possible de concevoir d'autre script ayant le même but que ceux explicités respectivement plus tôt. Les scripts suivants vous présenteront d'autres moyens d'extractions, d'étiquettages, etc.
Une autre façon de faire...
BaO1 REGEX : Si vous êtes curieux?
BaO1 XML::RSS : Vous pouvez jeter un oeil ici!
BaO1 Uniq Regex : Vous êtes conviés à regarder ici !
BaO1 Uniq RSS : Pour plus d'informations regarder ici !
Concernant la rubrique la plus dure à classer (planète), il existait une autre solution afin d'augmenter le classement de cette catégorie (pour rappel, nous avions un taux de 90% de bon classement) L'une des sous catégories dans plnète faisait fortement défauts à nos résultats de classement. C'était la rubrique internationale. Afin de vérifier l'origine du problème, et par soucis de bien faire, cette dernière (internationale) a été retirée, le script relancé sans, et c'est un taux de 93% que nous obtenons !
Aussi, une extraction de dépendance syntaxique a été mise en place en Perl (relation de type obj) uniquement en regex à partir d'udpipe raw, ainsi qu'un stemmer. Cependant, ce dernier ralentit pas mal le script : environ 6 à 7 fois plus de temps pour 5 point de pourcentage de précision gagnés.
Sur la rubrique économie, on a un délai d'attente de 1400s. La question de le garder ou non s'est alors posé, puisqu'il était question de savoir si cela en valait vraiment la peine. (cf conclusion)
Boîte à outil | Langage utilisé | Temps d'exécution |
---|---|---|
Bao 1 | Script REGEX | 0.17452 seondes |
Bao 1 | Script XML::RSS | 2.620818 secondes |
Bao 1 | Script Uniq Regex | 0,18243 secondes |
Bao 1 | Script Uniq RSS | 2.727268 secondes |
Durée moyenne bao3en1 | 1600 secondes |