Applications des outils sémantiques au référencement et aux moteurs de recherche

Les outils de recherche internes que l’on trouve sur la plupart des sites sont souvent simplistes. Souvent, ils se résument à une simple recherche d’occurrence d’un ou plusieurs termes dans une base de données, à l’aide de requêtes SQL bien classiques. [1]

Mais les réponses données sont un peu trop souvent d’une pertinence assez douteuse… L’une des choses qui saute aux yeux, c’est le fait que la plupart de ces outils ne comprennent pas la « signification » de ce qui leur est demandé, ni le sens du contenu des pages qu’ils indexent.

Pourtant, il est possible d’améliorer grandement la pertinence des réponses et de réaliser des applications réellement bluffantes, en utilisant les outils de traitement automatisé des langues, de linguistique statistique, et de sémantique appliquée.

Ces outils ont été mis au point sur le plan théorique depuis des années. L’informatique a été introduite en linguistique dès les années 70. Des applications spectaculaires de traitement automatisé des langues ont été réalisées au cours des années 80, et des outils de recherche utilisant la sémantique sont opérationnels depuis des années maintenant.

Mais comme souvent, le fait que des technologies révolutionnaires soient inventées ne suffit pas pour que la révolution s’opère. Il faut aussi que le marché soit mûr pour accueillir ces avancées technologiques, et que l’ensemble des technologies connexes soit au même niveau d’avancement.

Si les indices de l’arrivée prochaine de ces technologies dans notre environnement quotidien se multiplient, c’est parce que ces deux conditions sont à présent réunies… Certaines méthodes (les TAL [2] notamment)sont très consommateurs de puissance de calcul. Mais aujourd’hui, cette puissance a fait des progrès tels que des systèmes de traduction automatique efficaces et fonctionnant en temps réel ne sont plus des utopies, mais commencent à sortir des laboratoires… Et par ailleurs, la recherche sur internet est devenu un marché important, et même un enjeu d’une guerre commerciale sans merci qui commence entre les grands outils de recherche. Maintenant, qui plus est, les liens sponsorisés contextuels ont démontré qu’il était possible, avec des outils sémantiques, de créer des applications dont l’intérêt commercial est évident.

Mais derrière le mot « sémantique », se cachent des techniques fort différentes, certaines frustres, d’autres très sophistiquées. Nous allons donc essayer dans un premier temps de bien définir ce que recouvre la « sémantique » dont nous parlons, et lister ses différentes manifestations en informatique…

PREMIERE PARTIE : INTRODUCTION A LA SEMANTIQUE ET A LA LINGUISTIQUE STATISTIQUE

On parle de plus en plus de sémantique dans le monde des moteurs de recherche… Mais le terme « sémantique » recouvre à la fois une science, et de nombreuses techniques fort différentes. Le résultat, c’est que les observateurs ne savent pas toujours de quoi on leur parle vraiment… Voici quelques définitions et rappels utiles pour commencer.

La sémantique
La sémantique est la science qui étudie le « sens », la « signification ». Le principal problème à la base est de bien séparer le « signifiant » et le « signifié », ce qui porte le sens, et le sens lui même. C’est assez facile à dire, mais dans la pratique, séparer les signes de ce qu’ils signifient est un exercice particulièrement difficile, parce qu’il est assez vain d’étudier le sens sans s’appuyer sur des signes…

La linguistique
Au sens large, la linguistique est l’étude du langage humain ; un linguiste est donc une personne qui étudie les langues. Dans un sens plus restreint, la linguistique s’oppose à la grammaire, en ce sens que celle-ci est normative tandis que celle-là est descriptive.

La sémantique linguistique
La sémantique linguistique est une « branche » de la sémantique qui étudie en particulier le sens des mots d’une langue. Car il existe d’autres branches de la sémantique qui s’intéressent au sens des symboles par exemple.

Les faux amis : sémiotique et sémiologie
La sémiotique et la sémiologie sont des sciences qui ne s’intéressent quant à elles pas au « sens » mais aux signes et symboles.
Sémiotique est le terme anglo-saxon (semiotics), mais le terme français est sémiologie. C’est le nom qu’à donné Ferdinand de Saussure à la « théorie générale des signes » en linguistique. [3]

Les ontologies
Les ontologies sont des bases de données particulières, dont la structure permet de stocker à la fois des éléments (des termes, des entités, ou des concepts) et les relations entre ces éléments. Les ontologies sont des outils extrêmement puissants en sémantique, car les informations qu’elles contiennent facilitent toute une série de tâches réputées difficiles en sémantique appliquée.

Les taxonomies
Les taxonomies sont des « classifications » de termes et de concepts. Cette classification permet de regrouper des unités à classer (les « taxons ») dans des catégories. Il s’agit d’une forme très simplifiée d’ontologies, mais d’usage courant en linguistique pour ajouter de l’information à un lexique particulier (terminologies scientifiques ou jargons professionnel).

Taxonomie est un terme d’origine anglo-saxonne, à ne pas confondre avec taxinomie, qui désigne la science de la classification. [4]

Le « semantic web »
Le « sémantic web » (web sémantique en français) est un vieux projet de Tim Berners Lee, et qui a fait l’objet de nombreux travaux et recommandations du W3C.

Le web sémantique est l’une des nombreuses applications du XML. Il se base sur une DTD particulière, qui permet de « tagger » (c’est à dire « baliser ») le code de documents destinés au web, afin d’indiquer de manière précise la nature des informations que ce document contient.

Au fur et à mesure de ses recommandations, le W3C intègre progressivement les objectifs du « web sémantique » dans le langage utilisé pour les pages web (c’est notamment très visible dans les dernières recommandations sur le XHTML).

Le « web sémantique » devient néanmoins avec le temps un « faux ami » en sémantique appliquée, car on entend de plus en plus de webmasters dire « qu’ils font attention à la sémantique de leurs pages », pour dire qu’ils respectent les recommandations du W3C, et non pour dire qu’ils essaient de faciliter l’identification du sens dans leur page. [5]

Le « stemming »

Le stemming est une méthode utilisée dans la plupart des moteurs de recherche pour « élargir » le champ de la requête, en ramenant chaque terme à une racine privée de ses suffixes (ou « stem ») [6]. Ainsi, « mobilité » sera réduit en « mobil » pour chercher aussi bien « mobile », « mobiliser », ou « mobilisation ». [7]

La lemmatisation

La lemmatisation consiste à reconnaître quelle est la racine d’un mot (le lemme, aussi appelée forme canonique) à partir d’une de ses formes dérivées (verbe conjugué, forme féminine, forme plurielle).

Par exemple : vitraux sera reconnu comme le pluriel de vitrail.

La lemmatisation permet de « regrouper » toutes les orthographes d’un mot donné, ce qui permet d’effectuer des recherches non seulement sur la forme d’un mot saisie dans une requête, mais aussi dans toutes ses variations de forme (les « morphèmes », autrement appelés « flexions » s’il s’agit des formes liées à la conjugaison, au genre, et au nombre) [8].

les syntagmes

Un syntagme est un ensemble de mots formant une seule unité catégorielle et fonctionnelle, mais dont chaque constituant, parce que dissociable (contrairement au mot composé), conserve sa signification et sa syntaxe propres.

lexique et lexèmes

Les lexèmes correspondent à ce que nous appelons « mots » dans le langage courant. L’ensemble des lexèmes forme le « lexique » d’une langue.

dictionnaires et thésaurus

Les dictionnaires, en linguistique informatique, sont des lexiques dans lesquels ont été ajoutés, pour chaque lexème, une « définition ».

Le thesaurus est une forme particulière de dictionnaire, dans lequel chaque mot du lexique est associé avec ses synonymes ou les mots ayant un sens propre. Des thesaurus plus évolués relient également les termes à des catégories, des classifications, des thématiques.

Un « dictionnaire analogique » est un thesaurus. Un dictionnaire de synonymes est une forme simplifiée de thesaurus.

Rappel, bruit, précision et silence

Pour caractériser la qualité d’un moteur de recherche, on utilise souvent quatre critères : la précision (opposée au bruit) et le rappel (opposé au silence).

Les notions de bruit et de silence sont assez intuitives. Elle sont illustrées par la figure ci-dessous. Si on prend une collection de documents donnée (la zone grisée), et une requête donnée, un expert est en mesure de déterminer la liste des documents « pertinents » (l’ellipse jaune). Mais un moteur de recherche n’est jamais parfait, il retournera les documents symbolisés par l’ellipse bleue…

Les documents pertinents ramenés apparaissent en verdâtre. Les documents trouvés, mais non pertinents, constituent le bruit(zone jaune vif). Les documents pertinents, mais non trouvés, constituent le silence(zone bleu vif)…

La précision mesure le rapport entre les tailles de l’intersection verdâtre et celle de l’ellipse bleue ( précision = nb de documents pertinents trouvés / nb de documents trouvés) [9]

Le rappel mesure le rapport entre les tailles de l’intersection verdâtre et celle de l’ellipse jaune ( rappel = nb de documents pertinents trouvés / nb de documents pertinents dans la collection. [10]


L’un des enjeux de la sémantique appliquée et de la linguistique informatique est d’améliorer la précision et le rappel dans les outils de recherche.

Le problème de la recherche par mots clés

La plupart des outils de recherche utilisent l’entrée de mots clés par l’utilisateur pour former une requête.

En terme de rappel et de précision, la recherche de « mots-clés » dans un index peut se faire selon deux modes :

- le mode « EXACT » : chaque mot de la requête doit être retrouvé dans le document
- le mode « FIND ALL » : au moins un terme figure dans le document.

La figure ci dessous permet de comprendre ce qui se passe selon que l’on utilise un mode ou un autre…


- > le mode FIND ALL renvoie l’ellipse violette + l’ellipse saumon. Le bruit généré est très important. La précision est donc faible.

- > le mode EXACT renvoie la zone 2+4. Le bruit généré est très atténué. Par contre, le rappel est dégradé : des documents pertinents ne sont plus trouvés (ceux de la zone 3 et 1)

En fait, on voit que dans le cas de cette collection, de cette requête et de cet outil de recherche, les meilleurs résultats en terme de rappel et de précision pour « assurance automobile » sont donnés par une requête sur le seul mot … assurance.

Ce cas de figure est très fréquent : le problème, c’est qu’une requête sur « assurance automobile » est traduite en générale par un outil de recherche par une requête de type :
- trouve les documents contenant le mot « assurance » ET le mot « automobile » (EXACT)

ou
- trouve les documents contenant le mot « assurance » OU le mot « automobile » (FINDALL)

C’est ce que l’on appelle la recherche « booléenne »…

Alors que l’utilisateur, lui, en tapant « assurance automobile », cherche des documents sur la thématique « assurance automobile ». Donc des documents parlant d' »assurance véhicule », « assurance auto », « assurance voiture », « contrat auto », « assurance conducteur », et même « tous risques auto », seront jugés pertinents. Mais ne seront pas renvoyés en mode EXACT !

les insuffisances de la recherche booléenne et les solutions linguistiques et sémantiques

L’exemple de la figure ci-dessus a démontré que la recherche booléenne trouvait rapidement ses limites. La plupart des internautes tapent en moyenne entre deux ou trois mots clés dans le champ de requête des moteurs. Le problème, c’est que nos langues sont imprécises, les mots ont plusieurs sens, leur graphie pose problème, et le champ lexical n’est pas le champ sémantique.

Voici un aperçu des différents obstacles linguistiques et leurs solutions :

La graphie
Les internautes commettent de fréquentes fautes d’orthographe, et d’encore plus fréquentes fautes de frappe. Mais les rédacteurs de documents font eux aussi des fautes ! Ce problème diminue de manière spectaculaire le rappel. Les solutions à ce problème sont la recherche phonétique ou l’utilisation de correcteurs orthographiques. Mais ces solutions augmentent certes le rappel, mais aussi énormément le bruit, et dégradent donc la précision. La plupart des moteurs commerciaux suggèrent donc des graphies alternatives, si cette graphie est plus probable.

Les stop words
Presque tous les moteurs utilisent des « anti-lexiques » ou « stop words », c’est à dire une liste de mots dépourvus de sens particuliers (comme les articles, ou les verbes auxiliaires). Les stopwords sont de très forts générateurs de bruit, donc il est recommandé de les éliminer. Le problème, c’est que certains de ces mots ont un double sens : est (forme conjuguée de l’auxiliaire être), c’est aussi le point cardinal. Or il est évident que transformer la requête « gare de l’est » en « gare » à grands coups de « stopwords list » diminue la pertinence des réponses !!
L’une des solutions, c’est d’effectuer une analyse grammaticale, ou syntaxique. En effet, les règles grammaticales du français permettent d’affirmer que dans l’expression « gare de l’Est », est n’est pas le verbe, mais un nom …

Les variantes morphologiques
Les utilisateurs des outils de recherches ne tapent pas des « lemmes », mais des mots-clés tirés de leur langage de tous les jours. C’est à dire des verbes conjugués, des mots au singulier ou au pluriel, au masculin ou au féminin.

Il arrive aussi que des mots admettent plusieurs orthographes : « sconse », « skons », « skuns », « skunks »…

Les mêmes variations morphologiques existent bien sûr dans les documents indexés… Ce phénomème a tendance à diminuer le rappel. La solution la plus communément adoptée est le stemming, voire la lemmatisation. Mais ces outils ont tendance à dégrader la précision, on les utilise donc parfois après une analyse syntaxique.

La polysémie

Les mots de la langue française ont plusieurs sens, certaines formes (comme dans « est » et « Est » [11] dans l’exemple ci-dessus) sont ambiguës.

L’enjeu ici consiste donc à comprendre le sens des mots, et c’est sans doute la tâche la plus difficile que l’on demande à la sémantique appliquée. Les outils de recherche les plus sophistiqués dans ce domaine utilisent souvent plusieurs méthodes de manière combinée pour résoudre le problème complexe de la « désambiguation sémantique ».

Comme souvent en sémantique appliquée, un « pré-traitement » est parfois appliqué (« analyse syntaxique » puis « lemmatisation » [12].

Le problème de la polysémie est ensuite traité comme le ferait un humain : en tenant compte du contexte…

Pour la requête, composée souvent de deux ou trois mots seulement, le « contexte » apporte peu d’informations. Néanmoins, la mesure des fréquences d’apparition des mots, et surtout, de leur co-occurrence, apporte des informations utiles quant au sens probable d’une requête.

Pour les documents, le contexte apporte de réelles informations, et il est possible de déterminer le sens d’un mot, soit pas des mesures de similarité, soit par des outils probabilistes. Les techniques complexes utilisées sont détaillées plus loin.

Les expressions composées

La langue française contient beaucoup d' »expressions », composées de plusieurs mots qui utilisés conjointement dans un ordre donné, prennent un sens totalement différent de chacun des mots pris isolément. Par exemple « bec-de-lièvre » n’a pas grand chose à voir avec la zoologie, alors que bec et lièvre pourraient laisser penser à un outil de recherche qu’une page parle d’animaux… La graphie (le trait d’union) peut aider dans ce cas précis, mais pas toujours comme dans « quelque part », « pomme de terre », « grande roue », « coup sec ». En sémantique appliquée, une expression comme « boire sec » peut devenir un casse-tête !

Les deux solutions communément apportées à ce problème sont :
- soit la création de thésaurus et d’ontologies travaillant non pas sur des mots, mais sur des syntagmes. [13]

Les synonymes

Si des mots peuvent avoir plusieurs sens, il est aussi fréquent que le même sens puisse être transcrit par des mots différents : les synonymes…

Une requête contenant un mot doté de nombreux synonymes aura donc tendance à avoir un taux de rappel désastreux. La solution la plus fréquente consiste donc à procéder à une expansion de requête, en cherchant non seulement ce mot, mais aussi ses synonymes.

L’utilisation d’un dictionnaire de synonymes ou d’un thésaurus, voire d’une ontologie, peut permettre de résoudre en partie le problème…

Mais en partie seulement : car les « vrais » synonymes sont rares. En remplaçant un mot par un synonyme, en général on déplace le sens, et dans la pratique, cela se traduit par une augmentation du bruit. La stratégie d’expansion de requête passe donc par l’utilisation, non pas réellement de synonymes vrais, mais de mots dont la fréquence de co-occurrence avec le mot de la requête est élevé. S’il s’agit d’un moteur thématique, les données d’une ontologie peuvent aussi servir à mieux « cerner » la thématique des pages à rechercher.

Philippe YONNET

Sémantique appliquée : Liens et références bibliographiques


[1] C’est ce que l’on appelle dans le jargon des outils de recherche les requêtes booléennes : les documents présentés sont choisis parce qu’ils remplissent une condition sur des mots clés évalués selon la logique booléenne

[2] TAL : systèmes de Traitement Automatique des Langues

[3] Parmi les « sémiologues » célèbres, on compte aussi les célèbres Roland Barthes et Umberto Eco

[4] La taxinomie étudie donc, entre autres, les taxonomies

[5] La confusion est encore plus nette en anglais

[6] On a démontré que la suppression des suffixes permettait de faire beaucoup moins d’erreurs de sens que la suppression des préfixes

[7] on voit que le stemming améliore le rappel, mais aussi le bruit !!

[8] La lemmatisation produit moins de bruit que le stemming. Par contre, elle a tendance à générer des erreurs si le « lemme » est ambigu et est mal identifier.

[9] le bruit se mesure comme le complément à 1 de la précision : bruit = 1 – précision

[10] le silence se mesure comme le complément à 1 du rappel : silence = 1 – rappel

[11] à noter ici que la graphie donne une indication sur la nature et donc le sens du mot : beaucoup de moteurs éliminent la différence majuscules minuscules, mais cela fait aussi perdre parfois de l’information utile

[12] pas de stemming, qui fait perdre trop d’informations sur le sens

[13] la difficulté, dans ce cas, consiste à identifier le syntagme à reconnaître, car la base contient forcément un syntagme et des sous syntagmes. Les fréquences d’apparition dans la langue peuvent aider : par exemple « pomme de terre » est beaucoup plus fréquent que « pomme » et « terre » dans le même texte. La syntaxe aide également, et l’observation des mots situés à proximité. On peut aussi utiliser des techniques plus systématiques, comme la méthode des n-grammes.