SummaryProject / Documentation.md
EveSa's picture
Initial Commit
ad78747

Les objectifs du projet

L'objectif du projet est de mettre en place une plateforme de requête d'un modèle de langue permettant la génération de résumé d'article de presse.

Une description du système ou des données auxquelles l’interface permet d’accéder

Le projet utilisera pour l'entraînement du modèle de langue le corpus issu de 'Newsroom: A Dataset of 1.3 Million Summaries with Diverse Extractive Strategies' (Grusky et al., NAACL 2018) newsroom assemblé par Max Grusky et ses collègues en 2018. Newsroom est un corpus parallèle rassemblant 1,3 millions articles de presse et leur résumé en anglais. Les résumés sont réalisés en utilisant les méthodes d'extraction comme d'abstraction ainsi que des méthodes mixtes. Ce corpus est disponible sur HuggingFace mais necessite un téléchargement préalable pour des raisons de protection des données.

La méthodologie

Répartition du travail

Nous avons décidé de travailler avec le logiciel de gestion de version Github en mettant en place un système de verification des commit avec un pull request. Cette méthode permet à chaque participant du projet d'observer les modifications effectuées par les autres membres avant d'accepter de fondre en une seule les branches main et les modifications proposées.

Problèmes rencontrés et résolution

  • Problème Mojibake depuis les fichiers jsonl : encodage en cp1252 et decodage en utf-8 avec ignore pour éviter les erreurs sur les caractères utf-8 présents dans le fichier à l'encodage
  • Répétition des mots à cause de la ponctuation : suppresion de la ponctuation avec strip
  • Agglomération des pronoms et des verbes : remplacement des ' par des espaces avant le split
  • Split des noms propres composés ('Ivory Coast', 'Inter Milan') :
  • Problème des mots non disponibles dans le vocabulaire
  • Problème de la qualité du corpus :
    • Résumés tronqués : "Did', 'Tatum', "O'Neal's", 'latest', 'battle', 'with', 'ex-husband', 'John', 'McEnroe', 'put', 'her', 'back', 'on', 'drugs?', 'The', '"Paper', 'Moon"star', 'checked', 'herself', 'into', "L.A.'s", 'Promises', 'rehab', 'facility', 'after', 'a', 'friend', 'caught', 'her', 'smoking', 'crack,', 'according', 'to', 'The', 'National', 'Enquirer.', "O'Neal", 'emerged', 'clean', 'and', 'sober', 'from', "Promises'", '34-day', 'recovery', 'program', 'in', 'late', 'July,', 'the', 'tab', 'reports.', 'The', 'actress', 'is', 'said', 'to', 'have', 'plunged', 'into', 'her', 'old', 'habits', 'because', 'of'"
    • Résumés plus proche de titres que de résumés
  • Prise en compte du padding dans l'apprentissage --> utilisation de la fonctionnalité ignore_index de NLLLoss avec un padding d'une valeur à -100

Les étapes du projet

Implémentation

modélisation

Nous avons décidé dans un premier temps de modéliser une LSTM pour le résuméautomatique sur labase du réseau de neurone réalisé en cours. Pour ce faire nous nous sommes beaucoup inspirée du kaggle https://www.kaggle.com/code/columbine/seq2seq-pytorch ainsi que de la documentation de PyTorch https://pytorch.org/tutorials/beginner/nlp/sequence_models_tutorial.html#example-an-lstm-for-part-of-speech-tagging

modules et API utilisés

Langages de programmation

Les résultats (fichiers output, visualisations…)

Les metriques d'évaluation

  • ROUGE
  • BLEU
  • QAEval
  • Meteor
  • BERTScore

Discussion des résultats

ce que vous auriez aimé faire et ce que vous avez pu faire par exemple