Projet de fin de semestre — Mini-analyseur de corpus Objets & DataFrames

Cours : Algorithmique et Programmation — INALCO

Objectif. Construire un mini-outil d’analyse de corpus à partir de fichiers .txt.
Contraintes.

1) Entrées / sorties

Entrée

Un dossier data/ contenant un ou plusieurs fichiers .txt. Chaque fichier correspond à un document.

Sortie (minimum)

Un dossier results/ contenant au moins :

2) Modèle objet (obligatoire)

2.1 Classe Token

2.2 Classe Sentence

2.3 Classe Corpus

3) Construction du corpus (obligatoire)

Écrire des fonctions qui :
  1. lisent chaque fichier .txt ;
  2. découpent en phrases (par exemple sur .?!) ;
  3. tokenisent chaque phrase (par exemple avec split(), éventuellement avec un petit nettoyage) ;
  4. construisent les objets Token, Sentence, Corpus.

Conseil : commencez par faire fonctionner le projet sur un seul fichier, puis généralisez à plusieurs fichiers.

4) DataFrames (obligatoire)

Vous devez produire au moins 3 DataFrames pandas, puis les exporter en CSV.

4.1 DataFrame tokens (df_tokens)

NomDescription
docnom du fichier
sent_idindex de la phrase dans le document (0,1,2,…)
tok_idindex du token dans la phrase (0,1,2,…)
formeforme originale
forme_normforme en minuscules
is_punctbooléen
is_capitalizedbooléen
lengthlongueur

4.2 DataFrame phrases (df_sentences)

NomDescription
docnom du fichier
sent_idindex de la phrase
textphrase reconstruite
n_tokensnombre de tokens
n_typesnombre de mots distincts (en minuscules)

4.3 DataFrame vocabulaire (df_vocab)

NomDescription
wordmot (minuscules)
countfréquence totale
doc_freqnombre de documents où le mot apparaît

5) Bonus (au choix)

Choisir au moins 1 bonus (ou plus) :

5bis) Bonus NLP avec spaCy ou NLTK (optionnel)

Vous pouvez ajouter un petit bonus en utilisant une bibliothèque de NLP, par exemple spaCy ou NLTK.

Ce bonus est facultatif. Le projet doit fonctionner même sans spaCy ou NLTK.

6) Livrables

À rendre :

7) Barème indicatif (/20)

Conseils d'organisation du code

Exemples de vérifications simples

Vous pouvez tester progressivement :

# Exemple d'enchaînement possible
# 1) lire les fichiers dans data/
# 2) construire le corpus
# 3) afficher nb_phrases() et nb_tokens()
# 4) créer df_tokens, df_sentences, df_vocab
# 5) enregistrer les CSV dans results/