• Aucun résultat trouvé

Partie V. Composants de traitement

F. Regroupement de documents

1.

Introduction

Le regroupement de documents (clustering en anglais) permet de partitionner un corpus en sous- ensembles présentant des similitudes. Une telle opération porte donc non plus sur un document individuel mais sur la globalité d’un corpus. Elle offre de l’intérêt pour plusieurs applications de TAL. Nous souhaitions donc intégrer en standard un composant de regroupement dans la plate-forme. Nous présentons ici un état de l’art (non exhaustif mais représentatif des différentes voies possibles) et des précisions sur notre implémentation de deux algorithmes : Bron-Kerbosch et Spectral Clustering.

2.

Préambule à propos des implémentations

L’information fournie en entrée à un algorithme de regroupement est une matrice termes- documents. C’est une matrice dont les colonnes représentent les documents, et les lignes les termes du corpus ; chacune des cellules compte le nombre de fois où un terme donné apparaît dans un document donné. Cette matrice peut devenir très volumineuse : par exemple, un corpus de 200 000 documents, écrits avec 30 000 termes distincts, représenterait une matrice de six milliards de cellules ; l’espace mémoire nécessaire pour stocker un tel tableau bidimensionnel (avec des entiers 32 bits) serait donc de 24 giga-octets, ce qui excède la capacité mémoire usuelle des ordinateurs actuels. Heureusement, tous les termes du corpus ne se retrouvent pas dans chaque document ;

163 Nous pourrions nous risquer à proposer comme algorithme non-subtil de résolution d’anaphores dans le

texte de l’article, un brutal recherche & remplace du pronom qui y apparaît le plus fréquemment, par son titre. Un tel algorithme pourrait servir de baseline dans ce cas particulier.

126 pour des corpus larges, seuls 1 % à 5 % des termes vont effectivement se retrouver dans un document donné ; cette matrice est donc surtout remplie de zéros. Le stockage d’une matrice termes-documents nécessite donc une structure de données adaptée, appelée « matrice creuse ». L’idée est de n’y stocker que les entrées non nulles de la matrice pour économiser la mémoire utilisée par rapport à une structure naïve de tableau165.

Les manipulations de telles matrices doivent aussi être implémentées soigneusement. Par exemple, l’algorithme naïf de multiplication matricielle produirait une matrice pleine en traitant deux matrices creuses. Nous avons initialement utilisé la librairie Colt, développé par le CERN en Java, qui permet de faire des calculs sur des matrices creuses de façon optimisée ; l’équipe Proxem a par la suite implémenté une librairie de calcul améliorant ces optimisations.

3.

Etat de l’art

Le regroupement consiste à partitionner un ensemble de documents sans connaître à l’avance le nombre de partitions ni leur nature166. L’objectif du problème de regroupement est d’obtenir des groupes compacts et homogènes, et que ces groupes soient aussi différents que possible entre eux ; en termes plus formels, cela revient à minimiser l’inertie intra-classe167 et maximiser l’inertie inter- classes168. Plusieurs techniques ont été proposées pour arriver à partitionner les données en se basant le plus souvent sur des espaces vectoriels euclidiens, où un document est représenté par un vecteur de termes. Les algorithmes de regroupement de documents que nous verrons dans la suite se basent sur ce modèle.

a)

Regroupement hiérarchique

Le regroupement hiérarchique ascendant (Hastie et al., 2001) consiste à considérer dans un premier temps que chaque document forme sa propre classe. Ensuite, on regroupe deux par deux les classes qui sont les plus proches, jusqu’à obtenir une classe unique (Cf. figure 42). Pour exprimer la distance entre les classes, des critères comme celui de Ward (qui maximise l’inertie inter-classes) ont été proposés. Ensuite l’arbre résultant peut être coupé selon un certain seuil d’inertie intra-classe.

Figure 42 : Un exemple de regroupement hiérarchique

165 Un exemple de représentation de matrice creuse est le format Yale Sparse Matrix.

166 On parle de classification ou de discrimination quand ces dernières informations sont connues a priori. 167 L’inertie intra-classe est la variance des points d’un même groupe.

Le regroupement hiérarchique peut également être descendant : tous les éléments sont initialement considérés appartenir à une même classe ; on cherche ensuite à séparer cette classe en deux en maximisant l’inertie inter-classes. De même, l’arbre résultant peut être coupé selon un certain seuil d’inertie intra-classe.

b)

Regroupement par cliques (ou regroupement flou)

Le corpus est ici considéré comme un graphe ; les documents sont interconnectés, les arcs du graphe représentant la similarité entre ces documents. Le regroupement par cliques cherche à regrouper les éléments qui se trouvent dans une même clique, du point de vue de ce graphe. L’avantage est que le regroupement n’est pas strict, un document pouvant appartenir à plusieurs classes ; c’est pourquoi on le qualifie aussi de regroupement flou.

c)

Regroupement QT

Le regroupement QT (Quality Threshold) (Heyer et al., 1999) consiste à chercher pour chaque élément un regroupement possible qui ne dépasse pas un diamètre fourni par l’utilisateur, puis à choisir le regroupement contenant le plus d’éléments. Cette phase est répétée sur les éléments qui ne sont pas dans ce regroupement jusqu’à ce que le plus grand regroupement soit inférieur à un seuil fourni par l’utilisateur. Cette technique permet de trouver des grandes classes en ayant une qualité intra-classe satisfaisante.

d)

Regroupement spectral

Comme dans le regroupement par cliques, le problème peut être reformulé en termes de graphe. On considère un graphe pondéré non orienté où les sommets correspondent aux documents, et les arêtes sont pondérées selon la ressemblance entre deux documents. Le problème est alors de trouver une partition du graphe telle que les classes soient aussi différentes que possible, avec des documents similaires entre eux au sein d’une même classe.

La théorie spectrale des graphes (Chung, 1997) montre que la recherche d’une partition d’un graphe en k classes revient à la recherche des k plus grands vecteurs propres (au sens de leurs valeurs propres) de la matrice laplacienne du graphe. Pour éviter d’avoir à fournir explicitement une valeur arbitraire de k, plusieurs techniques ont été proposées pour trouver un partitionnement satisfaisant du graphe :

Une première technique naïve est de calculer pour toutes les valeurs de k le partitionnement qui minimise la valeur de la coupe du graphe. Le problème de cette méthode est le temps de calcul sur des corpus importants.

 Une seconde approche, inspirée du regroupement hiérarchique descendant, est de bipartitionner le graphe jusqu’à ce que la coupe soit en dessous d’un certain seuil. Cette idée est utilisée dans l’algorithme NCut décrit dans (Shi, Malik, 1997) et amélioré dans (Ding et al., 2001). Le problème de cet algorithme est que le partitionnement s’arrête au niveau du seuil.

 Une troisième technique a vu le jour pour contourner ce genre de problème. Elle consiste à construire entièrement la hiérarchie du graphe en le bipartitionnant puis à regrouper les nœuds dans l’arbre résultant avec un critère d’agrégation. L’algorithme décrit dans (Cheng et

128

e)

Réduction de dimensions

Le problème le plus important dans le regroupement de documents provient de la dimension élevée des matrices termes-documents. Pour pallier ce problème, des techniques visant à réduire la dimension de l’espace ont été introduites. La recherche des composantes principales vise à ne retenir que les axes qui contiennent le plus d’informations. Le regroupement est alors amélioré car une partie du bruit (l’information non pertinente) a été supprimée. Cependant, le fait que les composantes principales (qui correspondent a priori aux différents sujets) soient orthogonales pose un problème dans les regroupements de documents, car des sujets différents ne sont pas forcément indépendants (par exemple, la biologie et l’informatique ont en commun la bio-informatique). La réduction de dimension peut également être utilisée en tant que telle pour classifier des documents en utilisant la factorisation matricielle non négative (Nonnegative Matrix Factorization) présentée dans (Xu et al., 2003). Cette factorisation consiste à calculer une approximation de la matrice termes-documents comme le produit de deux matrices (l’une en fonction des termes, l’autre en fonction des documents) représentant les différentes classes. L’avantage de cette réduction de dimensions est que les classes produites ne sont pas forcément orthogonales comme dans la recherche des composantes principales.

4.

Implémentations dans la plate-forme

Nous avons implémenté deux algorithmes dans la plate-forme, un pour le regroupement par cliques (algorithme de Bron-Kerbosch) et un pour le regroupement spectral. Les deux offrent de bonnes performances.

a)

Regroupement par cliques (Bron-Kerbosch)

Notre implémentation de Bron-Kerbosch est inspirée par (Cazals, Karande, 2008), dont l’algorithme est décrit en figure 43. Notre implémentation utilise aussi une fonction qui transforme une matrice de similarité en une matrice d’adjacence en utilisant une valeur de seuil pour supprimer les éléments qui sont trop dissemblables.

L’avantage du regroupement par cliques est de permettre d’avoir simplement un regroupement flou, où un élément peut appartenir à plusieurs classes. Ceci est intéressant pour le lexique sémantique, puisqu’un sens donné peut être regroupé dans plusieurs sens macroscopiques. Dans ce contexte, notre implémentation est « raisonnablement » rapide (quelques millisecondes pour trouver les cliques dans un graphe d’une centaine d’éléments).

b)

Regroupement spectral

L’avantage du regroupement spectral est de dispenser l’utilisateur de devoir fournir un seuil a priori. En effet, ces seuils sont parfois difficiles à trouver pour avoir un bon regroupement.

L’algorithme de regroupement spectral procède en deux phases. La première phase (division) consiste à créer un regroupement hiérarchique en bipartitionnant récursivement le graphe résultant de la matrice de similarité. La seconde phase (fusion) cherche le meilleur regroupement arborescent suite à la phase de division. La figure 44 illustre le principe de l’algorithme. Son fonctionnement précis est détaillé en annexe, page 202 ; le point très intéressant de l’algorithme est qu’il tient compte du fait que la matrice est creuse pour optimiser les calculs.

Figure 44 : Exemple simplifié de mise en œuvre de l’algorithme de regroupement spectral

Les performances de notre implémentation initiale étaient (subjectivement) correctes : le regroupement de 400 documents courts (deux lignes de texte) nécessitait 2 secondes de temps de calcul. Depuis, l’équipe Proxem a optimisé cette implémentation en tombant à moins d’une seconde de calcul sur le même type de corpus.

5.

Applications

Voyons quelques exemples concrets de mise en œuvre du regroupement dans des applications utilisant Antelope, ou dans la plate-forme elle-même.

Une offre d’emploi est souvent reprise en plusieurs exemplaires, avec des légères variantes par rapport à l’offre initiale. Pour déterminer le nombre de postes ouverts à un instant donné (qui est sensiblement inférieur au nombre d’offres), il faut donc procéder à un dédoublonnement du corpus d’offres.

Autre exemple : nous avons vu dans la partie dédiée au lexique sémantique que le découpage des sens proposé par WordNet est parfois trop fin. Nous avons appliqué des algorithmes de regroupement aux définitions des sens des différents vocables pour les fusionner en sens macroscopiques, de façon à simplifier la désambiguïsation lexicale.

130 Enfin, dans une application de recherche d’information, la visualisation d’un grand nombre de résultats est souvent problématique. Il est donc pratique de regrouper les résultats en sous- ensembles cohérents. Nous illustrerons ce point dans la partie qui présente les applications d’Antelope, notamment aux sections VI.B.3 (partie 134) et VI.D.5 (page 144).

6.

Conclusion

Nous prévoyons d’utiliser dans le futur des algorithmes incrémentaux (ou algorithmes online) qui modifient dynamiquement les regroupements déjà créés lors de l’ajout de nouveaux documents. Ils évitent en effet de tout recalculer et permettent ainsi de traiter de grands volumes de données en constante augmentation.

Nous envisageons aussi d’implémenter l’algorithme Lingo (Osiński et al., 2004). Il trouve d’abord les descriptions qui pourraient s’appliquer aux documents en réduisant les dimensions, puis assigne ces documents à chacune des descriptions trouvées.