Des lettres et des chiffres

L’analyse formelle en bout de course

« Au commencement était le Verbe… et le Verbe s’est fait chair. » Puis les hommes se sont mis à assembler des mots entre eux pour s’exprimer. Le langage, cette fonction qui nous semble tellement élémentaire, a été l’un des premiers grands chantiers de l’Intelligence Artificielle. En effet, dès la fin des années cinquante, l’expérience de Georgetown, menée notamment par IBM, a suscité un espoir démesuré : « within three or five years, machine translation would be a solved problem ». Cet espoir fut à la hauteur de la désillusion provoquée par les faibles résultats constatés.

Cinquante ans plus tard, où en sommes-nous ? La description formelle des langues pour leur utilisation dans des systèmes automatisés a montré ses limites. L’utilisation exclusive de grammaires formelles est incapable de saisir la complexité d’une langue. La principale difficulté réside en un seul mot : ambiguïté. Les rustines techniques ne manquent pas pour tenter de contourner le problème et les années soixante-dix et quatre-vingt ont été particulièrement riches dans la mise en place de systèmes de règles sémantiques, supposées permettre une plus grande précision dans l’analyse de la langue. Ces systèmes n’ont pourtant apporté que des améliorations marginales dans le traitement automatisé de la langue.

L’arme fatale

En fait, la « balle d’argent » semble avoir été tirée par un curieux fusil que le monde de l’informatique et de l’IA semblait avoir négligé : la probabilité. Avec l’introduction de modèles de langue probabilistes, Google, pour sa première participation en 2008, a classé son système de traduction automatique à la première place de toutes les tâches de la campagne Open Machine Translation du NIST (arabe vers anglais, chinois vers anglais, ourdou vers anglais, anglais vers chinois).

En à peine vingt ans, les techniques probabilistes ont propulsé les capacités des systèmes de traduction automatiques à des hauteurs que quarante ans de systèmes formels n’avaient fait qu’entrevoir.

Le LDA pour les nuls

Ces résultats ont encouragé les chercheurs à appliquer le paradigme probabiliste à d’autres tâches au sein du traitement automatique du langage. Et l’un des concepts les plus prometteurs dans ce domaine est le LDA, ou Latent Dirichlet Allocation. Nous nous plaçons cette fois-ci dans le cadre d’un grand nombre de documents, ce qu’on appelle un corpus. Chaque document est vu comme un sac de mots. Le paragraphe précédent peut par exemple être vu comme un document dans lequel le mot « automatiques » apparaît 1 fois, et le mot « systèmes », 2 fois. On voit qu’il est assez trivial de considérer un document comme une distribution de probabilité sur l’ensemble des mots. Si j’ai le document « a b a c », je peux considérer ce document comme une distribution des mots « a », « b », « c »  et « d » avec les probabilités 2/4, 1/4,  1/4 et 0.

L’idée de LDA est qu’au lieu de considérer un document comme une distribution sur des mots, on le considère comme une distribution de probabilité sur des topics (sujets), eux-mêmes vus comme des distributions sur les mots. Je ne rentrerai pas dans les détails du modèle et je me contenterai de l’illustrer sur un cas concret.

Un exemple de LDA

J’ai effectué un LDA sur la presse quotidienne nationale sur la période du 18 au 23 janvier 2010, à partir de l’excellent site Pikanews. Le résultat de l’algorithme du LDA appliqué à ce corpus génère un ensemble de topics, caractérisés eux-mêmes par des mots. Voici un extrait de ces topics générés :

Topic 92

Topic 103

Topic 68

Topic 48

Topic 90

Renault

Flins

Clio

Carlos Ghosn

Usine

Turquie

Bursa

Production

Automobile

Numérique

Apple

Google

Mobile

Microsoft

Opérateurs

Taxe

Iphone

ARCEP

Haïti

Port au Prince

Séisme

Haïtiens

ONU

Humanitaire

Blessés

Secours

Morts

Barack Obama

Démocrates

Massachusetts

Sénat

Scott Brown

Républicains

Maison blanche

Ted Kennedy

Congrès

Scrutin

Réforme

Collectivités

Conseiller territorial

Élus

Sénat

Départements

Collectivités locales

On constate par exemple que le mot « Sénat » se retrouve dans deux topics différents.

Dans l’extrait suivant, le mot « sénat » apparaît dans le contexte de l’élection du Massachusetts :

La détermination de l’administration Obama à brider Wall Street risque toutefois de butter contre une nouvelle réalité politique : comme pour le projet d’une taxe spéciale sur les banques, ces mesures doivent être approuvées par le Congrès. Et le revers électoral subi par les démocrates, mardi, dans l’Etat du Massachusetts leur a fait perdre la majorité qualifiée au Sénat. Une majorité pourtant indispensable afin de faire adopter leurs projets sans risquer une obstruction républicaine.

Alors que dans l’extrait suivant le mot « Sénat » est raccroché au projet de réforme des collectivités territoriales :

Après avoir sillonné les fédérations UMP pendant des semaines pour promouvoir la réforme territoriale, Dominique Perben ne cache pas sa déception : le texte que les sénateurs ont commencé à examiner hier, en séance plénière, est, selon lui, bien en deçà des ambitions du projet gouvernemental. Invité du « Talk Orange-Le Figaro », il a regretté en particulier que « le texte du Sénat soit très en retrait sur les métropoles ».

L’analyse effectuée par le LDA, sans aucune intervention humaine, sans aucune modélisation a priori ni connaissance linguistique autre que l’isolation de tokens (mots) à l’intérieur d’un texte, est remarquable. Le LDA identifie automatiquement l’usage du mot « Sénat » dans différents contextes. On voit l’intérêt que l’on pourrait retirer d’une telle analyse dans le cadre, par exemple, de la désambigüisation de termes ou de fonctions.

Le LDA sert d’ailleurs déjà de socle à différents traitements classiques dans le traitement automatique du langage : clusterisation, catégorisation automatique, annotation morpho-syntaxique, etc. Les études publiées depuis environ cinq ans à ce sujet montrent que le gain apporté par la démarche est souvent très significatif. Assistera-t-on à la même explosion des performances de ces outils que celle dont a bénéficié la traduction automatique ?

En tout cas, chez Antidot, nous y croyons. Nous travaillons sur le sujet depuis un moment déjà,  et la prochaine version d’AFS – la v7 qui sortira en avril 2010 – inclut les premiers résultats de nos recherches. Si vous voulez en savoir plus, venez nous rendre visite sur le salon Documation. Croyez-moi, c’est bluffant !

Le sens de la sémantique

Une très grande confusion règne autour du mot « sémantique » qui est utilisé à toutes les sauces dès qu’il s’agit de moteurs de recherche, et force est de constater que les discours marketing des acteurs ne vont pas dans le sens de la clarté.

Tout d’abord, il y a l’indexation sémantique : celle qui consiste, lors de l’analyse d’un document, à rattacher chaque mot à un concept sous-jacent. Ainsi, par exemple, pour le mot jaguar, il faut déterminer s’il s’agit du félin, de la voiture ou de l’avion. Et ça, c’est compliqué. Tout d’abord, il faut une « liste » de concepts cibles (le sens du truc qui est derrière le mot) pour pouvoir transformer le mot en concept. Il faut donc avoir modélisé tous les concepts… Autant dire que c’est peine perdue : cela sous entendrait que tout le monde pense de la même façon et se représente le monde à l’identique. Ensuite, il ne faut pas se tromper lors de l’analyse : faux amis, ambiguïté… Et d’ailleurs, tout ça est tellement compliqué que ça n’a jamais marché. C’est sans doute une des grandes errances et un Graal illusoire des moteurs de recherche des années 80-90. Les grands acteurs de ce domaine se sont dès lors fixé des objectifs plus modestes, mais dont les résultats sont plus probants : extraction d’entités nommées, data mining, etc.

Puis il y a l’extension sémantique. Là, plus de concepts, mais seulement des vocabulaires : dictionnaires de synonymes, thésaurus, taxinomies. Le principe est simple : élargir la recherche de l’utilisateur exploitant les synonymes (même sens), les hyperonymes (sens plus large : véhicule est hyperonyme de voiture et camion) et les hyponymes (sens plus réduit). Et donc, si l’utilisateur cherche une chemise verte, il est de bon ton de lui remonter aussi des chemises kaki ou émeraude. C’est ça l’extension sémantique : étendre la recherche de l’utilisateur en appliquant des dictionnaires. Et si possible uniquement du vocabulaire spécifique à domaine et à un objectif fonctionnel afin de ne pas introduire de bruit. Cette méthode, associée à des traitements linguistiques de type lemmatisation, a largement pris le pas sur les autres car elle offre à la fois de bonnes performances tout en garantissant un coût de mise en œuvre et de maintenance réduit. C’est d’ailleurs le choix d’Antidot pour AFS.

Je passe à regret aujourd’hui sur l’indexation sémantique latente (LSI : Latent Semantic Indexing) qui est une approche mathématique permettant de générer automatiquement lors de l’indexation l’ensemble des concepts d’un corpus et de les relier à des mots et des documents caractéristiques. Ce sujet intéressant fera très certainement l’objet d’un prochain billet.

J’en arrive enfin au web sémantique. Et c’est certainement là que règne la plus grande confusion. Car contrairement à ce que le mot « sémantique » laisse suggérer, il ne s’agit pas pour les moteurs de recherche de découvrir les concepts et le sens caché des textes. Bien au contraire. Il s’agit d’expliciter manuellement le sens des informations afin que les ordinateurs puissent les exploiter de façon automatique, sans ambigüité et à grande échelle. Prenons un exemple : sur le site web d’un restaurant on trouve l’information « ouvert tous les jours sauf le lundi hors période scolaire ». On note que cette phrase est déjà ambiguë pour un humain (« hors période scolaire » s’applique-t-il à « tous les jours » ou à « sauf le lundi » ?) mais elle est franchement inexploitable en tant que telle par un moteur de recherche qui vient lire cette page. L’idée sous jacente au web sémantique est donc qu’il faut ajouter dans la page web des informations formelles (grâce à des balises invisibles à l’utilisateur) afin que les logiciels de recherche puissent collecter cette information et l’exploiter.

Le web sémantique est très loin de l’indexation sémantique et des promesses de l’intelligence artificielle des années 80. Pas d’analyse du sens caché, pas de réponse miracle à une question exprimée en langage naturel. Mais c’est sans doute en cela qu’il va tenir ses promesses. Et comme l’avoue Tim Berners Lee, le mot web sémantique est mal choisi (par lui même) car sujet à trop d’incompréhension, et il suggère d’employer maintenant l’expression « web of data » : le web des données.

C’est vrai que ça fait moins rêver… mais comme les mots ont un sens, autant le respecter !