Bayesien Naif 1: préparation du classifieur

RDF
M1
Bayesien Naif 1: préparation du classifieur
Alexandre Allauzen
2014
1
Introduction
La tâche considérée est la classification de phrases: l’observation est une phrase
exrtaite d’une critique de film, le but est alors de décider si cette critique est
positive ou non. Une instance à classer est donc une phrase. La représentation
que nous allons utiliser dans un premier temps est la suivante: une phrase est un
ensemble de caractéristiques binaires, chacune des ces caractéristiques indique
si un mot est présent (1) ou absent (0) de la phrase. A titre d’exemple, si
nous avions le vocabulaire suivant de 5 mots : (awfull, bad, good, insightfully,
performed), on obtient la représentation suivante pour la phrase:
insightfully written , delicately performed . → (0, 0, 0, 1, 1)
car les mots présents sont insightfully et performed les aures mots ne faisant pas
partie du vocabulaire.
Nous verrons en cours un nouveau type de classifieur, le Bayesien naif. Ce
classifieur est probabiliste, c’est-à-dire qu’il s’appuie sur la notion de probabilité
pour prendre la décision de classification. En particulier, ce classifieur s’interesse
à la probabilité de la présence d’un mot connaissant la classe de la phrase à
classer P (x|y), où x est une des caractéristiques binaires indiquant la présence
ou l’absence d’un mot et y la classe (positif/negatif).
2
Les données
Les données sont disponibles aux adresses suivantes: http://perso.limsi.fr/
Individu/allauzen/cours/cours13_14/rdf/\{data,data.neg,data.pos\} Il
y trois fichiers:
• data: toutes les données
• data.neg: toutes les données de la classe négative
• data.pos: toutes les données de la classe positive
Ces trois fichiers sont au même format, en voici une phrase exemple:
7549 | 0.84722 | insightfully written , delicately performed
1
Le premier champ indique le numéro de la phrase, le second le score de polarité
(0 pour purement négatif, 1 pour purement positif), puis en troisième la phrase.
Pour faire les deux classes un seuil de 0.5 a été appliqué sur le score de polarité
3
Mise en place: calcul des comptes
Ecrire le code python permettant de calculer les comptes nécessaires à la mise
en oeuvre du classifieur Bayesien naif:
• Pour chaque classe: le nombre de fois où le mot est présent dans une
phrase de la classe
• Le compte de phrase de chaque classe.
Pour stocker ces comptes il est nécessaire d’utiliser comme structure python le
dictionnaire. Pour la suite de ce TP, il est indispensable que votre code soit
modulaire et testé.
4
Stop-liste
Les mots les plus fréquents de la langue sont souvent peu porteurs de sens et
peuvent nuire le travail d’un classifieur. Ecrire le code python permettant de
calculer la fréquence des mots dans le corpus et de sélectionner les n mots les plus
fréquents. Ces n mots serviront de stop-liste, à savoir qu’il seront systématiquent
retirer de la représentation d’une phrase. Intégrer la stop liste au code de la
section précédente.
2