• Aucun résultat trouvé

Pour mettre en œuvre le système d’enrichissement avec validation décrit plus haut, nous avons implémenté le système Wisigoth (pour WIktionarieS Improvement by Graph-Oriented meTHods), constitué en trois parties :

• une chaîne de traitement hors-ligne, • un serveur de candidats en ligne, • une extension Firefox.

La chaîne de traitement (hors-ligne) extrait, à partir des dumps de Wiktionary, les relations de synonymie, de traduction, etc. et calcule les relations candidates comme présenté dans les sections précédentes. Ces listes de candidats sont données au serveur de candidats, qui les propose quand il reçoit une requête pour un mot ciblé donné. Ce serveur est interrogé par l’extension Firefox qui est la seule partie « visible » du système. On peut en voir une capture d’écran en figure 4.4.

Lorsqu’un internaute installe cette extension et visite une page française ou an- glaise de Wiktionary, le serveur de candidats est interrogé et renvoie une liste or- donnée de candidats pour le(s) mot(s) en cours de consultation. Ces candidats sont alors présentés à l’internaute (cf. figure 4.4). S’il les valide (bouton « + »), l’exten- sion prend en charge l’ajout du synonyme dans Wiktionary et l’édition du code wiki correspondant. Un champ texte libre permet également de proposer un synonyme non-suggéré. Indépendamment de notre méthode d’enrichissement, Wisigoth per- met ainsi aux internautes non familiers avec le code wiki de contribuer. Pour rester proche du principe wiki, nous n’avons pas mis en place de système de validation croisée et les ajouts sont publiés immédiatement. Néanmoins, facilitant l’ajout de synonymes, nous devons également en faciliter leur suppression : un bouton « - » est ajouté à chaque synonyme présent, qui déclenche sa suppression. Enfin, un sys- tème de liste noire permet à un contributeur de signaler une suggestion jugée non pertinente (bouton « × »). Cette suggestion ne lui sera plus faite et permettra aux autres candidats de remonter dans la liste. Au-delà d’un seuil (réglé pour l’instant

Figure 4.4 – Exemple de propositions faites par Wisigoth sur le Wikitionary fran-

çais pour « enseignant ».

arbitrairement à 3) de mises sur listes noires individuelles, la proposition est insérée dans une liste noire globale de manière à ne plus être proposée à aucun utilisateur.

4.5

Conclusion du chapitre

Nous avons dans ce chapitre proposé un système (en grande partie) endogène d’enrichissement semi-automatique de ressources lexicales. Ce système se base sur un calcul de similarités, par des marches aléatoires courtes, entre sommets d’un graphe biparti construit à partir de la ressource.

Nous appliquons ce système sur Wiktionary. En effet nous avons présenté une étude qui montre que la couverture lexicale de cette ressource construite « par les foules » croit plus vite que son nombre de relations. Un système d’aide à l’ajout de relations lexicales est donc justifié. Nous avons validé le système proposé grâce à des ressources étalons. Ce système est capable de proposer des courtes listes de candidats pour la quasi totalité des entrées de Wiktionary et de 30 à 60% de ces listes permettent d’ajouter au moins une relation validée par une ressource étalon (les résultats dépendent de la partie du discours et de la langue considérée).

Enfin nous avons présenté une implémentation sous forme d’une extension Fi- refox. Celle-ci permet de proposer des candidats synonymes à l’utilisateur lorsqu’il navigue sur Wiktionary. Ainsi il peut les marquer comme incorrects ou les ajouter dans la ressource collaborative.

Cette extension Firefox est une preuve de concept qui a été développé en 2010 et 2011. Elle était alors pleinement fonctionnelle, malheureusement nous n’avons pu la

maintenir et des modifications tant dans Firefox que dans les formats et structures de données de Wiktionary font qu’elle n’est plus utilisable aujourd’hui. Nous sommes néanmoins convaincus que ce type de solution d’aide à la construction de ressource est nécessaire pour développer des ressources de qualité à moindre coût, que ce soit « par les foules » ou par des lexicographes experts. Notamment le développement d’outils (extension Firefox par exemple) d’assistance à la contribution sur Wiktio- nary est, il nous semble, quasiment indispensable pour réellement voir la qualité et le nombre de relations lexicales de Wiktionary atteindre un niveau comparable à celui de Wikipedia. Il serait intéressant de développer un outil d’assistance à la contribu- tion, similaire à l’extension que nous avons proposé, mais qui puisse se connecter à différents serveurs de candidats. Ainsi chacun (particulier, entreprise ou équipe de recherche) pourrait facilement proposer un serveur de candidats. Un contributeur disposerait alors des différentes propositions de candidats. Il serait possible d’évaluer a posteriori les serveurs ayant amené le plus de contributions.

Concernant la méthode de calcul des candidats, différentes améliorations sont envisageables. Nous avons vu que la construction du graphe est primordiale. Il serait possible d’explorer différentes méthodes de pondération, en particulier pour les gloses et les contextes syntaxiques. Par exemple en pondérant les termes des gloses de manière inversement proportionnelle à leur position dans la définition (les premiers termes d’une définition étant souvent plus semblables au mot défini que les derniers). Il serait possible d’évaluer les différentes mesures de similarité introduites au cha- pitre2. Mais cette perspective n’apparaît pas comme prioritaire à la vue des faibles différences observées ici entre les quelques méthodes utilisées. Ces faibles différences sont par ailleurs confirmées par les fortes corrélations constatées au chapitre2entre beaucoup de mesures. De surcroît, la taille importante des graphes utilisés ici limite l’utilisation de méthodes globales. Il faudrait aussi vérifier que ces méthodes peuvent s’appliquer sur un graphe biparti. Il serait tout de même intéressant12 d’évaluer la

confluence (introduite en sous-section2.2.2). Cela étant dit, le fait que la confluence

soit définie entre 0 et 1 n’a aucun intérêt ici, seule la prise en compte du degré d’arrivée peut être intéressante. Cela aurait comme effet de pénaliser les candidats de forts degrés par rapport à ceux de faibles degrés. Il n’est donc pas sûr que cela améliore les résultats, car dans une optique de construction de ressource, le fait de privilégier les candidats de forts degrés peut être souhaitable : un peu à la manière de l’attachement préférentiel, les liens se forment certainement plus facilement avec des sommets forts.

Notons aussi que l’application présentée ici peut être mise en parallèle avec le problème dit « de recommandation ». Ce problème consiste typiquement à proposer des produits à un client étant donné l’ensemble des achats passés [Ricci et al.,2011]. Aussi, la littérature s’intéressant à la prédiction de liens dans un graphe biparti

[Allali et al., 2013] peut proposer des méthodes (spécifiques aux graphes bipartis) qui méritent d’être évaluées sur cette application.

Enfin l’évaluation pourrait profiter des propositions faites au chapitre précédent. Notamment il pourrait être intéressant de mesurer la confluence dans le graphe étalon des candidats qui sont, pour le moment, rejetés par l’étalon.

Deuxième partie

Clustering de graphe biparti,

théories et applications

Chapitre 5

Clustering de graphe biparti

On s’intéresse dans ce chapitre au problème consistant « à regrouper intelli- gemment les sommets d’un graphe biparti ». Cette formulation est volontairement vague pour nous permettre de recouper les approches généralement proposées sous diverses étiquettes : « détection de communautés », « conceptualisation » ou encore « clustering ».

Rappelons qu’un graphe biparti est un graphe comportant deux types de som- mets et des liens seulement entre des sommets de types différents. C’est une relation (binaire) entre deux ensembles de sommets. Nous considérons dans ce chapitre que l’un de ces ensembles correspond à des objets, alors que le second correspond à des propriétés.

Différentes motivations peuvent amener à définir plus clairement ce problème de « clustering », par exemple : comment diviser un graphe en différents groupes de façon à minimiser le nombre de liens entre ces groupes ? comment, pour simpli- fier la représentation des objets, peut-on les classer, d’après leurs propriétés, dans un nombre raisonnable de catégories « naturelles » ? quels sont les objets formant des groupes indissociables et quelle peut être leur organisation hiérarchique ? Ces différentes motivations ont amené plusieurs communautés de chercheurs à proposer des approches différentes. Pour autant il est intéressant de mettre en parallèle ces approches. C’est un travail auquel nous contribuons dans ce chapitre, en établissant notamment une traduction de l’analyse formelle de concepts en termes de graphe.

Ce parallèle permet d’apporter un éclairage intéressant sur les méthodes de la littérature, et nous amène en particulier vers une problématique du clustering de graphe biparti souvent ignorée : Comment partitionner les objets sans imposer de partition correspondante sur les propriétés ? Nous proposons une méthode simple qui répond à cette question. Cette méthode est basée à la fois sur l’analyse formelle de concepts et sur un algorithme de détection de communautés.

Enfin, en utilisant des mesures de similarité définies dans la première partie de ce rapport, nous proposons une méthode de prétraitement d’un graphe biparti

éventuellement pondéré. Cette méthode permet de filtrer un graphe biparti et de le binariser s’il est pondéré, pour simplifier les résultats obtenus par l’analyse formelle de concepts.

Ces contributions sont organisées en quatre sections. En section 5.1 nous dres- sons un panorama des différentes familles d’approches. En section5.2nous dressons un parallèle entre l’analyse formelle de concepts et l’analyse de graphe biparti. Ce parallèle nous permet d’apporter deux contributions dans les sections suivantes. En section 5.3 nous proposons et évaluons une méthode pour catégoriser les objets, et ce même si les propriétés sont fortement partagées entre les catégories. Enfin en section 5.4, après avoir décrit les différentes extensions envisageables ou existantes de l’analyse formelle de concepts pour des données graduelles ou empreintes d’in- certitude, nous proposons une méthode basée sur des marches aléatoires permettant de simplifier et de binariser un graphe biparti. Nous proposons ensuite une première évaluation de cette méthode sur des graphes artificiels et sur des graphes réels, avant de conclure en section5.5.