Paradigme du Data programming
Comme nous lโavons mentionnรฉ dans le contexte de notre stage, nous disposons dโun corpus non annotรฉ (cf. chapitre 4.1). Mรชme si un corpus peut รชtre annotรฉ de maniรจre manuelle, cela demande beaucoup de temps et surtout des moyens humains particuliers, car il faudrait des professionnels de lโapprentissage des langues qui soient capables de donner des รฉtiquettes de niveaux pour chaque extrait. Nous allons donc annoter nos donnรฉes de maniรจre automatique grรขce au principe du data programming. Le concept de data programming introduit par Ratner et al. (2016) consiste ร crรฉer un corpus dโapprentissage (donnรฉes annotรฉes) ร partir dโun ensemble de rรจgles dโannotations qui sont dรฉfinies par lโutilisateur-expert. Ces rรจgles dโannotation reprรฉsentent des connaissances ou des heuristiques sur le domaine considรฉrรฉ. Elles permettent dโannoter automatiquement les donnรฉes via des fonctions de labellisations. Dans notre cas, les fonctions de labellisation se basent sur des rรจgles syntaxiques et lexicales que je vais dรฉvelopper ร partir dโouvrage de FLE et du lexique FleLex (cf. chapitre 4.5). Le data programming va nous permettre de gรฉrer les conflits entre les fonctions de labellisation. Ceux-ci surviennentquand deux fonctions de labellisation annotent un sous-ensemble de donnรฉes de maniรจre diffรฉrentes. Prenons lโexemple des deux phrases suivantes :
> Je mange une pomme
> Le parlementaire propose une motion
Si nous nous intรฉressons ร la syntaxe et au lexique de chacune de ces phrases, nous voyons que la premiรจre phrase comporte une syntaxe simple de type sujet-verbe -complรฉment et un lexique simple. Cela signifie que pour cette phrase le systรจme va renvoyer la mรชme รฉtiquette. La deuxiรจme phrase quant ร elle possรจde une syntaxe simple รฉgalement mais un lexique quโon peut considรฉrer comme plus difficile avec des mots comme ยซ parlementaire ยป et ยซ motion ยป. Pour cette phrase, le systรจme va alors renvoyer deux รฉtiquettes diffรฉrentes pour une mรชme phrase, il va donc y avoir un conflit. Ainsi, dans une approche dโannotation manuelle lโutilisateur va devoir choisir laquelle des deux รฉtiquettes utiliser ou alors choisir de fusionner les deux, mais cela peut entraรฎner une perte de prรฉcision. Le data programming permet de faire cela automatiquement en apprenant un modรจle en prenant en compte les deux รฉtiquettes renvoyรฉes par le systรจme.
Snorkel est un outil de data programmingcrรฉรฉ par Ratner et al (2017) pour permettre ร des utilisateurs de pouvoir construire facilement des donnรฉes dโentraรฎnements. Il a รฉtรฉ bรขti selon trois critรจres. Le premier est de pouvoir utiliser toutes les ressources disponibles, cโest-ร -dire de permettre ร lโutilisateur dโavoir des รฉtiquettes venant de toutes les ressources faiblement supervisรฉes ร sa disposition. La deuxiรจme est de crรฉer des donnรฉes d’entraรฎnement comme interface pour l’apprentissage automatique. Le systรจme doit รชtre capable de modรฉliser les sources d’รฉtiquette pour induire un seul รฉtiquetage probabiliste pour chaque instance. Ces รฉtiquettes sont utilisรฉes pour entraรฎner un modรจle discriminatif, qui va permettre de gรฉnรฉraliser. Enfin le dernier critรจre est celui de lโefficacitรฉ, le systรจme doit รชtre capable de fournir rapidement des rรฉsultats avec un taux de fiabilitรฉ qui soit comparable ร une annotation qui serait rรฉalisรฉe par des humains.
Ressources utilisรฉes
Corpus : OpenSubtitles
Pour constituer notre corpus de sous-titres dโextraits de films, nous avons choisi dโutiliser OpenSubtitles 2018 (Lison et Tiedemann, 2016). Cette base de donnรฉes, construite ร partir dโIMDb (Internet Movie Database), est composรฉe de plus de trois millions de fichiers au format XML de sous-titres de films et sรฉries dans 60 langues diffรฉrentes. Nous avons sรฉlectionnรฉ dans ce grand volume de donnรฉes uniquement les films et sรฉries en langue franรงaise puisquโil sโagit de la langue cible de notre systรจme.
Nous travaillons donc sur une partie seulement de ces films. Pour pouvoir les sรฉlectionner nous disposons dโun fichier ยซ OPUS metadata json.pickle ยป qui nous donne accรจs aux mรฉtadonnรฉes des films et sรฉries comprenant notamment la langue, ainsi quโun identifiant unique par film. A partir de ce fichier et dans le cadre dโun stage prรฉcรฉdent (Petiot, 2018), un dรฉcoupage automatique (Figure 3) a รฉtรฉ fait grรขce ร lโapplication dโune rรจgle simple qui consiste ร segmenter les sous-titres en sรฉquences, dรจs que deux sous-titres consรฉcutifs sont sรฉparรฉs de plus de 7 secondes de non parole. Ce dรฉlai a รฉtรฉ dรฉfini empiriquement lors de travaux prรฉcรฉdents. Lโidรฉe est de dรฉcouper les sous-titres en sรฉquences dโinteraction diffรฉrentes (dialogue entre mรชmes participants sur un sujet donnรฉ dans un mรชme cadre spatio-temporel) en faisant lโhypothรจse quโune zone de non parole relativement longue ( > 7s) peut, dans la plupart des films, sรฉparer deux scรจnes diffรฉrentes. Cela a permis dโavoir un ensemble de fichiers de quelques lignes de dialogues.
Nous disposons pour notre corpus de plusieurs dossiers rangรฉs par annรฉe de 1910 ร 2017. Nous avons fait le choix de sรฉlectionner des films et des sรฉries sur une grande รฉchelle de sortie de films pour avoir plus de donnรฉes pour entraรฎner notre corpus. Il faut cependant noter que pour les films anciens, les extraits ne sont pas des dialogues, mais le texte insรฉrรฉ entre deux scรจnes de films muets. Ces dossiers classรฉs par annรฉe comprennent des dossiers correspondant aux identifiants des films ou sรฉries, eux-mรชmes dรฉcomposรฉs en plusieurs fichiers de sรฉquences correspondant ร des dialogues. Le corpus dโOpenSubtitles2018 sert ร entraรฎner nos rรจgles (Tableau 1). Nous disposons รฉgalement dโun corpus de test issu dโune รฉtude de Randria et al. (2020) sur lโรฉvaluation de la comprรฉhension dans les interactions cinรฉmatographiques. Celui-ci est composรฉ de 55 extraits issus de 12 films franรงais diffรฉrents dont la difficultรฉ a รฉtรฉ รฉvaluรฉe par des enseignants du Franรงais Langue รtrangรจre (FLE) sur une รฉchelle de 1 ร 100. Dans la figure 4, nous voyons que les soustitres du corpus de test sont formรฉs diffรฉremment de ce que nous avons pour notre corpus dโentraรฎnement. Pour pouvoir rรฉcupรฉrer seulement les lignes de dialogue sans les time codes, nous avons dรป utiliser la bibliothรจque pysrt qui permet de passer les lignes qui ne correspondent pas au texte du sous-titre.
En plus du corpus de test (Tableau 1), nous disposons dโun second fichier comportant les notes des enseignants. Il y a trois types de notes pour chaque extrait de films : une note sur la difficultรฉ syntaxique, une note sur la difficultรฉ lexicale ainsi quโune note globale sur la difficultรฉ de lโextrait. Nous ne pouvons cependant pas donner dโexemple de ce fichier puisque la thรจse est encore en cours.
รtiquettes du CECRL
Comme nous lโavons dit le principe du data programminget son outil Snorkel sont fondรฉs sur lโannotation des donnรฉes via la crรฉation de rรจgles et la dรฉfinition dโรฉtiquettes. Pour notre systรจme, nous avons besoin dโรฉtiquettes qui reflรจtent un niveau de difficultรฉ linguistique pouvant รชtre assimilรฉes ร un niveau de difficultรฉ de comprรฉhension. Au dรฉbut, nous avons pensรฉ ร choisir des รฉtiquettes du type ยซ facile-moyen-difficile ยป cependant comment dรฉlimiter ces รฉtiquettes ? En effet, ces notions sont beaucoup trop subjectives pour รชtre utilisรฉes dans notre cadre thรฉorique et dans un systรจme que nous voulons utilisable par tous les enseignants de FLE. Nous avons pensรฉ aux niveaux du Cadre Europรฉen Commun de Rรฉfรฉrence pour les Langues (CECRL : A1, A2, B1, B2, C1 et C2). Lโavantage dโutiliser ces niveaux รฉtait double. Dans un premier temps, il sโagissait dโutiliser des รฉtiquettes qui soient familiรจres pour les enseignants, car ce sont celles-ci qui reprรฉsentent les niveaux dans lโenseignement des langues รฉtrangรจres. Dans un second temps, ce choix a รฉtรฉ motivรฉ par lโaspect pratique de ces รฉtiquettes. En effet, il est facile de trouver des ouvrages qui informent sur les รฉlรฉments qui entrent en compte dans la dรฉfinition de ces niveaux dโapprentissage selon les niveaux de difficultรฉ. Nous avons limitรฉ la caractรฉrisation du niveau de difficultรฉ ร des critรจres lexicaux et syntaxique. Pour obtenir ces informations, nous utilisons la ressource FleLex pour le lexique (cf. chapitre 4.5), et la bibliothรจque python SpaCy pour le traitement des rรจgles syntaxiques.
Bibliothรจque python : SpaCy
SpaCy est une bibliothรจque python trรจs utilisรฉe en traitement automatique des langues. Elle permet dโattribuer des vecteurs de mots, des catรฉgories (POS ou part-of-speech), des dรฉpendances, mais aussi de faire de la reconnaissance dโentitรฉs nommรฉes dans plus de 50 langues diffรฉrentes Pour cela, Spacy possรจde en franรงais trois modรจles statistiques de base entraรฎnรฉs sur diffรฉrentes donnรฉes. Un modรจle basique ยซfr_core_news_smยป, et deux modรจles plus avancรฉs ยซfr_core_news_mdยป et ยซfr_core_news_lgยป1. Les trois sont entraรฎnรฉs sur le UD French Sequoia et WikiNER mais ร la diffรฉrence du modรจle basique, les deux plus avancรฉs ont en plus les vecteurs de mots entraรฎnรฉs ร lโaide de la bibliothรจque FastText1 utilisant le modรจle CBOW (continuous bagย of words) sur les ressources Wikipedia et OSCAR (Common Crawl). Les vecteurs de mots vont permettre de faire des tests de similaritรฉ. Or pour notre systรจme nous nโavons pas besoin de cette information (similaritรฉ des mots) . De plus l’accuracy pour le ยซfr_core_news_smยป1 est de 98,52 pour les tokens et 94,20 pour les tags contre respectivement 98,52 et 95,72 pour le ยซfr_core_news_mdยป, la diffรฉrence รฉtant minime nous avons choisi dโutiliser le modรจle basique ยซfr_core_news_sm ยป.
Rรจgles syntaxiques
Pour rรฉdiger nos rรจgles qui sont lโรฉlรฉment central de notre systรจme, nous nous sommes appuyรฉs sur des ouvrages rรฉfรฉrentiels du Franรงais Langue รtrangรจre (Beacco & al., 2004; Beacco & al., 2006; Beacco & al., 2008; Beacco & al., 2011; Riba, 2016). Nous disposions dโun livre par niveaux du CECRL, mais nous nous sommes principalement servi des niveaux A2, B1, et B2. En effet, les niveaux dit ยซ avancรฉs ยป cโest-ร -dire C1 et C2 devenaient beaucoup trop prรฉcis et sรฉmantiquement complexes, et donc allaient demander des rรจgles beaucoup trop lourdes. Nous avons donc laissรฉ la sรฉlection des niveaux avancรฉs au lexique dont nous parlerons plus tard. Ces ouvrages nous ont permis dโavoir des rรจgles correctement dรฉlimitรฉes selon les niveaux. Cependant, lโutilisation de ce genre de livres peut aussi poser un problรจme linguistique. La syntaxe de lโoral est diffรฉrente de celle de lโรฉcrit, or les sous-titres de films sont justement dans une modalitรฉ รฉcrite retranscrivant ce qui est dit ร l’oral (parfois en le simplifiant, mais nous ferons abstraction de cette question). Ainsi, nous avons pris en compte ce facteur dans la rรฉdaction de no s rรจgles, et certaines rรจgles jugรฉes trop littรฉraires ont รฉtรฉ รฉliminรฉes de notre script.
La dรฉfinition dโun premier jeu de rรจgles sโest opรฉrรฉe en considรฉrant des familles de rรจgles. En tout nous disposons de 60 rรจgles comprenant 9 rรจgles adjectivales, 3 rรจgles nominales, 6 rรจgles verbales, 8 rรจgles passives, 13 rรจgles pronominales (avec et sans nรฉgation) et 20 rรจgles interrogatives ainsi quโune rรจgle sur la longueur des phrases. Lโobjectif nโรฉtait pas dโรชtre exhaustif, mais dโavoir un premier ensemble qui couvre un ensemble significatif de cas. Il y a diffรฉrentes structures de rรจgles qui sont chacune utilisรฉesselon les informations fournies par SpaCy. Certaines
vont chercher un pattern ou motif fixe de catรฉgories syntaxiques (il sโagit de la plupart des rรจgles), dโautres vont chercher une expression figรฉe, ou encore dโautres vont chercher les informations dans le tag des catรฉgories. Cependant, mรชme si la structure des rรจgles et les patterns de recherche peuvent changer selon les fonctions, ces derniรจres ont toutes une structure identique.
Rรจgle lexicale
Comme nous lโavons dit prรฉcรฉdemment, en plus des livres, nous nous sommes servis dโun lexique pour dรฉfinir les รฉtiquettes de niveaux. Ces informations lexicales sont trรจs importantes, car la difficultรฉ de comprรฉhension passe aussi par le vocabulaire du lecteur. Bien quโil faille diffรฉrencier lexique et vocabulaire, les deux niveaux dโinformations sont importants. Le premier correspond au regroupement des mots dโune langue (reprรฉsentant la structure de groupes de mots) tandis que le second reprรฉsente une partie de ce que connaรฎt le lecteur du lexique de la langue cible langue.
Dans un contexte dโapprentissage dโune langue en milieu scolaire, il y a tout de mรชme un socle de vocabulaire ร connaรฎtre ร chaque niveau.
Dans ce contexte, nous avons choisi dโutiliser FLELex CRF (Franรงois et al., 2014) qui est un lexique regroupant les frรฉquences normalisรฉes de plus de 14 000 mots pour chaque niveau du CECRL. Il a รฉtรฉ dรฉveloppรฉ conjointement par Le Centre de traitement du langage naturel (CENTAL) de lโUniversitรฉ catholique de Louvain, le Laboratoire Parole et Langue de l’Universitรฉ Aix-Marseille et la sociรฉtรฉ EarlyTracks. Pour obtenir ce corpus, les chercheurs ont rรฉcupรฉrรฉ 2071 textes de diffรฉrentes manuels scolaires datant dโaprรจs 2011. Chaque texte sโest vu attribuer le mรชme niveau que celui de son manuel, puis a รฉtรฉ transformรฉ au format XML par des outils de reconnaissance optique de caractรจres. Aprรจs une correction manuelle, un corpus de 777 000 mots a รฉtรฉ crรฉรฉ.
Aprรจs avoir utilisรฉ deux taggers pour รฉtiqueter les mots, la frรฉquence dโapparition des mots dans les diffรฉrents niveaux a รฉtรฉ calculรฉe pour pouvoir crรฉer deux lexiques diffรฉrents basรฉs sur les deux taggers utilisรฉs. Le premier lexique est FLELex TT qui a basรฉ sa frรฉquence sur la tokenization et les part-of-speech de Treetagger. Ce lexique compte en tout 14 236 entrรฉes. Le deuxiรจme est FLELex CRF qui lui est basรฉ sur les rรฉsultats du tagger CRF et qui compte 17 871 entrรฉes. Nous avons choisi dโutiliser FLELex CRF tout dโabord car il contient un plus grand nombre dโentrรฉes mais aussi car selon Franรงois et al (2014), celui-ci fournit une meilleure estimation des frรฉquences, mรชme si certaines dโentre elles ne sont pas bien รฉtiquetรฉes.
Nous avons dรฉcidรฉ de rรฉcupรฉrer principalement les frรฉquences des niveaux B2, C1 et C2, car les deux derniers niveaux ne sont pas reprรฉsentรฉs dans les rรจgles syntaxiques, ce qui donne ainsi une information complรฉmentaire. Pour cela, nous disposons dโun fichier ยซ fle_converted_B2.txt ยป crรฉรฉ ร partir des frรฉquences qui se compose uniquement du lemme, du part-of-speech, et de son niveau de difficultรฉ (figure 7).
Mise en ลuvre
Le corpus de sous-titre dont nous disposons รฉtant trรจs important, il est nรฉcessaire de lancer le traitement sur une machine capable de traiter ce volume de donnรฉes en un temps raisonnable.
Avant de dรฉcrire l’implรฉmentation des rรจgles, je vais donnerune brรจve explication sur la plate-forme utilisรฉe pour exรฉcuter mon script.
Osirim Osirim
(Observatoire des Systรจmes dโIndexation et de Recherche dโInformation Multimรฉdia) est une plate forme de lโIRIT disposant dโenviron 1 Po de stockage. Elle est composรฉe de deux nลuds : le nลud interactif et le nลud de calcul. Le premier permet ร lโutilisateur de se connecter, on peut y accรฉder grรขce ร des identifiants via ssh (Secure Shell) qui est une commande sรฉcurisรฉe de connexion ร distance. Un fois connectรฉ, il permet de lancer les calculs sur le second nลud en utilisant un jobย SLURM via la commande sbatch. Pour cela, il est possible de crรฉer un fichier shell qui va lancer le job liรฉ ร lโexรฉcution dโun script donnรฉ. Le temps dโexรฉcution du script peut รชtre surveillรฉ avec la commande squeue, cependant cette commande va montrer tous les jobs en cours, alors il est possible de surveiller uniquement son calcul avec la commande suivante : squeue|grep <nom_utilisateur>
Lโutilisation de la plate-forme OSIRIM a รฉtรฉ un avantage pour pouvoir gagner en performance, et permettre de lancer notre script sur un grand volume de donnรฉes. Cโest aussi sur cette plate-forme que nous avons rรฉcupรฉrรฉ notre corpus et toutes les ressources nรฉcessaires pour notre projet.
Implรฉmentation des rรจgles
Notre systรจme dโannotation faiblement supervisรฉ dispose dโun premier jeu de 60 rรจgles, chacune dโelle est classรฉe dans des catรฉgories diffรฉrentes : verbales, adjectivales, pronominales, modales ou encore interrogatives.
Lโรฉcriture de ces rรจgles sโest faite en plusieurs รฉtapes. La premiรจre a รฉtรฉ de sรฉlectionner dans les ouvrages les diffรฉrentes rรจgles (structure syntaxique ou niveaux de lโapprentissage des temps et mode par exemple, cf. chapitre 4.4) selon plusieurs critรจres. Le premier concerne la complexitรฉ de la rรจgle, il ne fallait pas choisir une rรจgle trop complexe ร รฉcrire en code car mรชme si en thรฉorie nous pouvons penser que cela va nous aider ร รชtre prรฉcis dans ce que nous renvoyons, en pratique il est possible quโun mot ou une ponctuation vienne ยซ polluer ยป la structure que nous recherchons et ainsi la rendre inutilisable. Prenons lโexemple des constructions pronominales, pour les niveaux les plus รฉlevรฉs dans certaines structures il pouvait y avoir plus de quatre pronoms dans une mรชme phrase ce qui les rend intรฉressantes mais beaucoup trop complexes ร dรฉcrire.
Le deuxiรจme critรจre est la pertinence, par exemple, nous nโavons pas sรฉlectionnรฉ la rรจgle de subordination, cโest-ร -dire renvoyer une รฉtiquettes suivant le temps qui suit une subordonnรฉe introduite par ยซ que ยป ou ยซ quโ ยป, car nous donnons dรฉjร une รฉtiquette avec le mode et le temps verbal. Le dernier critรจre est les informations fournies par SpaCy qui vont nous aider ร dรฉcider quelles rรจgles sont rรฉalisables. Ce premier travail a permis de rรฉcupรฉrer les rรจgles qui semblaient les plus judicieuses pour notre systรจme. Unefois cette sรฉlection faite, la deuxiรจme รฉtape a consistรฉ ร รฉcrire toutes ces rรจgles en pseudo-code, cโest ร ce moment lร que le travail en amont sur les informations fournies par SpaCy a รฉtรฉ utile. Par exemple, pour ce qui est des rรจgles verbales, lโinformation du mode et du temps รฉtaient donnรฉes dans le token.tag cโest-ร -dire les informations du part-of-speech (POS ou catรฉgorie lexicale). Ainsi pour pouvoir renvoyer des รฉtiquettes de niveaux, il fallait chercher dans le token.tag le mode et le temps du verbe. La troisiรจme รฉtape a รฉtรฉ dโรฉcrire les rรจgles en code python sur le script Snorkel fourni prรฉalablement par Tim Van De Cruys. Cet teรฉtape a รฉtรฉ la plus longue, car il fallait gรฉrer les erreurs de SpaCy (que nous aborderons plus tard), mais aussi la syntaxe de Snorkel dans la maniรจre dโarticuler les fonctions, et de renvoyer les รฉtiquettes.
Erreurs de SpaCy
Nous savons que SpaCynโest pas aussi bien entraรฎnรฉ sur le franรงais que sur lโanglais, il est donc possible dโavoir des erreurs dโรฉtiquetage qui peuvent porter prรฉjudice au dรฉclenchement des rรจgles. Par exemple, le pronom ยซ tu ยป va รชtre รฉtiquetรฉ en tant que dรฉterminant(DET), auxiliaire (AUX) ou encore verbe (VERB)au lieu de pronom (PRON). Autre exemple, les temps et les modes peuvent ne pas รชtre correctement รฉtiquetรฉs. Ainsi nous aurons un temps au prรฉsent alors que le verbe est ร lโimparfait. Cela peut empรชcher une rรจgle de se dรฉclencher ou alors en dรฉclencher une qui nโa pas lieu dโรชtre. Cependant, nous avons choisi dโignorer ce mauvais รฉtiquetage, car il constitue une infime partie de ce que donne SpaCy et ainsi peut รชtre considรฉrรฉ comme du bruit marginal. Malgrรฉ la dรฉcision de garder les erreurs, si les rรจgles le permettaient, certains changements ont รฉtรฉ apportรฉs pour pallier certainsproblรจmes dโรฉtiquetage syntaxiques de SpaCy.
Analyse des rรฉsultats avec les rรจgles syntaxiques et lexicales
Pour nos rรจgles lexicales, nous utilisons le lexique FLELex, si un des mots du corpus apparaรฎt dans la liste des mots de B2, C1 et C2 alors le niveau associรฉ ร ce mot va รชtre renvoyรฉ. Cette analyse nous permet de voir les conflits entre les rรจgles lexicales et syntaxiques. En effet, il est possible que la syntaxe dโune phrase soit simple mais que ce soit le lexique qui rende la comprรฉhension difficile. La figure 16, ci-dessous, montre les rรฉsultats de lโentraรฎnement des rรจgles syntaxiques et lexicales. Nous voyons que sur les 18 000 mots du corpus FLElex_CRF seulement 5 000 sont sรฉlectionnรฉs, car ils apparaissent dans le lexique ร partir du niveau B2.
Avec les 5 derniรจres lignes du rรฉsultat, nous remarquons que la couverture, le chevauchement et le conflit sont les mรชmes, ce qui signifie que ces 5 mots se sont retrouvรฉs dans des structures des rรจgles syntaxiques et quโร chaque fois lโรฉtiquette de niveau renvoyรฉe รฉtait diffรฉrente de celle renvoyรฉ par la rรจgle syntaxique. La couverture de chacun de ces mots est trรจs faible (<1%). On explique ce faible score par lโutilisation peu courante de certains mots dans un contexte non prรฉcis.
Par exemple, le mot รฉvierest un mot rare dans une conversation sauf exception dans un contexte prรฉcis (cuisine, salle de bain, piรจce dโeauโฆ), il en va de mรชme pour รฎlotqui lui est encore moins courant dans une conversation ordinaire.
Lโaddition dโun ensemble de rรจgles lexicales ร nos rรจgles syntaxiques nous permet de rendre notre systรจme plus complet puisque nous prenons en compte deux paramรจtres. Aprรจs cette premiรจre analyse, nous voulons tester notre systรจme sur un corpus test diffรฉrent de celui dโOpenSubtitle, mais pour lequel nous disposons dโune vรฉritรฉ de terrain (Randria et al., 2020). En effet, pour lโinstant nous ne pouvons pas affirmer que lโรฉtiquetage de notre systรจme peut รชtre en accord avec ce que pensent des enseignants du FLE. Pour tester notre systรจme, nous allons donc utiliser le corpus test dโEstelle Randria prรฉsentรฉ plus haut (cf. chapitre 4.1).
Analyse des rรฉsultats avec le corpus test
Lโanalyse des rรฉsultats du corpus de test doit permettre de vรฉrifier lโaccuracyde nos fonctions de labellisations. En effet, Snorkel dispose pour cela de la fonction label_model_acc. Pour tester notre modรจle nous disposons donc du corpus dโEstelle Randria constituรฉ de 55 extraits pour 12 films, ainsi que des niveaux de difficultรฉ donnรฉspar des enseignants de FLE pour chaque extrait.
Pour notre test, nous allons ainsi comparer les รฉtiquettes renvoyรฉes par notre systรจme avec celles que les enseignants ont attribuรฉes.
Pour pouvoir travailler avec le corpus dโEstelle Randria qui est composรฉ de fichier srt, nous avons utilisรฉ pysrt, puis assemblรฉ les notes des enseignants avec le titre des extraits de film et leurs sous-titres dans un dictionnaire, oรน le titre de lโextrait est la clรฉ et les notes (lexicale ou syntaxique) et les sous-titres sont les valeurs (figure 17). Les notes donnรฉes par les enseignants รฉtaient de 0 ร 100 sur une รฉchelle de difficultรฉ. Pour correspondre ร notre propre รฉchelle de niveau, nous avons tout simplement divisรฉ lโรฉchelle des notes des enseignants par 4 pour faire une รฉchelle qui corresponde au 4 niveaux les plus utilisรฉs dans notre systรจme (cโest-ร -dire A1, A2, B1 et B2).
Amรฉliorations possibles
Comme nous lโavons constatรฉ pour nos rรฉsultats, certaines fonctions ne se dรฉclenchent pas pour plusieurs raisons. La premiรจre est le caractรจre ยซ รฉcrit ยปtextuel des rรจgles, car malgrรฉ le fait que nous travaillons sur des donnรฉes รฉcritestextuelles, celles-ci sont avant tout calquรฉes sur de lโoral. Et mรชme sโil y a une certaine mise en forme textuel ledes interactions, les sous-titres restent quand mรชme plus proche de la syntaxe orale. De ce fait, nos rรจgles tout droit sorties de livre peuvent parfois รชtre inadaptรฉes ร la rรฉalitรฉ langagiรจre de lโoral. Ainsi, il serait intรฉressant de faire un travail pour adapter ces rรจgles ร un contexte oral, pour pouvoir rรฉduire les erreurs et le nombre de rรจgles non dรฉclenchรฉes.
Une deuxiรจme amรฉlioration possible serait dโutiliser un autre annotateur que SpaCy pour limiter le nombre dโerreurs dโรฉtiquetage, car nous savons que certaines de nos rรจgles ne se sont pas dรฉclenchรฉes ร cause de problรจme de ce genre. Dโautres ont renvoyรฉ des ABSTAIN, car les critรจres que nous cherchions dans les tagsnโรฉtaient pas toujours prรฉsents. Par exemple, pour le passif, il y a des fois oรน dans le tag du verbe la mentionยซ voice=passive ยป nโest pas prรฉsente. Sโil nโest pas aisรฉ de changer dโannotateur, car avec snorkel, SpaCy est le mieux intรฉgrรฉ, il est cependant possible dโadapter certaines rรจgles pour quโelles prennent en compte les erreurs dโรฉtiquetage et de manque dโinformation. Pour illustrer les erreurs de SpaCy nous pouvons prendre lโexemple de la fonction interrogative struc_interro2a qui cherchait la structure [โVERBโ, โPRONโ,โSCONJโ,โPRONโ,โVERBโ] (figure 19) mais nous avons dรป changer car la construction de la liste des part-of-speech pour rechercher la structure ne se faisait pas bien.
Bilan
Travail rรฉalisรฉ
Pour ce stage notre objectif รฉtait de crรฉer un systรจme qui permet d’annoter automatiquement de grandes quantitรฉs de donnรฉes selon des niveaux de difficultรฉ.
La premiรจre รฉtape a donc รฉtรฉ de dรฉfinir ces niveaux de difficultรฉ, notre choix sโest portรฉ sur les รฉtiquettes du CECRL. A partir de lร , jโai pu dรฉfinir, implรฉmenter et lancer des rรจgles syntaxiques et lexicales.
Pour les rรจgles syntaxiques, je me suis basรฉ sur des ouvrages du Franรงais Langue รtrangรจre des diffรฉrents niveaux du CECRL. Jโai sรฉlectionnรฉ dans ces ouvrages des structures pour construire mes rรจgles, cette sรฉlection sโest faite en lien avec les informations fournies par SpaCy et la pertinence des rรจgles dans un contexte de transcription de lโoral (sous-titre). Une fois les structures sรฉlectionnรฉes, jโai travaillรฉ ร lโimplรฉmentation des rรจgles dโabord sur un script utilisant uniquement SpaCy puis une fois la rรจgle mise au point et fonctionnelle, je suis passรฉe sur le script Snorkel permettant de renvoyer les รฉtiquettes. Ce script a รฉtรฉ fourni par mon tuteur Tim Van De Cruys au dรฉbut de mon stage, il a รฉtรฉ modifiรฉ et amรฉliorรฉ ร quelques reprises pendant mon stage(par exemple pour rรฉcupรฉrer uniquement les films dont les sous-titres sont franรงais, gรฉrer les problรจmes dโidentifiants de certains films). Chacune des rรจgles syntaxiques a demandรฉ un travail de rรฉflexion sur la langue, cโest-ร -dire se questionner sur la rรฉalitรฉ linguistique de lโoral et de la transcription. Pour les rรจgles lexicales, il a juste fallu ajouter au script Snorkel le fichier des frรฉquences dโapparition des mots par niveaux constituรฉ comme ceci : mot, part-of-speech, niveau. Une fois ce travail fait, jโai lancรฉ le script Snorkel depuis le serveur Osirim, analyser les rรฉsultats et apporter des modifications ร certaines rรจgles si nรฉcessaire. Quand la majoritรฉ des rรจgles ont รฉtรฉ dรฉclenchรฉes par le systรจme pour le corpus dโentraรฎnement, nous avons dรฉcidรฉ de le lancer sur le corpus test.
Pour la partie test, Estelle Randria nous a fourni son corpus (fichierssrt) ainsi que les notes des enseignants (fichier csv). Pour le fichier csv, ma tutrice Isabelle Ferranรฉ sโest occupรฉ de modifier le fichier pour que les notes des enseignants correspondent ร nos niveaux de difficultรฉ.
Jโai donc rรฉcupรฉrรฉ le corpus et le fichier des notes, et grรขce ร un script jโai pu stocker les informations dans un dictionnaire python. Celui-ci va permettre ensuite de rรฉcupรฉrer plus facilement le corpus et les notes pour pouvoir tester notre systรจme puis comparer nos รฉtiquettes de niveaux avec les รฉtiquettes donnรฉes par les enseignants.
|
Table des matiรจres
Remerciements
Rรฉsumรฉ
Abstract
Introduction
PARTIE 1
Chapitre 1 : Contexte du stage
Chapitre 2 : Comment mesurer la difficultรฉ de comprรฉhension ?
PARTIE 2
Chapitre 3 : Paradigme du Data programming
Chapitre 3.1 : Lโoutil Snorkel
Chapitre 4 : Ressources utilisรฉes
4.1 Corpus : OpenSubtitles
4.2 รtiquettes du CECRL
4.3 Bibliothรจque python : SpaCy
4.4 Rรจgles syntaxiques
4.5 Rรจgle lexicale
PARTIE 3
Chapitre 5 : Mise en ลuvre
5.1 Osirim
5.2 Implรฉmentation des rรจgles
5.3 Erreurs de SpaCy
Chapitre 6 : Rรฉsultats et analyse
6.1 Analyse des premiers rรฉsultats de lโentraรฎnement
6.1.1 Explication des rรฉsultats fournis par Snorkel
6.1.2 Analyse des rรฉsultats avec les rรจgles syntaxiques
6.1.2 Analyse des rรฉsultats avec les rรจgles syntaxiques et lexicales
6.2 Analyse des rรฉsultats avec le corpus test
Chapitre 7 : Amรฉliorations possibles
PARTIE 4
Chapitre 8 : Bilan
8.1 Travail rรฉalisรฉ
8.2 Bilan personnel
Bibliographie
Sitographie
Annexes
Tรฉlรฉcharger le rapport complet