• Aucun résultat trouvé

Chapitre III Méthode et outils

2.3 Extrapolation de données

Étant donnés les symboles reconnus fournis par le système de reconnaissance, nous sou- haitons disposer également d’informations plus générales permettant d’affiner l’analyse géo- métrique. Cette déduction de paramètres complémentaires est nécessaire si le système de reconnaissance des caractères ne les fournit pas.

2.3.1 Taille relative

Afin de différencier les relations entre les éléments composant une formule, il est néces- saire d’avoir une information sur la taille des éléments. Cette donnée n’est pas nécessaire- ment utilisée, mais elle permet de lever certaines ambiguïtés lors de l’analyse géométrique. Le calcul de la taille d’un caractère ne dépend évidemment pas uniquement de la taille de la boîte englobante, mais aussi du caractère reconnu. Comparons par exemple les caractères “e” et “g”. Si nous ne considérons que la taille de la boîte englobante, nous conclurons que “e” est plus petit que “g”. Il y a donc nécessité d’introduire une pondération en fonction de l’élément considéré. Ceci aboutit à l’identification de classes de symboles, ordonnés selon leur taille.

L’algorithme mis en jeu pour effectuer cette tâche est du type recherche de sous-groupes dans un groupe d’éléments. On recherche en effet quels sont les éléments qui ont des tailles du même ordre, parmi l’ensemble des symboles reconnus. L’application de cet algorithme à la formule ci-dessus donne le résultat suivant :

– éléments de petite taille : trois symboles n, 0,∞, – éléments de taille moyenne : z, n, !,

– éléments de grande taille : .

Cette notion de petite, moyenne, et grande taille est quantifiée par une valeur et est inté- grée en tant qu’attribut du symbole reconnu.

2.3.2 Ligne de base

L’information concernant la ligne de base par rapport à laquelle l’objet graphique est positionné est importante. Elle permet de connaître l’alignement des symboles. La figure 4 illustre cette notion de ligne de référence pour les caractères b et q.

La déduction de cette donnée nous sera donc soit fournie par le système de reconnais- sance de caractères, soit calculée de manière approximative grâce à des tables extraites

3. Analyse lexicale

b q

ligne de ligne de

base base

FIG. 4 – Ligne de base

d’informations sur la fonte utilisée, ou de données déduites pour l’écriture manuscrite d’une personne. Nous avons développé cette dernière solution de manière suffisamment générique pour s’adapter aux différentes études de cas. Mais la meilleure solution reste l’utilisation d’un système de reconnaissance des symboles qui fournisse cette information.

L’ensemble de ces informations métriques et géométriques va permettre d’effectuer une reconnaissance structurelle des notations mathématiques. La première étape de cette analyse structurelle est l’analyse lexicale, que nous allons maintenant présenter.

3

Analyse lexicale

De nombreuses raisons justifient de découper l’analyse en une analyse lexicale et une analyse syntaxique.

1. Une conception plus simple est peut-être le critère le plus important. La séparation de l’analyse lexicale et de l’analyse syntaxique permet souvent de simplifier l’une ou l’autre des phases. Dans le cas plus classique de la conception d’un nouveau langage, la séparation des conventions lexicales et syntaxiques peut amener à une conception globale plus soignée.

2. L’efficacité de l’analyse syntaxique est améliorée. Un analyseur lexical séparé permet de construire un processeur spécialisé et potentiellement plus efficace pour cette tâche. 3. La portabilité est accrue. Les particularités de l’alphabet d’entrée et d’autres anomalies

spécifiques au matériel peuvent être confinées à l’analyseur lexical.

Tous ces points nous ont conduit à introduire une étape d’analyse lexicale dans le pro- cessus d’analyse de la structure de la formule.

Un analyseur lexical lit et convertit un flot d’entrée en un flot d’unités lexicales qui sera traité par l’analyseur syntaxique. Une suite de caractères d’entrée qui constitue une seule unité lexicale est appelée lexème. Un analyseur lexical permet de cacher la représentation physique des unités lexicales à l’analyseur syntaxique. Dans un modèle de compilateur par exemple [?][1], l’analyseur syntaxique obtient une chaîne d’unités lexicales de l’analyseur [1] AHOA.V., SETHIR. & ULLMANJ.D., Compilateurs : Principes, Techniques et Outils (1991).

lexical, comme illustré par la figure, 5 et vérifie que la chaîne peut être engendrée par la grammaire du langage source.

Flot d’unités lexicales Flot de caractères Représentation intermédiaire Analyseur lexical Traducteur dirigé par la syntaxe

FIG. 5 – Représentation simplifiée de l’analyse syntaxique

Toutefois, cette étape reste assez sommaire, du fait de la nature bidimensionnelle des données traitées. En effet, il n’est pas possible, lors de l’analyse lexicale, de reconstituer les identifiants et les nombres. Leur construction dépend du contexte et de paramètres géomé- triques que nous ne pouvons pas introduire durant cette phase de l’analyse. Le traitement effectué se limite donc à abstraire les données reçues du logiciel se chargeant de réaliser la reconnaissance des symboles. Outre une simplification de la grammaire, il permet ainsi de rendre la grammaire indépendante des identifiants utilisés pour les symboles mathématiques.

Unité lexicale Lexèmes Description informelle des modèles

oprel <≤ = > ≥ = ... Opérateur d’égalité et inégalité

pargauche ( [ { Marqueur gauche de bloc

accent ˆ˜→ Accentuation d’un identifiant

digit 0 1 2 ... Chiffre

letter [a − z] [A − Z] Caractère

... ... ...

Quand plus d’un modèle reconnaît un lexème, l’analyseur lexical doit fournir aux phases suivantes du compilateur des informations additionnelles sur le lexème reconnu. L’analyseur lexical réunit les informations sur les unités lexicales dans des attributs qui lui sont associés. Les unités lexicales influent sur les décisions d’analyse syntaxique ; les attributs influent sur la traduction des unités lexicales.

C’est sur ce schéma classique, utilisé en compilation, que nous avons construit l’analy- seur lexical. Les attributs d’un lexème sont :

– la valeur du symbole reconnu,

– les coordonnées graphiques de ce symbole (coordonnées de la boîte englobante du symbole, . . .),

– la ligne de référence,

– le taille relative du symbole.

L’ensemble des informations collectées va servir de base à l’analyse géométrique et syn- taxique.

4. Analyse géométrique

4

Analyse géométrique

L’analyse géométrique permet de hiérarchiser un ensemble de données a priori diffi- ciles à utiliser en l’état. À partir des données fournies par le système sous-jacent, nous allons construire un graphe. Ce type de structure permet d’abstraire les informations et de les traiter efficacement. Nous allons introduire le type de graphe que nous utilisons, et nous présente- rons les différentes étapes qui conduisent à sa construction.