Zum Hauptinhalt

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.

AIAnfänger, NLP, Klassifikation ","Text-Analyse"],"related":["natural-language-processing","classification","transformer","fine-tuning"],"example":true}tags

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

ProblemBeschreibung
Ironie/Sarkasmus„Super, schon wieder ein Absturz.

Inhouse statt Nachschlagewerk

Für den Transfer ins Unternehmen sind die Inhouse-Schulungen der passende nächste Schritt.