Par - - 3 Commentaires

Alors que l’on se masturbe sur le web sémantique 28.0 et son PageRank associé, il est bon de prendre un peu de recul et de s’interroger sur les moyens mis en œuvre par notre valeureux Google pour juger de la pertinence d’une page par rapport à une autre.

Tout le machin que je vais vous exposer reste très théorique et n’a pas été vérifié – ni prouvé de manière empirique. Je suis loin d’être un cador en la matière, je m’instruis encore et toujours sur le sujet. Il s’agit plus d’une réflexion par rapport aux critères vraisemblablement utilisés par Google, ou par rapport aux schémas que l’on connait bien, par exemple le modèle TF-IDF (term frequency / inverse document frequency).

La problématique est la suivante : barbouiller sa page d’un large spectre lexical suffit-il à acquérir de la pertinence pour une thématique donnée ? Probablement pas (le « probablement » est à prendre avec toutes les pincettes que cela impose). On va donc essayer de réfléchir un peu aux quelques modèles d’analyse mêlant syntaxe et sémantique, ou presque (le truc est tellement riche que je pense y consacrer une série de billets, sinon celui-ci va taper dans les 100.000 mots).

Plongée au coeur du web sémantique / syntaxique

Analyse sémantique ou analyse syntaxique ?

Avant tout, faisons un petit distinguo entre syntaxe et sémantique ; les deux termes disposent en effet chacun d’une définition bien précise. La sémantique s’occupe du fond, et la syntaxe de la forme. En d’autres termes, la sémantique s’intéresse au sens des mots, et la syntaxe à leur combinaison au sein des phrases.

Alors quid de l’analyse sémantique et syntaxique ? Là encore, c’est simple à piger : l’analyse sémantique s’occupe exclusivement du sens formé par un mot ou une combinaison de mots, et l’analyse syntaxique se focalise sur les positions et les relations d’un mot par rapport à un autre mot, ou à un groupe de phrases. Le fond et la forme qu’on vous dit !

Vous voyez, le web n’est pas seulement sémantique, il est aussi marié à la syntaxe. Il faut dire que les deux compères partagent un important point commun : la caractérisation d’un énoncé dans sa globalité. Fondamentalement, et sans strictement parler web, chaque unité lexicale possède un potentiel sémantique (modulé selon les autres éléments lexicaux et syntaxiques aux alentours) qui participe au sens global de la phrase. Rien de compliqué là-dedans ; pour faire une métaphore, plusieurs perles mises bout à bout forment un collier… Mais une perle seule ne fait pas un collier (quoique, ça reste très joli).

Google prend-il en compte dans ses calculs les relations syntaxiques entre les mots et expressions ? Vous avez deviné, c’est toute la question.

Schéma LSA

L’analyse sémantique latente et Kintsch

Si vous vous êtes intéressé un peu à la chose, vous devez certainement connaître le LSA, « l’analyse sémantique latente ». C’est ce qu’on appelle de la sémantique vectorielle : chaque mot se voit associer un vecteur, le tout dans un espace multidimensionnel. Si ça ne vous parle pas, ce petit schéma devrait être assez explicite ->schéma de l'analyse sémantique latente

Du coup, calculer les proximités de sens entre les différents mots devient très facile (et surtout… très automatique) : il suffit de calculer le cosinus de l’angle des différents vecteurs. Le LSA souffre néanmoins d’un problème majeur, à savoir que les différentes significations d’un mot ne sont absolument pas prises en compte. Difficile de faire du web sémantique intelligent dans ces conditions…

Faisons un peu plus compliqué. En 2001, Kintsch (un monsieur de l’Institut des Sciences Cognitives à l’université du Colorado) a décidé d’enrichir la formule avec des vecteurs qui ne soient plus exclusifs aux seuls mots, mais à des phrases du type Nom + Verbe (on voit donc ici apparaître la notion de syntaxe). En d’autres termes, la signification précise d’un verbe dépend du nom auquel il est rattaché. Pour peaufiner le tout, Kintsch utilise des « marqueurs » (choisis par un humain, et non par une machine) qui, étiquettés à un mot ou à une expression, permettent d’en interpréter le sens, et ce par rapport à d’autres marqueurs.

Ce qu’il y a de bien, c’est que l’algorithme de Kintsch permet d’aborder quatre grands problèmes sémantiques actuels : les métaphores, les interférences de causalité, les jugements similaires et les homonymies. Ce qu’il y a de moins bien, c’est qu’une partie du travail est fait à la main… et que cela requiert des ressources considérables.

L’analyse sémantique latente et Kintsch

Le lexique génératif de Pustejovsky

Pustejovsky est un prof américain d’informatique, et son dada, c’est le traitement automatique des langues. C’est lui qui est à l’origine du Lexique Génératif, dont l’objectif est de répondre, entre autres, aux problèmes d’interprétation des mots dans leur contexte (ambigüité de sens, polysémie).

Pustejovsky est parti du principe que les lexiques, habituellement énumératifs, ne peuvent pas rendre compte du sens des mots dans un contexte donné. Pour pallier à ce problème, notre ami propose de spécifier, pour chaque unité lexicale, différentes entrées (qui elles-mêmes peuvent avoir plusieurs sens…) :

  • La structure argumentale, qui spécifie le nombre et le type d’arguments.
  • La structure évènementielle, qui s’attache à décrire les verbes en termes de processus, d’états ou de transitions.
  • La structure de qualia, qui spécifie les attributs du mot, son origine, sa fonction, ce qui le distingue d’un domaine plus large…
  • La structure d’héritage lexical. Cette dernière est intéressante parce qu’elle prend en compte la position du mot dans un réseau lexical ! On cause donc toujours syntaxe.

Malheureusement, le modèle proposé par Pustejovsky se heurte à deux grosses difficultés : non seulement il n’existe pas de méthodologie pour la construction des différentes entrées lexicales ci-dessus, mais réaliser un lexique génératif à grande échelle est aussi long que coûteux.

Lexique génératif

Enlevez la ponctuation, et le sens change !

Sacrée ponctuation. Bien souvent omise, bafouée, humiliée (De Gaulle, sortez d’ici), il s’agit pourtant d’un élément primordial impactant aussi bien la syntaxe que la sémantique. Et pour cause : une virgule, un point, et le sens change de tout au tout. Comme le dit si bien Wiki, la ponctuation a trois fonctions :

  • Les indications prosodiques (rapport aux accents et intonations de la langue orale).
  • Les rapports syntaxiques (comment sont liés et subordonnés entre eux les éléments du discours ?).
  • Les informations sémantiques (quel sens logique lie ces éléments ?).

Allez, prenons un exemple simple : « Le spammeur dit Matt Cutts est un mécréant ». Deux sens possibles à cette phrase (on fait donc jouer la sémantique) :

  • « Le spammeur, dit Matt Cutts, est un mécréant ».
  • « Le spammeur dit : « Matt Cutts est un mécréant ».

Nous touchons là aux limites de la machine. Aucun ordinateur (et à fortiori Google) n’est encore assez intelligent pour saisir les subtilités sémantiques de ce genre de phrase, et il faudra sans doute attendre un embryon d’intelligence artificielle pour que cela arrive.

Mais faisons confiance à Google sur ce point : nul doute qu’ils sauront nous surprendre dans les années à venir… Et peut-être pas agréablement.