Lttoolbox (français)
lttoolbox est une boite à outils pour les traitements lexicaux, l'analyse morphologique et la génération de mots. L'analyse est le processus de découpage d'un mot (ex: chats) en son lemme 'chat' et l'information grammaticale <n><pl>
. La génération est le processus inverse.
Le paquet est décomposé en trois programmes, lt-comp
, le compilateur, lt-proc
, le processeur, et lt-expand
, qui génère toutes les descriptions possibles entre les formes de surface et les formes lexicales dans le dictionnaire.
Contents
Création
Article principal : Bases sur les dictionnaires unilingues
Des fichiers de spécification pour analyseur morphologique, ou des dictionnaires morphologiques peuvent être trouvées dans tous nos paquets paire de langue, à partir de l'incubateur, ou vous pouvez choisir de créer le votre (plus d'instructions dans la page Bases sur les dictionnaires unilingues). Vous pouvez aussi voir notre liste de dictionnaires, qui comporte des statistiques sur les noms, emplacements et nombre d'entrées de chaque dictionnaire.
Utilisation
Compilation
Voir aussi : Compilation des dictionnaires
La compilation dans un format binaire est réalisée au moyen du programme lt-comp
. Vous pouvez compiler un fichier .dix
donné de gauche à droite (LR
), ou de droite à gauche (RL
). Compiler LR
crée habituellement un analyseur, compiler RL
crée habituellement un générateur.[1]
- Exemple
Compiler le dictionnaire apertium-es-ca.ca.dix
de gauche à droite pour fabriquer le binaire ca.bin
.
$ lt-comp lr apertium-es-ca.ca.dix ca.bin
Traitement
Il y a deux modes principaux pour utiliser le processeur (lt-proc
), l'analyse (qui est le mode par défaut) and la génération. L'analyse convertit les formes de surface en un ensemble de formes lexicales possibles, alors que la génération convertit une forme lexicale en la forme de surface correspondante.
Analyse
Après compilation du fichier apertium-es-ca.ca.dix
de gauche à droite en ca.morf.bin
, on peut analyser le catalan :
- Exemple
$ echo "prova" | lt-proc ca.morf.bin ^prova/prova<n><f><sg>/provar<vblex><pri><p3><sg>/provar<vblex><imp><p2><sg>$
Génération
Et en le compilant de droite à gauche, on peut générer :
- Exemple
$ echo "^prova<n><f><pl>$" | lt-proc -g ca.gen.bin proves
Expansion
Quelquefois, on veut être capable de voir la sortie complète du dictionnaire — par exemple, toutes les correspondances entre les formes lexicales et les formes de surface. pour cela, vous pouvez utiliser l'outil lt-expand
. Cette sortie est souvent utile pour trouver les défauts dans l'assignement des paradigmes, etc.
- Exemple
Voici les 10 premières lignes générées en sortie par la commande étendre le dictionnaire catalan de la paire apertium-es-ca
. (Au dernier comptage, la longueur totale de la sortie dépassait les 2,3 million de lignes).
$ lt-expand apertium-es-ca.ca.dix abdominals:abdominal<adj><mf><pl> abdominal:abdominal<adj><mf><sg> absents:absent<adj><mf><pl> absent:absent<adj><mf><sg> absolutes:absolut<adj><f><pl> absoluta:absolut<adj><f><sg> absoluts:absolut<adj><m><pl> absolut:absolut<adj><m><sg> abstractes:abstracte<adj><mf><pl> abstracta:abstracte<adj><f><sg>
- Note
Vous ne pouvez pas exécuter lt-expand directement sur un fichier .dix.xml
. Les fichiers .dix
dans (par exemple) la paire apertium-en-af
ont leur symboles dans un fichier séparé. Vous devez d'abord lancer xmllint
:
$ xmllint --xinclude apertium-en-af.af.dix.xml > apertium-en-af.af.dix
Puis exécuter lt-expand
sur le fichier apertium-en-af.af.dix
.
Maintenance
- Coté gauche vide
Si vous obtenez un message comme :
Error: Invalid dictionary (hint: the left side of an entry is empty)
Essayez de chercher des cotés gauche vides dans votre dictionnaire en utilisant lt-expand
et grep
. Par exemple, dans le dictionnaire islandais,
$ lt-expand apertium-fo-is.is.dix | grep ^: :kunna<vblex><imp><p2><sg> :kunna<vblex><imp><p1><pl> :kunna<vblex><imp><p2><pl>
Le coté gauche vide ressemblera à quelque-chose comme :
<e> <p> <l></l> <r>kunna<s n="vblex"/><s n="imp"/><s n="p2"/><s n="pl"/></r> </p> </e>
Il n'est pas possible d'avoir un coté gauche vide dans un paradigme si vous n'avez pas de section (<i>
) invariante dans l'entrée de la section principale, par exemple :
<e lm="kunna"><i></i><par n="/kunna__vblex"/></e>
Cela signifie que vous devriez attendre le verbe "kunna"; là où le coté gauche est vide, vous pourriez également mettre quelque-chose à cet endroit ou rajouter quelque-chose à la section invariante.
Vitesse
$ yes mot | head -10000000 > /tmp/foo $ head /tmp/foo mot mot mot ... $ wc -l /tmp/foo 1000000 /tmp/foo $ time cat /tmp/foo | lt-proc en-ca.automorf.bin >/dev/null real 0m17.606s user 0m17.281s sys 0m0.036s 58 823 mots / seconde
Utiliser comme bibliothèque
Voir Application Lttoolbox pour la manière d'analyser and générer les mots avec lttoolbox en C++ ou Python.
Liste de souhaits
- Être capable d'avoir des symboles/balises multi-caractères sans '<' et '>'
Voir aussi
- Bases sur les dictionnaires unilingues
- Utilisation d'un dictionnaire lttoolbox
- lttoolbox et lexc
- Lttoolbox-java (français)
- Exemple de base lttoolbox
Notes
- ↑ Dans tous les paquets linguistiques courants, la direction de compilation de gauche à droite est l'analyse, alors que la direction de droite à gauche est la génération. Quoi qu'il en soit, ce n'est pas une restriction logicielle.