Principes techniques de l'analyse morphologique |
L'analyseur morphologique
Créons un fichier src/java/gpl/pierrick/brihaye/aramorph/test/testdocs/ktAb.txt dans lequel nous allons saisir un seul mot, كتاب.
Exécutons ensuite le code suivant :
java -cp build/ArabicAnalyzer.jar;lib/commons-collections.jar ¶ gpl.pierrick.brihaye.aramorph.AraMorph ¶ src/java/gpl/pierrick/brihaye/aramorph/test/testdocs/ktAb.txt CP1256 ¶ results.txt UTF-8 -v
Examinons le fichier de sortie results.txt qui est, lui, en UTF-8 :
Processing token : كتاب Transliteration : ktAb Token not yet processed. Token has direct solutions. SOLUTION #3 Lemma : kAtib Vocalized as : كُتّاب Morphology : prefix : Pref-0 stem : N suffix : Suff-0 Grammatical category : stem : كُتّاب NOUN Glossed as : stem : authors/writers SOLUTION #1 Lemma : kitAb Vocalized as : كِتاب Morphology : prefix : Pref-0 stem : Ndu suffix : Suff-0 Grammatical category : stem : كِتاب NOUN Glossed as : stem : book SOLUTION #2 Lemma : kut~Ab Vocalized as : كُتّاب Morphology : prefix : Pref-0 stem : N suffix : Suff-0 Grammatical category : stem : كُتّاب NOUN Glossed as : stem : kuttab (village school)/Quran school
Le fonctionnement de l'analyseur morphologique devient dès lors plus évident :
Message | Signification |
---|---|
Processing token | le mot actuellement traité |
Transliteration | la translitération du mot dans le système de translitération de Buckwalter ; uniquement avec le paramètre -v et si aucun encodage de sortie n'est spécifié |
Token not yet processed. | indique que le mot n'a pas encore été analysé et qu'il n'est donc pas dans le cache d'AraMorph ; uniquement avec le paramètre -v |
Token has direct solutions. |
indique que le mot est analysable dans son orthographe actuelle ; uniquement avec le paramètre -v. En effet, AraMorph est capable de considérer des orthographes alternatives comme un ـه final en lieu et place de ـة ou un ـى final en lieu et place de ـي... |
SOLUTION | indique chacune des solutions pour le mot. L'ordre d'affichage n'est pas signifiant. |
Lemma | indique l'identifant du lemme de la solution dans le dictionnaire des radicaux. |
Vocalized as : | indique la vocalisation de la solution. |
Morphology : | indique la catégorie morphologique du préfixe, du radical et du suffixe de la solution. |
Grammatical category : | indique la catégorie grammaticale du préfixe, du radical et du suffixe de la solution. |
Glossed as : | indique une ou plusieurs traductions anglaises pour le préfixe, le radical et le suffixe de la solution. |
Comment AraMorph parvient-il à proposer des solutions acceptables ?
Avant toute chose, il faut savoir que AraMorph, comme son ancêtre en Perl, travaille sur une translitération du mot arabe. Cette translitération utilise naturellement le système de translitération de Buckwalter. Ainsi, كتاب est translitéré en ktAb avant son analyse morphologique.
Ensuite, AraMorph utilise un algorithme de force brute pour décomposer le mot en une succession de préfixe, radical et préfixe possibles :
préfixe | radical | suffixe |
---|---|---|
ktAb | Ø | Ø |
ktA | b | Ø |
ktA | Ø | b |
kt | Ab | Ø |
kt | A | b |
kt | Ø | Ab |
k | tAb | Ø |
k | tA | b |
k | t | Ab |
k | Ø | tAb |
Ø | ktAb | Ø |
Ø | ktA | b |
Ø | kt | Ab |
Ø | k | tAb |
Ø | Ø | ktAb |
Ensuite, AraMorph vérifie la présence de chacun des éléments dans trois dictionnaires :
- le préfixe, dans gpl/pierrick/brihaye/aramorph/dictionaries/dictPrefixes
- le radical, dans gpl/pierrick/brihaye/aramorph/dictionaries/dictStems
- le suffixe, dans gpl/pierrick/brihaye/aramorph/dictionaries/dictSuffixes
En cas de succès, AraMorph récupère l'information morphologique de chacun des éléments.
Le cas échéant, AraMorph vérifie ensuite si les morphologies de chacun des éléments sont compatibles entre elles en examinant trois tables de correspondances licites :
- entre le préfixe et le radical, dans gpl/pierrick/brihaye/aramorph/dictionaries/tableAB
- entre le préfixe et le suffixe, dans gpl/pierrick/brihaye/aramorph/dictionaries/tableAC
- entre le radical et le suffixe, dans gpl/pierrick/brihaye/aramorph/dictionaries/tableBC
Un mot pour lequel :
- préfixe, radical et suffixe disposent d'une entrée de dictionnaire,
- préfixe, radical et suffixe sont morphologiquement compatibles entre eux,
... est une solution. Pour كتاب, elle sont au nombre de trois ainsi qu'on le voit plus haut.
En cas de problèmes d'interprétation, peu nombreux au demeurant, des messages sont émis sur la console.