Qu'est-ce que l'analyse lexicale?
L'analyse lexicale consiste à convertir une chaîne de caractères - ou plus simplement du texte - en groupes significatifs appelés jetons. Cette méthodologie a des utilisations dans une grande variété d'applications, allant de l'interprétation de langages informatiques à l'analyse de livres. L'analyse lexicale n'est pas synonyme d'analyse; il s'agit plutôt de la première étape du processus d'analyse complète et crée la matière première pour une utilisation ultérieure.
Les blocs de construction des jetons, également appelés lexèmes, peuvent être générés de nombreuses manières, en fonction de la grammaire requise pour l'analyse lexicale. Un exemple courant en est le fractionnement de phrases par mots. Ceci est souvent fait en séparant des phrases autour d'espaces. Chaque chaîne continue de caractères générés sans espaces est un lexème. Les chaînes de texte peuvent être divisées en un ou plusieurs types de caractères, créant ainsi plusieurs versions de lexèmes de complexité variable. Les jetons sont générés après l'évaluation de chaque lexème et associés à la valeur correspondante. par définition, les jetons font référence à cet appariement, pas seulement au lexème.
L'analyse lexicale, quelque peu contre-intuitive, supprime une chaîne de texte de son contexte. Son objectif est uniquement de générer des blocs de construction pour étude ultérieure, et non de déterminer si ces éléments sont valides ou non. Dans le cas de l'interprétation en langage informatique, la validation se fait par analyse syntaxique, et la validation du texte peut être faite en termes de contexte ou de contenu. Si une chaîne d'entrée est complètement divisée en lexèmes appropriés et que chacun de ces lexèmes a une valeur appropriée, l'analyse est considérée comme réussie.
Sans contexte ni capacité de validation, l'analyse lexicale ne peut pas être utilisée de manière fiable pour rechercher des erreurs en entrée. Une grammaire lexicale peut avoir des valeurs d'erreur attribuées à des lexèmes spécifiques, et une telle analyse peut également détecter des jetons illégaux ou mal formés. Bien que la recherche d'un jeton illégal ou mal formé signale une entrée invalide, cela n'a aucune incidence sur la validité des autres jetons. Il ne s'agit donc pas d'un type de validation.
Bien que l'analyse lexicale fasse partie intégrante de nombreux algorithmes, elle doit souvent être utilisée conjointement avec d'autres méthodologies pour créer des résultats significatifs. Par exemple, le fractionnement d'une chaîne de texte en mots pour déterminer les fréquences utilise la création de lexèmes, mais la création de lexèmes à elle seule ne peut pas surveiller le nombre de fois qu'un lexème particulier apparaît en entrée. L'analyse lexicale peut être utile en soi si les lexèmes eux-mêmes sont importants, mais de grandes quantités d'entrées peuvent rendre difficile l'analyse des lexèmes bruts en raison du volume de données.