Le projet multilingue ici présenté est réalisé dans le cadre du cours "Projet Encadré" du Master 1 pluriTAL. Il a pour ambition la réalisation d'un mini-dictionnaire bilingue "français - kabyle". Le lexique collecté à cette fin provient de textes de chansons kabyles et leur traduction en français.
Dans la suite de cette présentation, nous verrons pourquoi nous avons choisi ce type de textes et comment ceux-ci ont été recueillis, alignés puis structurés pour donner lieu à un corpus parallèle. Nous reviendrons aussi sur les difficultés liées à la collecte et à l'exploitation de ce type de corpus.
Ensuite, nous passons à l'étape du traitement proprement dite. Il s'agira de présenter le processus mis en place derrière les formulaires de recherche. Deux types de traitements faisant appel à des scripts Perl/CGI sont ici proposés. Ceux-ci permettent :
Enfin, l'organisation de ce site tente d'être à l'image des différentes étapes du projet. En effet, les onglets du menu présentent les étapes de la chaine de traitement. Certaines pages sont générées automatiquement par des scripts Perl/CGI. Ces scripts sont accessibles dans ces mêmes pages. Ils sont aussi rassemblés dans le menu "Tous les scripts".
Bonne visite !
Comme mentionné ci-haut, ce projet visant à la mise au point d'un mini-dictionnaire bilingue français/kabyle requiert l'exploitation d'un corpus parallèle. Les résultats présentés ici -au delà des traitements permettant de les obtenir- dépend beaucoup de la qualité du corpus et de sa quantité. C'est la raison pour laquelle nous avons eu pour exigence de recueillir un corpus de bonne qualité.
Les recherches de corpus déjà prêts-à-l'emploi sur Internet se sont avérées vite infrucueuses. Le peu de textes trouvés, comme les textes religieux ou des contes, sont pratiquement inexploitables dans le cadre de ce travail, et ce pour divers problèmes liés au types de documents et à l'encodage. Aussi, la tâche d'alignement sur ces textes aurait pris un temps bien au delà du délai de ce projet.
Le constat étant qu'il n'existe pas encore aujourd'hui de corpus parallèles pour le kabyle. Beaucoup reste à faire dans ce domaine et il est certain que la constitution de ce type de corpus fera avancer la documentation et les recherches linguistiques sur cette langue en particulier et pour toutes les langues berbères en général.
Suite au nombreuses recherches, la collecte du corpus s'est orientée vers les textes de chansons. L'avantage avec ce type de corpus est la présence des textes en kabyle sous une forme versifiée et leur traduction quasi-parallèle en français. L'alignement a été ainsi facile à obtenir (voir le script d'alignement). Comme il s'agit de textes d'amateurs provenant de différentes sources -généralement des forums-, il a fallu harmoniser les données en apportant quelques modifications au niveau des traductions et des notations des caractères. 16 chansons et leur traductions ont ainsi pu être recuillies. Elles représentent pour tout environ 520 alignements
Les textes en kabyle et leur traduction française sont ensuite encodés en UTF-8. Dans son écriture latine, le kabyle comporte des caractères grecs comme le "?", "e", ainsi que d'autres caractères diacrités. Les caractères diacrités ont été abandonnés dans notre corpus parce qu'ils sont très peu utilisés. L'écriture a été ainsi harmonisée et simplifiée (ce qui pourraît par ailleurs faire grincer des les puristes de la langue).
Après l'alignement et l'encodage, il reste une dernière étape, à savoir la structuration des données au format XML. Le modèle proposé ici structure les données par vers et par chanson. Voici un extrait du fichier chansons.xml :
Enfin, au cours de nos recherches, nous avons trouvé un petit lexique français/kabyle d'environ 4000 entrées. Celui-ci sera, en l'absence d'un étiqueteur morphosyntaxique pour le kabyle, d'une grande utilité dans le traitement du corpus de chansons.
L’exploitation du corpus de chansons dans son format XML et les différents traitements sont faits avec des scripts Perl/CGI. L'avantage du langage Perl n'est plus à prouver dans ce type de traitements. L'utilisation du module CGI pour les applications à distance est d'une grande puissance. Le navigateur web sert dans ce cas de terminal pour l'envoi des requêtes et l'affichage des résultats. Les traitements, quant à eux, se font sur le serveur (à l'image du PHP). L'utilité et l'efficacité des expressions régulières pour la rechercher et le matching des formes n'est pas à prouver non plus.
Pour ce qui concerne la démarche, l'idée de départ a consisté à l'extraction d'un lexique à partir de textes alignés. Un ensemble d’interrogations sur le type de traitement se sont posées au fur et à mesure de l'avancée du travail. Est-il par exemple suffisant de donner l’accès à la traduction des mots ou serait-il mieux de donner à voir les contextes dans lesquels les mots apparaissent avec les informations y afférent. Les deux options sont retenues ici dans le traitement concernant la traduction lexicale. Les résultats d'une recherche lexicale se présentent à travers (1) la traduction du dictionnaire -quand celle-ci est trouvée- et (2) les contextes d'apparition de la forme recherchée avec les différentes informations y afférent.
Par ailleurs, nous tenions à ce que les traductions soient accessibles non pas simplement à partir d'une langue source vers une langue cible mais dans les deux sens, avec l'affichage des contextes des formes recherchées dans les deux langues. Cette dernière option a pu être réalisée grâce aux boutons radios du formulaire.
Dans la suite de cette présentation, nous reviendrons en détail sur les deux types de traitements, à savoir pour : (1) la recherche lexicale et (2) la recherche par patrons syntaxiques
Le script Perl/CGI mis en place pour le traitement lexical se base sur un matching de la forme introduite dans la zone de saisie du formulaire. Selon le choix de la langue, la recherche s’effectue directement sur le corpus. Le résultat de cette recherche est une liste de contextes dans lesquels la forme recherchée apparaît. La forme introduite est recherchée aussi dans le dictionnaire pour voir si sa traduction est présente dans le contexte de la langue cible.
Une mise en saillance des formes rencontrées est prévue pour l’affichage. Aussi, une traduction à partir du dictionnaire est proposée en plus. La liste des résultats comporte :
Comme le kabyle comporte des formes clitiques et des prépositions à l’intérieur des mots, la recherche de séquences de caractères est également possible. Une option permettant (ou pas) une recherche directement sur l'index pourra, par exemple être envisageable pour le traitement de grandes masses de données. Voir le script recherche_lexique.pl.
Pour ce qui concerne la recherche syntagmatique, proposée dans l'onglet "Recheche par patrons", le but est de rendre possible un matching de séquences de formes. Un étiquetage morphosyntaxique est alors effectué pour les textes en français. Comme il n’existe pas d’étiqueteur morphosyntaxique pour le kabyle, la solution proposée ici repose sur une recherche partant du français en allant vers le kabyle uniquement. Le traitement effectué dans ce sens intégre une recherche dans le dictionnaire pour vérifier si les formes d'une séquence recherchée sont présentes, auquel cas une mise en saillance de la forme est effectuée. Une traduction de ces formes est également proposée. 3 modèles de patrons sont proposés dans la recherche, en l'occurence DET- NOM | NOM - ADJ | NOM - PRP - NOM.
Les listes des patrons sont générées automatiquement par le script extract_patrons.pl sous forme de listes de liens. Celles-ci donnent accès à la traduction, quand celle-ci est possible, et aux contextes d'apparition des séquences ainsi qu'aux informations annexes comme le numéro de ligne, le titre de la chanson etc.
Les résultats obtenus sont ici présentés tels qu'ils apparaissent dans leurs contextes. Ils sont bien évidemment lacunaires, à cause de la taille du corpus mais aussi pour les erreurs présentes sur le corpus des chansons et sur le dictionnaire.
La démarche proposée ici se veut interactive. Elle met à la disposition de l'utilisateur deux types de recherches faciles d'utilisation. Le traitement appliqué sur le corpus de chansons peut-être applicable tout aussi bien sur d'autres types de corpus, dans d'autres domaines et pour d'autres langues. Cette démarche peut aussi servir dans le traitement documentaire pour l'extraction terminologique, l'extraction d'entités nommées etc. et bien evidemment dans le domaine de la dictionnairique.
Le travail réalisé à travers ce projet ouvre des perspectives pour des traitements plus poussés pour le Kabyle, notamment au niveau lexical et morphosyntaxique. L'ambition future serait de permettre à travers ce site plus d'interactivité pour la documentation du corpus et l'accès aux données (pour l'ajout, la modification et la suppression). Au stade actuel, il ne s'agit que d'un premier pas. Ce pas qui probablement aidera à mettre le pied à l'étrier au traitement automatique de la langue kabyle en particulier et pour les autres langues berbères en général.