Heim >Technologie-Peripheriegeräte >KI >Zero-Shot- und wenige Shot-Textklassifizierung mit 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.
Dieses Tutorial behandelt:
*Dieser Artikel ist Teil des Blogathons *** Data Science.
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:
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.
Die Effizienz der Null-Shot-Klassifizierung stammt aus:
Die E-Commerce-Kleidung für Frauen bewertet Datensatz von Kaggle in diesem Tutorial.
[Link zum Datensatz]
Key -Datensatzeigenschaften:
In diesem Abschnitt wird beschrieben
Schritt 1: Installation und SetupErhalten 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")
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
["positive", "negative", "neutral"]
Schritt 4: Null-Shot-Klassifizierung
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
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
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
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.
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.
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!