Sentiment Analysis
Sentiment Analysis (Stimmungsanalyse) ist eine NLP-Technik, mit der automatisch erkannt wird, ob ein Text eine positive, negative oder neutrale Haltung ausdrückt.
Was ist Sentiment Analysis?
Sentiment Analysis – auch Stimmungsanalyse oder Opinion Mining genannt – ermittelt automatisch die emotionale Färbung eines Textes. Das klassische Ergebnis ist eine Klassifikation in positiv, negativ oder neutral, moderne Modelle liefern aber oft auch Feinabstufungen (z. B. Sterne-Ratings) oder erkennen spezifische Emotionen wie Freude, Wut oder Enttäuschung.
Typische Anwendungsfälle
- Produktbewertungen auswerten – Kundenfeedback auf Amazon, App-Stores oder eigenen Plattformen automatisch kategorisieren
- Social-Media-Monitoring – Brand-Sentiment in Echtzeit tracken
- Support-Tickets priorisieren – frustrierte Kunden früh erkennen und eskalieren
- Marktforschung – Meinungsbilder zu Produkten oder Kampagnen messen
Wie funktioniert es technisch?
Moderne Sentiment-Modelle basieren meist auf vortrainierten Transformer-Modellen (z. B. BERT, RoBERTa), die auf Sentiment-Datensätzen fine-getuned wurden. Das Modell gibt typischerweise eine Wahrscheinlichkeit pro Klasse zurück.
# Beispiel mit Hugging Face Transformers
from transformers import pipeline
classifier = pipeline(
"sentiment-analysis",
model="oliverguhr/german-sentiment-bert" # Deutschsprachiges Modell
)
texte = [
"Das Produkt ist absolut fantastisch, ich bin begeistert!",
"Der Kundenservice war eine Katastrophe.",
"Die Lieferung kam pünktlich an."
]
for text in texte:
result = classifier(text)[0]
print(f"Text: {text[:40]}...")
print(f" → Label: {result['label']}, Score: {result['score']:.2f}\n")
Sentiment via LLM-API
Alternativ lässt sich Sentiment Analysis auch direkt über ein LLM per Prompt lösen – besonders nützlich, wenn kein spezialisiertes Modell vorhanden ist:
import openai
client = openai.OpenAI()
def analyze_sentiment(text: str) -> dict:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{
"role": "system",
"content": "Du analysierst Sentiment. Antworte ausschließlich mit JSON: {\"sentiment\": \"positiv|negativ|neutral\", \"confidence\": 0.0-1.0, \"grund\": \"kurze Begründung\"}"
},
{"role": "user", "content": text}
],
response_format={"type": "json_object"}
)
return response.choices[0].message.content
print(analyze_sentiment("Leider hat das Update alle meine Einstellungen gelöscht."))
Wichtige Einschränkungen
| Problem | Beschreibung |
|---|---|
| Ironie/Sarkasmus | „Super, schon wieder ein Absturz. |
Verwandte Begriffe
Inhouse statt Nachschlagewerk
Für den Transfer ins Unternehmen sind die Inhouse-Schulungen der passende nächste Schritt.