Tag Clouds

L'objectif du projet est de concevoir un logiciel qui permet de générer des nuages de mots à partir d'un document textuel.

Introduction

Les nuages de mots, appelés également nuages de tags ou tag clouds, sont de plus en plus utilisés sur les sites web actuels. Il s'agit de figures composées de mots placés de façon à obtenir une forme.

Les mots composant le nuage sont obtenus en analysant le contenu des pages du site web : le nuage de mots contient en fait les mots les plus utilisés dans le site, et la taille des mots dans le nuage donne une indication de leur importance dans le contenu (nombre d'apparitions de chaque mot dans le contenu). Les nuages de mots permettent ainsi aux utilisateurs de connaitre en un coup d'oeil les mots clés du site web.

Un exemple de nuage de mot généré à partir du site web www.supelec.fr est donné ci-dessous.

Tag Cloud

Nuage de mot généré à partir du site web www.supelec.fr.

Le succès des nuages de mots est lié à leur apparence très graphique qui peut être personnalisée au point d'obtenir des figures relativement complexes.

Fonctionnalités minimum attendues

  1. Le logiciel doit permettre d'obtenir des nuages de mots à partir d'un document textuel.
    Le document fourni en entrée par l'utilisateur pourra être dans un premier temps un fichier texte simple.
    On pourra envisager par la suite de permettre à l'utilisateur de fournir une page web (soit un document HTML soit l'URL d'une page web).
  2. L'utilisateur doit pouvoir personnaliser l'apparence du nuage de mots (couleurs, police, orientation des mots, forme à obtenir…).
  3. Il doit également pouvoir paramétrer le contenu du nuage de mot, un contenu par défaut ayant été généré automatiquement par le logiciel à partir de l'analyse du texte contenu dans le document fourni par l'utilisateur.
  4. L'utilisateur doit pouvoir exporter le nuage de mot dans un fichier de type image (format jpeg ou png par exemple).

Quelques pistes pour démarrer

Composants du projet

Le projet peut être décomposé en deux modules principaux :

  • analyse du document textuel permettant d'obtenir la liste des mots avec leur fréquence ;
  • génération graphique du nuage de mots et interactions avec l'utilisateur.

Une des premières étapes de la conception consistera à définir la structure de données qui sera utilisée pour représenter la liste des mots constituant le nuage. Cette structure de données devra à la fois faciliter le stockage des informations lors de l'analyse des documents et faciliter la génération graphique du nuage.

Technologies

Il pourra être intéressant de regarder :

  • Les différents types de « parsers » pouvant être utilisés pour analyser des documents textuels notamment les parsers de type DOM ou SAX et plus spécifiquement les parsers HTML comme par exemple Neko ou JTidy.
  • Les techniques d'encodage des caractères (afin de tenir compte des caractères accentués dans les documents analysés).
  • Les technologies de dessin vectoriel telles que SVG qui permettent de créer facilement des images à partir de texte.
➜Voir notamment les bibliothèques Java permettant de générer du SVG, comme SVG Salamander ou Batik. Ces bibliothèques supportent généralement l'export des graphiques SVG sous forme d'images dans des formats classiques comme jpeg ou png.
  • Les technologies utilisables pour réaliser l'interface utilisateur, telles que Swing. Si vous souhaitez réaliser une application web avec une interface HTML plutôt qu'une interface Swing, il vous faudra alors regarder Java Enterprise Edition.

Documents

Sur SVG :

Sur les documents HTML :

Et quelques documents et tutoriels d'aide sur Java.