Classification de cooccurrences de termes à l’aide d’un algorithme non supervisé de réseaux de neurones Yann Prudent1, Stéphane Trébucq2 (1) Laboratoire PSI, Université et INSA de Rouen, Mont-Saint-Aignan (Haute-Normandie), France, 76 821 (2) Centre de Recherche en Contrôle et Comptabilité Internationale, Université Montesquieu Bordeaux IV IAE de Bordeaux, Avenue Léon Duguit, Bordeaux(Gironde) France, 33 000 RÉSUMÉ. L’outil graphique proposé est fondé sur l’utilisation d’un algorithme ayant recours au principe de l’apprentissage Hebbien Compétitif. Une telle méthodologie est en mesure de proposer une vue synthétique des relations structurantes présentes dans des textes tout en écartant les relations à fréquence élevée, susceptibles d’être considérées comme triviales par un expert. Les vues synthétiques obtenues permettent d’isoler certaines grappes ou classes de termes associés. La sensibilité du nombre obtenu de classes et de la visualisation des relations sélectionnées aux différents paramètres de l’algorithme est ensuite développée. MOTS-CLÉS : données textuelles, corpus, cooccurrences , réseaux de neurones, classification, visualisation 1 Introduction L’analyse des liens de cooccurrence représente une démarche classique d’étude des corpus textuels. Cependant, les optiques retenues afin d’identifier ces types de relations sont extrêmement diverses. Cela dépend, en effet, non seulement de l’unité d’analyse choisie (phrases, paragraphes, textes), mais aussi des éléments analysés (termes lemmatisés ou non, syntagmes, classes sémantiques). Quelle que soit la méthode utilisée, l’analyste se retrouve inévitablement confronté à une masse de relations difficiles à traiter. Selon certaines approches, un filtrage statistique des relations les plus atypiques peut être obtenu [LAF 84]. En ce qui concerne la présente recherche, une liste de cooccurrences a été prise comme point de départ. Dans sa version actuelle, l’outil n’utilise que les fréquences de cooccurrence et permet de sélectionner uniquement certaines relations. La représentation graphique prend la forme d’une arborescence non hiérarchisée. Les termes associés sont alors regroupés en grappes, ces dernières correspondant à des classes, tout en conservant visuellement les liens de cooccurrence. Cet article a pour objet d’expliciter le fonctionnement de l’algorithme utilisé, fondé sur la logique de l’apprentissage Hebbien compétitif [MAR 93]. Les propriétés d’un tel algorithme sont ensuite évaluées empiriquement, à partir d’un corpus test, composé de textes académiques dédiés à la gestion des entreprises, et plus précisément à leur gouvernance. 2 Présentation de l’outil de classification Nous présenterons dans un premier temps la logique de l’algorithme (2.1.), puis sa mise en œuvre pratique (2.2.). 2.1 Un algorithme à base de réseau de neurones L’outil proposé mobilise un algorithme fondé sur la logique des réseaux de neurones [TRE 05], en application des principes de l’apprentissage Hebbien compétitif [MAR 93]. Chaque terme est alors considéré comme un « neurone », et les relations de cooccurrence sont représentées graphiquement par un trait connectant chaque « neurone » à un autre. L’algorithme mis en œuvre procède à un tirage aléatoire au sein de l’ensemble S des relations décrivant l’intégralité du corpus étudié. La probabilité de tirage est proportionnelle à la fréquence de cooccurrence des termes. Dans le cas considéré, la mise en relation entre deux termes est directionnelle, sachant que le premier terme précéde le second dans le texte. L’algorithme présenté ci-après ne conserve que les connexions dont l’âge est inférieur au seuil amax. Ce paramètre essentiel doit être fixé avant de lancer l’exécution du programme. ______________________________________________________ Données : un ensemble de relations S, amax Résultat : Une carte Début tant que le critère d’arrêt n’est pas satisfait faire tirer au hasard une relation (x,y) ∈ S // et ce proportionnellement au nombre de cooccurrences si le neurone x n’existe pas dans la carte alors créer le neurone x ; si le neurone y n’existe pas dans la carte alors créer le neurone y ; incrémenter l’âge de toutes les connexions de x ; incrémenter l’âge de toutes les connexions de y ; si la connexion (x,y) existe alors ramener son âge à 0 ; sinon la créer ; supprimer toutes les connexions avec un âge supérieur à amax ; si ceci a pour conséquence l’isolement d’un neurone, alors le supprimer ; Fin ______________________________________________________ Selon cet algorithme, l’âge de chaque connexion débute avec une valeur de zéro. Lorsqu’une connexion, tirée précédemment et maintenue dans le réseau, est à nouveau tirée, son âge est réinitialisé. En revanche, lorsqu’un nouveau neurone apparaît, l’âge des connexions liées au neurone nouvellement connecté est incrémenté. L’application du critère amax permet d’éliminer en conséquence les connexions les plus fréquentes, estimées comme triviales, et porteuses d’une information d’un intérêt limité pour l’analyste. Dans cette version, dès l’instant où toutes ces relations ont été « apprises », c’est-à-dire passées en revue un certain nombre de fois (voir paramètre « nbpasses », au point 2.2.), l’exécution du programme est alors stoppée. 2.2 Mise en œuvre de l’algorithme neuronal La mise en œuvre de l’algorithme s’opère à partir d’une interface programmée en langage java. Le fichier proposé en entrée représente une liste de coocurrences, avec respectivement pour chacune d’entre elles la fréquence d’occurrence, le premier terme, et le second terme, consécutif au premier. L’utilisateur est alors invité à déterminer cinq paramètres numériques, à savoir : « nbpasses » « âge » « min » « max », et « min grappe », sachant que : • « nbpasses » est le nombre de fois où toutes les relations ont été passées en revue, critère d’arrêt évoqué précédemment ; • « âge » correspond au paramètre amax de l’algorithme ; • « min » est un seuil correspondant à la fréquence de cooccurrence en dessous de laquelle les relations ne sont pas retenues et étudiées ; • « max » est un seuil correspondant à la fréquence des cooccurrences au-dessus de laquelle les relations ne sont pas retenues et étudiées ; • « mingrappe » détermine le nombre minimal de termes requis au sein d’une grappe pour que la représentation de celle-ci soit maintenue dans le graphe final. Ce dernier critère a été introduit afin de pouvoir éventuellement exclure des grappes constituées d’un nombre limité de termes et jugées d’une importance marginale. 3 Propriétés de l’algorithme neuronal Les tests empiriques ont été menés à partir d’un corpus test de 32 textes scientifiques – soit environ 300 000 mots – rédigés par Gérard Charreaux, auteur réputé en finance d’entreprise. Le thème principal des textes traités est celui de la gouvernance des entreprises, à savoir l’ensemble des dispositifs aptes à limiter ou encadrer la marge de liberté des dirigeants afin qu’ils agissent bien dans le sens des intérêts des actionnaires ou des différentes parties prenantes de l’entreprise. A partir de ce corpus spécialisé, nous étudierons successivement les propriétés de classification de l’algorithme (3.1.), puis la qualité des représentations obtenues (3.2.), et enfin la stabilité des résultats obtenus (3.3.). 3.1 Visualisation et classification des cooccurrences Grâce à l’outil Tropes, 8831 relations de cooccurrences1 sont listées dans le corpus étudié. Ces dernières servent alors de base à la représentation graphique obtenue (voir Fig. 1). FIG. 1 : Sous-partie de l’écran de visualisation des grappes ou classes de termes La figure 1 est obtenue avec les paramètres fixés comme suit : « nbpasses »=15, « âge »=3, « min »=1, « max »=245, et « mingrappe »=3. La représentation graphique est au total composée de 30 grappes de termes séparées et de 136 relations, soit 1,5% (136/8831) du total des relations de cooccurrences 1 Leur distribution par fréquence d’occurrence se compose comme suit : N=11 pour l’intervalle de fréquence [100 à 245] ; N= 31 pour l’intervalle de fréquence [50 à 99] ; N=46 pour l’intervalle de fréquence [50 à 99] ; N=86 pour l’intervalle de fréquence [20 à 29] ; N=394 pour l’intervalle de fréquence [10 à 19] ; N=1120 pour l’intervalle de fréquence [5 à 9] et N=7043 pour l’intervalle de fréquence [2 à 4]. Comme on peut le constater, plus les intervalles de fréquences sont bas, plus les relations d’occurrence sont nombreuses. initialement identifiées. Après une telle réduction, l’ensemble des relations s’avère beaucoup plus facile à gérer et à analyser. 3.2 Qualité des représentations obtenues Il est intéressant d’observer, toujours à partir de la figure 1, que les relations retenues présentent une fréquence d’occurrence s’élevant au maximum à 48. Un tel paramétrage conduit de facto à écarter de la représentation les cooccurrences comptant parmi les plus fréquentes dans le corpus étudié (cf. note de bas de page n°1). Le graphe conserve 33 relations avec une occurrence de 4, 55 relations avec une occurrence de 5 à 9, 30 relations avec une occurrence variant entre 10 et 19, 12 relations avec une occurrence s’échelonnant entre 20 et 29, et 6 relations avec une occurrence allant de 30 à 48. Toutefois, un tel paramétrage n’assure pas la meilleure représentation du corpus. En effet, les grappes constituées sont d’une taille limitée. Il est donc nécessaire de jouer sur les paramètres afin d’accroître au mieux le nombre de relations sélectionnées. 3.3 Stabilité des résultats obtenus Ainsi conçu, l’algorithme n’assure pas, pour un paramétrage donné, une stabilité parfaite des résultats. En effet, la sélection des relations repose sur un tirage aléatoire. Il n’est donc pas assuré que les graphes obtenus soient similaires, pour des paramètres fixés d’une manière rigoureusement identique. A titre expérimental, le programme a été ainsi lancé à cinq reprises avec des paramètres identiques. Pour les paramètres suivants {« nbpasses »=10, « âge »=3, « min »=1, « max »=245, et « mingrappe »=5} le nombre de grappes varie entre 8 et 15, et le nombre de relations sélectionnées entre 69 et 106. Une augmentation du paramètre « nbpasses » à 30 n’induit pas des résultats significativement différents2 au niveau du nombre de grappes ou du nombre de relations choisies. Par ailleurs, si l’on compare les relations sélectionnées lors des cinq essais effectués, celles qui apparaissent au moins dans deux graphes représentent moins de 10% du total des relations apparaissant dans les graphes. En revanche, ce taux passe à 30% lorsque l’on joue sur le paramètre « âge » ou amax. Cependant, l’algorithme dans sa version la plus récente a été modifié afin de procéder à un tirage aléatoire sans remise. La stabilité des résultats a été ainsi améliorée significativement sans qu’il soit possible en l’état actuel, dans le cadre de cette présentation succincte, d’en présenter l’intégralité des résultats. Par ailleurs, bien que la méthode ici proposée soit parfaitement reproductible sur tout type de corpus, il nous reste à mieux en estimer la qualité, au niveau des représentations obtenues, et ce, à partir d’un ensemble plus diversifié de corpus. 4 Conclusion Les algorithmes à base de réseaux de neurones fournissent une solution utile pour les analystes souhaitant obtenir une représentation synthétique d’un ensemble de cooccurrences de termes. En outre, en fonction des valeurs affectées aux paramètres s’ajoutent des fonctions de classification des termes associés. 5 Bibliographie [LAF 84] LAFON P., Dépouillements et Statistiques en Lexicométrie, Slatkine Champion, 1984. [MAR 93] MARTINETZ T., “Competitive Hebbian learning rule forms perfectly topology preserving maps”. In S. Gielen, B. Kappen (ed.), Proceedings ICANN’93, International Conference on Artificial Neural Networks, London : Springer, 1993, p. 427-434. [TRE 05] TREBUCQ S., PRUDENT Y., ENNAJI A., “ Cooccurrences et cartes adaptatives : proposition d’un outil de visualisation et application à un corpus spécialisé ”, Actes du 3ème Atelier Visualisation et extraction de connaissances, Journées EGC ( Extraction et Gestion de Connaissances), Paris, 18 janvier 2005. 2 Cette absence de différence a été testée à partir d’une statistique non-paramétrique, selon le test de U Mann Withney.