P y RATA , Python Rule-based fe A ture s T ructure Analysis (2018)

Abstract: Nous présentons PyRATA (Python Rules-based feAture sTructure Analysis) un module Python (version 3) diffusé sous licence Apache V2 et disponible sur github 4 et dans les dépots pypi 5 . PyRATA a pour objectif de permettre de l’analyse à base de règles sur des données structurées. Le langage de PyRATA offre une expressivité qui couvre les fonctionnalités proposées par les modules alternatifs et davantage. Conçu pour être intuitif, la syntaxe des motifs et l’interface de programmation (API) suivent les définitions de standards existants, respectivement la syntaxe des expressions régulières de Perl et l’API du module Python re. PyRATA travaille sur des structures de données simples et natives de Python : une liste de dictionnaires (c-à-d une liste de tables d’associations). Cela lui permet de traiter des données de différentes natures (textuelles ou non) telles qu’une liste de mots, une liste de phrases, une liste de messages d’un fil de discussion, une liste d’événements d’un agenda... Cette spécificité le rend indépendant de la nature des annotations (a fortiori linguistiques) associées à la donnée manipulée. Ce travail a été financé par le projet ANR 2016 PASTEL.

## résumé les approches à base de règles ne doivent pas être opposées à celles à base d'apprentissage automatique. les premières sont connues pour permettre d'obtenir rapidement des résultats auto-explicatifs avec seulement quelques règles, mais présentent l'inconvénient d'être difficiles à maintenir lorsque les règles deviennent complexes et que leur nombre croît. les approches à base d'apprentissage sont capables de généralisation, et donc, de fournir des résultats même sur des données jamais rencontrées, mais elles requièrent des données d'entraînement lesquelles résultent souvent d'une tâche d'annotation manuelle coûteuse, et leurs résultats sont plus difficiles à expliquer. actuellement les approches à base de règles ne sont pas populaires dans la communauté du traitement automatique des langues (tal). néanmoins il y a encore de bonnes raisons de les utiliser : 1) puisqu'elles ne requièrent pas de données d'entraînement, elles constituent une bonne première approche pour explorer des données et définir plus précisément un problème ; 2) pour certaines langues, des problèmes peuvent être traîtées de manière déterministe ; 3) pour produire des données qui serviront à entraîner un système à base d'apprentissage ; 4) pour extraire des traits des données et laisser un système à base d'apprentissage apprendre à les combiner ; 5) pour augmenter les capacités d'un système à base d'apprentissage en pré-ou post-traitant les données afin d'obtenir une performance de 100 % @xcite . la communauté du tal bénéficie de quelques solutions logicielles foot_0 pour rechercher des motifs d'annotations et traiter les résultats, à savoir : gate jape foot_1 @xcite et uima ruta foot_2 @xcite . ces solutions requièrent une prise en main de leur langage d'expression des règles, et s'insèrent dans l'adoption d'un cadre d'analyse textuelle plus global, qui a son tour requière la prise en main de ses concepts ainsi que quelques bagages techniques (ruta est très intégré à l'environnement de développement eclipse). de plus, le programmeur aura préférentiellement à développer en java pour utiliser ces solutions. les utilisateurs du langage de programmation python ne bénéficient pas d'instruments aussi avancés, mêmes si quelques modules sont disponibles à savoir : python nltk chunk @xcite , clips pattern.search @xcite et spacy. le module spacy présente les meilleures performances en temps de traitement mais a une expressivité très limitée et requière des compétences en programmation. le module pattern se focalise sur certains types d'annotation et contraint à l'usage de ses traitements linguistiques. le module pattern n'autorise pas d'exprimer des motifs sur plus d'un type d'annotation à la fois. nous présentons pyrata (python rules-based feature structure analysis) un module python (version 3) diffusé sous licence apache v2 et disponible sur github 4 et dans les dépots pypi 5 . pyrata a pour objectif de permettre de l'analyse à base de règles sur des données structurées. le langage de pyrata offre une expressivité qui couvre les fonctionnalités proposées par les modules alternatifs et davantage. conçu pour être intuitif, la syntaxe des motifs et l'interface de programmation (api) suivent les définitions de standards existants, respectivement la syntaxe des expressions régulières de perl et l'api du module python re. pyrata travaille sur des structures de données simples et natives de python : une liste de dictionnaires (c-à-d une liste de tables d'associations). cela lui permet de traiter des données de différentes natures (textuelles ou non) telles qu'une liste de mots, une liste de phrases, une liste de messages d'un fil de discussion, une liste d'événements d'un agenda... cette spécificité le rend indépendant de la nature des annotations (a fortiori linguistiques) associées à la donnée manipulée. ce travail a été financé par le projet anr 2016 pastel 6 .