Commentaires sur Unitex

 

Unitex et sa documentation sont disponibles à partir du site Web de l’Institut Gaspard Monge, Université de Marne-la-Vallée : http://igm.univ-mlv.fr/~unitex. L’ensemble Unitex (textes, logiciels, données linguistiques) avait été saisi en novembre 2002 par l’Agence pour la Protection des Programmes.

 

Ce texte commente seulement la documentation d’Unitex qui fait partie de cet ensemble. Pour comparer les programmes (leurs nom, usage, algorithme, source, copies d’écran, expériences de l’utilisateur), des données (textes, dictionnaires et grammaires d’INTEX intégrés à Unitex), des formats de fichier (identiques), et de l’expérience (identique) des utilisateurs Unitex et INTEX (c’est-à-dire, comment les utilisateurs approchent les mêmes problèmes pour les résoudre, et ce que les utilisateurs voient sur l’écran), l’Université de Franche-Comté tient à disposition des chercheurs et experts intéressés les CD-ROMS d’INTEX et d’Unitex.

 

Il faut garder en mémoire durant la lecture de ce texte, que ni INTEX, ni la documentation d’INTEX, ni la provenance des données linguistiques d’Unitex, ni leurs auteurs ne sont cités une seule fois.

 

Introduction (p. 3)

 

(§1). « Ces travaux ont été étendus à d’autres langues à travers du réseau de laboratoires RELEX »

(§2). « La présence de ces dictionnaires constitue une différence majeure par rapport aux outils usuels... »

 

Le nom « RELEX » correspond à un réseau informel de laboratoires, qui ont en commun d’utiliser depuis 1993 INTEX pour leurs travaux de recherche (formalisation des langues) et leurs applications d’analyse de corpus. INTEX utilise ces dictionnaires depuis sa naissance (1993) ; c’est avec INTEX, et aussi pour pouvoir être utilisé par INTEX, que la plupart de ces dictionnaires ont été développés.

 

« Ces dictionnaires sont représentés selon le formalisme DELA »

 

... Dont les auteurs sont Blandine Courtois et Max Silberztein.

 

Même si ces dictionnaires ont été construits à l’origine à partir de nombreuses ressources lexicales trouvées dans des corpus (avec INTEX), des dictionnaires éditoriaux français et bilingues, et données par de nombreux chercheurs amis du LADL (notamment l’équipe du LLI), il est clair que ces deux personnes sont les auteurs principaux de ces dictionnaires, qui ont des données et un format particuliers, qui sont construits avec des méthodes et algorithmes spécifiques pour représenter la flexion des mots simples et composés (complexe et non prédictible), et conçus pour être utilisés d’une façon unique dans le monde du TAL. Tout cela a été largement publié, depuis de nombreuses années. Cf. par exemple :

 

Blandine Courtois, Max Silberztein Eds. Les dictionnaires électroniques du français. Paris : Langue française, 1990.

 

dans lequel Blandine Courtois présentait le dictionnaire DELAS/DELAF et Max Silberztein présentait le dictionnaire DELAC/DELACF.

 

Max Silberztein. Dictionnaires électroniques et analyse automatique de textes : le système INTEX. Paris : Masson, 1993.

 

dans lequel Max Silberztein présentait le système DELA, son formalisme et ses outils informatiques, et en particulier la construction détaillée du dictionnaire DELAC à partir de listes de mots.

 

Max Silberztein. Groupes nominaux libres et noms composés lexicalisés. In Linguisticae Investigationes XVII:2, Amsterdam : John Benjamins Publishing Company, 1994.

 

dans lequel Max Silberztein présentait l’ensemble des critères utilisés pour décider quels noms composés il a intégré pendant plus de dix ans dans le dictionnaire DELAC (à partir de nombreux candidats). C’est en utilisant ces critères qu’il a enrichi le dictionnaire DELAC initial (construit entre autres à partir de listes pas toujours cohérentes de mots composés totalisant environ 40 000 noms) pour obtenir le dictionnaire DELAC actuel (plus de 120 000 entrées).

 

Ni l’auteur d’Unitex, ni son directeur de thèse n’ont jamais participé à l’effort de construction de ces dictionnaires, pourtant intégrés à Unitex sans explication.

 

(§3) « Les grammaires manipulées par Unitex reprennent ce principe, tout en reposant sur un formalisme encore plus puissant que les automates. Ces grammaires sont représentées au moyen de graphes que l’utilisateur peut créer et mettre à jour ».

 

Le formalisme des graphes INTEX permet de représenter des automates et transducteurs finis, des automates et transducteurs à pile ainsi que des graphes équivalents à des machines de Turing de façon originale, et très naturelle pour les linguistes : les états sont laissés implicites ; les transitions sont représentées par des noeuds ; chaque graphe possède un noeud initial et un noeud terminal, ce qui est unique dans la communauté du TAL, où par exemple les notions de transition initiale ou terminale n’ont aucun sens.

 

INTEX généralise les notions d’automates et de transducteurs finis de trois façons : d’une part, les étiquettes des transitions sont des expressions rationnelles, dans lesquelles les disjonctions de termes sont affichées verticalement ; d’autre part ces transitions acceptent des variables auxiliaires, i.e. des références à des graphes imbriqués, ce qui leur donne la puissance formelle des grammaires Context-Free. Enfin, les entrées (« inputs ») des graphes INTEX peuvent être rangées dans des variables qui dont le contenu sera recopié (« output ») pour effectuer des suppressions, permutations et copies. En conjonction avec la possibilité d’appliquer ces graphes en cascade (finie et/ou en boucle), cela donne au système la puissance d’une machine de Turing.

 

Tous ces choix, conventions, notations, aspects esthétiques et même ergonomies sont repris à l’identique dans Unitex.

 

(§4) « Unitex permet de construire des grammaires à partir de telles tables »

 

Comme INTEX. La formalisation des tables du lexique-grammaire sous INTEX a nécessité l’arrangement de certaines notations (ex. les cellules vides notées traditionnellement « - » doivent être représentées « <E> ») et l’introduction d’autres notations : par ex. les variables notées @A, @B réfèrent à la notation des colonnes sous Microsoft Excel et sont utilisées de façon particulière par INTEX : ces variables ne sont pas typées et représentent soit des booléens qui bloquent ou activent des chemins dans les grammaires (par ex. « -Passif »), soit des chaînes de caractères constantes (ex. « le taureau par les cornes »), ou qui réfèrent à des contraintes lexicales (ex. « <prendre> représente toutes les formes du verbe prendre ; <PREP> représente toutes les prépositions).

 

Ces conventions et notations sont reprises à l’identique dans Unitex.

 

(§5) « Ses caractéristiques techniques sont la portabilité, la modularité, la possibilité de gérer des langues... »

 

Caractéristiques techniques bien connues d’INTEX, implémentées avec la même architecture à deux niveaux qu’INTEX, les mêmes méthodes (avec les mêmes noms et formats de fichier), appliquées dans le même ordre qu’INTEX.

 

Chapitre 1 : Installation d’Unitex (p. 5)

 

(§2) « Unitex est composé d’une interface graphique en JAVA et de programmes externes écrits en C ».

 

Même architecture qu’INTEX, composé d’une interface graphique en C++ et de programmes externes écrits en C.

 

(§5) « Après la décompression, le répertoire Unitex contient plusieurs sous-répertoires dont un nommé App ».

 

La structure des répertoires, le nom des fichiers, leurs formats et emplacements, etc. sont presque tous identiques à INTEX.

 

1.4. Première utilisation « le programme vous demandera de choisir un répertoire personnel de travail ... ce répertoire vous permettra de stocker vos données personnelles... Le programme copiera l’arborescence de la langue dans votre répertoire personnel ... »

 

Exactement comme INTEX.

 

1.5 Ajout de nouvelles langues

 

« Il y a deux manières d’ajouter des langues. Si vous désirez ajouter une nouvelle langue accessible à tous les utilisateurs... En revanche si la nouvelle langue ne concerne qu’un seul utilisateur... »

 

Exactement comme INTEX.

 

Chapitre 2 : Chargement d’un texte (p. 9)

 

§1 « Une des principales fonctionnalités d’Unitex est la recherche d’expressions dans des textes. Pour cela, les textes doivent subir plusieurs opérations de prétraitement ...

 

Exactement celles d’INTEX, implémentées par le même programme qu’INTEX.

 

2.1. Sélection de la langue

 

Le paragraphe 2.1. décrit les procédures associées au choix de la langue qui sont identiques pour Unitex et INTEX.

 

Noter l’existence du fichier « alphabet.txt » dans Unitex stocké dans le répertoire de la langue, dont le format est similaire au fichier « Alphabet » d’INTEX (cf. Chap. 10).

 

Il est intéressant de constater que ce fichier est pourtant inutile dans Unitex car le standard Unicode prend en charge la notion de lettre.

 

2.2. Format des textes

 

« Unitex représente une représentation codée sur deux octets du standard UNICODE ».

 

Voilà une différence technique avec INTEX. Rappelons tout de même que INTEX traite sans problème (y compris à l’affichage) la plupart des langues non européennes, comme par ex. le bulgare, le coréen, le grec l’hébreu et le thai.

 

(p. 11) 2.3. Ouverture d’un texte

 

Comparer l’écran en figure 2.2 (Unitex

 

 

à celui d’INTEX :

 

Exactement comme dans INTEX, on ouvre un fichier texte brut « .txt » ou un fichier caractérisé par le suffixe « .snt », et dont le format est identique à INTEX (les fichiers .snt contiennent des informations linguistiques écrites entre accolades).

 

(p.11) 2.4. Prétraitement du texte

 

Comparer la fenêtre Unitex en figure 2.5. :

 

et celle d’INTEX :

 

Les modes « MERGE » et « REPLACE » sont utilisés exactement comme dans INTEX, pour faire exactement la même chose, avec un programme de même nom (fst2txt), pour produire le même fichier résultat, dans le même format.

 

l’opération de « Preprocessing » est identique dans Unitex et dans INTEX.

 

 (p.12, §2) « L’option ‘Construct Text Automaton’ utilisée pour construire l’automate du texte. Cette option est désactivée par défaut car entraîne une forte consommation de mémoire et d’espace disque si le texte est trop volumineux... »

 

Cette option correspond à l’option d’INTEXConstruct Text FST’, qui elle fonctionne sans problème, et n’entraîne aucune grosse consommation de mémoire ou d’espace disque.

 

2.4.2. Découpage en phrases (p. 13)

 

Le texte du 2.4.2 ressemble étrangement à celui du manuel d’INTEX. Noter que les exemples sont les mêmes, la notation des symboles entre angles est exactement la même : <E> pour le mot vide, <MOT>, <MIN>, <MAJ>, <PRE>, <NB> (utilisés exactement de la même façon), <PNC>.

 

p.14 : Comparer le graphe Unitex :

 

 

à celui d’INTEX :

 

 

Pour mémoire, l’équipe du LASELDI a travaillé pendant plusieurs semaines pour construire ce graphe et le tester sur une dizaine d’extraits de 50K du journal Le Monde, 1994, ainsi que sur l’intégralité des textes « La femme de trente ans » (Balzac) et de « La maison biscornue » (Agatha Christie). L’utilisation du « ; » comme séparateur de phrase n’est pas évidente ; elle est justifiée dans les applications littéraires du LASELDI, mais n’est pas discutée ici.

 

Les commentaires (règle no1, règle no2, etc.) se réfèrent en fait à des explications dans la documentation d’INTEX, qui ne figurent même pas dans le manuel Unitex !

 

Dans le menu d’Unitex, on trouve le nom « FSGraph » utilisé pour construire des graphes (nom de l’éditeur de graphe d’INTEX), alors que le nom des graphes Unitex est « Unigraph » (on le trouve en en-tête des fichiers des graphes Unitex).

 

(§1 et §2) => Utilisation des symboles <^> et #, exactement de la même façon qu’INTEX.

 

(§4) : dans INTEX, le fichier « Sentence.fst » est rangé dans le répertoire de la langue courante ; le fichier « Sentence.grf » est rangé dans le répertoire « Graphs\Preprocessing\Sentence » de la langue courante. Dans Unitex, le fichier « Sentence.fst2 » est rangé dans le répertoire « Graphs\Preprocessing » de la langue courante.

 

(§4) : INTEX contient le programme fst2txt utilisé pour appliquer le graphe Sentence ; Unitex contient un programme de même nom, avec la même exacte fonctionnalité ; tout comme INTEX, Unitex utilise la marque {S} pour séparer les phrases du texte.

 

(p.15) 2.4.3. Normalisation des formes non-ambiguës

 

Le mode « REPLACE » du programme « fst2txt » d’Unitex fonctionne exactement comme le mode « REPLACE » du programme « fst2txt » d’INTEX ; le résultat est identique.

 

Comparer la figure 2.7 du manuel d’Unitex :

 

 

au graphe de normalisation utilisé par la version courante INTEX :

 

 

(p.15) 2.4.4. Découpage du texte en unités lexicales

 

Pour les langues non-asiatiques, Unitex découpe les unités comme INTEX ; rappelons l’utilisation d’un fichier alphabet.txt quasi-identique au fichier Alphabet d’INTEX, nécessaire dans INTEX, mais qui devrait être inutile dans Unitex puisque le standard UNICODE gère la notion de lettre.

 

Pour les langues asiatiques (i.e. sans blanc), une différence entre Unitex et INTEX : Unitex traite chaque lettre comme une « unité lexicale », alors qu’avec INTEX on insère automatiquement des caractères cachés « _ » entre chaque lettre (pour obtenir le même résultat).

 

 (p. 17) 2.4.5. Application de dictionnaires

 

Unitex utilise les mêmes dictionnaires DELAF et DELACF, dans le même format, avec les mêmes conventions de notation qu’INTEX (Cf. ma remarque en première page sur ces conventions DELA/INTEX).

 

L’exemple de phrase de la documentation d’INTEX : « Luc mange une pomme de terre » devient dans la documentation Unitex : « Igor mange une pomme de terre ».

 

Le programme « Dico » d’Unitex effectue les mêmes opérations que les programmes « Dicos » et « Dicoc » d’INTEX, et produit les fichiers de nom « dlf.n » et « dlc.n », alors que INTEX les nomme « DLC » et « DLF ». Dans les deux cas, ils sont rangés dans le même répertoire et sont appelés « dictionnaires du texte ».

 

Sur l’écran Unitex, ces fichiers sont appelés « DLF » et « DLC » ? ce qui correspond en fait aux noms des fichiers d’INTEX.

 

 (p. 18) comparer la figure 2.8 du manuel Unitex :

 

 

à la figure suivante tirée d’INTEX :

 

Le bouton des caractères est à gauche dans INTEX ; il est maintenant à droite dans Unitex.

 

(Bas de la page 18) :

 

« Il est également possible d’appliquer ces dictionnaires en dehors du prétraitement du texte. Pour cela, il faut cliquer sur ‘Apply Lexical Resources...’ dans le menu ‘Text’... »

 

Exactement comme avec INTEX ; les noms des commandes, menus et les fonctionnalités sont les mêmes.

 

p. 19 : comparer la figure 2.9 du manuel Unitex :

 

 

 à celle d’INTEX :

 

 

 

Chapitre 3 : Dictionnaires (p. 21)

 

Même structure de chapitre que dans la documentation d’INTEX ; quelques variations dans les exemples linguistiques (ex. boîte à merveilles au lieu de pomme de terre), exact même format et représentation des données, etc.

 

Les sections 3.1.2. et 3.1.3. pourraient décrire le système INTEX sans aucune modification.

 

Comparer les tableaux des pp. 24-25 de manuel d’Unitex, par exemple :

 

 

à ceux du manuel INTEX (p. 106-111), par exemple :

 

 

(Les exemples ont été changés).

 

3.2. Vérification du format des dictionnaires : opération identique à celle d’INTEX ; le programme INTEX « recondic » correspond au programme Unitex appelé « CheckDic ». Comparer la figure du manuel d’Unitex :

 

 

à l’écran correspondant dans INTEX :

 

 

La figure 3.3. du manuel d’Unitex :

 

 

correspond à un écran d’INTEX qui comprend d’autres fonctionnalités :

 

 

3.3. (pp. 27-28) : le programme de tri d’INTEX « tri » est piloté par le fichier Alphabet, dans lequel les lettres majuscules non accentuées, puis accentuées, sont mises en correspondance avec les lettres minuscules, ligne par ligne. Voici par exemple les première lignes du fichier Alphabet utilisé par INTEX pour traiter des textes français dans lesquels les lettres majuscules sont susceptibles d’être accentuées (textes québécois, ou textes littéraires de qualité) :

 

Aa

AÀà

AÂâ

AÄä

Bb

Cc

CÇç

Dd

Ee

EÉé

EÈè

EÊê

EËë

 

Le tri d’Unitex est piloté par le fichier Alphabet_sort.txt suivant :

 

 

La différence de formats entre les deux fichiers s’explique par le fait que le fichier d’INTEX sert à deux choses à la fois : définir les lettres, et définir l’ordre lexicographique, alors que Unitex utilise deux fichiers : le fichier « alphabet_sort.txt » ci-dessus pour l’ordre lexicographique, et le fichier « alphabet.txt » pour définir les lettres (décrit au chapitre 10, p.110 du manuel Unitex) :

 

 

Je rappelle que le standard UNICODE prend pourtant en charge la notion de lettres.

 

3.4. (p. 28) La flexion automatique d’un DELAS est identique dans INTEX et dans Unitex. Comparer la figure 3.5. du manuel Unitex :

 

 

à l’écran d’INTEX :

 

 

Le programme de flexion d’Unitex utilise exactement la même méthode que le programme de flexion des mots simples d’INTEX, et les mêmes graphes de flexion ; comparer le graphe de flexion du manuel Unitex en figure 3.6 :

 

 

au graphe N4 fourni dans le package INTEX :

 

 

Les opérateurs « L » et « R » d’Unitex fonctionnent de la même façon que les opérateurs « L » et « R » d’INTEX. Les autres opérateurs d’INTEX « C » pour recopier le haut de la pile, et « D » pour le dupliquer, ne sont pas présents dans Unitex.

 

3.5. La compression des dictionnaires de type DELAF et DELACF est effectuée de la même façon par Unitex que par INTEX ; le résultat est rangé dans deux fichiers d’extension « .bin » pour l’automate, et « .inf » pour les informations associées. Ces fichiers ont quasiment le même la même format dans Unitex et dans INTEX.

 

La différence dans le format du fichier « .bin » d’INTEX et dans celui du fichier « .bin » d’Unitex est que dans le fichier Unitex, les étiquettes de transition sont représentées sur 2 octets, alors qu’elles sont représentées sur 1 octet dans INTEX. En conséquence, le fichier compressé d’Unitex a une taille double de celui d’INTEX.

 

3.6. (p. 31) Application des dictionnaires

 

Les dictionnaires sont appliqués de la même façon par Unitex que par INTEX.

 

3.6.1. Règles de priorité

 

Les règles de priorité (décrites en 3.6.1. dans le manuel Unitex) sont identiques à celles d’INTEX.

 

Il y a trois niveaux de priorité dans Unitex, tout comme INTEX ; leur notation est identique à INTEX.

 

3.6.2. Règles d’application des dictionnaires (p.32)

 

Les règles concernant la casse (cf. l’exemple de la consultation des dictionnaires pour « Pierre » et « pierre ») sont identiques dans Unitex et dans INTEX.

 

Chapitre 4 : recherche d’expressions rationnelles (p. 33)

 

Les expressions rationnelles sont quasi-identiques à celles d’INTEX (la notation INTEX est pourtant très différente de celle utilisée par tous les autres systèmes TAL) : mêmes symboles, mêmes notations, mêmes combinaisons de requêtes, mêmes opérateurs ; par exemple la requête <N-Hum+z1:fp> représente les noms qui ne sont pas associés au code +Hum, qui ont le code +z1 et qui sont au féminin « f » pluriel « p ».

 

Les symboles spéciaux (4.3.1, p. 34 du manuel Unitex) sont identiques à ceux d’INTEX : <E> pour le mot vide, <MOT> pour n’importe quelle séquence de lettres, <MIN> pour les séquences de lettres minuscules, etc.

 

Unitex introduit une nouvelle notation : <lirons,lire.V>, qui ressemble à la requête {aide,aider.V} d’INTEX, qui représente la forme désambiguïsée (forme verbale « aide », par opposition au nom « aide »). Mais Unitex n’a pas de module de levée d’ambiguïtés.

 

En 4.3.3. (p.34), « les contraintes grammaticales et sémantiques », les motifs <N+z1> et <N-Hum+z1> représentent les mêmes choses que dans INTEX. Tout comme INTEX, l’ordre des contraintes syntactico-sémantiques n’est pas pertinent (<N+z1-Hum> est équivalent à la requête précédente).

 

Le motif Unitex <-Hum+z1+N> est équivalent au motif INTEX <N-Hum+z1>.

 

En 4.3.4. (p. 35), toutes les contraintes flexionnelles discutée sont reprises d’INTEX.

 

Le motif Unitex « <V:2:3> » sera reconnu par Unitex, à la condition (implicite) que dans le format du dictionnaire utilisé, les formes qui contiennent des ambiguïtés flexionnelles sont factorisées. INTEX ne permet pas ce type de requêtes, mais en contrepartie n’impose aucune contrainte sur la représentation des ambiguïtés flexionnelles dans les dictionnaires.

 

4.3.5. (p.36) ; les deux portées de la négation (ex. « -Hum » et « <!PREP>) sont expliquées, et fonctionnent de la même façon dans Unitex que dans INTEX.

 

La figure 4.1. du manuel Unitex :

 

 

représente une concordance assez particulière, puisque contrairement aux concordanciers traditionnaux, ce ne sont pas des formes (simples ni-même composées) qui sont présentées en contexte, mais des séquences reconnues par l’application d’une grammaire. Ces « concordances étendues » étaient une invention d’INTEX. Voici la fenêtre équivalente sous INTEX :

 

 

En 4.4. (p.37), Unitex ajoute à la notation de la concaténation d’INTEX, ex. « le <A> chat » une variante notationnelle : « le.<A>.chat ».

 

En 4.5. la disjonction d’INTEX, notée « + », alors que dans les systèmes informatiques et de TAL, elle est notée « | », est reprise à l’identique ; l’opérateur de KLEENE (4.6., p. 38) est identique dans INTEX et dans Unitex ; de plus, l’interdiction d’utiliser des expressions rationnelles qui reconnaissent le mot vide est reprise d’INTEX.

 

Comparer la figure 4.4. de la p. 39 du manuel Unitex :

 

 

à la fenêtre d’INTEX :

 

 

 

Les options sur la priorité sur les longueurs des séquences reconnues et sur le mode d’utilisation de la production des transducteurs sont très spécifiques à INTEX et n’existent dans aucun autre système TAL. Ces options sont reprises à l’identique dans Unitex. Comparer les options d’affichage des résultats en figure 4.6. :

 

 

à la fenêtre d’INTEX :

 

La différence est que INTEX donne plusieurs formats pour les résultats (en plus d’une concordance, on peut extraire toutes les phrases qui contiennent une ou plusieurs séquences reconnues, ou toutes les phrases qui n’en contiennent pas), tandis que Unitex donne la possibilité à l’utilisateur de renommer le fichier de la concordance.

 

Chapitre 5 : grammaires locales (p.43)

 

La discussion 5.1.1 p. 43 sur les grammaires algébriques est identique à celle du manuel d’INTEX sur les graphes Context-Free. Noter que c’est la même grammaire qui est prise en exemple.

 

La représentation graphique, ainsi que le format des fichiers représenant des grammaires est quasi-identique dans Unitex et dans INTEX ; les utilisateurs d’Unitex sont invités à remplacer la signature de l’éditeur de graphe d’INTEX « #FSGraph » par la signature « #Unigraph » dans leur fichier.

 

Comparer la figure 5.1. du manuel Unitex :

 

 

à l’écran correspondant dans INTEX :

 

 

P. 45-50 : les graphes Unitex sont identiques à ceux d’INTEX ; les états ne sont pas représentés ; les noeuds en forme de boites représentent des transitions, dont les étiquettes peuvent être des expressions rationnelles ; les noeuds étiquetés par « <E> » sont représentés par des flèches comme dans INTEX ; le noeud terminal est représenté par un carré dans un rond, les noeuds sélectionnés sont colorés de la même façon, les disjonctions dans les étiquettes sont représentés en colonne, comme dans INTEX ; l’ergonomie est exactement la même : pour connecter deux noeuds, on clique d’abord sur la source, puis sur la destination ; même représentation graphique des boucles, exactement même fonctionnement, utilisation et représentation des « sous-graphes » (appels à des graphes imbriqués) ; même représentation des productions de transducteurs (par défaut en gras, sous les noeuds), mêmes utilisations, fonctionnements et représentations des variables dans les transducteurs améliorés ; mêmes caractères spéciaux (p. 51-52)

 

Mêmes manipulations d’édition, copier/coller, dans ou vers d’autres programmes, presque la même opération pour intégrer dans un noeud une liste à partir d’un éditeur de texte, mêmes symboles spéciaux, opérations de tri et ZOOM identiques, rangés dans les mêmes sous-menus du menu FSGraph, avec exactement les mêmes valeurs.

 

Unitex possède une fonctionnalité d’antialiasing, comme les figures suivantes le montrent :

 

 

INTEX lui effectue les opérations de copier/coller des graphes dans une représentation vectorielle qui évite les effets d’escaliers.

 

Opérations identiques à INTEX pour l’alignement de noeuds, comparer la figure 5.17 du manuel Unitex :

 

 

à la fenêtre INTEX :

 

 

Même utilisation de la grille, par défaut avec le même écartement, et dessinée de la même façon (dans tous les programmes graphiques, les grilles sont représentées par des quadrillages de droites verticales et horizontales ; dans INTEX, tout comme dans Unitex, ce sont des simples points).

 

Comparer les options de présentations d’Unitex en figure 5.20 :

 

 

 avec celles d’INTEX :

 

 

Noter l’option d’affichage des graphes de droite à gauche, cf. figure 5.21 du manuel Unitex :

 

 

Cette option a un effet différent sous INTEX ; dans INTEX elle est utilisée pour afficher des graphes de langues s’écrivant de droite à gauche (ex. arabe ou hébreu). Ces langues s’écrivent de droite à gauche caractère par caractère, et non pas mot par mot.

 

LA SUITE DE LA DOCUMENTATION D’UNITEX EST DE MEME NATURE. IL EST INUTILE DE CONTINUER A CE NIVEAU DE PRECISION. JE COMMENTE DONC A UN NIVEAU PLUS GENERAL.

 

Chapitre 6 : utilisation avancée des graphes (p. 59)

 

Là aussi, les fonctionnalités d’INTEX (et la documentation) ont été recopiées. Les graphes et les commentaires associés ont été soit directement repris (sans autorisation de l’auteur) du package INTEX (figures 6.1, 6.2., 6.3. 6.5.), soit modifiés mais avec le même commentaire (figures. 6.6., 6.7, 6.8).

 

Les règles d’utilisation des transducteurs (insertion à gauche, « application en avançant », les trois règles de priorité, utilisation des variables, mode MERGE et REPLACE) sont reprises à l’identique à partir d’INTEX, mais les explications dans la documentation d’Unitex ne sont pas très claires.

 

Les résultats de ces programmes, y compris jusqu’à la représentation graphique des graphes, des concordances et des textes modifiés sont identiques à ceux d’INTEX.

 

Le chapitre 6 recopie des figures (Locate Pattern, Display indexed sequences, Concordance) des chapitres précédents que nous avons déjà commentés (identiques à celles d’INTEX).

 

Chapitre 7 : Automate du texte (p. 75)

 

Unitex construit l’automate du texte, alors que INTEX construit le transducteur de texte. Mais en fait l’automate de Unitex contient des productions, ce qui rend les automates d’Unitex identiques aux transducteurs d’INTEX.

 

Même représentation graphique de l’automate du texte Unitex (figure 7.1) :

 

 

et du transducteur de texte d’INTEX :

 

 

L’automate d’Unitex est construit comme le transducteur d’INTEX, avec les mêmes règles de construction ; la normalisation du texte est effectuée avec les transducteurs repris (sans accord des auteurs) du package d’INTEX (ex. figures 7.4 et 7.5) ; la « conservation des meilleurs chemins » d’Unitex est une opération standard d’INTEX ; comparer la figure 7.8 :

 

 

à celle d’INTEX :

 

 

FST est l’abréviation dans INTEX de « Finite State Transducer » ce qui signifie « Transducteur à Etats Finis ». Noter que le titre de la fenêtre Unitex ci-dessus est « Construct the Text FST » ; Unitex reprend donc l’abréviation utilisée pour INTEX pour le terme « Automate de texte » d’Unitex.

 

Les manipulations de l’automate du texte Unitex sont identiques aux manipulations du transducteur du texte INTEX.

 

Chapitre 8 : Lexique grammaire (p. 85)

 

Dans INTEX, les tables de lexique-grammaire sont représentées dans des fichiers Excel ; Unitex, tout comme INTEX exige de les convertir au format texte, puis utilise des graphes patrons pour les convertir en graphes. Les variables utilisées font référence dans les deux cas aux notations d’Excel, sont nommées de la même façon et utilisées de la même façon dans les graphes patrons identiques.

 

INTEX permet de construire directement le transducteur équivalent à une table de lexique-grammaire, tandis que Unitex construit les graphes correspondant à chaque ligne de la table ; il faudra ensuite assembler tous les graphes (potentiellement plusieurs milliers) pour compiler le transducteur équivalent à la table.

 

Chapitre 9 : Utilisation des commandes externes (p. 91)

 

Noter que ce chapitre est dans sa forme quasi identique à celui de la documentation INTEX (chap. 13). Unitex contient une dizaine de programmes (plus de 30 dans INTEX). Quelques noms de programmes INTEX français ont été traduits en anglais pour Unitex.

 

Noter le nouveau programme Asc2Uni qui permet de convertir en UNICODE les textes codés en ASCII étendus.

 

En nous montrant qu’il existe en fait une correspondance entre codages 8 bits et UNICODE pour le grec, le tchèque, le thai, etc. on nous montre que la différence entre Unitex et INTEX n’est qu’une différence technique non pertinente d’un point de vue linguistique.

 

Chapitre 10 : Format des fichiers (p. 101)

 

A part le détail du codage UNICODE, les fichiers, les noms des fichiers et leur format sont quasi-identiques, tout en étant incompatibles. On peut se demander pourquoi l’auteur d’Unitex a repris les formats de fichier INTEX : il y a tout de même des centaines de façon de représenter une information dans un fichier : à droite, à gauche, en majuscules ou en minuscules, en binaire, en UNICODE, en bas, en haut, de gauche à droite, de droite à gauche, etc.

 

Le format des graphes (.grf) d’Unitex est quasi-identique à celui des graphes (.grf) d’INTEX, aussi bien en tête du fichier (les paramètres de visualisation) que dans le corps du fichier (les transitions). Comparer les figures des pp. 104-105 du manuel Unitex :

 

 

 

à l’extrait du fichier qui correspond au graphe DPart d’INTEX :

 

#FSGraph 4

SIZE 848 1112

FONT Times New Roman:  12

OFONT Times New Roman:B 12

BCOLOR 16777215

FCOLOR 0

ACOLOR 12632256

SCOLOR 16711680

CCOLOR 255

DBOXES y

DFRAME y

DDATE y

DFILE y

DDIR n

DRIG n

DRST n

FITS 100

PORIENT P

#

7

"<E>" 88 172 2 2 3

"" 368 152 0

"du" 168 108 1 1

"de" 160 196 1 4

":Ddef-le_ms" 216 196 1 1

"Luc mange du pain" 128 76 0

"Luc mange (de ton pain\+de l'engrais)" 132 232 0

 

Les caractères spéciaux et les mots-clés sont soit identiques (par ex. CCOLOR pour la couleur des commentaires), soit ignorés (par ex. FITS pour le niveau de zoom) et conservés par « soucis de compatibilité avec INTEX » (en fait ces fichiers ne sont pas compatibles avec INTEX).

 

La documentation explique que Unitex ignore certains mots-clés INTEX par « soucis de compatibilité avec INTEX ». En fait Unitex refuse les graphes des dernières versions d’INTEX, pour forcer les utilisateurs à abandonner INTEX. Que peut faire un utilisateur Unitex pour pouvoir utiliser des graphes INTEX ? La documentation donne la solution : elle invite les utilisateurs Unitex à effacer la signature de l’éditeur d’INTEX pour la remplacer par « Unigraph ».

 

Le format « .fst2 » qui représente l’automate du texte dans Unitex est similaire, mais légèrement différent de celui du format du transducteur du texte .mft dans INTEX.

 

La différence entre le format de l’automate du texte Unitex « .fst2 » et celui du transducteur de texte INTEX « .mft » a pour conséquence l’explosion de la taille du fichier « .fst2 » ; cela explique pourquoi l’auteur d’Unitex déconseille de construire l’automate de textes de grande taille. Rappelons que cela ne pose aucun problème de construire le transducteur de textes de taille importante avec INTEX.

 

Le format des fichiers de concordance « concord.ind » d’Unitex est quasi-identique à celui d’INTEX, mais les indices de position sont situés en début de ligne dans la concordance Unitex, au lieu d’en fin de ligne pour INTEX.

 

Le format des fichiers .bin des dictionnaires compressés d’Unitex est quasi-identique à celui des fichiers .bin des dictionnaires compressés d’INTEX ; la différence est que Unitex utilise deux octets par caractère, plutôt que 1 ; les fichiers au format .inf qui représente les informations des dictionnaires compressés sont identiques à ceux d’INTEX.

 

Les divers fichiers intermédiaires sont soit identiques à ceux d’INTEX, soit renommés (ex. dlf.n au lieu de DLF).

 

Conclusions

 

(1) Unitex n’est pas un nouveau système

 

Les quelques différences entre Unitex et INTEX sont techniques et dérisoires et en aucun cas ne peuvent définir un projet à caractère scientifique : codage des textes en Unicode, requête <+Hum+N> au lieu de <N+Hum>, signature « UNIGRAPH » au lieu de « FSGraph », terme « automate de texte » au lieu de « transducteur de texte » pour désigner la même chose, etc.

 

On ne peut pas croire que Unitex, contrairement à INTEX, n’est pas strictement Finite-State. INTEX, même s’il possède de nombreux outils (absents d’Unitex) pour gérer, optimiser et déboguer des automates et transducteurs à états finis, ne se limite pas à de telles grammaires. Par exemple, les graphes INTEX peuvent être utilisés comme des grammaires Context-Free (INTEX, contrairement à Unitex, contient un analyseur syntaxique), et l’application de transducteurs INTEX en cascade (avec boucles possibles) donne au système la puissance d’une machine de Turing. Unitex (dont les mécanismes sont tous repris d’INTEX) n’est donc pas plus puissant qu’INTEX.

 

On ne peut pas croire que Unitex, contrairement à INTEX, peut traiter les langues à caractères non-latins. Cf. pourtant les travaux avec INTEX publiés sur le bulgare, le coréen, le grec ou le serbo-croate. Unicode est une norme utile (surtout pour afficher des textes multilingues) ; mais un moteur linguistique peut travailler sur n’importe quel codage interne (1, 2 ou 4 octets, et pourquoi pas bit par bit), un peu comme un lecteur de CD musical peut très bien transmettre ses données sur 1 bit au lieu de 12.

 

Unitex n’est pas non plus une évolution, hommage ou continuation d’INTEX. Unitex a été construit rapidement à l’Université de Marne-la-Vallée, sans aucune justification (la même équipe continuait à utiliser INTEX tout en développant Unitex sans le dire).

 

Rappelons que si les formats de fichier sont très semblables à ceux d’INTEX, ils sont incompatibles avec INTEX (cf. le remplacement de la signature « FSGraph » des fichiers INTEX par « Unigraph » pour les transformer en fichier Unitex).

 

(2) Unitex n’est pas un tour de force

 

On ne peut pas dire que « refaire un INTEX » en quelques mois (alors qu’INTEX a dix ans) est un tour de force. Si un étudiant linguiste reprenait une thèse de linguistique qui a nécessité dix ans de travail, et la « refaisait » en quelques mois, en en recopiant le plan, les thèses et arguments, les exemples et en y ajoutant les mêmes données en annexe, est-ce que les collègues linguistes seraient impressionnés ?

 

Le fait que de nombreuses caractéristiques d’INTEX (jamais commentées ni documentées) sont reprises à l’identique dans Unitex prouve que l’auteur d’Unitex avait INTEX devant ses yeux lorsqu’il « construisait » Unitex.

 

(3) Unitex n’est pas comparable à INTEX

 

Toutes les « ressemblances » d’Unitex avec INTEX ne doivent pas faire oublier que de nombreuses fonctionnalités d’INTEX ne sont pas implémentées sous Unitex :

 

-- le traitement des fichiers de concordance et de dictionnaires,

-- les modules orthographiques et morphologiques

-- l’étiquetage prioritaire d’expressions non-ambiguës (mots composés ou expressions figées)

-- la reconnaissance des expressions figées par graphes, ou par tables, et leur représentation dans le transducteur de texte

-- le système sophistiqué de cryptage des dictionnaires qui garantit la protection des données

-- l’application de grammaires à des textes ou des index de texte, à partir de grammaires récursives ou compilées

-- l’étiquetage, la lemmatisation, etc. de textes dans le format linéaire, avec ou sans désambiguïsations par dictionnaires et/ou grammaires locales ;

-- l’étiquetage en boucles de textes ; application de transducteurs en cascade, avec ou sans boucles

-- le débogage de grammaires de désambiguïsation (indexation des séquences reconnues, partiellement ou totalement désambiguïsées, incohérentes)

-- les outils d’optimisation d’expressions rationnelles, d’automates et de transducteurs,

-- les outils de gestion d’ensemble de graphes (recherche, visualisation de l’organisation des grammaires, système sophistiqué de gestion de priorités et de bibliothèques précompilées de grammaire)

-- les outils de débogage de grammaires (débogueur graphique, exploration automatique de graphes ou de FSTs, aux niveaux orthographique ou syntaxique)

-- la levée d’ambiguïté du transducteur de texte par intersection de graphes

-- l’analyseur syntaxique qui utilise le transducteur du texte, et construit l’arbre de dérivation

 

(4) Unitex n’est pas un système cohérent

 

Les fonctionnalités d’Unitex ont été reprises d’INTEX, mais pas dans un ordre logique. Par exemple, à quoi sert l’automate du texte d’Unitex puisqu’il n’est utilisé par aucune fonctionnalité d’Unitex ? de même, à quoi sert la fonction de flexion de dictionnaires au format DELAS dans Unitex, puisque les utilisateurs n’ont pas la possibilité d’étiqueter des dictionnaires (et donc de produire leurs propres dictionnaires DELAS), ni même de générer automatiquement ces listes à partir de grammaires (pas de fonctionnalité d’exploration automatique de graphes). Je rappelle par ailleurs que la fonctionnalité de flexion d’Unitex n’est pas utilisable pour certaines langues pourtant incluses dans Unitex.

 

Sans outil d’optimisation et d’aide au débogage d’automates, Unitex n’est pas vraiment utile à des développeurs d’applications Finite-State.

 

Unitex laisse l’impression d’une panoplie « saupoudrée » de fonctionnalités INTEX issues de modules épars, mais qui ne sont pas tout à fait utilisables.

 

Unitex est donc au mieux un portage partiel d’INTEX, ce qui n’a aucun intérêt scientifique, et a même un intérêt technique limité, car INTEX fonctionne sans problème sur toutes les versions de MS-Windows (95/98/ME/NT/2000/XP), sur plateforme Macintosh (grâce à des outils comme Virtual PC), et sur des machines LINUX ou UNIX (le moteur linguistique d’INTEX contient une trentaine de programmes écrits en C/ANSI/POSIX, donc sont aisément recompilables).