Menu

html4txm_2014-01  Edit

Frédéric Glorieux crim.fr, prof java

INALCO, master M2IM, Projet Java/XML 2013-2014 semestre 1

Contexte du projet, voir [html4txm]

Groupes et attendus

Ce projet de premier semestre est à réaliser par groupes d'étudiants. Ces groupes sont constitués :

  • Amélie M, Jennifer, Dalia
  • Lucie, Li Yun, Amélie B
  • Loïc, Satenik, Fatemeh
  • Ying Ying, Florence, Guillaume

Le sujet est commun à tous les groupes. Chaque groupe devra réaliser un programme Java permettant le traitement semi-automatique de fichiers HTML pour intégration dans l'outil TXM.

Chaque groupe devra rendre, à la date indiquée les éléments suivants :

  • le programme Java demandé sous forme de jar fonctionnant selon les instructions données dans la section "Usage en ligne de commande"
  • la javadoc associée au programme

Chaque étudiant devra rendre, à la date indiquée les éléments suivants :

  • les sources du programme réalisé au sein de son groupe
  • un rapport rédigé individuellement
  • son jeu de données de référence (dossier contenant les fichiers XHTML bruts).

Nous attendons donc 4 programmes, 12 rapports, et au moins 12 dossiers de données sur lesquels appliquer le programme.

Programme Java

L'intention générale du programme est d'extraire le contenu textuel signifiant d'une liste de fichiers XHTML issu d'un même site pour générer des fichiers prêts à être ingérés et traités par TXM.
Le programme fonctionnera en ligne de commande (c’est un prototype qui pourra être intégré plus tard).

Le premier format de sortie préconisé est un format XHTML comprenant le texte signifiant et un certain nombre de métadonnées. Ce format sera normalisé par un schéma Relax-NG à écrire. Il sera nommé format XHTML pivot dans la suite de l'énoncé.

Cependant, comme TXM ne supporte pas encore l'import de fichier XHTML, le programme devra permettre la transformation de ces fichiers XHTML normalisés en :

  • un dossier de fichiers texte formatés (i.e. lisible par un humain) encodés en UTF-8 avec l'extension .txt
  • un fichier de métadonnées au format CSV (UTF-8 séparateur virgule) compatible avec le format d'import TXM, i.e. :
    • une ligne d'en-tête avec les noms des colonnes (id, champ1, champ2, ...)
    • une ligne par fichier .txt avec le nom de fichier sans extension dans la première colonne et la valeur des différents champs dans les colonnes suivantes

Fichiers XHTML d'entrée

L'implémentation d'une classe Java de préparation du corpus a été fourni lors de la séance du [2013-11-27]. Celle-ci peut-être personnalisée et améliorée avant de l'appliquer sur l'arborescence obtenu par récupération complète du site choisi. Cette étape de préparation est de la responsabilité de chaque étudiant et ne fait pas partie du projet.

Le dossier contenant les fichiers XHTML bruts (en UTF-8 et valide XML) est la source des données à traiter par le programme à réaliser. Ce dossier fait partie des livrables pour permettre de tester le programme fourni, il est nommé dossier corpus dans la suite de l'énoncé.

Le programme à réaliser prendra donc en entrée le chemin de ce dossier corpus.

Génération du format XHTML "pivot"

Par "extraire le contenu signifiant" du fichier XHTML source, on entend éliminer tous les contenus de type navigation (menus, retour à la page d'accueil, ...) et ne retenir que l'information textuelle propre à la page. La structuration des pages et l'endroit où trouver le texte signifiant dépendent de chaque site (on part du principe que les sites étudiés sont produits par un CMS et que les pages du site sont globalement toutes structurées de la même manière).

Ainsi, le programme devra pouvoir être paramétré par un fichier propre à chaque site. On pense ici à une XSL qui prendrait en entrée un fichier XHTML source pour générer un fichier XHTML normalisé (valide contre le schéma RNG fourni) ne conservant que le contenu textuel pertinent.

La définition de ce format pivot, et le rédaction du schéma Relax-NG, fait partie de l’exercice. Dans chaque groupe, la confrontation de différents sites, et de différents intérêts linguistiques, obligera à des synthèses qui font justement l’intérêt de ce travail collectif.

Génération du format texte compatible TXM

La génération du format texte + fichiers CSV de métadonnées compatible TXM s'effectuera en prenant en entrée le dossier contenant les fichiers XHTML au format "pivot" (commun à tous les sites). Cette transformation est un moyen de contrôler si le format pivot retient tout ce qui est utile pour une étude du corpus dans TXM (exemple : désignation normalisée des champs de métadonnées).

Scénario d'usage

  • Un utilisateur souhaite traiter le contenu d'un site web avec TXM
  • Il télécharge une copie du site sur son disque avec un outil tel que wget
  • Il fait en sorte de préparer les fichiers XHTML bruts à intégrer en les rassemblant au sein d'un "dossier corpus". Les fichiers de ce dossier sont encodés en UTF-8 et valides XML.
  • Il étudie alors la structuration générale des fichiers (ex : avec FireBug, clic droit copier XPath) et écrit une feuille XSL lui permettant de transformer ces fichiers XHTML en fichiers XHTML "pivot" normalisé en ne conservant que le contenu pertinent
  • Il lance alors le programme à réaliser dans le cadre du projet en fournissant la XSL en paramètre pour générer le dossier de fichiers XHTML pivot
  • S'il n'est pas satisfait de la génération, il peut modifier la XSL et relancer le programme
  • Lorsque les fichiers générés donnent satisfaction, il peut lancer le programme pour transformer les fichiers XHTML de référence en fichiers txt + csv importable dans TXM

Notes :

Le programme de conversion des fichiers XHTML bruts en XHTML format pivot doit pouvoir alerter l'utilisateur si des effets indésirables se produisent, afin notamment d’aider à la mise au point de la transformation XSL (exemples : pas de contenu trouvé, métadonnée nécessaire manquante). Ce rapport sera produit par la validation du document xhtml sur son schéma Relax-NG, à laquelle peuvent être ajoutées d’autres procédures automatisées qui s’avèreront utiles.

Usage en ligne de commande

Lorsque les programmes sont appelés sans paramètres, un message d’aide est fourni à l’utilisateur pour expliquer l’ordre et la nature des paramètres.

Génération des fichiers XHTML pivot

java -cp html4txm.jar fr.crim.html4txm.XhtmlExtractor OPTIONS <src> <dst> <xsl>
  • src : dossier corpus contenant les fichiers XHTML bruts
  • dst : dossier de destination de fichiers XHTML au format pivot
  • xsl : feuille de transformation XSL prenant un fichier XHTML brut en entrée et sortant un fichier XHTML format pivot

Le programme renverra un rapport, avec au minimum, le temps de traitement total, le nombre de fichiers transformés, et les erreurs de validation Relax-NG lorsqu’il y en a. Le schéma Relax-NG est interne au logiciel, il sera recopié dans le dossier de destination.

Les options prévues sont les suivantes :

  • --log <fichier> : pour rediriger le rapport vers un fichier
  • --quiet : pour ne rien afficher durant le traitement
  • --verbose : pour un affichage maximal d’informations utiles par fichier

Toutes autres options qui s’avèreraient utiles sont autorisées.

Génération des fichiers textes et CSV pour TXM

java -cp html4txm.jar fr.crim.html4txm.Xhtml2txt <src> <dst>

src : le dossier contenant les fichiers XHTML au format pivot (généré par le programme précédent)
dst : le dossier contenant les fichiers texte et le fichier CSV prêt à être ingéré par TXM

Le programme indiquera le nombre de fichiers traités et le délai total de traitement

Rapport

Chaque étudiant(e) rédigera un document de quelques pages qui présente :

  • les particularités de ses données ;
  • son jugement critique d’utilisateur sur l’outil développé dans les limites du temps imparti ;
  • les bonnes idées à retenir qui mériterait de figurer dans la synthèse des différents projets ;
  • des fonctionnalités utiles à ajouter, en ordre de priorité, avec des pistes concrètes d’implémentation, selon ce qui a semblé nécessaire pour les données de l’étudiant (quelques idées, pertinentes ou pas pour l’étudiant : une syntaxe de fichier de configuration par site plus simple qu’xslt, détection de doublons, détection de la langue, détection de fichiers sans intérêt pour le linguiste…)

Dans ce rapport sera valorisée la réflexion critique sur le travail effectué afin d’ouvrir les meilleures pistes de développement du projet.

Rendu attendu

Chaque groupe rendra son programme Java sous forme d'un fichier jar autonome (i.e. incluant les bibliothèques nécessaires) contenant également les fichiers source Java.

Chaque étudiant fournira son dossier corpus de fichiers XHTML bruts, avec la XSL spécifiquement rédigée pour traiter les pages du site choisi.

Il doit suffire d'appliquer les commandes plus haut sur le dossier livré pour faire fonctionner le programme.

Date et modalités de rendu

  • Le rendu du projet est attendu pour le 22 janvier 2014 à minuit.
  • Les livrables seront à envoyer par courriel sur la liste javacrim-coop
  • les dossiers corpus de fichiers XHTML bruts seront collectés lors de la séance du 8 janvier 2014

Related

Wiki: 2013-11-27
Wiki: Home 2013-12-11 22:25:56.186231
Wiki: Home
Wiki: html4txm

Discussion

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.