Dieser Artikel wurde im Rahmen der Data Science Blogathon.
Was ist Sentimentanalyse?
Die Anfänge und die rasante Entwicklung des Bereichs fallen mit denen der webbasierten Medien im Web zusammen, zum Beispiel, Umfragen, Zusammenstellung von Gesprächen, Webmagazine, Mikroblogs, Twitter und zwischenmenschliche Organisationen, warum, beispiellos in der Menschheitsgeschichte, Wir haben eine kolossale Menge hartnäckiger Informationen, die in fortschrittliche Strukturen eingeloggt sind. Seit Mitte 2000, die Untersuchung von Annahmen hat sich zu einem der dynamischsten Prüfungsgebiete bei der Vorbereitung der gemeinsamen Sprache entwickelt.
in Ergänzung, ist im Information Mining weit verbreitet, Web-Mining und Text-Mining. Eigentlich, hat sich aufgrund seiner Bedeutung für Wirtschaft und Gesellschaft im Allgemeinen vom Software-Engineering auf die Executive Sciences und Soziologien ausgebreitet. In der letzten Zeit, Auch moderne Übungen zur Untersuchung von Gefühlen haben sich bewährt. Mehrere neue Unternehmen sind entstanden. Viele große Unternehmen haben ihre eigenen internen Fähigkeiten aufgebaut.
Annahmeprüfungsrahmen haben ihre Anwendung in praktisch allen kommerziellen und sozialen Räumen gefunden. Stimmungsanalyse, auch Opinion Mining genannt, ist das Studienfach, das Meinungen analysiert, Gefühle, Bewertungen, Bewertungen, Einstellungen und Emotionen der Menschen gegenüber Entitäten als Produkten, Dienstleistungen, Organisationen, Einzelpersonen, Probleme, Veranstaltungen, Themen und ihre Attribute. Stellt einen großen Problemraum dar.
Es gibt auch viele leicht unterschiedliche Namen und Aufgaben, zum Beispiel, Stimmungsanalyse, Meinungsforschung, Meinungsextraktion, Sentiment-Mining, Subjektivitätsanalyse, Wirkungsanalyse, Emotionsanalyse, Meinungsforschung, etc.
Stimmungsanalyse in Python
In Python sind viele Pakete verfügbar, die unterschiedliche Methoden verwenden, um eine Sentimentanalyse durchzuführen.. Im nächsten Artikel, Wir werden einige der beliebtesten Methoden und Pakete durchgehen:
1. Textblob
2. VADER
→ Textblock:
Textblob Der Stimmungsanalysator gibt zwei Eigenschaften für einen bestimmten Eingabesatz zurück:
- Polarität ist ein Schwimmer, der dazwischen liegt [-1,1], -1 zeigt eine negative Stimmung an und +1 weist auf positive Gefühle hin.
- Subjektivität ist auch ein Schwimmer, der im Bereich von liegt [0,1]. Subjektive Sätze beziehen sich im Allgemeinen auf Meinungen, Emotionen oder Urteile.
Mal sehen, wie man Textblob verwendet:
von Textblob importieren TextBlob
test = TextBlob("Der Film war toll!")
drucken(test.stimmung)

Textblob ignoriert unbekannte Wörter, Betrachten Sie die Wörter und Ausdrücke, auf die Sie die Extreme und Mittelpunkte verteilen können, um die letzte Punktzahl zu erhalten.
→ VADER:
Verwenden Sie eine Liste lexikalischer Merkmale (zum Beispiel, ein Wort) die aufgrund ihrer semantischen Ausrichtung als positiv oder negativ gekennzeichnet werden, um die Stimmung des Textes zu berechnen. Vaders Sentiment gibt die Wahrscheinlichkeit zurück, dass ein gegebener Eingabesatz positiv ist, negativ und neutral.
Zum Beispiel:
„Der Film war unglaublich!!“
Positiv: 99%
Negativ: 1%
Neutral: 0%
Diese drei Wahrscheinlichkeiten addieren sich zu 100%. Mal sehen, wie man VADER verwendet:
von VaterSentiment.vaterSentiment importieren SentimentIntensityAnalyzer
Analyzer = SentimentIntensityAnalyzer()
Satz = "Der Film war toll!"
vs = Analyzer.polarity_scores(Satz)
drucken"{:-<65} {}".Format(Satz, str(vs))

VADER-Stimmungsanalyse
Vader ist für Social-Media-Daten optimiert und kann bei Verwendung mit Twitter-Daten gute Ergebnisse erzielen, Facebook, etc. Wie das vorherige Ergebnis die Polarität des Wortes und seine Wahrscheinlichkeiten zeigt, pos, neg neu und zusammengesetzt.
Jetzt, Obiges werde ich mit Hilfe des Gasthaus-Datensatzes klären, nämlich, der Hotel-Review-Datensatz, wo es Meinungen der Kunden gibt, die im Hotel übernachtet haben.
Um den Prozess ganz einfach zusammenzufassen:
1) Vorverarbeitung der Eingabe in Ihre Komponentensätze oder Wörter.
2) Identifizieren und beschriften Sie sie ZeichenDas "Zeichen" Es ist ein Begriff, der in verschiedenen Zusammenhängen verwendet wird, In der Regel bezieht man sich auf ein Dokument oder eine Karte, die bestimmte Informationen zu einem Thema enthält, Person oder Produkt. Im akademischen Umfeld, Es wird verwendet, um relevante Daten zu Forschungs- oder bibliografischen Quellen zu erfassen. Im Geschäftsumfeld, Karten können nützliche Werkzeuge sein, um Kunden- oder Produktdaten zu organisieren, Erleichterung der Verwaltung und des Zugangs zu Informationen.... mit einem Bestandteil des Sprechteils (nämlich, Substantiv, Verb, Determinanten, Subjekt des Satzes, etc.).
3) Weisen Sie einen Sentiment-Score von zu -1 ein 1, wo -1 es ist für negative gefühle, 0 als neutral und +1 es ist ein positives gefühl
4) Rückgabewerte und optionale Werte als zusammengesetzte Punktzahl, Subjektivität, etc. durch die Verwendung von zwei leistungsstarken Python-Tools: Textblob und VADER.
Textblob:
von nltk.gefühl.vater importieren SentimentIntensityAnalyzer
von nltk.sentiment.util importieren *
von Textblob importieren TextBlob
von nltk importieren tokenisieren
df = pd.read_csv('hotel-reviews.csv')
df.kopf()
Datensatzvorschau
Oben ist die Datensatzvorschau des Hoteldatensatzes.
df.drop_duplicates(Teilmenge =”Beschreibung”, behalten = „zuerst“, an Ort und Stelle = Wahr)
df['Description'] = df['Description'].astyp('str')
def get_polarity(Text):
Rückkehr TextBlob(Text).sentiment.polarität
df['Polarity'] = df['Description'].anwenden(get_polarity)
In obigem, Verwendung der TextBlob (Text) .sentiment.polariTJa, Polarität des Gefühls erzeugen.
df['Sentiment_Type']='' df.loc[df.Polarität>0,'Sentiment_Type']='POSITIVE' df.loc[df. Polarität==0,'Sentiment_Type']='NEUTRAL' df.loc[df.Polarität<0,'Sentiment_Type']='NEGATIV'
Con Textblob
Nach dem TextBlob die Polarität und Art der Stimmung für jeden Kommentar / Beschreibung erhalten.
df.Sentiment_Type.value_counts().Handlung(kind='bar',Titel="Stimmungsanalyse")
Stimmungsanalysediagramm mit Textblob
Bei der Verfolgung der BalkengrafikDas Balkendiagramm ist eine visuelle Darstellung von Daten, die rechteckige Balken verwendet, um Vergleiche zwischen verschiedenen Kategorien anzuzeigen. Jeder Balken stellt einen Wert dar, und seine Länge ist proportional zu ihm. Diese Art von Diagramm ist nützlich, um Trends zu visualisieren und zu analysieren, Erleichterung der Interpretation quantitativer Informationen. Es ist in verschiedenen Disziplinen weit verbreitet, wie z.B. Statistiken, Marketing und Forschung, Aufgrund seiner Einfachheit und Effektivität.... für die gleichen, positive Gefühle sind mehr als negativ, was Verständnis erzeugen kann, da die Leute mit dem Service zufrieden sind.
VADER:
VADER (Valence Aware Dictionary und Sentiment Reasoner) ist eine vorgefertigte regelbasierte Open-Source-Sentiment-Analyzer-Bibliothek / Lexika, geschützt unter der MIT-Lizenz.
importieren nltk
nltk.download('vader_lexicon')
von nltk.gefühl.vater importieren SentimentIntensityAnalyzer
sid = SentimentIntensityAnalyzer()
Con VADER, Verwendung der sid.polarity_scores (Beschreibung)), Polarität des Gefühls erzeugen.
df['Punkte'] = df['Description'].anwenden(Lambda Beschreibung: sid.polarity_scores(Beschreibung)) df.kopf()
Score-Wert generiert basierend auf VADER
Nach dem VADER die Partituren, die Pos . haben, negativ, neu und zusammengesetzt.
df['Compound'] = df['Punkte'].anwenden(Lambda score_dict: score_dict['Compound']) df['sentiment_type']='' df.loc[df.compound>0,'sentiment_type']='POSITIVE' df.loc[df.compound==0,'sentiment_type']='NEUTRAL' df.loc[df.compound<0,'sentiment_type']='NEGATIV'
Stimmungsanalyse mit VADER
Nach dem VADER die Zusammensetzung und der Stimmungstyp für jeden Kommentar / Beschreibung erhalten.
df.sentiment_type.value_counts().Handlung(kind='bar',Titel="Stimmungsanalyse")
Stimmungsanalyse-Chart mit VADER
Sowohl Textblob als auch Vader bieten eine Reihe von Funktionen; Sie sollten besser versuchen, einige Beispieldaten zu Ihrem Thema auszuführen, um zu sehen, welche für Ihre Anforderungen am besten geeignet ist. Beim Zeichnen des Balkendiagramms für dasselbe, positive Gefühle sind mehr als negativ, was Verständnis erzeugen kann, da die Leute mit dem Service zufrieden sind.
Hoffe das hilft
Folgt mir, wenn euch meine Beiträge gefallen. Für weitere Hilfe, siehe mein Github für Textblob Ja VADER.
Verbinden über LinkedIn https://www.linkedin.com/in/afaf-athar-183621105/
Viel Spaß beim Lernen




