INFORMATIQUE 3

publicité
INFORMATIQUE 3
Paola Merlo, a.a. 2004-2005
Projet: Attachement du SP avec Decision Forests
Attachement automatique du SP au nom ou au verbe
Comme nous en avons beaucoup parlé en classes, le problème de l’attachement du SP est
important en analyse syntaxique de texte. Dans ce projet, vous développerez un algorithme
d’apprentissage, qui est basée sur les arbres de décision. Cet algorithme s’appelle « decision
forests » ou « random forests ». Il s’agit de construire plusieurs arbres de décisions pour des
données d’entraînement qui ont subi des petites modifications et de combiner leur réponses.
Vous devrez d’abord extraire les données du Penn Treebank à l’aide de TGrep2, un outil vous
permettant de faire des recherches sur des arbres, ensuite reproduire en Perl l’algorithme
présenté, et en évaluer la performance.
1. Page web de ressources pour ce projet
Toutes ressources reliées aux projets seront mises à disposition à partir de la page web :
http://www.latl.unige.ch/informatique3/projets/resources-summer-project.html
2. Corpus
Pour ce projet, vous utiliserez le PennTreebank (PTB). Il vous faut un corpus arboré pour
identifier les données dont vous avez besoin sans trop de difficulté. Il serait possible, mais
beaucoup plus difficile, de travailler sans un tel corpus. Le PTB contient environ un million
de mots pour lesquels l’analyse arborescente a été faite semi-automatiquement et corrigée à la
main.
3. Extraction des n-uplets
Il est difficile d’extraire les données qui nous intéressent à l’aide de Perl et d’expression
régulières, parce que le langage des parenthèses équilibrée n’est pas un langage régulier. Il
nous faut donc un système plus puissant. Le logiciel Tgrep2, « Tree-Grep 2 », peut nous être
utile ici parce qu’il fait une analyse de l’arbre. Téléchargez et installez ce logiciel (voir lien
sur la page du projet), et étudiez le langage de recherche qu’il utilise dans le manuel distribué
avec le logiciel. Vous vous en servirez pour extraire les n-uplets < verbe; nom; prép., nom2;
Tag-Fonctionnel> pour les cas où le SP est rattaché au nom et de même pour les cas où le SP
est rattaché au verbe. Vous pouvez aussi extraire d’autres traits qui vous semblent être
pertinent pour la décision de l’attachement.
N’oubliez pas de diviser le corpus en une partie pour les données d’entraînement (sections
00–19) et une partie pour le données de test (sections 20–24).
1
Tgrep2 requiert que le corpus soit « préparé ». Nous avons fait cette préparation pour vous—
vous trouverez les fichiers PTB00-19.t2c.gz et PTB20-24.t2c.gz sur la page du projet.
Quelques options utile à donner à Tgrep2 : -a pour trouver toutes les instance de votre
recherche; -i pour qu’il donne un numéro à chacune de ces instances pour une phrase donnée;
-C pour qu’il imprime le commentaire associé à chaque phrase—un identificateur permettant
de retracer la phrase dans le corpus dans les fichiers t2c que nous vous avons fournis. Il est
utile de garder ces renseignements sous forme d’un identificateur au début de chaque n-uplet,
de sorte à pouvoir retrouver la phrase d’où vient le n-uplet quand vous en aurez besoin.
4. Attachement du SP
Lisez le chapitre 3 de Mitchell Machine Learning qui décrit les arbres de décision et
l’introduction de la page web qui décrit les decision forests
(http://stat-www.berkeley.edu/users/breiman/RandomForests/cc_home.htm#overview), et
implémentez la méthode d’apprentissage par decision forests. Il s’agit d’implémenter trois
modules : un module qui implante les arbres de décision, un module qui échantillonne les
données d’entraînement comme décrit dans la page web et un module qui combine les
résultats des arbres de décisions ainsi construits.
Testez le système sur vos données test. Calculez aussi une baseline n’utilisant que la
préposition comme trait d’entrée. Présentez l’exactitude de la méthode, ainsi que la précision
et le rappel pour l’attachement au verbe et pour l’attachement au nom.
5. Ce qu’il faut savoir pour implementer une decision forest
(extrait de la page web
http://stat-www.berkeley.edu/users/breiman/RandomForests/cc_home.htm#overview)
We assume that the user knows about the construction of single classification trees. Random
Forests grows many classification trees. To classify a new object from an input vector, put the
input vector down each of the trees in the forest. Each tree gives a classification, and we say
the tree "votes" for that class. The forest chooses the classification having the most votes
(over all the trees in the forest).
Each tree is grown as follows:
1. If the number of cases in the training set is N, sample N cases at random - but with
replacement, from the original data. This sample will be the training set for growing
the tree.
2. If there are M input variables, a number m<<M is specified such that at each node, m
variables are selected at random out of the M and the best split on these m is used to
split the node. The value of m is held constant during the forest growing.
2
Téléchargement