Cet article a été publié dans le cadre du Blogathon sur la science des données.
Qu'est-ce que l'analyse des sentiments?
La création et le développement rapide du domaine coïncident avec ceux des médias basés sur le Web, par exemple, les sondages, compilation de conversations, magazines en ligne, microblogs, Twitter et les organisations interpersonnelles, parce que, sans précédent dans l'histoire de l'humanité, nous avons un volume colossal d'informations tenaces enregistrées dans des structures avancées. Depuis le milieu 2000, l'investigation des hypothèses est devenue l'un des territoires d'examen les plus dynamiques dans la préparation du langage commun.
en outre, est largement considéré dans l'exploration de l'information, Web mining et text mining. En réalité, s'est propagé du génie logiciel aux sciences exécutives et aux sociologies en raison de son importance pour les entreprises et la société en général. Ces derniers temps, les exercices modernes impliquant l'examen des sentiments ont également fleuri. Plusieurs nouvelles entreprises ont vu le jour. De nombreuses grandes entreprises ont construit leurs propres capacités internes.
Les cadres d'examen des hypothèses ont trouvé leurs applications dans pratiquement tous les espaces commerciaux et sociaux. Analyse des sentiments, aussi appelé sondage d'opinion, est le domaine d'étude qui analyse les opinions, sentiments, évaluations, notes, les attitudes et les émotions des personnes envers les entités en tant que produits, prestations de service, organisations, personnes, problèmes, événements, thèmes et leurs attributs. Représente un grand espace de problème.
Il existe également de nombreux noms et tâches légèrement différents, par exemple, analyse des sentiments, sondage d'opinion, extraction d'opinion, exploration des sentiments, analyse de subjectivité, analyse des effets, analyse des émotions, sondage d'opinion, etc.
Analyse des sentiments en Python
Il existe de nombreux packages disponibles en Python qui utilisent différentes méthodes pour effectuer une analyse des sentiments.. Dans le prochain article, nous passerons en revue certaines des méthodes et des packages les plus populaires:
1. Textblob
2. VADER
→ Bloc de texte:
Textblob L'analyseur de sentiments renvoie deux propriétés pour une phrase d'entrée donnée:
- La polarité est un flotteur qui se situe entre [-1,1], -1 indique un sentiment négatif et +1 indique des sentiments positifs.
- La subjectivité est aussi un flotteur qui est de l'ordre de [0,1]. Les phrases subjectives renvoient généralement à des opinions, émotions ou jugements.
Voyons comment utiliser Textblob:
de texte importer TextBlob
test = TextBlob("Le film était génial!") imprimer(test.sentiment)
Textblob ignorera les mots inconnus, considérez les mots et les expressions auxquels vous pouvez répartir les extrêmes et les milieux pour obtenir le dernier score.
→ VADER:
Utiliser une liste de caractéristiques lexicales (par exemple, un mot) qui sont étiquetés comme positifs ou négatifs en fonction de leur orientation sémantique pour calculer le sentiment du texte. Le sentiment de Vader renvoie la probabilité qu'une phrase d'entrée donnée soit positive, négatif et neutre.
Par exemple:
“Le film était incroyable !!”
Positif: 99%
Négatif: 1%
Neutre: 0%
Ces trois probabilités s'additionneront à 100%. Voyons comment utiliser VADER:
de pèreSentiment.pèreSentiment importer SentimentIntensityAnalyzer analyseur = SentimentIntensityAnalyzer() phrase = "Le film était génial!" vs = analyseur.polarity_scores(phrase) imprimer"{:-<65} {}".format(phrase, str(vs))
Analyse des sentiments VADER
Vader est optimisé pour les données des médias sociaux et peut produire de bons résultats lorsqu'il est utilisé avec les données Twitter, Facebook, etc. Comme le résultat précédent montre la polarité du mot et ses probabilités d'être pos, neg neu et composé.
À présent, Je vais clarifier ce qui précède à l'aide de l'ensemble de données de l'auberge, c'est-à-dire, l'ensemble de données Hotel-Review, où il y a des opinions des clients qui ont séjourné à l'hôtel.
Pour résumer le processus très simplement:
1) Pré-traitement de l'entrée dans vos phrases ou mots composants.
2) Identifique y etiquete cada fichaLa "Ficha" es un término utilizado en diversos contextos, generalmente para referirse a un documento o tarjeta que contiene información específica sobre un tema, persona o producto. En ámbitos académicos, se utiliza para registrar datos relevantes sobre investigaciones o fuentes bibliográficas. En el ámbito empresarial, las fichas pueden ser herramientas útiles para organizar datos de clientes o productos, facilitando la gestión y el acceso a la información.... con un componente de la parte del discurso (c'est-à-dire, nom, verbe, déterminants, sujet de la phrase, etc.).
3) Attribuez un score de sentiment de -1 une 1, où -1 c'est pour les sentiments négatifs, 0 comme neutre et +1 c'est un sentiment positif
4) Renvoyer les scores et les scores facultatifs sous forme de score composite, subjectivité, etc. en utilisant deux puissants outils Python: Textblob et VADER.
Textblob:
de nltk.sentiment.père importer SentimentIntensityAnalyzer de nltk.sentiment.util importer * de texte importer TextBlob de nltk importer tokeniser df = pd.read_csv('hotel-avis.csv') df.head()
Ce qui précède est l'aperçu du jeu de données de l'ensemble de données de l'hôtel.
df.drop_duplicates(sous-ensemble = "Description", garder = « premier », en place = Vrai) df['La description'] = df['La description'].astype('str') déf obtenir_polarité(texte): revenir TextBlob(texte).sentiment.polarité df['Polarité'] = df['La description'].appliquer(obtenir_polarité)
Au dessus, en utilisant le TextBlob (texte) .sentiment.polaritOui, générer une polarité de sentiment.
df['Type_Sentiment']='' df.loc[df.Polarité>0,'Type_Sentiment']='POSITIF' df.loc[df.Polarity==0,'Sentiment_Type']='NEUTRE' df.loc[df.Polarité<0,'Type_Sentiment']='NÉGATIF'
Après le TextBlob la polarité et le type de sentiment pour chaque commentaire / descriptif reçu.
df.Sentiment_Type.value_counts().terrain(genre='bar',titre="Analyse des sentiments")
Al trazar el graphique à barresLe graphique à barres est une représentation visuelle des données qui utilise des barres rectangulaires pour montrer des comparaisons entre différentes catégories. Chaque barre représente une valeur et sa longueur est proportionnelle à celle-ci. Ce type de graphique est utile pour visualiser et analyser les tendances, faciliter l’interprétation des informations quantitatives. Il est largement utilisé dans diverses disciplines, tels que les statistiques, Marketing et recherche, En raison de sa simplicité et de son efficacité.... para lo mismo, les sentiments positifs sont plus que négatifs, ce qui peut générer de la compréhension puisque les gens sont satisfaits du service.
VADER:
VADER (Valence Aware Dictionary et Sentiment Reasoner) est une bibliothèque d'analyse de sentiments open source pré-construite basée sur des règles / lexiques, protégé sous la licence MIT.
importer nltk nltk.télécharger('vader_lexicon') de nltk.sentiment.père importer SentimentIntensityAnalyzer sid = SentimentIntensityAnalyzer()
Con Vador, en utilisant le sid.polarity_scores (La description)), générer une polarité de sentiment.
df['scores'] = df['La description'].appliquer(lambda La description: sid.polarity_scores(La description)) df.head()
Après le VADER les scores qui ont pos, négatif, neu et composé.
df['composé'] = df['scores'].appliquer(lambda score_dict: score_dict['composé']) df['sentiment_type']='' df.loc[df.compound>0,'sentiment_type']='POSITIF' df.loc[df.compound==0,'type_sentiment']='NEUTRE' df.loc[df.compound<0,'sentiment_type']='NÉGATIF'
Après le VADER le composé et le type de sentiment pour chaque commentaire / descriptif reçu.
df.sentiment_type.value_counts().terrain(genre='bar',titre="analyse des sentiments")
Textblob et Vader offrent un certain nombre de fonctions; vous feriez mieux d'essayer d'exécuter des exemples de données sur votre thème pour voir lequel convient le mieux à vos besoins. Lorsque vous tracez le graphique à barres pour le même, les sentiments positifs sont plus que négatifs, ce qui peut générer de la compréhension puisque les gens sont satisfaits du service.
J'espère que cela aide
Suivez moi si vous aimez mes publications. Pour plus d'aide, voir mon Github pour Textblob Oui VADER.
Connectez-vous via LinkedIn https://www.linkedin.com/in/afaf-athar-183621105/
Bon apprentissage