TimmyMiner

Intérêt
L’intérêt principal de l’extension est de proposer à la fois l’analyse du texte de la page et les résultats sur un corpus (i.e. un ensemble de pages) complet. Ceci permet de connaitre précisément le vocabulaire employé dans le corpus. Les applications sont nombreuses, comme la création de folksonomies.
En outre, l’analyse de la page permet à Timmy Miner de trouver la langue de la page, et de construire des graphes d’expressions (ou thesaurus) représentant les cooccurrences des mots dans le corpus.
L’utilisation de Timmy Miner permet de constituer des corpus sur le web. Parce que le web suit une structure d’agrégats (i.e. de communautés), on peut connaitre le langage utilisé par ces dites communautés.
Suivant un paradigme exploratoire, Timmy Miner trouve son intérêt dans la qualité des résultats par rapport aux méthodes automatiques d’indexation, de toute manière inaccessible pour l’internaute. Parce que ce projet est une extension du navigateur Firefox il est accessible à tous et permet d’imaginer des nouveaux usages navigateur-internet.
Téléchargement
Le code source peut être récupéré sur Launchpad.
Timmy Miner is distribuée sous licence GPL 3.
Fonctionnement général

Le schéma ci-contre résume le processus d’analyse que suit Timmy Miner. En entrée du système se trouve Firefox qui a terminé le chargement d’une page. En sortie l’utilisateur peut lire le tableau des expressions dans l’interface mais toutes les données sont également archivées, à la fois pour chaque page et pour le corpus. Quelques détails à propos des étapes :
- Récolte du texte de la page : L’extension accède à tout le texte et retient toutes les expressions jusqu’à trois mots. Les mots de moins de trois lettres sont ignorés.
- Détection de la langue : Le texte complet récolté est comparé à des signatures syllabiques de langues afin de trouver la plus proche.
- Filtrage avec stop-words de la langue : Pour chaque langue supportée, Timmy Miner contient une liste de stop-words, c'est-à-dire un anti-dictionnaire des mots porteurs d’aucun sens. En français, ‘les’, ‘quoi’,’vous’ sont des exemples de stop word.
- Comptage de fréquence d’expressions : Un classement des expressions les plus fréquentes est effectué. Il peut s’agit de mot-clé ou d’expression-clé.
- Ajout page au corpus : Les résultats de l’analyse de la page sont ajoutés aux résultats du corpus complet, le calcul des scores du corpus est alors mis à jour.
Résultats
Les classements des expressions données par Timmy Miner sont exhaustifs, si on exclut les stop-words. En règle général ceci va représenter une quantité très importante de textes analysés et un long classement des résultats. Néanmoins si on le souhaite, le paramétrage de seuils d’occurrences permet d’obtenir moins de résultats.
Le classement du corpus est basé sur un score donné à chaque expression. Ce score dépend du nombre d’occurrences de l’expression mais aussi du nombre de pages sur lequel le mot se répète. Différents modes de calcul pourraient être possible, selon les besoins, pour l’instant le calcul du score est élémentaire mais s’affinera par la suite.
Le résultat des analyses peut être exporté sous forme de tableau CSV ou TXT. Il est alors très simple d’accéder à ces données sous Excel par exemple. L’export de graphes d’expressions est plus spécifique, voir la section ci-dessous.
Traitement du texte
Timmy Miner permet d’analyser tous types de texte. Il ne tient pas compte des structures dans lesquels le texte est présenté et s’accommode de toutes les chaines de caractères et encodage. Tout le texte que Firefox affiche, Timmy Miner peut l'analyser.
Le moteur d’analyse du texte est une librairie spécifiquement développé pour cette extension Firefox, mais qui reste néanmoins indépendant à l’utilisation de code Firefox. Dénommée Jimmy, la librairie est développé en C++ et s’intègre à l’extension en tant que composant XPCOM. Ce type d’intégration rend l’extension dépendante de la plateforme mais permet de développer des choses beaucoup plus performantes qu’une extension Firefox classique, en Javascript. C’est pourquoi le support de toutes les plateformes nécessite un travail supplémentaire sur ce projet.
Techniquement le moteur d’analyse du texte utilise la technologie des N-GRAM, à la fois pour la détection de la langue et le comptage d’occurrences. Basé sur un modèle vectoriel, le moteur possède de nombreuses optimisations et permet d’analyser une grande quantité de texte très rapidement.
Graphes d’expressions / Thésaurus
Les données collectées par Timmy Miner lorsqu’il analyse les pages peuvent servir à construire des thésaurus. Un thésaurus définit des relations entre expressions (i.e. mots), c’est un graphe où les voisins d’un terme sont les termes associés. Ces graphes représentent la cooccurrence des expressions dans un corpus de pages. Un lien entre deux nœuds représente deux expressions utilisées fréquemment ensemble. Le tissu des liens entre les expressions permet d’évaluer la proximité des mots d’un corpus avec une grande précision. Des techniques similaires sont employées par les moteurs de recherches pour proposer des mots-clés voisins à la recherche.
Par conséquent, avec Timmy Miner on peut visualiser facilement et avec une grande précision comment une communauté communique et autour de quelles expressions le débat se porte. La force de Timmy Miner réside dans la puissance de son moteur d’analyse qui ne se contente pas d’analyser 10% de la page mais la totalité. Etendue sur plusieurs pages, en corpus, la collecte exhaustive des expressions va permettre d’obtenir des résultats de qualité scientifique.
Il faut néanmoins comprendre le paramétrage :
- Seuil d'occurrence d'expression : Pour être considéré comme « présente » dans une page, une expression doit être répété au moins autant que ce seuil.
- Seuil de présence sur page : Pour être dans le graphe, l’expression doit être présente sur ce minimum du nombre de pages différentes.
- Maximum d'expressions par page : Paramètre qui influe sur le temps de calcul. Il définit une limite du nombre d’expressions analysées pour chaque page. Par exemple si ce paramètre est 50, seulement les 50 expressions les plus fréquentes de chaque page seront comparées aux autres.
Plus le nombre de page dans le corpus est important, plus l’intérêt de réaliser ces réseaux est grand. Visualiser le vocabulaire partagé par tout le monde a peu d’intérêt, en revanche voir émerger des agrégats et des controverses est bien plus intéressant.
Exemples réalisés avec Timmy Miner et visualisés avec Gephi.
| Une douzaine de pages Wikipedia a propos de démocratie, état... |
Manuel
Interface utilisateur
Le panneau latéral de Timmy Miner s’ouvre avec le bouton qui s’est placé dans la barre d’état de Firefox, à droite. Il n'est pas nécessaire de laisser le panneau ouvert lorsque l'outil travaille. Un code couleur permet de connaître l'état dans lequel l'extension se trouve:
![]() |
The panel has not been yet initialized |
![]() |
Extension is stopped |
![]() |
Started and 'listening' for webpage input |
![]() |
Analysis is running |
Le bouton Démarrer permet à l’extension d’analyser les pages visitées par Firefox et ordonne la création d’un corpus, vide pour l’instant. Il est possible d’arrêter l’analyse avec le bouton Stop, puis de la redémarrer ultérieurement. Seul le bouton Reset va supprimer le corpus en cours.
Lorsque la page est en cours d’analyse, une barre de progression apparait. Elle indique que Timmy Miner travaille mais ceci n’empêche pas à l’utilisateur de continuer à naviguer. En revanche il est préférable d’attendre la fin des analyses pour stopper.
Une fois le panneau stoppé il est possible d’exporter les résultats.
Langues supportées
Timmy Miner est capable de reconnaître les langues suivantes dans les pages internet. Plus la quantité de texte est importante, moins le système de reconnaissance a de chance de se tromper.
Français, Allemand, Anglais, Espagnol, Finnois, Hongrois, Italien, Néerlandais , Norvégien, Portugais, Roumain, Russe, Suédois, Arabe, Bulgare, Tchèque, Polonais.
Options
- Identification de la langue : Permet de choisir si la détection de la langue est automatique ou déterminée. Attention la liste des langues disponibles n'est chargée qu'une fois le bouton 'Démarrer' cliqué pour la premier fois.
- Seuil d'occurence : Seuil minimum du nombre de répétition d'une expression pour être prise en compte dans une page ou un corpus.
- Stop-list : Ouvre le répertoire de l'extension où les fichiers stop-list sont contenus. Il y a un fichier par langue + le fichier general.txt qui contient des stop word communs. Vous pouvez editer ces fichiers pour personnaliser le vocabulaire à rejeter. Attention de toujours sauvegarder les fichiers textes dans le format d'origine UTF-8. Firefox doit être redémarrer pour que les modifications des fichiers soient prises en compte.
FAQ
- Quels sont les types de documents supportés par Timmy Miner ?
Seulement les pages HTML, et le contenu des frames et iframes est par défaut ignoré. La visualisation des flux RSS et Atom par Firefox est aussi prise en compte. - Que sont les stop-words ? Et comment les trouver ?
Voir article Wikipedia sur le sujet. Les listes se stop-words de Timmy Miner sont une compilation entre des listes trouvées sur Internet et des listes créées par des amis. Les listes sont consultables ICI. - Comment ouvrir et traiter les fichiers des thésaurus ?Avec Gephi ou Guess. Les exemples présentés ici ont été réalisés avec Gephi.
- Comment ajouter une langue dans Timmy Miner ?
Le support d’une langue dépend de deux choses. Il faut fournir une signature de la langue, qui est un texte typique de la construction sylabique de la langue de quelques paragraphes ainsi qu’une liste de stop-words correcte. Avec ces deux éléments nous pouvons ajouter le support de la langue. - A quand le support Linux et Mac OS ?
Nous travaillons dur pour permettre cela. - Quel est la licence de Timmy Miner ?
La licence logiciel libre est de type GPL3. Voir licence complète. - Quels sont les technologies utilsées ?
Comme toute extension Firefox, Timmy Miner utilise XUL et JavaScript. Pour le traitement du langage, la librairie Jimmy est en C++. La communication entre la librairie et l’extension utilise XPCOM, NSPR, XML et XSLT.
Liens et documentations technologiques
Une liste de liens permettant de mieux comprendre les technologies utilisées dans Timmy Miner, en particulier XPCOM.
- Folksonomies: Why do we need controlled vocabulary?
- Creating Custom Firefox Extensions with the Mozilla Build System
- XPCOM
- Mozilla Build Documentation
- XPCOM array guide
- Mozilla internal string guide
- A few good C++ coding practices for Mozilla
- XPCOM Objects
- Introduction to XPCOM for the DOM
- Creating Applications with Mozilla
- libTextCat
- N-gram-based text categorization
- Adding XPCOM components to Mozilla build system - Makefiles
- Building Firefox with Debug Symbols
- Travaux divers Xul
- Xul Periodic Table
- C++ Portability Guide
- Using Dependent Libraries In Extension Components
Informations sur le projet
>
Support utilisateur
| Wiki | Blog 
- Vous devez vous identifier ou créer un compte pour écrire des commentaires





