Heim >Technologie-Peripheriegeräte >KI >Zero-Shot- und wenige Shot-Textklassifizierung mit Scikit-Llm

Zero-Shot- und wenige Shot-Textklassifizierung mit Scikit-Llm

Jennifer Aniston
Jennifer AnistonOriginal
2025-03-10 11:08:08791Durchsuche

Zero-Shot and Few-Shot Text Classification with SCIKIT-LLM

Analyse des Kundenfeedbacks und die Identifizierung von Schlüsselthemen in Textdaten ist traditionell ein mühsamer Prozess. Es umfasst Datenerfassung, manuelle Kennzeichnung und die Feinabstimmung spezialisierter Modelle. Die Textklassifizierung von Null-Shot-Texten bietet jedoch einen optimierten Ansatz, der die Leistung von Großsprachmodellen (LLMs) nutzt, um die Notwendigkeit eines umfangreichen Modelltrainings zu umgehen. In diesem Artikel wird untersucht, wie die Klassifizierung der Null-Shot-Schaltung die Sentimentanalyse mithilfe der Skllm-Bibliothek (kombiniert Scikit-Learn und LLMs) vereinfacht und seine Anwendung auf dem Datensatz von Kaggle Women's E-Commerce Clothing Reviews demonstriert.

wichtige Lernergebnisse

Dieses Tutorial behandelt:

  • Der konventionelle Workflow und seine Einschränkungen der herkömmlichen Stimmungsanalyse.
  • Die Prinzipien und Vorteile der Textklassifizierung von Null-Shot-Text mit LLMs.
  • Eine Einführung in die Klylm-Bibliothek und ihre Integration in Scikit-Learn.
  • Praktische Anwendung der Klassifizierung von Zero-Shot auf die E-Commerce-Kleidung der Frauen Bewertungen des Datensatzes.
  • praktische Erfahrung mit Null-Shot-Klassifizierung für reale Szenarien.

*Dieser Artikel ist Teil des Blogathons *** Data Science.

Inhaltsverzeichnis

  • Was ist Null-Shot-Textklassifizierung?
  • Warum ist Null-Shot so effizient?
  • Datensatzübersicht
  • Schritt für Schritt
  • mögliche Nachteile
  • Wege-Shot-Textklassifizierung
  • Kette des Gedächtnisses Textklassifizierung
  • Zusammenfassung
  • häufig gestellte Fragen

Was ist Null-Shot-Textklassifizierung?

Analyse des großen Volumens der von Online -Einzelhändlern erhaltenen Kundenbewertungen stellt eine bedeutende Herausforderung für die effiziente Stimmungsanalyse und die Identifizierung von Themen vor. Traditionelle Methoden umfassen:

  • Daten sammeln und reinigen.
  • manuell Tausende von Proben kennzeichnen (z. B. "positiv", "negativ", "neutral").
  • Einfeindliche Einstellung eines spezialisierten Klassifizierungsmodells mit diesen gekennzeichneten Daten.

Dieser Prozess ist zeitaufwändig und ressourcenintensiv. Die Textklassifizierung von Null-Shot bietet eine Lösung: Verwenden von LLMs direkt, um Text zu klassifizieren, ohne dass ein benutzerdefiniertes Training erforderlich ist. Durch die Bereitstellung deskriptiver Beschriftungen (z. B. "positiv", "negativ", "neutral"), färbt das Modell die richtige Klasse.

Warum ist Null-Shot so effizient?

Die Effizienz der Null-Shot-Klassifizierung stammt aus:

  • Eliminierung der Feinabstimmung: Der kostspielige Prozess der Feinabstimmung wie GPT-4 wird vermieden. Vorausgebildete LLMs werden direkt verwendet und bieten eine sofortige hochwertige Klassifizierung.
  • Einfache Etikettanpassung: Ändern des Etikettssatzes (z. B. von allgemeinen Gefühlen auf spezifischere) erfordert nur die Aktualisierung der Etikettenliste. Es ist keine Modellumschulung erforderlich.
  • reduzierte Datenanforderungen: Im Gegensatz zum überwachten Lernen erfordert die Klassifizierung von Null-Shot nur beschreibende Beschriftungen, sodass sie für Situationen mit begrenzten oder nicht markierten Daten geeignet sind.
  • schnellere Bereitstellung: Durch Überspringen von Datenanmerkungen und Modelltraining wird die Bereitstellung erheblich beschleunigt.

Datensatzübersicht

Die E-Commerce-Kleidung für Frauen bewertet Datensatz von Kaggle in diesem Tutorial.

[Link zum Datensatz]

Key -Datensatzeigenschaften:

  • enthält Tausende von Kundenbewertungen zur Kleidung von Frauen.
  • Die Spalte "Überprüfen" enthält die Haupttextdaten.
  • Zusätzliche Metadaten ("Titel", "Bewertung", "Empfohlene Ind, IND" usw.) ist verfügbar, aber für die Klassifizierung von Null-Shots nicht wesentlich.

Schritt für Schritt

In diesem Abschnitt wird beschrieben

Schritt 1: Installation und Setup

Stellen Sie sicher, dass Python 3.7 installiert ist, und installieren

Erhalten Sie einen gültigen API -Schlüssel für einen LLM -Anbieter (z. B. Openai) und stellen Sie ihn in Ihre Umgebung ein:
pip install scikit-llm

Schritt 2: Bibliotheken importieren und Daten laden
from skllm.config import SKLLMConfig

# Replace with your OpenAI API key
SKLLMConfig.set_openai_key("your_openai_api_key")

Schritt 3: Beschriftungen
import pandas as pd
from skllm.models.gpt.classification.zero_shot import ZeroShotGPTClassifier

# Load dataset
df = pd.read_csv("Womens Clothing E-Commerce Reviews.csv")

# Handle missing review texts
df = df.dropna(subset=["Review Text"]).reset_index(drop=True)
X = df["Review Text"].tolist()
definieren

Verwenden Sie für die Klassifizierung der Sentiment:

. Dies kann bei Bedarf angepasst werden.

["positive", "negative", "neutral"] Schritt 4: Null-Shot-Klassifizierung

instanziiert

(mit

oder einem anderen geeigneten Modell): ZeroShotGPTClassifier gpt-4o

clf = ZeroShotGPTClassifier(model="gpt-4o")
clf.fit(None, ["positive", "negative", "neutral"])
zeigt an, dass keine Trainingsdaten erforderlich sind. Der Klassifizierer wird mit dem Etikettssatz initialisiert.

fit(None, labels) Schritt 5: Bewertungen klassifizieren

Dies zeigt die ersten fünf Bewertungen und deren vorhergesagten Gefühle.
predictions = clf.predict(X)

for review_text, sentiment in zip(X[:5], predictions[:5]):
    print(f"Review: {review_text}")
    print(f"Predicted Sentiment: {sentiment}")
    print("-" * 50)

Ergebnisse Vergleich

herkömmliche ML -Ansätze erfordern Kennzeichnung, Modelltraining, Validierung und kontinuierliche Aktualisierungen. Null-Shot reduziert diesen Overhead signifikant und bietet unmittelbare Ergebnisse ohne markierte Daten und eine einfache Verfeinerung der Kennzeichnung.

mögliche Nachteile

  • Genauigkeitsschwankungen: Genauigkeit kann je nach Komplexität des Textes und der Fähigkeit des Modells variieren, domänenspezifische Jargon zu interpretieren.
  • Kostenüberlegungen: Verwenden leistungsstarker Modelle wie GPT-4-API-Kosten.
  • Datenschutzdatenschutz: Stellen Sie die Einhaltung der Datenschutzbestimmungen sicher, wenn Daten an externe APIs gesendet werden.

Wege-Shot-Textklassifizierung

wenige Schussklassifizierung verwendet eine kleine Anzahl beschrifteter Beispiele pro Klasse, um das Modell zu leiten. Die Blyllm-Schätzer verwenden den gesamten Trainingssatz, um nur wenige Beispiele zu erstellen. Für große Datensätze in Betracht, die Daten zu teilen und eine kleine Trainingsuntergruppe (z. B. nicht mehr als 10 Beispiele pro Klasse) zu verwenden und die Beispiele zu mischen.

pip install scikit-llm

Kette des Gedächtnisses Textklassifizierung

Klassifizierung der Kette der Gedanken erzeugt Intermediate-Argumentationsschritte, die möglicherweise die Genauigkeit verbessern, aber die Nutzung und Kosten für Token erhöhen.

from skllm.config import SKLLMConfig

# Replace with your OpenAI API key
SKLLMConfig.set_openai_key("your_openai_api_key")

experimentiert mit wenigen Ansätzen mit Schuss- und Kettenketten können bessere Ergebnisse liefern als die Basis-Null-Shot-Methode.

Zusammenfassung

Die Klylm -Bibliothek bietet eine schnelle und effiziente Alternative zum Erstellen von Pipelines für kundenspezifische Stimmungsanalyse. Die Klassifizierung von Zero-Shot ermöglicht eine schnelle Analyse des Kundenfeedbacks, ohne dass eine manuelle Kennzeichnung oder ein Modelltraining erforderlich ist. Dies ist besonders wertvoll für iterative Aufgaben und die Beschriftungserweiterung.

Schlüsselpunkte

  • Null-Shot-Klassifizierung vereinfacht die Stimmungsanalyse ohne manuelle Kennzeichnung oder Modelltraining.
  • klylm integriert Scikit-Learn mit LLMs für eine effiziente Textklassifizierung.
  • llms wie GPT-4 liefern sofort hochwertige Klassifizierungsergebnisse.
  • Null-Shot-Klassifizierung ist schnell, anpassungsfähig und erfordert minimale Daten.

häufig gestellte Fragen

Q1. Auswahl zwischen Null-Shot-, weniger Schuss- und Kette des Gedankens: Null-Shot ist ideal für schnelle Prototypen und begrenzte Daten; Nur wenige Schüsse verbessert die Genauigkeit mit einem kleinen beschrifteten Datensatz. Die Gedanke erhöht die Leistung, erhöht sich jedoch die Kosten.

Q2. Anzahl der Beispiele für wenige Schüsse: bis zu 10 Beispiele pro Klasse werden empfohlen; Beispiele zum Vermeiden von Voreingenommenheit.

Q3. Einfluss auf die Genauigkeit: Die Genauigkeit nicht garantiert; Die Wirksamkeit hängt von der Komplexität der Aufgaben und der Aufforderung zur Klarheit ab.

Q4. Kosten in Maßstab: Kosten hängen von der Token -Nutzung, der Modellauswahl, der schnellen Länge und der Datensatzgröße ab. Kette der Gedanken erhöht die Kosten aufgrund längerer Eingabeaufforderungen.

Hinweis: Das in diesem Artikel verwendete Bild gehört nicht dem Autor und wird mit Genehmigung verwendet.

Das obige ist der detaillierte Inhalt vonZero-Shot- und wenige Shot-Textklassifizierung mit Scikit-Llm. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn