Stimmungsanalyse mit NLTK. Was ist eine Stimmungsanalyse? | von Maryam Abubakar | Juni 2023

0
26


Quelle

Was ist eine Stimmungsanalyse?

Die Stimmungsanalyse (auch Opinion Mining genannt) ist eine Artwork des Pure Language Processing (NLP)-Ansatzes, der bestimmt, ob Daten positiv, negativ oder impartial sind. Die Stimmungsanalyse anhand von Textdaten wird häufig eingesetzt, um Unternehmen bei der Überwachung der Marken- und Produktstimmung im Verbraucherfeedback und beim Verständnis der Kundenanforderungen zu unterstützen.

NLTK bedeutet, dass das Pure Language Processing Toolkit ein Paket in Python ist, das speziell für die textbasierte Analyse entwickelt wurde. Dies sind nämlich die notwendigen Schritte:

1.Importieren notwendiger Module
2. Datensatz importieren
3. Datenvorverarbeitung und Visualisierung
4. Modellbau
5. Vorhersage

Hier importieren wir alle erforderlichen Foundation-Importmodule abhängig von Ihren Daten.

import nltk
import random
import pandas as pd
import time
from bs4 import BeautifulSoup
import re

from nltk.corpus import stopwords
from nltk.sentiment import SentimentIntensityAnalyzer

from nltk.tokenize import word_tokenize
from sklearn.feature_extraction.textual content import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import classification_report
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

Jetzt importieren Sie den Datensatz mit Panda

df = pd.read_csv('your_data_here.csv')
or
dataset = pd.read_csv('your_data_here.csv')

Durch die Datenvorverarbeitung werden die Daten in ein Format umgewandelt, das bei Information Mining, maschinellem Lernen und anderen datenwissenschaftlichen Aufgaben einfacher und effizienter verarbeitet werden kann.

Nachdem wir Zugriff auf die Daten hatten, müssen wir sie bereinigen. Mit der Technik „isnull().sum()“ konnten wir schnell die Gesamtzahl der fehlenden Werte im Datensatz ermitteln.

dataset.isnull().sum()

Dann können wir entweder die Nullwerte ersetzen oder die entsprechenden Zeilen entfernen, die die Nullwerte enthalten, um sie zu löschen, die wir verwenden

dataset = knowledge.dropna()

mehr zur Datenvisualisierung in Hier

Bevor wir mit der Entwicklung des Modells beginnen, müssen wir zunächst eine kurze Aufgabe erledigen. Wir sind uns bewusst, dass Menschen Artikel, Determinanten, Konjunktionen, Satzzeichen usw. benötigen, damit wir die Rezension richtig verstehen und dann einordnen können. Bei Maschinen ist dies jedoch nicht der Fall. Daher benötigen sie diese nicht wirklich, um die Stimmung zu kategorisieren; stattdessen geraten sie, wenn sie vorhanden sind, buchstäblich durcheinander. Daher ist für diese Aufgabe wie für jede andere Stimmungsanalyse die Bibliothek „nltk“ erforderlich.

„Pure Language Processing Toolkit“ ist die Abkürzung NLTK. Dies ist eine der wesentlichen Bibliotheken für die Durchführung einer Stimmungsanalyse oder jedes textbasierten ML-Projekts. Mit Hilfe dieser Bibliothek können Sie additionally zunächst die Satzzeichen und dann die Wörter entfernen, die dem Textual content keine Bedeutung hinzufügen. Sie beginnen mit der Verwendung einer Funktion namens „punc_clean“, um alle Satzzeichen aus jeder Rezension zu entfernen. Der folgende Code implementiert dasselbe:

import nltk
def punc_clean(textual content):
import string as st
a=[w for w in text if w not in st.punctuation]
return ''.be part of(a)
dataset['review'] = dataset['review'].apply(punc_clean)
dataset.head(2)

Daher werden die Satzzeichen durch den obigen Code entfernt. Als nächstes müssen wir alle Begriffe eliminieren, die der Aussage keine Bedeutung verleihen. Diese Begriffe werden als „Stoppwörter“ bezeichnet. aber wir möchten das Wort „nicht“ beibehalten, additionally verwenden wir diesen Code.

def remove_stopword(textual content):
stopword=nltk.corpus.stopwords.phrases('english')
stopword.take away('not')
a=[w for w in nltk.word_tokenize(text) if w not in stopword]
return ' '.be part of(a)
knowledge['review'] = knowledge['review'].apply(remove_stopword)

Dadurch sind wir derzeit nur einen Schritt hinter dem Modellbau zurück. Das nächste Ziel besteht darin, jedem Wort in jeder Rezension einen Stimmungswert zuzuweisen. Um es zu implementieren, müssen wir die Bibliothek „TfidVectorizer“ aus dem Modul „sklearn“ verwenden, die in der Datei „feature_extraction.textual content“ enthalten ist. Um ein umfassendes Verständnis der Bibliothek zu erlangen, sollte die Dokumentation zu „TfidVectorizer“ sorgfältig gelesen werden.

from sklearn.feature_extraction.textual content import TfidfVectorizer
vectr = TfidfVectorizer(ngram_range=(1,2),min_df=1)
vectr.match(knowledge['review'])
vect_X = vectr.remodel(knowledge['review'])

Jetzt ist es an der Zeit, das Modell zu konstruieren. Da es sich bei der Sentiment-Analyse um eine binäre Klassifizierung handelt, bedeutet eine „1“ eine constructive Bewertung und eine „0“ eine damaging Bewertung.

from sklearn.linear_model import LogisticRegression
mannequin = LogisticRegression()
clf=mannequin.match(vect_X,knowledge['sentiment'])
clf.rating(vect_X,knowledge['sentiment'])*100

Um die Leistung des Modells zu verdeutlichen, habe ich zwei einfache Sätze verwendet: „Ich liebe Brot“ und „Ich hasse Brot“, die sich eindeutig auf constructive und damaging Gefühle beziehen.

Mehr hier: https://www.analyticsvidhya.com/blog/2021/06/sentiment-analysis-using-nltk-a-practical-approach/



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here