Par: Benoît TROUVILLIEZ

Introduction

Voilà déjà le 24ème billet du blog pour 2 ans d’existence. Merci à tous nos lecteurs.

On entend assez souvent parler dans les domaines du TAL de méthodes statistiques pour analyser la sémantique des mots d’un texte. J’y ai déjà d’ailleurs consacré un billet en janvier avec un zoom sur la méthode LSA. Voici donc la suite que je vous avez alors promis sur la méthode Hyperspace Analogue To Language (HAL).

Hyperspace Analogue To Language (HAL)

Connaissances utiles pour implémenter la méthode :

Référence de la méthode HAL :
LUND K., BURGESS C. & ATCHLEY R. (1995). Semantic and associative priming in high-dimensional semantic space. In Proceedings of the 17th annual conference of the Cognitive Science Society, volume 17, p. 660–665

Comme pour LSA, il est question ici aussi de construire une matrice pour représenter la sémantique des mots au sein des textes du corpus. Prenons donc d’abord un exemple (le même que la dernière fois) :
Doc1 : “Sarkozy débute la campagne présidentielle UMP”
Doc2 : “Sarkozy affronte Hollande”
Doc3 : “Hollande a été désigné pour la présidentielle PS”
Doc4 : “Il y a des tracteurs en campagne”

Il sont constitués de l’ensemble des mots suivants {Sarkozy, débute, campagne, présidentielle, UMP, affronte, Hollande, désigné, PS, tracteurs} après retrait de l’ensemble des mots creux {la, a, été, pour, il, y, des, en}.

Notre exemple ici est bien sûr minimal et ne correspond pas aux conditions requises en temps normal par la méthode qui travaille d’ordinaire sur des textes plus longs pourvus de plusieurs phrases mais le but ici est de donner une illustration facilement abordable et de tirer quelques conclusions sur les avantages et inconvénients de la méthode.

1/Construction de la matrice des co-occurrences
La première étape consiste à construire une matrice dite de co-occurrence. Pour cela, nous devons définir ce que l’on appelle une taille de fenêtre. Concrètement, si deux mots d’un texte sont en voisinage de taille inférieure à celle de la fenêtre, ils sont comptés comme co-occurrents. Une pondération peut également être appliquée sur cette co-occurrence partant du principe que plus les mots sont proches, plus la co-occurrence est importante. Les auteurs du papier nous proposent d’utiliser une pondération simple P = taille de la fenêtre + 1 – distance entre les deux mots.

Prenons l’exemple du document 1 pour une fenêtre de taille 2. Cela implique que des mots directement voisins auront un poids de 2 et ceux voisins des voisins un poids de 1. Cela donne alors l’ensemble des triplets de co-occurrents suivants : {(Sarkozy, débute, 2), (Sarkozy, campagne, 1), (débute, campagne, 2), (débute, présidentielle, 1), (campagne, présidentielle, 2), (campagne, UMP, 1), (présidentielle, UMP, 2)}

Représenté sous la forme d’une matrice de co-occurrence, cela donne :

Sarkozy débute campagne présidentielle UMP
Sarkozy
débute 2
campagne 1 2
présidentielle 1 2
UMP 1 2

Nous pouvons remarquer que dans la matrice chaque ligne représente le contexte gauche du mot de la ligne (à savoir le degré avec lequel chaque mot du lexique précède le mot de la ligne) tandis que chaque colonne représente le contexte droit du mot de la colonne (à savoir le degré avec lequel chaque mot du lexique suit le mot de la colonne). Il est à noter que la matrice transposée (celle donnant donc les contextes gauches des mots en colonne et les contextes droits en ligne) est tout aussi exploitable par la méthode.

Étendons maintenant la matrice aux trois autres documents :

Sarkozy débute campagne présidentielle UMP affronte Hollande désigné PS tracteurs
Sarkozy
débute 2
campagne 1 2 2
présidentielle 1 2 1 2
UMP 1 2
affronte 2
Hollande 1 2
désigné 2
PS 2 1
tracteurs

2/Calcul des vecteurs de co-occurrence

Il est possible à partir de cette matrice de déduire ce que l’on appelle les vecteurs de co-occurrences. un vecteur de co-occurrence pour le ième mot correspond à l’union de la ième ligne et de la ième colonne de la matrice (en d’autres termes à l’union des contextes droits et gauches du mot). Utiliser la matrice transposée revient donc à modifier l’ordre des éléments dans le vecteur, ce qui n’a pas d’incidence sur les calculs.

3/Calcul de distance entre les vecteurs de co-occurrence
Nous pouvons alors définir une distance entre les vecteurs formés par les contextes gauches et droits des différents termes du lexique. Une mesure assez couramment employée est la similarité du cosinus.

Prenons quelques résultats intéressants :
sim(Sarkozy, Hollande) = 0
sim(UMP, PS) = 4 / (rac(5) * rac(5)) = 0,8
sim(Campagne, Présidentielle) = 4 / (rac(14) * rac(18)) = 0,25
sim(débute, affronte) = 4 / (rac(9) * rac(8)) = 0,47
sim(Hollande, PS) = 0
sim(Sarkozy, UMP) = 0

Nous constatons alors que la méthode :

  • ne trouve pas de liens entre les mots "Sarkozy" et "Hollande"
  • trouve un lien fort (80%) entre les mots "UMP" et "PS"
  • trouve un lien modéré (< 50%) entre mots "campagne" et "présidentielle" et les mots "débute" et "affronte"

Tout d’abord le lien fort trouvé entre les mots "UMP" et "PS" n’est pas caractérisé. S’agit-il de synonymes? Naturellement, nous savons que non. Le lien trouvé par la méthode est dans le rôle joué par les deux entités (rôle de partis politiques). Mais comment concrètement le déterminer de manière automatique? La réponse n’est pas triviale. Nous sommes alors dans l’obligation de nous contenter de savoir qu’un lien existe sans toutefois pouvoir le caractériser d’avantage.

A l’inverse, aucun lien n’est trouvé entre les mots "Hollande" et "Sarkozy". S’agissant de deux personnalités politiques, nous aurions pu nous attendre à ce que ce lien soit trouvé mais il n’en ai rien. Bien sûr, les conditions relativement "difficiles" dans lesquelles nous avons réalisé le processus ne nous a certainement pas aidé mais cela permet tout de même de prendre conscience de la deuxième faiblesse de la méthode qui est de ne pas toujours trouver les liens les plus évident pour un raisonnement humain.

HAL et LSA

Nous avons donc vu plus en détails au travers de deux billets les deux méthodes statistiques que sont HAL et LSA. Comme nous l’avons vu, les deux méthodes ne travaillent pas avec des règles linguistiques mais plutôt avec les probabilités d’apparition des mots dans les documents.

Mais alors quelle est la différence entre les deux méthodes?
La principale différence réside dans leur emploi.
La méthode LSA est adaptée pour faire de la recherche d’informations dans des textes. La sémantique latente trouvée permet d’augmenter la pertinence des résultats remontés en écartant automatiquement les “indésirables”.
La méthode HAL est adaptée quant à elle à l’extraction d’informations où elle va permettre par exemple de déterminer les mots en rapport avec certain mots d’un corpus de document.

Mots clefs : , , , , , ,