Paradigme du Data programming

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.

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

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

Rapport PFE, mรฉmoire et thรจse PDFTรฉlรฉcharger le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *