Corpus français de tweets annotés pour l'évaluation de la fouille d'opinion ciblée
La fouille d'opinion ciblée (aspect-based sentiment analysis) connaît ces dernières années un intérêt particulier, visible dans les sujets des récentes campagnes d'évaluation SemEval 2014 et 2015 ainsi que DEFT 2015. Cependant les corpus annotés et publiquement disponibles permettant l'évaluation de cette tâche sont rares. Canéphore est un corpus français librement accessible de 10 000 tweets manuellement annotés.
Cette ressource permet d'évaluer un système réalisant une fouille d'opinion au niveau des sujets discutés. L'objectif est de pouvoir mesurer la détection d'opinion dans un cadre le plus formel possible, magré la subjectivité de ce type d'évaluation. Ce cadre est celui défini par B. Liu (Liu, 2010), modélisant une opinion par un tuple (énonciateur, temps d'énonciation, cible jugée, aspect de la cible jugé, sentiment exprimé). Les annotations ici ne concernent que la cible, ses aspects et le sentiment exprimé. L'annotation a été réalisée grâce à l'outil Brat.
Le corpus provient d'un ensemble de tweets échangés pendant l'événement "Miss France" en 2012. Les doublons, les retweets, les citations ainsi que les tweets considérés trop courts (moins de 3 mots) ont été retirés afin d'éviter le biais que peuvent apporter les répétitions. Ces suppressions réduisent le corpus à 10 000 documents, soit environ 127 000 mots.
L'ensemble du corpus est séparé en 10 parties de 1000 documents, d'une part pour alléger la navigation dans les fichiers et d'autre part pour faciliter l'évaluation en parties d'entrainement, de développement et de test.
La liste tweets-ids
répertorie les identifiants de tous les tweets. Les annotations sont disponibles au format Brat Standoff, et stockés dans les fichiers dont le nom respecte la nomenclature [tweet_id].ann, pour chaque tweet.
Les annotations effectuées décrivent des opinions directes, qu'elles soient explicites ou implicites. L'information annotée doit être non ambigüe pour un humain lisant le tweet.
####Exemples: Ces exemples sont des tweets du corpus, modifiés pour le respect de l'anonymat
Opinion directe et explicite :
J'aime pas Miss A
- La cible et le sentiment exprimé sont évidents
- Le marqueur d'opinion aime et la cible Miss A sont annotés. Le marqueur de négation pas est annoté et inverse le sentiment de aime
Opinion directe et implicite:
Miss B on dirait qu'elle a prit un coup de pelle
- La cible est évidente, et le sentiment - bien qu'il soit est exprimé de façon implicite - est clair pour un lecteur francophone
- La cible Miss B et le marqueur d'opinion implicite a prit un coup de pelle sont annotés
Opinion indirecte et explicite:
Elle est très belle
- Le sentiment exprimé est évident, mais la cible ne peut pas être identifiée
- Aucune annotation n'est effectuée
Opinion indirecte et implicite:
Celle là, c'est pas possible
- La cible ne peut pas être identifiée, et le sentiment exprimé n'est pas évident
- Aucune annotation n'est effectuée
Opinion directe contextuelle :
Miss C on dirait ma tante
- La cible est évidente, mais le sentiment demande une connaissance du contexte
- Aucune annotation n'est effectuée
Opinion directe et explicite, mais aspect implicite :
Miss D est mal coiffée
- Le sentiment exprimé est évident, mais la cible (ici la coiffure) demande d'être inférée
- Le marqueur d'opinion mal , la cible Miss D et l'aspect implicite coiffée sont annotés
Comparaison :
Miss A est mieux que Miss B
- Les cibles et le sentiment exprimés sont évidents
- Le marqueur d'opinion mieux et les cibles Miss A, Miss B sont annotés. Le mot que est annoté, il est considéré comme une marque de négation inversant le sentiment de mieux pour la cible Miss B
Le script retrieve-tweets.py
permet de télécharger le texte des tweets associés aux identifiants fournis. Il est nécessaire de posséder un compte Twitter et un accès à l'API, qui peut être obtenu gratuitement en remplissant le formulaire de création d'application Twitter. Cet accès doit être renseigné dans le fichier retrieve-tweets.config
.
Il suffit alors de lancer:
python retrieve-tweets.py chemin_vers_config chemin_vers_la_liste_d'ids chemin_vers_le_dossier_sortie
Attention ! Le téléchargement par id est limité dans le cadre d'une utilisation gratuite de l'API Twitter: il faut compter 1 h pour le téléchargement de 500 tweets environ.
Ce corpus est disponible sous la licence GNU GPL V2
Si ce corpus vous est utile, pensez à citer notre article !
@inproceedings{lark-morin-penasaldarriaga:2015:TALN,
author = {Lark, Joseph and Morin, Emmanuel and Peña Saldarriaga, Sebastian},
title = {CANÉPHORE : un corpus français pour la fouille d'opinion ciblée},
booktitle = {Actes de la 22e conférence sur le Traitement Automatique des Langues Naturelles},
month = {June},
year = {2015},
address = {Caen, France},
publisher = {Association pour le Traitement Automatique des Langues},
pages = {418--424},
url = {http://www.atala.org/taln_archives/TALN/TALN-2015/taln-2015-court-016},
}