« Analyse de sentiments en text mining » : différence entre les versions
(Page créée avec « == Références == * Pang, B. & Lee, L. (2008) Opinion Mining and Sentiment Analysis. ''Journal Foundations and Trends in Information Retrieval, 2'' [http://www.cse.iit... ») |
|||
(67 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{tutoriel | |||
|fait_partie_du_cours=Analytique et exploration de données | |||
|fait_partie_du_module=Text mining | |||
|statut=à finaliser | |||
|voir_aussi=Analyse de sentiments avec R,Méthodes de classification en text mining, Text mining, Clustering et classification hiérarchique en text mining | |||
|cat tutoriels=Analytique et exploration de données | |||
|difficulté=avancé | |||
}} | |||
== L'analyse de sentiment ou Opinion Mining == | |||
L'analyse de sentiment (parfois appelée opinion mining) est la partie du text mining qui essaye de définir les opinions, sentiments et attitudes présente dans un texte ou un ensemble de texte. | |||
Développée essentiellement depuis les années 2000, elle est particulièrement utilisé en marketing pour analyser par exemple les commentaires des internautes ou les comparatifs et tests des blogueurs ou encore les réseaux sociaux : une grande part de la littérature sur le sujet concerne par exemple les tweets. Mais elle peut également être utilisée pour sonder l'opinion publique sur un sujet, pour chercher a caractériser les relations sociales dans les forums ou encore pour vérifier si Wikipedia est bien un média neutre. | |||
L'analyse de sentiment demande bien plus de compréhension de la langue que l'analyse de texte et la classification par sujet. En effet, si les algorithmes les plus simples considèrent uniquement les statistiques de fréquence d'apparition des mots, cela se révèle en général insuffisant pour définir l'opinion dominante dans un document, surtout lorsque le contenu est court comme des messages dans un forum ou des tweets. | |||
=== Définition formelle d'une opinion=== | |||
Formellement, on peut définir une opinion comme un quintuple <math>(e_i,a_{ij},s_{ijkl},h_k,t_l)</math> où | |||
*<math>e_i</math> est '''l'entité''' au sujet de laquelle l'opinion est émise (aussi appelée objet), | |||
*<math>a_{ij}</math> '''l'aspect''' de l'entité ''i'' qui est la cible de l'opinion (en général, plusieurs aspects pour une même entité), | |||
*<math>h_k</math> '''l'émetteur''', c'est-à-dire la personne qui exprime l'opinion (opinion holder), | |||
*<math>t_l</math> le '''moment''' où est exprimée cette opinion, | |||
*et enfin <math>s_{ijkl}</math> le '''sentiment''' envers l'aspect ''j'' de l'entité ''i'', exprimée par la personne ''k'' au moment ''l''. | |||
Chacun de ces paramètres est de plus "catégoriel" c'est-à-dire qu'il s'appuie sur la définition d'une catégorie de mots désignant la même entité, aspect, émetteur, moment ou sentiment. | |||
Il y a donc là encore un travail important de préprocessing qui est apparenté à la découverte de sujets (topic modelling) ou la [[Méthodes de classification en text mining|classification]] | |||
Enfin, souvent ce modèle général est réduit à un modèle plus simple, en considérant que certaines informations sont soit sans influence pour l'objet d'étude, soit constantes. | |||
Par exemple, on suppose souvent que les opinions sont constantes sur de suffisamment courtes périodes (quelques mois pour des tests d'appareils, mais quelques jours, voire heures pour Twitter). | |||
=== Echelle et niveau d'analyse === | |||
L'analyse de sentiment "basique" se focalise sur une seule dimension : le sentiment général est-il positif ou négatif ? | |||
Les techniques visant à déterminer un (ou plusieurs) sentiments généraux comme l'envie, la colère, la frustration ou la joie relèvent plus d'une forme d'adaptation des méthodes de découverte de sujet (topic discovery) ou de [[Méthodes de classification en text mining|méthodes de classification]]. | |||
L'analyse peut s'effectuer à différents niveaux. | |||
* Au niveau du document : détermine l'opinion générale de l'ensemble du document. Cette analyse fonctionne bien pour des documents qui présentent un point de vue précis, mais moins pour des comparaisons car elle ne fera pas la différence entre les sujets abordés. | |||
* Au niveau de la phrase : détermine l'opinion générale d'une phrase (positive, négative ou neutre). Cette analyse peut donner une mesure de la "neutralité" d'un texte par exemple pour analyser des entrées de Wikipédia. Les méthodes utilisées sont celle de l'analyse de sujectivité. | |||
* Au niveau des aspects (aussi appelé ''Feature level'') : au lieu de déterminer les entités à analyser en fonction de critère structuraux (phrase, paragraphe, document) ces méthodes se basent sur un analyse de corrélation entre l'opinion émise et la cible de cette opinion. Par exemple, la phrase "Le sujet du cours me passionne mais le professeur est ennuyeux." présente deux sentiments sur l'entité "cours" : le sujet qui est perçu comme positif et le professeur, qui est perçu comme négatif. Ce niveau d'analyse permet de différencier les aspects qui sont aimé ou non par les auteurs des textes et ainsi permet plus facilement de déterminer des remédiations possibles. En revanche il est très difficile a mettre en place car extrêmement complexe. | |||
== Méthode Supervisée : Bayes naïf == | |||
De manière générale, il s'agit ici d'un problème de [[Méthodes de classification en text mining|classification]] où les catégories sont "sentiment positif" et "sentiment négatif". | |||
La méthode la plus "simple" est celle appelée Bayes Naïf et consiste à sélectionner la catégorie qui maximise la probabilité ''a posteriori'' d'observer les termes du texte ''d''. | |||
===Phase d'apprentissage=== | |||
On détermine "manuellement" les catégories d'appartenance des textes de références (C = +1, 0 ou -1); | |||
On peut alors calculer les probabilités ''a priori'' d'apparition de chaque catégorie <math>P(C=c)</math> et de chaque combinaison de mots | |||
<math>P(w_{1},w_2...,w_{n}|C=c)</math> pour chaque c=+1, 0 ou -1. | |||
En général, on utilise une hypothèse d'indépendance (pas toujours vraie) pour écrire cette probabilité comme | |||
<math>P(w_{1}|C=c)\cdot P(w_{1}|C=c)\cdots P(w_{n}|C=c)</math> | |||
===Phase de classification=== | |||
On calcule à l'aide du [http://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_de_Bayes théorème de Bayes] les probabilités ''a posteriori'' | |||
<math>P(C=c|w_1,...,w_n) = P(w_{1},w_2...,w_{n}|C=c)P(C=c) / P(w_{1},w_2...,w_{n})</math> | |||
On sélectionne la catégorie ''c'' qui maximise cette probabilité, c'est-à-dire qui maximise | |||
<math>P(w_{1},w_2...,w_{n}|C=c)P(C=c)</math> | |||
ou encore | |||
<math>P(w_{1}|C=c)\cdot P(w_{1}|C=c)\cdots P(w_{n}|C=c)\cdot P(C=c)</math> | |||
===Calcul des probabilités === | |||
Pour le calcul des probabilités, on utilise une des deux méthodes suivantes. | |||
*modèle multinomial (basé sur la fréquence d'apparition) : | |||
<math>P(w_{1}|C=c)=\frac{f_{w_k,c}}{\sum_{w} f_{w,c}}</math> | |||
où <math>f_{w_k,c}</math> est la fréquence d'apparition du mot <math>w_k</math> dans la catégorie ''c'' et <math>\sum_{w} f_{w,c}</math> la somme des fréquences de tout les mots dans la catégorie ''c''. | |||
*modèle de Bernoulli (basé sur la proportion de document) : | |||
<math>P(w_{1}|C=c)=\frac{d_{w_k,c}}{N_c}</math> | |||
où <math>d_{w_k,c}</math> est le nombre de documents où apparaît le mot <math>w_k</math> dans la catégorie ''c'' et <math>N_c</math> le nombre total de document de la catégorie ''c''. | |||
== Méthode non-supervisée : Information ponctuelle mutuelle== | |||
=== Extraction de structures === | |||
Ces méthodes sont basées sur des considérations linguistiques afin de sélectionner les structures grammaticales qui exprime le plus souvent l'opinion. Celles-ci sont (pour l'anglais), entre autres, | |||
*Adjectif (JJ) + Nom au singulier ou pluriel (NN ou NNS) | |||
*Adverbe de comparaison on non (RB, RBR, RBS) + Adjectif (JJ) ''si suivi de tout sauf un nom (ni NN ni NNS)'' | |||
*Adjectif (JJ) + Adjectif (JJ) ''si suivi de tout sauf un nom (ni NN ni NNS)'' | |||
*Nom au singulier ou pluriel (NN ou NNS) + Adjectif (JJ) ''si suivi de tout sauf un nom (ni NN ni NNS)'' | |||
*Adverbe de comparaison on non (RB, RBR, RBS) + verbe conjugé (VB, VBD, VBN ou VBG) | |||
(Tableau tiré de Liu, 2014, abréviations selon le [https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html Penn Treebank POS] project) | |||
=== Information ponctuelle mutuelle (PMI) === | |||
L'information ponctuelle mutuelle (PMI) donnée entre deux mots ou phrases donnée par <math>PMI(w_1,w_2) = \log_2 \left(\frac{P(w_1,w_2)}{P(w_1)P(w_2)}\right)</math>. | |||
L'information ponctuelle mutuelle est en fait une mesure de la corrélation entre les deux mots ou phrases <math>w_1</math> et <math>w_2</math>. | |||
De nombreuses méthodes peuvent être utilisées pour estimer cette corrélation, entre autres le rapport de fréquence d'apparition conjointe sur la fréquence d'apparition seule ([[Clustering et classification hiérarchique en text mining#Autres distances possibles|distance de Jaccard]]) ou encore le dénombrement du nombre de résultats renvoyé par un moteur en recherche. | |||
=== Algorithme === | |||
L'algorithme de calcul le plus simple est celui de Turney (2002) : | |||
# extraire les groupes de mots à analyser selon les structures choisies (ci-dessus) ; | |||
# calculer l'orientation sentimentale (SO) de la structure extraite (notée ici ''extrait'') en comparant l'information ponctuelle mutuelle donnée par deux ensembles de termes de références, un positif <math>w_{+}</math> et l'autre négatif <math>w_{-}</math>. <math>SO(extrait) = \frac{1}{N_{+}}{\sum_{w_{+}}PMI(extrait,w_{+})-\frac{1}{N_{-}}\sum_{w_{-}}PMI(extrait,w_{-})}</math> où <math>N_{+}</math> et <math>N_{-}</math> sont les tailles des ensembles de termes de références. | |||
# calculer la moyenne de toutes les orientation sentimentales présentes dans le document, puis classer le document dans la catégorie dominante. | |||
== Méthode non-supervisée : Lexiques == | |||
Ces méthodes sont quant à elles basées sur l'utilisation de [[#Lexiques pour l'analyse de sentiments|lexiques de sentiments]] dont un des plus connus est [http://sentiwordnet.isti.cnr.it/ SentiWordNet], basé sur WordNet. | |||
Le principe de ces méthodes est de permettre la catégorisation de document sans devoir disposer au préalable d'un corpus pour l'apprentissage. | |||
Cependant, bien que de nombreux mots sont connotés positivement ou négativement de manière indépendante de l'entité à laquelle ils se réfèrent, la majorité des mots seront perçus soit positivement soit négativement selon le contexte. Une maison petite sera négativement perçue alors qu'un petit taux de crédit hypothécaire sera positivement connoté. | |||
Pour un exemple sous R, voire la page [[Analyse de sentiments avec R]]. | |||
=== Extraction des termes de sentiment=== | |||
Comme pour la méthode précédente, la première étape est d'extraire les structures contenant une expression potentielle de sentiment. | |||
Une fois cette étape réalisée, il s'agit d'extraire les termes exprimant un sentiment (si existants). Cela s'effectue en plusieurs étapes : | |||
#On compare le lexique à l'extrait, affectant un score à chaque occurrence de termes de sentiment. Dans de nombreux lexiques, les termes sont notés sur une échelle relative. Par exemple, le paquet "sentiment" de R classe les termes de -5 à +5. | |||
# On applique ce que l'on appelle des "décalage de sentiment" qui ont pour fonction de prendre en compte les négations afin de ne pas confondre "il est bon" avec "il n'est pas bon". Cependant cette étape est également délicate car certaines occurrences de "pas" ne sont pas des "décalages", comme dans "non seulement il est bien, mais en plus il est merveilleux". | |||
# On traite les conjonctions de coordinations désignant une opposition, comme "mais", pour délimiter les parties des phrases dont on doit inverser la connotation (traitant la partie suivant le "mais" comme l'inverse de la connotation de la partie précédant le "mais"). | |||
==== Règles de score ==== | |||
Les règles déterminantes pour le décalage de sentiment et la prise en compte des oppositions sont complexes et basées sur une analyse du langage propre à chaque langue. | |||
Des exemples de ces règles et de leur traitement peuvent être trouvés dans (Liu, 2014, section 5.2), comme | |||
'''''Sentiment word or phrase:''''' | |||
:This is the simplest and also the most commonly used category, in which sentiment words or phrases alone can imply positive or negative opinions on aspects, e.g., “good” in “The voice quality is good.” These words or phrases are reduced to P and N. | |||
:9. P ::= a_positive_sentiment_word_or_phrase | |||
:10. N ::= a_negative_sentiment_word_or_phrase | |||
ou | |||
'''''Decreased and increased quantity of an opinionated item (N and P):''''' | |||
:This set of rules is similar to the negation (or sentiment shifter) rules 3, 4, 7, and 8 above. They express that decreasing or increasing the quantity associated with an opinionated item (often nouns and noun phrases) can change the orientation of the sentiment. | |||
: For example, in the sentence “This drug reduced my pain significantly,” “pain” is a negative sentiment word, and the reduction of “pain” indicates a desirable effect of the drug. Thus, decreased pain implies a positive opinion on the drug. The concept of decreasing also extends to removal and disappearance, e.g., “My pain disappeared after taking the drug.” We then have the following rules: | |||
: 11. PO ::= less_or_decreased N | |||
: 12. | more_or_increased P | |||
: 13. NE ::= less_or_decreased P | |||
: 14. | more_or_increased N | |||
=== Agrégation du score === | |||
On calcule enfin un score moyen pour le document analysé (ou la phrase). | |||
Il existe de nombreuses méthodes pour ce calcul, dont voici certaines : | |||
* somme de chaque score individuel (Hu & Liu, 2004) | |||
* multiplication de chaque score individuel (positifs) (Kim & Hovy, 2004) | |||
* somme de chaque score individuel pondéré par la distance entre le terme de sentiment et le terme cible (Liu, 2014) | |||
== Pour aller plus loin== | |||
=== Extraction des aspects d'une entité=== | |||
Pour analyser les sentiments au niveau des aspects, il est possible d'utiliser l'une des deux méthodes non supervisées présentées ci-dessus. Cependant, la difficulté réside dans l'extraction des aspects et leur attribution aux entités. | |||
* A ce sujet, voir Liu (2014, section 5.3). | |||
===Génération de Lexique de sentiment=== | |||
C'est une tâche très difficile que de générer un lexique car il faut non seulement choisir les termes à intégrer, mais également vérifier que le terme permet bien de différencier entre les sentiments. | |||
Différentes approches existent, comme celles basées sur les dictionnaires (comme WordNet) qui contiennent des synonymes et des antonymes. Cela permet un traitement rapide, mais montre des limites quand au termes qui peuvent changer de connotation selon les contexte (comme "grand", "faible", "cher"...) | |||
*On peut voir Esuli et Sebastiani (2004) pour le cas de SentiWordNet. | |||
Une autre approche est de faire un prétraitement d'un corpus spécifique où les documents sont déjà notés, comme par exemple les revues de livre ou de films sur les sites spécialisés qui sont souvent notés sur une échelle de 0 à 5 étoiles. DE nombreuses études ont ainsi pris comme base un coprus issu de IMBD, la base de données cinématographique. | |||
====Prise en compte du contexte==== | |||
Un point important lors de génération de lexique est la prise en compte du contexte. En effet, un même terme peut être connoter différemment selon qu'il s'applique à un contexte ou un autre. | |||
* Pour plus d'information, voir Liu (2014) | |||
=== Comparaison des performances === | |||
Pour un ''benchmark'' des différentes approches et de la littérature concernant l'analyse de sentiment, on peut se référer à Tang, Songbo & Xueqi (2009). | |||
== Exemple sous R - analyse de tweet via TwitteR == | |||
Grace au package "TwitteR" de R, il est relativement facile d'effectuer des analyse d'opnion sur les tweets, voici par exemples deux tutoriaux sur ce sujet : | |||
* [https://www.youtube.com/watch?v=adIvt_luO1o Twitter Sentiment Analysis par Michael Herman] | |||
* https://www.youtube.com/watch?v=UQ5qTJGJRFk Twitter Mining & Sentiment Analysis par Aditya Datla] | |||
== Références de lexiques pour l'analyse de sentiments == | |||
Voici quelques lexiques disponibles pour l'analyse de sentiments. | |||
{| class="wikitable" | |||
| SentiWordNet || http://sentiwordnet.isti.cnr.it | |||
|- | |||
| General Inquirer || http://www.wjh.harvard.edu/~inquirer/ | |||
|- | |||
| Liu's Opinion Lexicon || http://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html#lexicon (fichier RAR) | |||
|- | |||
| MPQA Subjectivity Lexicon || http://mpqa.cs.pitt.edu/lexicons/subj_lexicon/ | |||
|- | |||
| NRC Emoticon Lexicon || http://www.saifmohammad.com/WebPages/lexicons.html | |||
|- | |||
| LIWC || http://www.liwc.net (payant) | |||
|} | |||
== Références == | == Références == | ||
=== Références académiques === | |||
* Esuli, A. & Sebastiani, F. (2006). SENTIWORDNET: A Publicly Available Lexical Resource for Opinion Mining. Proceedings of the 5th Conference on Language Resources and Evaluation (LREC'06) [http://nmis.isti.cnr.it/sebastiani/Publications/LREC06.pdf PDF] | * Esuli, A. & Sebastiani, F. (2006). SENTIWORDNET: A Publicly Available Lexical Resource for Opinion Mining. Proceedings of the 5th Conference on Language Resources and Evaluation (LREC'06) [http://nmis.isti.cnr.it/sebastiani/Publications/LREC06.pdf PDF] | ||
* Hu, M. & Liu, B. (2004). Mining and summarizing customer reviews. In ''Proceedings of ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD-2004)''. doi:10.1145/1014052.1014073 | |||
* Kim, Hyun Duk and ChengXiang Zhai. Generating comparative summaries of contradictory opinions in text. In ''Proceedings of ACM Conference on Information and Knowledge Management (CIKM-2009)''. doi:10.1145/1645953.1646004 | |||
* Li, Nan & Desheng Dash Wu, Using text mining and sentiment analysis for online forums hotspot detection and forecast, Decision Support Systems, Volume 48, Issue 2, January 2010, Pages 354-368, ISSN 0167-9236, http://dx.doi.org/10.1016/j.dss.2009.09.003. | |||
(http://www.sciencedirect.com/science/article/pii/S0167923609002097) | |||
* Liu, B. (2014) ''Sentiment analysis and Opinion Mining''. Morgan & Claypool Publ. | |||
* Mullen, T. (2004) Introduction to Sentiment Analysis (Slides du cours) [http://www.lct-master.org/files/MullenSentimentCourseSlides.pdf PDF] | * Mullen, T. (2004) Introduction to Sentiment Analysis (Slides du cours) [http://www.lct-master.org/files/MullenSentimentCourseSlides.pdf PDF] | ||
* | * Pang, B. & Lee, L. (2008) Opinion Mining and Sentiment Analysis. ''Foundations and Trends in Information Retrieval, 2'' [http://www.cse.iitb.ac.in/~pb/cs626-449-2009/prev-years-other-things-nlp/sentiment-analysis-opinion-mining-pang-lee-omsa-published.pdf PDF] | ||
* Prabowo, R. & Thelwall, M. (2009). Sentiment analysis: A combined approach. ''Journal of Informetrics, 3'' 143–157 | * Prabowo, R. & Thelwall, M. (2009). Sentiment analysis: A combined approach. ''Journal of Informetrics, 3'' 143–157 | ||
* Sudipta, R., Sourish, D., Arnab, P., Saprativa, B., Anirban, D. & Deepjyoti C. (2013). Current Trends Of Opinion Mining And Sentiment Analysis In Social Networks. ''IJRET: International Journal of Research in Engineering and Technology, 2''. | * Sudipta, R., Sourish, D., Arnab, P., Saprativa, B., Anirban, D. & Deepjyoti C. (2013). Current Trends Of Opinion Mining And Sentiment Analysis In Social Networks. ''IJRET: International Journal of Research in Engineering and Technology, 2''. | ||
* Tang, H., Songbo T. & Xueqi C. (2009). A survey on sentiment detection of reviews. ''Expert Systems with Applications, 36'' 10760–10773 | |||
*Turney, P. (2002) Thumbs up or thumbs down?: semantic orientation applied to unsupervised classification | |||
of reviews. In ''Proceedings of Annual Meeting of the Association for Computational Linguistics | |||
(AC L-2002)''. | |||
=== Références R === | === Références R === | ||
* Grün, B. & Hornik, K. (2011). topicmodels: An R Package for Fitting Topic Models. ''Journal of Statistical Software | * Grün, B. & Hornik, K. (2011). topicmodels: An R Package for Fitting Topic Models. ''Journal of Statistical Software, 40.'' [http://www.jstatsoft.org/v40/i13/paper PDF] | ||
, 40.'' [http://www.jstatsoft.org/v40/i13/paper PDF] | * [https://www.youtube.com/watch?v=adIvt_luO1o Twitter Sentiment Analysis par Michael Herman] | ||
* https://www.youtube.com/watch?v=UQ5qTJGJRFk Twitter Mining & Sentiment Analysis par Aditya Datla] | |||
=== Références non académiques=== | |||
* Pennsyvania University Part of Speech Abreviations : [https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html Penn Treebank POS tags] | |||
*Razaz, M. (2013). Sentiment classification for product reviews ([http://fr.slideshare.net/midorazaz/sentiment-classification-for-product-reviews-documentations Slides]) |
Dernière version du 17 avril 2015 à 12:47
Analytique et exploration de données | |
---|---|
Module: Text mining | |
⚐ à finaliser | ☸ avancé |
⚒ 2015/04/17 | |
Voir aussi | |
Catégorie: Analytique et exploration de données |
L'analyse de sentiment ou Opinion Mining
L'analyse de sentiment (parfois appelée opinion mining) est la partie du text mining qui essaye de définir les opinions, sentiments et attitudes présente dans un texte ou un ensemble de texte. Développée essentiellement depuis les années 2000, elle est particulièrement utilisé en marketing pour analyser par exemple les commentaires des internautes ou les comparatifs et tests des blogueurs ou encore les réseaux sociaux : une grande part de la littérature sur le sujet concerne par exemple les tweets. Mais elle peut également être utilisée pour sonder l'opinion publique sur un sujet, pour chercher a caractériser les relations sociales dans les forums ou encore pour vérifier si Wikipedia est bien un média neutre.
L'analyse de sentiment demande bien plus de compréhension de la langue que l'analyse de texte et la classification par sujet. En effet, si les algorithmes les plus simples considèrent uniquement les statistiques de fréquence d'apparition des mots, cela se révèle en général insuffisant pour définir l'opinion dominante dans un document, surtout lorsque le contenu est court comme des messages dans un forum ou des tweets.
Définition formelle d'une opinion
Formellement, on peut définir une opinion comme un quintuple où
- est l'entité au sujet de laquelle l'opinion est émise (aussi appelée objet),
- l'aspect de l'entité i qui est la cible de l'opinion (en général, plusieurs aspects pour une même entité),
- l'émetteur, c'est-à-dire la personne qui exprime l'opinion (opinion holder),
- le moment où est exprimée cette opinion,
- et enfin le sentiment envers l'aspect j de l'entité i, exprimée par la personne k au moment l.
Chacun de ces paramètres est de plus "catégoriel" c'est-à-dire qu'il s'appuie sur la définition d'une catégorie de mots désignant la même entité, aspect, émetteur, moment ou sentiment. Il y a donc là encore un travail important de préprocessing qui est apparenté à la découverte de sujets (topic modelling) ou la classification Enfin, souvent ce modèle général est réduit à un modèle plus simple, en considérant que certaines informations sont soit sans influence pour l'objet d'étude, soit constantes. Par exemple, on suppose souvent que les opinions sont constantes sur de suffisamment courtes périodes (quelques mois pour des tests d'appareils, mais quelques jours, voire heures pour Twitter).
Echelle et niveau d'analyse
L'analyse de sentiment "basique" se focalise sur une seule dimension : le sentiment général est-il positif ou négatif ? Les techniques visant à déterminer un (ou plusieurs) sentiments généraux comme l'envie, la colère, la frustration ou la joie relèvent plus d'une forme d'adaptation des méthodes de découverte de sujet (topic discovery) ou de méthodes de classification.
L'analyse peut s'effectuer à différents niveaux.
- Au niveau du document : détermine l'opinion générale de l'ensemble du document. Cette analyse fonctionne bien pour des documents qui présentent un point de vue précis, mais moins pour des comparaisons car elle ne fera pas la différence entre les sujets abordés.
- Au niveau de la phrase : détermine l'opinion générale d'une phrase (positive, négative ou neutre). Cette analyse peut donner une mesure de la "neutralité" d'un texte par exemple pour analyser des entrées de Wikipédia. Les méthodes utilisées sont celle de l'analyse de sujectivité.
- Au niveau des aspects (aussi appelé Feature level) : au lieu de déterminer les entités à analyser en fonction de critère structuraux (phrase, paragraphe, document) ces méthodes se basent sur un analyse de corrélation entre l'opinion émise et la cible de cette opinion. Par exemple, la phrase "Le sujet du cours me passionne mais le professeur est ennuyeux." présente deux sentiments sur l'entité "cours" : le sujet qui est perçu comme positif et le professeur, qui est perçu comme négatif. Ce niveau d'analyse permet de différencier les aspects qui sont aimé ou non par les auteurs des textes et ainsi permet plus facilement de déterminer des remédiations possibles. En revanche il est très difficile a mettre en place car extrêmement complexe.
Méthode Supervisée : Bayes naïf
De manière générale, il s'agit ici d'un problème de classification où les catégories sont "sentiment positif" et "sentiment négatif".
La méthode la plus "simple" est celle appelée Bayes Naïf et consiste à sélectionner la catégorie qui maximise la probabilité a posteriori d'observer les termes du texte d.
Phase d'apprentissage
On détermine "manuellement" les catégories d'appartenance des textes de références (C = +1, 0 ou -1);
On peut alors calculer les probabilités a priori d'apparition de chaque catégorie et de chaque combinaison de mots
pour chaque c=+1, 0 ou -1.
En général, on utilise une hypothèse d'indépendance (pas toujours vraie) pour écrire cette probabilité comme
Phase de classification
On calcule à l'aide du théorème de Bayes les probabilités a posteriori
On sélectionne la catégorie c qui maximise cette probabilité, c'est-à-dire qui maximise
ou encore
Calcul des probabilités
Pour le calcul des probabilités, on utilise une des deux méthodes suivantes.
- modèle multinomial (basé sur la fréquence d'apparition) :
où est la fréquence d'apparition du mot dans la catégorie c et la somme des fréquences de tout les mots dans la catégorie c.
- modèle de Bernoulli (basé sur la proportion de document) :
où est le nombre de documents où apparaît le mot dans la catégorie c et le nombre total de document de la catégorie c.
Méthode non-supervisée : Information ponctuelle mutuelle
Extraction de structures
Ces méthodes sont basées sur des considérations linguistiques afin de sélectionner les structures grammaticales qui exprime le plus souvent l'opinion. Celles-ci sont (pour l'anglais), entre autres,
- Adjectif (JJ) + Nom au singulier ou pluriel (NN ou NNS)
- Adverbe de comparaison on non (RB, RBR, RBS) + Adjectif (JJ) si suivi de tout sauf un nom (ni NN ni NNS)
- Adjectif (JJ) + Adjectif (JJ) si suivi de tout sauf un nom (ni NN ni NNS)
- Nom au singulier ou pluriel (NN ou NNS) + Adjectif (JJ) si suivi de tout sauf un nom (ni NN ni NNS)
- Adverbe de comparaison on non (RB, RBR, RBS) + verbe conjugé (VB, VBD, VBN ou VBG)
(Tableau tiré de Liu, 2014, abréviations selon le Penn Treebank POS project)
Information ponctuelle mutuelle (PMI)
L'information ponctuelle mutuelle (PMI) donnée entre deux mots ou phrases donnée par .
L'information ponctuelle mutuelle est en fait une mesure de la corrélation entre les deux mots ou phrases et .
De nombreuses méthodes peuvent être utilisées pour estimer cette corrélation, entre autres le rapport de fréquence d'apparition conjointe sur la fréquence d'apparition seule (distance de Jaccard) ou encore le dénombrement du nombre de résultats renvoyé par un moteur en recherche.
Algorithme
L'algorithme de calcul le plus simple est celui de Turney (2002) :
- extraire les groupes de mots à analyser selon les structures choisies (ci-dessus) ;
- calculer l'orientation sentimentale (SO) de la structure extraite (notée ici extrait) en comparant l'information ponctuelle mutuelle donnée par deux ensembles de termes de références, un positif et l'autre négatif . où et sont les tailles des ensembles de termes de références.
- calculer la moyenne de toutes les orientation sentimentales présentes dans le document, puis classer le document dans la catégorie dominante.
Méthode non-supervisée : Lexiques
Ces méthodes sont quant à elles basées sur l'utilisation de lexiques de sentiments dont un des plus connus est SentiWordNet, basé sur WordNet. Le principe de ces méthodes est de permettre la catégorisation de document sans devoir disposer au préalable d'un corpus pour l'apprentissage. Cependant, bien que de nombreux mots sont connotés positivement ou négativement de manière indépendante de l'entité à laquelle ils se réfèrent, la majorité des mots seront perçus soit positivement soit négativement selon le contexte. Une maison petite sera négativement perçue alors qu'un petit taux de crédit hypothécaire sera positivement connoté.
Pour un exemple sous R, voire la page Analyse de sentiments avec R.
Extraction des termes de sentiment
Comme pour la méthode précédente, la première étape est d'extraire les structures contenant une expression potentielle de sentiment.
Une fois cette étape réalisée, il s'agit d'extraire les termes exprimant un sentiment (si existants). Cela s'effectue en plusieurs étapes :
- On compare le lexique à l'extrait, affectant un score à chaque occurrence de termes de sentiment. Dans de nombreux lexiques, les termes sont notés sur une échelle relative. Par exemple, le paquet "sentiment" de R classe les termes de -5 à +5.
- On applique ce que l'on appelle des "décalage de sentiment" qui ont pour fonction de prendre en compte les négations afin de ne pas confondre "il est bon" avec "il n'est pas bon". Cependant cette étape est également délicate car certaines occurrences de "pas" ne sont pas des "décalages", comme dans "non seulement il est bien, mais en plus il est merveilleux".
- On traite les conjonctions de coordinations désignant une opposition, comme "mais", pour délimiter les parties des phrases dont on doit inverser la connotation (traitant la partie suivant le "mais" comme l'inverse de la connotation de la partie précédant le "mais").
Règles de score
Les règles déterminantes pour le décalage de sentiment et la prise en compte des oppositions sont complexes et basées sur une analyse du langage propre à chaque langue.
Des exemples de ces règles et de leur traitement peuvent être trouvés dans (Liu, 2014, section 5.2), comme
Sentiment word or phrase:
- This is the simplest and also the most commonly used category, in which sentiment words or phrases alone can imply positive or negative opinions on aspects, e.g., “good” in “The voice quality is good.” These words or phrases are reduced to P and N.
- 9. P ::= a_positive_sentiment_word_or_phrase
- 10. N ::= a_negative_sentiment_word_or_phrase
ou
Decreased and increased quantity of an opinionated item (N and P):
- This set of rules is similar to the negation (or sentiment shifter) rules 3, 4, 7, and 8 above. They express that decreasing or increasing the quantity associated with an opinionated item (often nouns and noun phrases) can change the orientation of the sentiment.
- For example, in the sentence “This drug reduced my pain significantly,” “pain” is a negative sentiment word, and the reduction of “pain” indicates a desirable effect of the drug. Thus, decreased pain implies a positive opinion on the drug. The concept of decreasing also extends to removal and disappearance, e.g., “My pain disappeared after taking the drug.” We then have the following rules:
- 11. PO ::= less_or_decreased N
- 12. | more_or_increased P
- 13. NE ::= less_or_decreased P
- 14. | more_or_increased N
Agrégation du score
On calcule enfin un score moyen pour le document analysé (ou la phrase). Il existe de nombreuses méthodes pour ce calcul, dont voici certaines :
- somme de chaque score individuel (Hu & Liu, 2004)
- multiplication de chaque score individuel (positifs) (Kim & Hovy, 2004)
- somme de chaque score individuel pondéré par la distance entre le terme de sentiment et le terme cible (Liu, 2014)
Pour aller plus loin
Extraction des aspects d'une entité
Pour analyser les sentiments au niveau des aspects, il est possible d'utiliser l'une des deux méthodes non supervisées présentées ci-dessus. Cependant, la difficulté réside dans l'extraction des aspects et leur attribution aux entités.
- A ce sujet, voir Liu (2014, section 5.3).
Génération de Lexique de sentiment
C'est une tâche très difficile que de générer un lexique car il faut non seulement choisir les termes à intégrer, mais également vérifier que le terme permet bien de différencier entre les sentiments.
Différentes approches existent, comme celles basées sur les dictionnaires (comme WordNet) qui contiennent des synonymes et des antonymes. Cela permet un traitement rapide, mais montre des limites quand au termes qui peuvent changer de connotation selon les contexte (comme "grand", "faible", "cher"...)
- On peut voir Esuli et Sebastiani (2004) pour le cas de SentiWordNet.
Une autre approche est de faire un prétraitement d'un corpus spécifique où les documents sont déjà notés, comme par exemple les revues de livre ou de films sur les sites spécialisés qui sont souvent notés sur une échelle de 0 à 5 étoiles. DE nombreuses études ont ainsi pris comme base un coprus issu de IMBD, la base de données cinématographique.
Prise en compte du contexte
Un point important lors de génération de lexique est la prise en compte du contexte. En effet, un même terme peut être connoter différemment selon qu'il s'applique à un contexte ou un autre.
- Pour plus d'information, voir Liu (2014)
Comparaison des performances
Pour un benchmark des différentes approches et de la littérature concernant l'analyse de sentiment, on peut se référer à Tang, Songbo & Xueqi (2009).
Exemple sous R - analyse de tweet via TwitteR
Grace au package "TwitteR" de R, il est relativement facile d'effectuer des analyse d'opnion sur les tweets, voici par exemples deux tutoriaux sur ce sujet :
- Twitter Sentiment Analysis par Michael Herman
- https://www.youtube.com/watch?v=UQ5qTJGJRFk Twitter Mining & Sentiment Analysis par Aditya Datla]
Références de lexiques pour l'analyse de sentiments
Voici quelques lexiques disponibles pour l'analyse de sentiments.
SentiWordNet | http://sentiwordnet.isti.cnr.it |
General Inquirer | http://www.wjh.harvard.edu/~inquirer/ |
Liu's Opinion Lexicon | http://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html#lexicon (fichier RAR) |
MPQA Subjectivity Lexicon | http://mpqa.cs.pitt.edu/lexicons/subj_lexicon/ |
NRC Emoticon Lexicon | http://www.saifmohammad.com/WebPages/lexicons.html |
LIWC | http://www.liwc.net (payant) |
Références
Références académiques
- Esuli, A. & Sebastiani, F. (2006). SENTIWORDNET: A Publicly Available Lexical Resource for Opinion Mining. Proceedings of the 5th Conference on Language Resources and Evaluation (LREC'06) PDF
- Hu, M. & Liu, B. (2004). Mining and summarizing customer reviews. In Proceedings of ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD-2004). doi:10.1145/1014052.1014073
- Kim, Hyun Duk and ChengXiang Zhai. Generating comparative summaries of contradictory opinions in text. In Proceedings of ACM Conference on Information and Knowledge Management (CIKM-2009). doi:10.1145/1645953.1646004
- Li, Nan & Desheng Dash Wu, Using text mining and sentiment analysis for online forums hotspot detection and forecast, Decision Support Systems, Volume 48, Issue 2, January 2010, Pages 354-368, ISSN 0167-9236, http://dx.doi.org/10.1016/j.dss.2009.09.003.
(http://www.sciencedirect.com/science/article/pii/S0167923609002097)
- Liu, B. (2014) Sentiment analysis and Opinion Mining. Morgan & Claypool Publ.
- Mullen, T. (2004) Introduction to Sentiment Analysis (Slides du cours) PDF
- Pang, B. & Lee, L. (2008) Opinion Mining and Sentiment Analysis. Foundations and Trends in Information Retrieval, 2 PDF
- Prabowo, R. & Thelwall, M. (2009). Sentiment analysis: A combined approach. Journal of Informetrics, 3 143–157
- Sudipta, R., Sourish, D., Arnab, P., Saprativa, B., Anirban, D. & Deepjyoti C. (2013). Current Trends Of Opinion Mining And Sentiment Analysis In Social Networks. IJRET: International Journal of Research in Engineering and Technology, 2.
- Tang, H., Songbo T. & Xueqi C. (2009). A survey on sentiment detection of reviews. Expert Systems with Applications, 36 10760–10773
- Turney, P. (2002) Thumbs up or thumbs down?: semantic orientation applied to unsupervised classification
of reviews. In Proceedings of Annual Meeting of the Association for Computational Linguistics (AC L-2002).
Références R
- Grün, B. & Hornik, K. (2011). topicmodels: An R Package for Fitting Topic Models. Journal of Statistical Software, 40. PDF
- Twitter Sentiment Analysis par Michael Herman
- https://www.youtube.com/watch?v=UQ5qTJGJRFk Twitter Mining & Sentiment Analysis par Aditya Datla]
Références non académiques
- Pennsyvania University Part of Speech Abreviations : Penn Treebank POS tags
- Razaz, M. (2013). Sentiment classification for product reviews (Slides)