Analyse sémantique - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

L'analyse sémantique d'un message est la phase de son analyse qui en établit la signification en utilisant le sens des éléments (mots) du texte, par opposition aux analyses lexicales ou grammaticales qui décomposent le message à l'aide d'un lexique ou d'une grammaire.

Linguistique

Dans le cadre de l'analyse sémantique, le fait que deux mots s'écrivent de la même manière ne signifie pas forcément qu'ils ont le même sens !

Par exemple, du point de vue grammatical le mot "vienne" peut prendre un sens différent dans des phrases comme "qu'il vienne ici" (dans ce cas c'est le verbe "venir") et dans d'autres comme "aller en vacances à Vienne" (ici c'est un nom propre). Du point de vue sémantique, le même mot "vienne", peut correspondre à la ville de "Vienne", qui existe en Autriche et en France, ainsi qu'au département de la Vienne (il faudrait dire "dans la Vienne"), etc. Il y a une multitude de mots ambigus dans toutes les langues, ce qui peut créer des incompréhensions. On estime qu'un mot sur deux est ambigu dans les langues indo-européennes.

Il est donc fondamental d'analyser le sens des mots pour comprendre ce qu'on dit (ou bien ce que les autres disent). C'est une opération humaine que nous effectuons tous les jours, sans forcément en être conscient, qui pose de nombreux problèmes pour l'analyse automatique sur ordinateurs. En particulier dans les moteurs de recherche (par exemple, Google), les logiciels de traduction (par exemple, Systran) et les correcteurs orthographiques (par exemple, Druide Antidote), qui affichent des résultats contenant de nombreuses erreurs. Toutefois certaines sociétés progressent dans ce secteur (comme par exemple, Tropes d'Acetic, ou encore les "Kaliwatch" ou Kim de la société Arisem), ce qui nous permet d'espérer que l'ordinateur nous comprendra, vraiment, un jour, si c'est possible...

Informatique

En compilation, l'analyse sémantique est la phase intervenant après l'analyse syntaxique et avant la génération de code. Elle effectue les vérifications nécessaires à la sémantique du langage de programmation considéré, ajoute des informations à l'arbre syntaxique abstrait et construit la table des symboles. Les vérifications réalisées par cette analyse sont :

  • La résolution des noms. Le compilateur construit la table des symboles en associant les étiquettes (ou labels) trouvées avec les identificateurs des variables,fonctions, types, et signale une erreur dans les cas où ce n'est pas possible. Par exemple pour deux variables portant le même nom et se trouvant dans le même bloc, il y a ambiguïté, et donc une erreur de programmation.
  • La vérification des types. Le compilateur vérifie la compatibilité des types dans les instructions et expressions. Par exemple, si une fonction est initialisée avec 2 paramètres entiers, une erreur se produit si on essaye de passer un nombre différent de paramètres ou si les paramètres passés ne sont pas de type entiers. Lors d'une affectation, l'analyseur vérifie la compatibilité entre les 2 types, ainsi que la possible conversion implicite nécessaire.
  • L'affectation définitive, nécessitant que les variables locales soient initialisées avant d'être utilisées. Certains langages considèrent que cette non-affectation initiale est une erreur de compilation (Java), alors que les autres ne spécifient rien ou génèrent un avertissement (comme gcc pour le C).
Page générée en 0.086 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise