Les Moteurs de Recherche
Poser les bonnes questions / Donner des réponses pertinentes

Google AltaVista Yahoo! HotBot Lycos Northern-Light Kartoo MSN Netscape AOL Deja Excite Go

InfoSpace AllTheWeb LookSmart Dmoz AskJeeves DirectHit Inktomi Iwon DogPile Overture NBCi


-[Accueil]-

-[Bien Chercher]-

Basic
Avancé
Combinaisons
Filtres
Web Directories

-[Benchmarking]-

Au Banc d'Essai...
Références
Popularité
Tailles

-[Bien Trouver]-

Tri par pertinence
Tri par popularité
Tri par clustering
Le cas Kartoo.com

Links
Contact

-[Bien Trouver]-

Tri par clustering

 



Une fois la matrice de similarité calculée, il est possible de classer automatiquement les documents. Comme annoncé, plusieurs techniques existent. Certaines sont dites hiérarchiques (HAC) car elles produisent une hiérarchie, alors que d’autres sont dites non hiérarchiques (single-pass, SOM). D’autres encore produisent des classes floues (STC et Bayesian).

Single-Pass [hill 68]

Une première méthode traite les documents séquentiellement : on met le premier document dans un cluster.

On regarde sa similarité avec le second document. Si elle est supérieure à un seuil fixé par l’usager, alors on range le second document dans le cluster (qui ne contenait que le premier document). On continue avec le troisième document, et ainsi de suite tant que la similarité entre le cluster défini et le document actuel dépasse le seuil. La similarité entre le cluster et un document est la moyenne des similarité entre chaque document du cluster et le document.

Quand le seuil n’est pas dépassé, alors on obtient un cluster et une liste de documents non traités. On recommence au début en définissant un nouveau cluster qui contient le premier document de la liste de documents non traités. 

Cette première méthode a un inconvénient : elle traite les documents séquentiellement. C’est à dire que les résultats de la classification dépend de l’ordre de traitement des documents ! Mais elle est aussi un avantage en termes de rapidité ! Néanmoins, il serait préférable de chercher le document le plus similaire au cluster courant dans la liste des documents non encore traités. C’est la seconde méthode (“ best-first iterative partitioning ”): on cherche les deux documents les plus similaires : on les range dans le cluster 1. Tant qu’on trouve un document dont la similarité avec le cluster 1 dépasse un seuil fixé, on ajoute ce document au cluster 1. Quand on n’y arrive plus, on forme le cluster 2 contenant les deux documents les plus similaires parmi ceux pas encore traités. On continue jusqu’à ce que tous les documents aient été traités.

K-mean [Rocchio 66]

On doit définir à l’avance le nombre de clusters à obtenir.

On répartit ces clusters en les représentant par un vecteur, comme les documents à classer.

Ensuite, on ajoute à chaque cluster le document qui lui est proche. On recalcule le vecteur de ce cluster (moyenne entre le vecteur du cluster et du nouveau document rajouté). On continue ce processus tant qu’il reste des documents à classer.

Avantage : un document peut être rangé dans plusieurs clusters.

L’inconvénient de cette méthode est qu’on doit spécifier à l’avance le nombre de clusters. De plus, le choix des clusters de départ semble important.

Par contre, cette méthode est rapide : O(nK) avec n le nombre de documents et K le nombre de clusters désirés.

Hierarchical Agglomerative Clustering [Voorhees 86]

Mais cette seconde méthode ne produit pas de hiérarchies. La plupart des méthodes de classification de documents sont au contraire des méthodes dites “ hierarchical agglomerative clustering ” (HAC). En effet, la méthode 2 ne peut regrouper qu’un cluster et un document, et non pas un cluster et un autre cluster. La troisième méthode est donc la suivante : on range au départ chaque document dans un cluster. Ensuite on cherche les deux clusters les plus proches. On les fusionne pour former un nouveau cluster et on répète tant qu’il reste au moins deux clusters.

Il existe plusieurs versions de cette méthode standard HAC (single linkage, group average linkage, complete linkage). Seul le calcul de la similarité entre deux clusters change :

pour single linkage, Similarité = Similarité maximum entre un document de cluster1 et un document de cluster2.
pour group average linkage, Similarité = moyenne des similarités entre les documents de cluster1 et cluster2.
pour complete linkage, Similarité = Similarité Minimum entre un document de cluster1 et de cluster2

 On peut aussi diviser la valeur de la similarité par le nombre de documents présents dans le cluster : cela évite de produire des clusters contenant trop de documents.

Ces trois méthodes ont des temps d’exécution allant de O(n²) (Single-link et group average) à O(n3) pour complete-link.  Les méthodes single-link et group-average  ont tendance à générer des gros clusters. L’inconvénient de group-average est en plus de générer des vecteurs très grands pour chaque cluster (puisqu’on fait à chaque fois la moyenne des documents présents dans le cluster : peu à peu il ne reste presque plus de 0 dans le vecteur !). Mais group-average reste malgré tout le plus utilisé car il représente un bon compromis entre vitesse de calcul et qualité des clusters générés.

Les méthodes HAC, bien que très populaires, restent toutefois lentes. De plus, elles ne fonctionnent pas bien sur peu de mots. Ce peut être le cas lorsqu’on cherche à classer automatiquement non pas des documents entiers, mais des résumés de documents (retournés par exemple par les moteurs de recherche comme Altavista) ou quand on veut classer les documents à partir des mots surlignés dans un logiciel d’annotation.

Buckshot anf Fractionation [Cutting 92]

Buckshot est une version modifiée de k-means.

Suffix Tree Clustering (STC) [Zamir 98]

Par rapport aux méthodes précédentes, STC ne cherche pas à ranger chaque document dans un groupe précis. Au contraire, un document peut appartenir à plusieurs groupes (comme Autoclass).

Contrairement aux autres approches, STC ne représente pas un document par la liste non ordonnée des mots qu’il contient. STC s’intéresse aux phrases communes aux documents. La méthode se déroule ainsi :

nettoyage du document comme d’habitude : stoplist, mots fréquents .
lemmatisation rapide (plusieurs, préfixes et suffixes courants : voir l’algorithme de Porter). Remarquez que le lien entre une forme lemmatisée et sa forme d’origine est gardée : quand on montre les mots à l’utilisateur, on peut ainsi utiliser la forme originale et non la forme lemmatisée.
les phrases de chaque document sont identifiées.
création d’un index inversé des phrases : à chaque phrase (et chaque morceau de phrase) on associe la liste des documents dans laquelle elle apparaît.
Pondération de chaque phrase : le score d’une phrase dépend du nombre de mots qu’elle contient ainsi que du nombre de documents dans lesquels elle apparaît. 

Chaque phrase constitue un cluster de base. A chaque phrase est associée la liste des documents dans lesquels elle apparaît. L’étape suivante va consister à fusionner ces clusters de base. Pou décider quand fusionner deux clusters de base, on définit une fonction de similarité entre deux clusters.

si |ci Çcj| / |ci] > 0.5 ET |ci Çcj| / |cj] > 0.5 alors Sim(ci,cj) = 1 sinon Sim(ci,cj) = 0

avec |ci| = nombre de documents dans le cluster de base ci
et |ci Çcj| = nombre de documents communs à ci et cj (intersection)

 L’algorithme STC a plusieurs propriétés intéressantes :

ses résultats ne dépendent pas de l’ordre de présentation des documents.
il est incrémental (on peut ajouter un nouveau document alors que les autres sont déjà traités et insérés dans l’index inversé des phrases).
il n’est pas nécessaire de donner le nombre de clusters à l’avance; 

Seul bémol : définir manuellement la similarité pour fusionner deux clusters (ici 0.5). Mais les expériences montrent que l’efficacité de STC n’est pas trop sensible à cette valeur.

Bayesian classification : Autoclass

En théorie, cette méthode a de nombreux avantages :

Elle fonctionne avec des valeurs binaires ou réelles.
Elle fournit des classes floues, au sens où elle donne les probabilités qu’un document appartienne à une classe.

Mais elle a aussi des faiblesses :

Elle suppose l’indépendance des attributs, ce qui peut être gênant quand on traite des documents où les attributs sont les mots (ils ne sont pas indépendants !).
Elle fonctionne mal sur des données clairsemées (sparse data) comme c’est le cas des vecteurs de documents ! 

Fonctionnement : soit N documents, décrits chacun par q attributs.

Le but de la méthode est de trouver la classification qui est la plus probable à avoir engendré les N documents.

Self Organizing Maps (SOM) de Kohonen 


figure 1 : une carte SOM

 

Algorithme pour entraîner la carte :

Choisir les N mots les plus fréquents dans les documents à classer.
Initialiser avec des valeurs aléatoires la matrice map[x][y][z].
x et y : indices des noeuds de la carte (carte 2D)
z : indice des noeuds d'entrée (vecteur)
(chaque noeud de sortie est en effet connecté à tous les noeuds d'entrée).

Présenter (au moins 5 fois) les mêmes vecteurs pour entraîner la carte
Pour chaque vecteur, calculer le noeuds vainqueur (celui qui est le plus proche), avec la formule suivante :

Modifier les connections de ce noeuds et ceux de ses voisins, par exemple avec la formule suivante :

n(t) est une fonction décroissante du temps

Une fois que la carte a été entraînée, il est possible de soumettre un nouveau vecteur (non utilisé pendant l'entraînement) et de calculer le noeud de sortie qui est vainqueur...

On peut aussi décider d'utiliser ce nouveau vecteur comme un vecteur d'exemple et modifier les poids du réseau. 

Dans http://www.cis.hut.fi/~tho/thesis/index.html#SEC:som, l’auteur suggère deux étapes : a) on constitue une première carte SOM qui groupe les mots en catégories et b) on utilise ce résultat pour sélectionner les mots qui seront utilisés pour représenter les documents. Une fois qu’on a cette représentation (toujours sous forme de vecteur), on peut calculer la SOM des documents.

La décomposition en deux étapes a des avantages :

On réduit considérablement la dimension des vecteurs qui représentent chaque document : la taille du vecteur est au plus égale au nombre de nœuds de la SOM du a) qui correspondent aux catégories des mots.

on déduit automatiquement la catégorie sémantique d’un mot : au lieu de représenter ce mot plusieurs fois dans le vecteur du document, il n’apparaît qu’une fois sous forme de catégorie. On résoud ainsi (en partie certainement) le problème d’ambiguité sémantique des mots .

Point 26 : Traitement et représentation des documents

Point 28 : Evolution du clustering