Analyser les commentaires des clients et identifier les thèmes clés des données textuelles est traditionnellement un processus laborieux. Elle implique la collecte de données, l'étiquetage manuel et le réglage fin des modèles spécialisés. Cependant, la classification du texte à tirs zéro offre une approche rationalisée, tirant parti de la puissance des modèles de grande langue (LLM) pour contourner la nécessité d'une formation de modèle approfondie. Cet article explore comment la classification des coups zéro simplifie l'analyse des sentiments à l'aide de la bibliothèque SKLLM (combinant Scikit-Learn et LLMS), démontrant son application sur les revues de vêtements de commerce électronique de Kaggle pour femmes.
Ce tutoriel couvrira:
* Cet article fait partie du Blogathon de la science des données *** .
L'analyse du grand volume des avis des clients reçus par les détaillants en ligne présente un défi important pour une analyse efficace des sentiments et une identification du thème. Les méthodes traditionnelles impliquent:
Ce processus prend du temps et à forte intensité de ressources. La classification de texte zéro-shot offre une solution: utiliser des LLM directement pour classer le texte sans avoir besoin d'une formation personnalisée. En fournissant des étiquettes descriptives (par exemple, "positive", "négative", "neutre"), le modèle dépeint la bonne classe.
L'efficacité de la classification zéro-tirs provient de:
Le jeu de données des vêtements de commerce électronique des femmes de Kaggle est utilisé dans ce tutoriel.
[lien vers l'ensemble de données]
Caractéristiques de l'ensemble de données clés:
Cette section détaille comment effectuer l'analyse des sentiments et la détection de thème à l'aide de la classification de zéro avec LLMS et la bibliothèque SKLLM.
Assurer que Python 3.7 est installé et installer skllm:
pip install scikit-llm
Obtenez une clé API valide pour un fournisseur LLM (par exemple, OpenAI) et définissez-le dans votre environnement:
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()
Pour la classification des sentiments, utilisez: ["positive", "negative", "neutral"]
. Cela peut être personnalisé au besoin.
instancier ZeroShotGPTClassifier
(en utilisant gpt-4o
ou un autre modèle approprié):
clf = ZeroShotGPTClassifier(model="gpt-4o") clf.fit(None, ["positive", "negative", "neutral"])
fit(None, labels)
indique qu'aucune donnée de formation n'est requise; Le classificateur est initialisé avec l'ensemble d'étiquettes.
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)
Cela affiche les cinq premières avis et leurs sentiments prévus.
Les approches ML traditionnelles nécessitent un étiquetage, une formation de modèle, une validation et des mises à jour continues. Zero-Shot réduit considérablement ces frais généraux, offrant des résultats immédiats sans données étiquetées et raffinement facile.
La classification à quelques coups utilise un petit nombre d'exemples étiquetés par classe pour guider le modèle. Les estimateurs SKLLM utilisent l'ensemble de formation entier pour créer des exemples à quelques tirs. Pour les grands ensembles de données, envisagez de diviser les données et d'utiliser un petit sous-ensemble de formation (par exemple, pas plus de 10 exemples par classe) et de mélanger les exemples.
pip install scikit-llm
La classification de la chaîne de pensées génère des étapes de raisonnement intermédiaires, améliorant potentiellement la précision mais augmentant l'utilisation et le coût des jetons.
from skllm.config import SKLLMConfig # Replace with your OpenAI API key SKLLMConfig.set_openai_key("your_openai_api_key")
Expérimenter avec des approches à quelques coups et en chaîne de pensées peut donner de meilleurs résultats que la méthode de base zéro.
La bibliothèque SKLLM fournit une alternative rapide et efficace à la construction de pipelines d'analyse des sentiments personnalisés. La classification des coups zéro permet une analyse rapide des commentaires des clients sans avoir besoin d'un étiquetage manuel ou d'une formation sur modèle. Ceci est particulièrement précieux pour les tâches itératives et l'expansion de l'étiquette.
Q1. Choisir entre zéro-shot, inférieur à quelques coups et chaîne de pensées: zéro-shot est idéal pour le prototypage rapide et les données limitées; quelques coups améliore la précision avec un petit ensemble de données étiqueté; La chaîne de pensée améliore les performances mais augmente le coût.
Q2. Nombre d'exemples pour quelques tirs: jusqu'à 10 exemples par classe sont recommandés; remanier des exemples pour éviter les biais.
Q3. Impact de la chaîne de pensées sur l'exactitude: non garanti pour améliorer la précision; L'efficacité dépend de la complexité des tâches et de la clarté rapide.
Q4. Coût à l'échelle: Le coût dépend de l'utilisation des jetons, du choix du modèle, de la longueur de l'invite et de la taille de l'ensemble de données. La chaîne de pensées augmente les coûts en raison des invites plus longues.
Remarque: L'image utilisée dans cet article ne appartient pas à l'auteur et est utilisée avec la permission.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!