Partage
  • Partager sur Facebook
  • Partager sur Twitter

{{ Politesse }} comment réaliser un détecteur d'Entités Nommées

18 janvier 2011 à 14:35:13

Réalisation d'un détecteur d'Entités Nommées
Dans le domaine du Traitement Automatique des Langues pour la Recherche d'Information, la détection et le typage d'Entités Nommées constitue une tâche classique, pour laquelle des techniques tant symboliques (règles) que statistiques, voire mixtes, ont été développées. Dans le cadre de cet exercice, il vous est demandé de réaliser un module logiciel dénommé "Gazetteer", assurant principalement les fonctionnalités suivantes :
•identification d'Entités Nommées
par consultation d'un lexique
par application de cascades d'expressions régulières
•typage d'Entités Nommées
par consultation d'un lexique
par application de cascades d'expressions régulières.
Les deux fonctionnalités ci-dessus seront en réalité réalisées de manière conjointe, bien que pour des raisons de présentation elles soient ici distinguées.
En sus de ces fonctionnalités, le composant assurera les fonctionnalités suivantes :
•ouverture d'un fichier texte ;
•segmentation en unités linguistiques de base, dont vous déterminerez le type : paragraphes, phrases, mots graphiques, mots composés ;
•écriture de fichier texte structuré en XML, associé à une feuille de style CSS fournie.
Vous trouverez ci-dessous un schéma synthétique des traitements, ainsi que des exemples d'annotation automatique. Afin de réaliser ce module (dont vous élaborerez la structuration par vous-mêmes), une liste des entreprises du CAC40 ainsi que des dépêches de test, dans différents jeux d'encodage, vous seront fournies. D'autres ressources vous seront fournies afin, notamment, d'assurer une visualisation conviviale du fichier de sortie.
Dans le schéma ci-dessous, les composants à réaliser figurent en bleu, les composants et ressources fournis ne sont pas colorés.
L'ordre des traitements vous indique la logique générale des traitements à adopter pour un résultat optimal. Notamment, il est préférable de réaliser l'identification/typage des Entités Nommées "sûres" avant les autres, autrement dit de réaliser en premier l'annotation par consultation d'un lexique, avant celle par cascades d'expressions régulières.
Enfin, les deux flèches bidirectionnelles en bleu figurent les fonctions :
•de consultation des entrées du lexique et de récupération des annotations qui y figurent ;
•d'application des règles de détection et de typage exprimées par des expressions régulières.
Dans l'ensemble de votre réalisation, vous devrez vous efforcer d'adopter une logique de conception et d'implémentation mettant l'accent sur la modularité : vos classes doivent être le plus possible spécialisées, ainsi que vos méthodes (un traitement/une méthode). Pas de programme
"monolithique", dont toutes les fonctionnalités sont codées dans une seule fonction "main" !
Vous prendrez soin de fournir les éléments de documentation suivants :
•un fichier README de base, explicitant en quelques lignes le but du programme, ainsi que les options et commandes ;
•un fichier openoffice explicitant vos choix de conception et d'implémentation, et présentant de façon synthétique les différentes fonctionnalités ;
•une javadoc explicitant le plus possible la signature des méthodes (nombre et type des arguments), leur valeur de retour et les fonctionnalités de chaque classe ; pour ce faire, vous intègrerez autant de commentaires javadoc (@param etc.) que nécessaire.
Vous n'oublierez pas de faire figurer dans l'en-tête de vos classes votre nom, la date de création, ainsi que la version de chaque classe. Vous adopterez la convention suivante, en termes de version :
•1.0 et supérieures : classe mature ;
•0.1 : classe en version expérimentale (alpha) ;
•0.5 et supérieures jusqu'à 0.9 : classe non mature mais que vous estimez suffisamment fiable.
Ces numéros de version sont indicatifs, ils sont à considérer comme des éléments de documentation que vous associez à chacune des classes. Ils présupposent, bien sûr, que vous aurez réalisé des tests afin d'évaluer le degré de maturité de vos classes.
Illustration 1 : exemple de sortie du Gazetteer, après annotation par consultation d'un lexique des entreprises du CAC40
L'intérêt d'associer un fichier XML à une feuille de style CSS est que celle-ci est interprétable par les navigateurs récents et qu'elle permet par conséquent de s'affranchir d'une transformation XSLT lorsque les fichiers de résultat sont destinés à être affichés par un navigateur (ou composant HTML capable d'appliquer ces transformations). Par ailleurs, la syntaxe de ces feuilles de style est assez simple (en comparaison d'une transformation XSLT) et suffisamment souple pour permettre d'associer à un noeud XML donné (ici : ENAMEX et ENAMEX [type="N.Organization.CAC40"], ainsi que missed) des attributs de mise en forme (couleur, police, taille, etc.), voire des images. Ici, les Entités Nommées ENAMEX sont par défaut associées à une icône de type "personne", alors que les noeuds ENAMEX[type="N.Organization.CAC40"] qui résultent de l'annotation par le biais d'un lexique des entreprises du CAC40 est associé au signe dollar1. À des fins d'illustration, l'Entité Nommée "COB" a été annotée manuellement et associée à une couleur de fond rouge afin de montrer qu'elle a été ratée par la première passe d'annotation. Les cascades d'expressions régulières intervenant après la première annotation devront s'efforcer d'identifier et d'annoter ces Entités Nommées qui ne peuvent que difficilement être intégrées à un lexique figé.
Éléments d'évaluation
S'agissant d'une réalisation informatique formant un tout, il est difficile de proposer une grille d'évaluation pour chaque élément. Toutefois, afin de prendre en compte les différences de maîtrise de la programmation en général des nouveaux arrivants (en M1 comme en M2), la grille d'évaluation ci-dessous fixe des critères principaux et secondaires. Autrement dit, pour cet exercice, la livraison peut se limiter aux fonctionnalités principales exigées. Bien sûr, la note sera nécessairement en conséquence des éléments fournis. Dans les commentaires et documents de documentation, vous vous efforcerez, lorsque des blocages n'auront pu être contournés, d'en identifier les causes et de proposer des ébauches de solution.
  • Partager sur Facebook
  • Partager sur Twitter
18 janvier 2011 à 14:35:13

Le message qui suit est une réponse automatique activée par un modérateur.
Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


Manque de politesse


Bonjour,

Veuillez prendre note de la première règle du Site du Zér0 : la politesse. Ainsi le fait que le premier message ne contienne pas les formules de politesse de base ("Bonjour", "Merci", "Au revoir", etc.) est inacceptable. Le sujet est par conséquent fermé.

Vous êtes autorisé à en créer un nouveau en faisant attention cette fois à la politesse.


Merci de votre compréhension :)
Les modérateurs.
  • Partager sur Facebook
  • Partager sur Twitter
Zeste de Savoir, le site qui en a dans le citron !
18 janvier 2011 à 14:35:13

Le message qui suit est une réponse automatique activée par un modérateur.
Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


Bonjour,

Les demandes d'aides scolaires sont désormais interdites sur les forums du SDZ. En effet, il existe des forums spécialisés qui seront ravis de répondre à vos questions ; de plus, vous pouvez toujours demander de l'aide à vos professeurs ou à vos proches. ;)

Merci de votre compréhension.
  • Partager sur Facebook
  • Partager sur Twitter
Zeste de Savoir, le site qui en a dans le citron !