Actions

Projets

Verbes de mouvement en russe

De GBLL, TAL, ALAO, etc.

Projet réalisé par Alena Silvanovitch et Lynda Pabois

Lire la proposition de sujet "Jeu pour apprendre les prépositions de mouvement en russe"

Présentation du projet

Ce projet est une requête formulée par une des enseignantes de la langue russe à l’université de Grenoble. Une des difficultés et spécificités de la langue russe repose sur les verbes de mouvement. C’est une notion assez complexe, sans équivalence avec le français qui nécessite d’être travaillée progressivement c’est-à-dire dès le niveau A2. Notre projet s’inscrit pour un travail plus avancé et pour un public de niveau B1.



Deb.png

Problématique

Les verbes de mouvement en russe se construisent à partir d’un préfixe que l’on ajoute au radical du verbe. On dit qu’ils sont préverbés, ils perdent leurs caractéristiques de mouvement simple pour se transformer en couple aspectuel (perfectif/imperfectif). Seuls quelques couples verbaux sont concernés.

Description des verbes de mouvement en russe : Pour un verbe français, il y a deux verbes en russe, un perfectif qui servira à exprimer le passé ou le futur pour une action brève ou terminée et un verbe imperfectif qui servira à exprimer le présent mais également le passé ou le futur pour une action qui s’inscrit sur la durée ou bien en train de se faire. Pour ce verbe imperfectif, il existe deux formes, une forme déterminée et une indéterminée.

Par exemple, pour le verbe "aller à pied" : идти est sa forme déterminée et décrit une action ponctuelle. ходить est sa forme indéterminée et décrit un processus.

Le perfectif et l’imperfectif des verbes

De façon générale, les verbes en russe fonctionnent par paires

· читать (imperfectif) et прочитать (perfectif) = lire

· решать (imperfectif) et решить (perfectif) = décider

· становиться (imperfectif) et стать (perfectif) = devenir.

Le choix entre l’utilisation de l’un ou l’autre se fera en fonction du type d’action, de sa durée, etc… Vous comprenez ici qu’un verbe perfectif ne peut être utilisé au présent. Si bien que les verbes au présent seront imperfectifs et pour les temps du passé et du futur nous emploierons l’un ou l’autre en fonction des nuances apportées pour exprimer la durée de notre action.

Quelques exemples de couples verbaux :

Vous trouverez dans le tableau suivant 14 couples de verbes de mouvement :

DETERMINE INDÉTERMINÉ TRADUCTION
идти́ (иду́, идёшь) ходи́ть (хожу́, хо́дишь) aller, marcher (à pied)
е́хать (е́ду, е́дешь) е́здить (е́зжу, е́здишь) aller (autrement qu’à pied)
бежа́ть (бегу́, бежи́шь, бегу́т) бе́гать (бе́гаю, бе́гаешь) courir
плыть (плыву́, плывёшь) пла́вать (пла́ваю, -ешь) nager
лете́ть (лечу́, лети́шь) лета́ть (лета́ю, -ешь) voler
лезть (ле́зу, ле́зешь) ла́зить (ла́жу, ла́зишь) grimper
ползти́ (ползу́, ползёшь) по́лзать (по́лзаю, -ешь) ramper
брести́ (бреду́, бредёшь) броди́ть (брожу́, бро́дишь) errer
нести́ (несу́, несёшь) носи́ть (ношу́, но́сишь) porter (à pied)
вести́ (веду́, ведёшь) води́ть (вожу́, во́дишь) conduire (à pied)
везти́ (везу́, везёшь) вози́ть (вожу́, во́зишь) transporter
тащи́ть (тащу́, та́щишь) таска́ть (таска́ю, -ешь) traîner, tirer
кати́ть (качу́, ка́тишь) ката́ть (ката́ю, -ешь) faire rouler
гнать (гоню́, го́нишь) гоня́ть (гоня́ю, -ешь) chasser (faire partir)

Objectifs

Notre travail consiste ici à offrir une série d’exercices de difficulté croissante qui aideront l’apprenant à maîtriser ou renforcer ses connaissances dans l’utilisation des préfixes pour les verbes russes de mouvement. Nous proposons un outil qui permet d'analyser les erreurs les plus courantes dans la production de phrases avec ce type de verbes. Dans notre projet, nous avons essayé de traiter le sujet de différents points de vue. Dans deux exercices, nous nous concentrons sur le sens primaire des verbes de mouvement. Il peut y avoir certaines difficultés à comprendre la signification des préfixes. Puis dans un deuxième temps, nous aimerions que l'utilisateur s'exerce à la création correcte du verbe avec préfixe. Il existe des règles spéciales pour ajouter les préfixes au verbe. Finalement, nous proposons un algorithme qui non seulement désigne une réponse vrai ou faux, mais aussi analyse la production écrite de l’utilisateur selon trois critères: lemme, temps et aspect.

Des exercices pour travailler les verbes de mouvement

Notre outil permettra d'analyser les erreurs les plus courantes dans la production de phrases avec ce type de verbes. Nous proposons trois types d’exercices de complexité différente et chacun est conçu en langage Java.

exercice 1 = aide à comprendre certaines difficultés avec la signification des préfixes.

exercice 2 = l'utilisateur s'exerce à la création correcte du verbe avec préfixe. Il existe des règles spéciales pour ajouter les préfixes au verbe.

exercice 3 = on demande à l’utilisateur de traduire une phrase du français vers le russe.

Pour chaque exercice, nous proposons un algorithme qui donne une réponse vrai ou faux. Pour le troisième exercice, l’algorithme analyse la production écrite de l’utilisateur selon trois critères: lemme, temps et aspect.


Pour l’exercice 1, il s’agit de choisir un verbe correct en russe pour le verbe en français.

Exemple:


0emeimage.png

Globalement, il y a une variante de 400 verbes de mouvements, il y a en effet 14 formes radicales donc 28 si on reprend les formes perfectifs et imperfectifs et pour chacune de ces formes on peut ajouter 14 formes de préfixes.

        Script (Main.java, create_corpus.py)

L’algorithme conçu pour cet exercice prend par hasard le couple clé-valeur où la clé est un verbe français et la valeur est un verbe russe. Il propose la clé (verbe français) à l’utilisateur et vérifie que sa réponse corresponde à la valeur (verbe russe). Nous utilisons le dictionnaire des verbes créés auparavant (verbs_corpus.txt), donc à chaque fois l'utilisateur peut avoir différents verbes à traduire. Le fichier create_corpus.py crée un corpus de verbes de mouvements russes à partir de 7 paires de verbes de base. L'idée générale de ce corpus est de fournir à l'utilisateur différentes formes de verbes basées sur ces racines. Ainsi, il pourra exploiter non seulement les verbes de base mais aussi travailler sur d'autres verbes avec différents suffixes et préfixes. Comme il n'y a pas de tel corpus nous avons utilisé une liste de 14 verbes de base puis nous avons trouvé tous les mots de la même racine en interrogeant le site https://wordroot.ru/. Après cela, nous avons trié le résultat par terminaisons de verbes et obtenu une liste étendue de verbes avec la même racine. Nous avons ajouté une vérification supplémentaire sur https://ru.wiktionary.org/wiki/. Nous vérifions si le verbe de la liste a un attribut de mouvement dans le wiktionary, et seulement après cela, nous l'ajoutons dans la liste finale (fichier verbs_list.txt). Ensuite, grâce au module importé de Google translate nous traduisons tous ces verbes et nous obtenons le corpus de verbes en deux langues qui sera utilisé dans le premier exercice (fichier verbs_corpus.txt)


Pour l’exercice 2, il s’agit d’associer un préfixe au radical russe afin de correspondre au mieux au sens du verbe français. 1ere image.png

        Script (Main.java)

Les données se structurent sous la forme d’un tableau indexé numériquement présentant trois éléments: le verbe en français, le radical du verbe russe, le préfixe russe. L’algorithme présente le verbe français et un radical russe, ensuite il demande à l’utilisateur de choisir un préfixe correct pour ce radical et vérifie la réponse.


Pour l’exercice 3 et la fonction de traduction, l’utilisateur entre sa réponse en russe avec un verbe de mouvement conjugué. Pour cet exercice, le script va utiliser une extension vers une librairie CoreNLP pour le russe.

        Script (Main.java, Sample.java, request_ruscorpora.py)

A partir d’une première entrée manuelle avec une phrase française et sa traduction en russe, le programme repère le verbe grâce à POS tag dans sa traduction russe et avec la réponse de l’utilisateur. En faisant l’analyse morphosyntaxique de la phrase russe du code source et avec la production de l’utilisateur, il cible le lemme, le temps et l’aspect. Au terme de l’analyse, on attend qu’il donne la valeur de ces trois attributs après comparaison entre le verbe du code source et validé et celui donné par l’utilisateur.

Exemple de résultats proposés par le script


2eme image.png


Le script inclut de préciser si la réponse est bonne ou fausse et de donner la bonne réponse. Il va stocker les types d’erreur, faites par l’utilisateur. Exemple à partir d’une erreur en lemme et temps pour la phrase 1 et erreur en temps et aspect pour la phrase 2. L’algorithme va chercher ce lemme avec ce temps ou cet aspect incorrect dans un grand corpus du russe (https://ruscorpora.ru/new/) dont il va tirer une version correcte qu’il va présenter à l’utilisateur. Le scriptrequest_ruscorpora.pypermettra d’avoir un nombre infini d'exemples.

Les difficultés rencontrées

Pour l’exercice 1 : Le fait qu’il n’y ait pas de corpus existant au préalable a présenté des difficultés dans le traitement des données. Accéder directement à un dictionnaire était compliqué car il n’y avait pas d’accès à la sémantique du verbe et puis la distinction d’un verbe envers un autre était difficile étant donnée leur ressemblance. En faire une distinction à partir de traits morphologiques n'offrait pas de solution. Nous avons dû créer notre propre corpus et nous débarrasser manuellement des mots rares. Également, nous n'avons pas réussi à trouver de dictionnaire gratuit au format texte approprié pour traduire le corpus de verbes russes, la plupart des dictionnaires disponibles représentent une image numérisée impossible à interroger. Au lieu de cela, nous avons dû utiliser des dictionnaires en ligne qui n'ont pas de traduction vérifiée. Tout d'abord, nous voulions utiliser Yandex translate qui a l'avantage de traduire du russe directement vers d'autres langues sans utiliser le modèle anglais. Malheureusement, une fois le code terminé, le site n'a pas permis de transmettre plusieurs requêtes à cause du captcha. Ensuite, nous avons essayé d’interroger DeepL dans ce cas, le serveur n'a pas répondu.

Parfois, il y a des problèmes avec des demandes simples de la partie client, donc probablement dans ce cas, la réponse a pris tellement de temps que le fichier n'a jamais été traduit. Enfin, nous avons dû importer le module Google translate et traduire notre fichier avec. Nous devons admettre que la qualité de la traduction est assez faible, malgré le fait que des mots rares ont été supprimés manuellement du corpus russe. Le problème principal est que les formes de verbes perfectifs et non perfectifs ont été traduites par le même verbe français, ce qui rend impossible l'utilisation d'un tel fichier dans l’exercice. 3eme image.png

Nous avons dû changer la structure des données de tableau en dictionnaire afin de supprimer les doublons.

L'autre problème rencontré à cette étape est que le package Google a été mis à jour et le script a cessé de fonctionner. La désinstallation n'a pas aidé, et comme il s'agit d'un nouveau problème, peu de réponses peuvent être trouvées. Donc, pour l'instant, nous avons un script terminé qui ne peut pas être testé car le module Google ne fonctionne pas. Heureusement, le fichier produit par ce script bien avant a été enregistré, nous pouvons donc l'importer dans un projet java lors des étapes suivantes.

4eme.png


Pour l’exercice 3 : Des difficultés ont été rencontrées à plusieurs étapes de la construction de cet exercice. Les toutes premières ont été d’installer une extension CoreNLP pour le russe et d’en saisir le fonctionnement. Cette extension ne fait pas officiellement partie de CoreNLP et fournit une documentation très médiocre. Nous avons dû déduire comment certaines méthodes fonctionnent directement à partir des classes car il n'y avait pas d'exemples ou de description appropriées.

Lors des derniers tests, nous avons découverts que la librairie ne fonctionnait pas correctement pour certains verbes. Elle ne les reconnait pas, bien que ce soit parmi les plus basiques. Nous avons dû changer nos exercices pour éviter les verbes problématiques et NullPointerException erreur


Rajout.png

L'autre problème était l'appel du script python depuis java. Il a fallu beaucoup de temps pour modéliser correctement le processus d'exécution. Nous attirons également votre attention sur le chemin du fichier, si vous souhaitez le tester, vous devez le modifier.

5eme.png

Au final, nous avons élaboré un algorithme peu efficace pour le parsing de la page de https://ruscorpora.ru/new/. Au moment où le script a été écrit, nous ne connaissions pas les librairies comme Scrapy, donc certaines fonctions du script auraient pu être écrites de manière plus simple.

Une prise de recul

En général, nous avons atteint nos objectifs prévus. À la fin du projet, nous pouvons voir que certaines stratégies comme l'utilisation de requests, argparse et os au lieu de Scrapy, étaient inefficaces et que certains modules comme Google translate ne sont pas fiables. Nous avons également noté que CoreNLP fonctionne trop lentement pour être une librairie appropriée pour les exercices interactifs.

Les points à améliorer sont de créer un script qui vérifiera la fréquence d'utilisation de chaque mot du corpus et supprimera les mots rares.

D’autres exercices peuvent être proposés pour faire travailler les apprenants sur les verbes de mouvement russe. Il s’agit ici d’une première ébauche qui pourra être enrichie et améliorée par la suite. En effet, pour ajouter en complexité avec ce sujet, on peut à plus ou moins long terme envisager de proposer des exercices à partir des verbes de mouvement pour des expressions idiomatiques. Ou bien, on peut également envisager de travailler sur les formes homonymes des verbes de mouvement préverbés, homographes/homophones et homographes/non homophones avec une différence d’accent, mais tout cela dépasse le cadre de ce projet.