Intérêt d'un nettoyeur de page Web

Le rapport de la tâche d'évaluation CleanEval écrit très bien en quoi le nettoyage des pages Web est importante mais délaissé :

[Le nettoyage des pages Web] est une tâche de bas niveau, non-glamour et pourtant incroyablement cruciale : le mieux elle est réalisée, le meilleur pour les résultats. Toutes les couches du traitement linguistique dépendent du bon nettoyage des données.

En effet, le domaine du traitement automatique des langues naturelles fait de plus en plus appel à des ressources extérieures collectées sur le Web. En ce sens, le Web constitue un corpus accessible à faible coût et d'une taille sans précédent (cf. le récent papier de J.B. Michel qui donne lieu à une jolie démonstration). L'exploitation de cette ressource nécessite toutefois de lever un certain nombre de freins technologiques parmi lesquels le nettoyage des pages Web.

J'ai relevé en particulier un outil qui intègre des moyens de nettoyer des pages Web : Web-Harvest.

Web-Harvest

Web-Harvest est un système complet, distribué sous licence BSD, d'aspiration de pages web et d'extraction de leur contenu. Les collectes sont définis à l'aide de fichiers XML de configuration tels que celui donné en exemple. Ces fichiers de configuration font largement appel à XPath pour récupérer le contenu des pages (liste des liens à télécharger, contenu...) et XQuery pour la construction des fichiers de résultat. À ces deux standards s'ajoute une syntaxe XML spécifique.

J'ai écrit un petit fichier de configuration pour récupérer le contenu des articles du journal Le Monde à partir du flux RSS de sa Une. Attention, ce type d'utilisation viole très certainement les conditions d'utilisation du site. Ce fichier de configuration n'est fourni qu'à titre d'exemple.

Une fois le fichier de configuration construit, il suffit de laisser Web-Harvest faire son travail :

java -Djava.net.preferIPv4Stack=true \
  -jar webharvest_all_2.jar \
  config=webharvest-lemonde-une.xml

Le résultat est assez impressionnant puisque le système se charge de nettoyer automatiquement les tags html/xml qui resteraient. De plus la gestion de l'aspiration est très rapide et profite du multi-threading. Les performances sur un cluster doivent être excellentes.

Maintenant ce qui serait bien c'est de pouvoir générer automatiquement ces fichiers de configuration... si vous êtes étudiant en M1 ALMA et que vous n'avez toujours pas décidé du contenu de votre stage ;)