Traitement de corpus Support de cours Master CST – V. Clavier 2010 NooJ est un système de traitement de corpus élaboré par Max Silberztein (Université de Franche Comté) qui permet de construire et de gérer des dictionnaires et grammaires électroniques à large couverture, afin de formaliser divers niveaux des langues naturelles. Ce système, qui permet des traitements assez sophistiqués, est gratuit (téléchargeable sur l’URL : http://www.nooj4nlp.net).Il permet d’effectuer des recherches fines sur les corpus, à partir d’expressions régulières ou de grammaires élaborées à partir d’automates d’états finis. Nous ne verrons dans le cadre de ce cours que quelques fonctionnalités simples de ce logiciel : nous allons construire une grammaire des thématiques scientifiques et techniques, afin de définir un parcours dans la collection numérique du Progrès Illustré. Pour préparer un corpus avec Nooj de façon à pouvoir l’explorer, plusieurs étapes sont nécessaires. A) Importer un corpus dans Nooj On travaille sur le fichier Corpus (enregistrer tous les textes sur un seul fichier) Aller dans Documents/ Nooj/ Projects et enregistrer le fichier au format « texte seulement ». On obtient : Corpus.txt Sous Nooj, ouvrir (File/Open/Text) Corpus.txt Autre procédure (pour certains ordis) Aller dans : System C/ Documents & Settings/All Users/Bureau/ Nooj/fr/Projects Importer le texte : sélectionner « import Text » Choisir le français comme langue et le format Western European Windows sous Windows. Le texte utilisé sous NooJ aura ensuite l’extension .not (Nooj Text). Par la suite, pour ouvrir ce texte, il suffira d’ouvrir le fichier et non plus de l’importer. 16/04/2017 1 B) Analyse lexicale du texte NooJ permet de faire des recherches à partir des catégories grammaticales ou des lemmes, mais il faut pour cela qu’une analyse lexicale des corpus ait été réalisée. Pour effectuer l’analyse lexicale, aller sur TEXT/Linguistic analysis (ou en cliquant sur le bouton droit de la souris, puis Linguistic Analysis). Une fois que l’analyse linguistique est terminée, enregistrer le fichier. Plusieurs fichiers sont produits par le système : - - le fichier des caractères et leur fréquence. le fichier des « tokens » (motsformes) et leur fréquence. le fichier des digrammes (suite de deux tokens) et leur fréquence. le fichier des mots annotés (annotation) : mots analysés par l’analyseur lexical. le fichier des mots inconnus par l’analyseur lexical. Q1. A partir du fichier des tokens : Cliquer sur « fréquence » on obtient les tokens par ordre de fréquences décroissantes. Quels sont les premiers mots lexicaux ? A quel rang apparaissentils ? Q2 : Quels sont les digrams qui relèvent de la thématique des aliments santé ? Classez-les par ordre de fréquences décroissantes ? C) Interrogation sur une expression régulière (a NooJ regular expression) 1) Mot forme vont extrait toutes les occurrences de « vont » 2 ) Lemme Interrogation à partir de la forme canonique (le lemme) du mot ; l’infinitif pour le verbe, le singulier pour le nom, le masculin singulier pour l’adjectif, etc. Pour interroger sur le lemme, on entoure le mot de chevrons. <aller> extrait toutes les formes du verbes aller : vais, va, iront, iraient … On peut ajouter aux lemmes des informations morphologiques (genre, nombre, temps, etc.). L’ordre des traits n’a pas d’importance. <être+3+s> <manger+P> 16/04/2017 : verbe être à la troisième personne : le verbe ronger au présent 2 3) Interrogation sur une catégorie On peut également effectuer une interrogation sur une catégorie syntaxique (la catégorie est entourée de chevrons). La catégorie peut ou non être accompagnée d’informations morphologiques . <N> <V+P> : les noms : les verbes au présent 4) Expressions complexes Suite de deux éléments : une suite d’éléments qui contient des mots-formes, des lemmes ou des catégories. <DET+m+s> <N+m+s> extrait un déterminant masculin singulier suivi d’un nom masculin singulier. L’opérateur « + » indique l’alternative. (le+la+l’) <N+s> indique que le premier mot qui est soit le, soit la , soit l’ est suivi d’un nom au singulier. L’élément vide est marqué par <E> <un> (<A>+<E>) <N> indique que le déterminant un (sous toutes ses formes fléchies, i.e. un, une, des) est suivi d’un adjectif facultatif puis d’un nom. L’opérateur « * » (l’étoile de Kleene) indique qu’un élément apparaît 0 ou N fois. <un> <A>* <N> <A>* extrait les suites où le premier mot est le déterminant sous toutes ses formes suivi d’un adjectif facultatif et répétable, d’un nom, puis d’un autre adjectif facultatif et répétable. Q3. En utilisant le formulaire des expressions régulières, quels sont les verbes les plus fréquents dans les deux corpus ? Que constatez-vous ? Quelles sont les expansions situées dans le contexte droit de aliment ? Classez les expansions (adjectifs, compléments du nom, etc.) D) Interroger les textes avec des « grammaires » Ce sont en fait des automates d’états finis (qui permettent d’effectuer le même type de recherches que les expressions régulières, mais beaucoup plus commodément). La grammaire ci-dessous permet d’analyser les contextes où le verbe être est suivi d’un adverbe facultatif et d’un adjectif. 16/04/2017 3 Ce graphe est équivalent à l’expression régulière : <être> (<ADV>+<E>) <A>. Les mêmes conventions d’écriture sont employées que pour les expressions régulières. Pour créer ce graphe, on ira sur File/New/Grammar/Syntax. Apparaissent alors un état initial et un état final. On va créer des « boîtes » qui correspondent aux éléments linguistiques qui seront lus. Pour créer une nouvelle boîte : clic droit / Edit / Create Node. On doit ensuite remplir la boîte. Pour valider le contenu, on fera CTL + Entrée. Pour lier les boîtes entre elles : on clique (gauche) sur la boîte de départ, puis on clique sur la boîte d’arrivée. Pour enlever un lien existant, on procédera de la même façon. Une fois la grammaire créée, on l’enregistre (Save) en lui donnant un nom. On pourra ensuite l’utiliser dans la recherche dans les textes en sélectionnant (select Nooj Grammar) la grammaire. Par exemple, la grammaire correspondant au graphe ci-dessus sera appelée être_A.nog et exploitée dans « Locate pattern ». Q4 : Faites une grammaire pour identifier les catégories d’aliments, de nutriments et / ou de compléments alimentaires les plus cités dans le corpus. (exemple à adpter aux aliments) Exemple d’une grammaire des institutions scientifiques et techniques : le but est d’annoter les expressions suivantes avec l’étiquette InstitutionsS&T : atelier, Ecole Polytechnique, fabrique, Faculté, hôpital, laboratoire, université. Pour écrire la grammaire, on va créer un graphe. Aller dans File/New/Grammar/Syntax. Créer un nœud initial : <E>/<InstitutionsS&T Créer un nœud final : <E>/> Créer les nœuds intermédiaires <atelier>, <Ecole Polytechnique> <fabrique>, <Faculté>, <hôpital>, <laboratoire>, <université>. Enregistrer la grammaire sous le nom « InstitutionS&T » On obtient la grammaire suivante : 16/04/2017 4 On peut ensuite appeler la grammaire en allant dans Text / Locate / A nooj Grammar Cocher « All matches » + un onglet de couleur. Les résultats s’affiche dans une concordance Si on clique sur Output, on voit les annotations. On observe que la requête génère du bruit. Sélectionner les étiquettes qui ne conviennent pas (par ex. lorsque atelier désigne un atelier de peinture, ou que fabrique est un verbe). Aller dans CONCORDANCE / Filter out selected lines. On peut exporter les extraits de textes (Extract Matching text units),on peut ensuite faire disparaître les lignes qui ne sont pas conformes à la grammaire souhaitée 16/04/2017 5