Hubert Wassner

Professeur d'informatique

28 09 2007

graphe sémantique

ou comment découvrir automatiquement le sens de mots en les visualisant sur un graphe sémantique ...

Mise à jour !: Un article plus récent sur le même sujet : la calculatrice sémantique. Vous permet de créer vos propres cartes sémantique avec un outil en flash.


Qu'est ce que la sémantique ?

C'est à la fois simple à comprendre et compliqué à manipuler

La sémantique c'est le sens, c'est ce qu'on appelle aussi parfois le « fond » par opposition à la forme. Par exemple si je compare les mots « voiture » et « véhicule » d'un point de vue sémantique ce sont des mots relativement proche par leur sens. Je peux en général remplacer le mot voiture par le mot véhicule, cela ne changera pas le sens du discourt. La sémantique est naturelle et facile pour un humain, par contre un ordinateur est incapable de voir la proximité de sens entre ces deux mots, sauf bien sûr si on lui a donné cette information. Spécifier une base de donnée sémantique est extrêmement coûteux et complexe car il faut détailler et expliquer le sens de chaque mots utilisé ainsi que ses rapports avec tous les autres. C'est une des raisons pour lesquelles le fameux «web sémantique » peine à se diffuser.

Ce qui est expliqué ici n'a évidement pas pour but de concurrencer le projet de web sémantique, mais montre qu'il est possible d'accéder de manière indirecte à la sémantique des mots. Cela se fait grâce au calcul d'une distance sémantique entre mots (voir cet article pour plus de détail ). Cette distance, assez simple à calculer en pratique, permet alors de comparer sémantiquement des textes. Notez que cela ne veux pas dire que l'ordinateur comprend réellement le sens du texte, mais il est capable de les comparer et de mesurer leur similitudes ou différences sémantique. Ainsi connaissant une base de mots si on est capable de placer un mot nouveau par rapport à cette base, on peut alors en avoir une compréhension intuitive. C'est ce que l'on va faire ici.

Distance sémantique et représentation

L'article précédemment cité nous donne donc la possibilité de calculer une distance sémantique entre n'importe quelle paire de mots grâce à quelques requête sur un moteur de recherche sur internet. On obtient alors une valeur numérique pour toute paires de mots pour une liste donnée. On va considérer cette valeur comme une distance. On peut alors essayer de placer les mots sur un plan de manière à respecter au mieux les distances sémantique calculées. C'est ce qui est fait ici :

voilà comment on peut interpréter ce schéma :

  • on voit que en haut à gauche se situe les écoles d'ingénieurs (formation scientifique/technique)
    (esiea, efrei, estaca, esme)

  • en haut à droite il y a les écoles de commerce.
    (hec, edhec, isc)

  • en bas à droite il y a les grandes écoles publiques (polytechnique, ena, sciences po')

  • On peut noter aussi que polytechnique est plus proche du groupe d 'écoles d'ingénieur qu'il ne l'est des écoles de commerce. De même science po' et l'ena sont plus proche des écoles de commerce que des écoles d'ingénieur.

Cette organisation à été produite entièrement automatiquement. Les distances sémantiques entre les mots ont été calculées à partir de recherches sur internet. Trouver les coordonnées des emplacement de chaque mots satisfaisant les distances sémantiques est une opération compliqué. On est d'ailleurs pas du tout assuré qu'il existe un agencement des mots dans le plan permettant de respecter les distances sémantique... Une solution approchée consiste à représenter les distances entre les mots comme des ressorts. Pour cela on crée un simulateur et on laisse les lois de la physique trouver une solution approchée des positions. Voici ce que cela donne visuellement dans une petite vidéo :

Cette production, quoique 100% automatique, est pourtant sémantiquement tout à fait valide. Notez les regrouppement d'écoles par thèmes (ingénieurie scientifique et technique, commerce, gestion, et grandes écoles publiques).

Supposons maintenant que je connaisse tout ou presque des écoles précédemment citée mais qu'on me parle d'une école dont le sigle est isg dont je ne connais absolument rien. Je vais tout simplement l'ajouter au graphe suivant et laisser faire le programme...

Voici ce qu'on obtient :

On voit alors que l'isg se rapproche des écoles de commerce donc « non-scientifique ». S'agissant d'un école de gestion, les positions relative des mots nous permettent de nous faire une idée, de manière automatique, du thème de cette école.



Notez ce billet : 7 vote(s)

Vous avez trouvez intéréssant ce billet? Abonnez-vous au flux RSS pour être tenu informé des prochains!

Trackbacks

Aucun trackback.

Les trackbacks pour ce billet sont fermés.

Commentaires

Le dimanche 30 septembre 2007 à 00:34, par Yahia

Quelles sont les applications de ce graphe sémantique ? Où peut-on les utiliser ?

Le dimanche 30 septembre 2007 à 23:55, par Hubert WASSNER

Les applications possibles sont multiples... On pourrait, par exemple mieux visualiser les nuages de tags.
Voici un exemple sur quelques tags du site bookmarks : " blog, web 2.0, mode, eau ,logiciel ,webmaster ,référencement, web ,google, freeware"

Grâce aux information sémantiques et à leur visualisation on s'oriente beaucoup plus facilement qu'avec simplement une liste de mots...
on voit par exemple :

  • que les blogs sont en rapport avec internet le web "2.0" ... et la mode...
  • que le referencement concerne les webmaster, google, et le web
  • que le freeware est du logiciel
  • et qu'on se demande se que le tag "eau" vient faire dans tout ça ...

Bref c'est aussi utile pour les mots qu'une calculatrice est utile pour les nombre...

Le vendredi 5 octobre 2007 à 15:55, par Nicolas

Avez vous ou envisagez vous de faire des comparaisons avec l'analyse sémantique latente ?

Si oui, quels résultats avez vous eu ? Si non, quelles sont selon vous les différences en terme d'approche ?

Le samedi 6 octobre 2007 à 18:38, par Hubert WASSNER

L'Analyse Sémantique Latente (ASL ou LSA en anglais) est en effet quelque chose d'assez proche, c'est une approche plus "algèbre matricielle" et qui produit des choses différentes comme les "concepts". (L'article de Wikipédia est pas mal.)

La LSA est un peu plus complexe à mettre en oeuvre et produit plus de choses mais les résultats sont plus difficile à représenter graphiquement.

L'algorithme présenté ici est plus orienté métrique et probabiliste, mais dans le fond je pense que c'est très ressemblant. Je pense par exemple que les "concepts" correspondraient en fait à des sous-graphes sémantiques. Par exemple sur l'exemple présenté ici, je pense que la LSA produrait 3 concepts : écoles scientifque-technique, les écoles de commerces, et les "grandes écoles d'état" (politechnique, ena, science po')

Le vendredi 24 avril 2009 à 09:14, par jrc

Bonjour, J'ai lu avec intérêt cet article sur la distance sémantique entre mots. Je suis un bon techos .Net, mais malheureusement pas un mathématicien de formation (après mon DEUG A, j'ai basculé en école d'ingé.). Je recherche un algorithme qui pourrait m'indiquer la distance sémantique un peu comme votre démonstration, non pas entre mots, mais plutôt entre textes ou documents, style corpus. De même, est-il possible de comparer un ensemble de mots (tapés par exemple dans un moteur de recherche) avec des documents qui seraient en base de donnée. Mon but est de voir si il est possible de fabriquer un petit moteur sémantique interne à mon entreprise qui permetrait aux personnes de rechercher sémantiquement des concepts dans les travaux déjà effectués par les autres. Sauriez vous où m'orienter ?

Le vendredi 24 avril 2009 à 13:10, par Hubert WASSNER

Analyser des ensembles de mots avec la distance sémantique est une généralisation "simple" de la notion de distance classique. Au lieux de calculer la distance entre 2 points cela revient à calculer la distance entre des groupes de points. Avec cette façon de voir on peut facilement imaginer alors des "stratégies" assez simple :

  • la distance entre 2 groupes est la distance la plus faible entre 2 points de chaque groupes
  • on peut calculer un "barycentre" dans chaque groupes et calculer la distance entre ces "barycentres"
  • etc...
En pratique le nombre de comparaison devient alors assez grand, il faut alors avoir un index local très rapide (dans mes experiences j'utilise des moteurs de recherche comme index, ce serait alors trop lent...). C'est faisable mais ça demande quand même une certain expérience. Sinon il existe des moteurs de recherche sémantique commerciaux mais je ne sais pas trop ce qu'il coûtent ni ce qu'ils valent...

Ajouter un commentaire

Accéder à la charte des blogs?

Ce blog permet une syntaxe wiki simplifiée dans les commentaires. Si votre navigateur est compatible, vous pouvez vous aider de la barre d´outils. les adresses internet seront converties automatiquement. De plus, vous pouvez maintenant prévisualiser en direct votre commentaire (ci-dessus)