Menganalisis maklum balas pelanggan dan mengenal pasti tema utama dalam data teks secara tradisinya merupakan proses yang susah payah. Ia melibatkan pengumpulan data, pelabelan manual, dan penalaan model khusus. Walau bagaimanapun, klasifikasi teks sifar-tembakan menawarkan pendekatan yang diperkemas, memanfaatkan kuasa model bahasa besar (LLM) untuk memintas keperluan untuk latihan model yang luas. Artikel ini menerangkan bagaimana klasifikasi sifar-shot memudahkan analisis sentimen menggunakan perpustakaan SKLLM (menggabungkan Scikit-learn dan LLMS), menunjukkan permohonannya pada dataset ulasan e-dagang Kaggle Wanita.
Hasil Pembelajaran Utama
tutorial ini akan meliputi:
aliran kerja analisis sentimen konvensional dan batasannya. -
Prinsip dan faedah klasifikasi teks sifar-tembakan dengan LLMS. -
Pengenalan kepada Perpustakaan SKLLM dan integrasinya dengan Scikit-Learn. -
Aplikasi praktikal klasifikasi sifar-shot ke dataset ulasan pakaian e-dagang wanita. -
pengalaman tangan dengan klasifikasi sifar-shot untuk senario dunia sebenar. -
*Artikel ini adalah sebahagian daripada Blogathon Sains Data *** .
Jadual Kandungan
apakah klasifikasi teks sifar-tembakan?
mengapa sifar-shot begitu cekap?
- Gambaran Keseluruhan Dataset
- panduan langkah demi langkah
- Kelemahan potensi
- Klasifikasi teks beberapa tembakan
- Klasifikasi Teks Rantai-of-Thought
- Ringkasan
- Soalan Lazim
-
apakah klasifikasi teks sifar-tembakan? -
Menganalisis jumlah besar ulasan pelanggan yang diterima oleh peruncit dalam talian memberikan cabaran penting untuk analisis sentimen yang cekap dan pengenalan tema. Kaedah tradisional melibatkan:
mengumpulkan dan membersihkan data semakan.
secara manual melabelkan beribu -ribu sampel (mis., "Positif," "negatif," "neutral").
- Fine-penalaan model klasifikasi khusus menggunakan data berlabel ini.
-
Proses ini memakan masa dan intensif sumber. Klasifikasi Teks Zero-Shot menawarkan penyelesaian: Menggunakan LLMS terus untuk mengklasifikasikan teks tanpa memerlukan latihan tersuai. Dengan menyediakan label deskriptif (mis., "Positif," "Negatif," "Neutral"), Model ini menanggung kelas yang betul. -
mengapa sifar-shot begitu cekap?
Kecekapan klasifikasi sifar-shot berpunca dari:
- Penghapusan penalaan halus: Proses mahal LLMs penalaan halus seperti GPT-4 dielakkan. LLM pra-terlatih digunakan secara langsung, menyediakan klasifikasi berkualiti tinggi.
- Adaptasi Label Mudah: Menukar set label (mis., Dari sentimen umum kepada yang lebih spesifik) hanya memerlukan mengemas kini senarai label; Tiada latihan semula model diperlukan.
- Keperluan data yang dikurangkan: Tidak seperti pembelajaran yang diawasi, klasifikasi sifar-shot hanya memerlukan label deskriptif, menjadikannya sesuai untuk situasi dengan data terhad atau tidak berlabel.
- penyebaran lebih cepat: dengan melangkau anotasi data dan latihan model, penempatan dipercepatkan dengan ketara.
Gambaran Keseluruhan Dataset
Dataset Pakaian E-dagang Wanita dari Kaggle digunakan dalam tutorial ini.
[pautan ke dataset]
Ciri -ciri Dataset Utama:
mengandungi beribu -ribu ulasan pelanggan mengenai pakaian wanita. -
lajur "Teks semakan" mengandungi data teks utama. -
metadata tambahan ("tajuk," "penilaian," "disyorkan Ind," dan lain-lain) boleh didapati tetapi tidak penting untuk klasifikasi sifar. -
panduan langkah demi langkah
Bahagian ini memperincikan bagaimana untuk melakukan analisis sentimen dan pengesanan tema menggunakan klasifikasi sifar-shot dengan LLM dan perpustakaan SKLLM.
Langkah 1: Pemasangan dan Persediaan
Pastikan Python 3.7 dipasang dan pasang Skllm:
pip install scikit-llm
Salin selepas log masuk
Salin selepas log masuk
Dapatkan kunci API yang sah untuk pembekal LLM (mis., OpenAI) dan tetapkannya dalam persekitaran anda:
from skllm.config import SKLLMConfig
# Replace with your OpenAI API key
SKLLMConfig.set_openai_key("your_openai_api_key")
Salin selepas log masuk
Salin selepas log masuk
Langkah 2: Import Perpustakaan dan Load Data
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()
Salin selepas log masuk
Langkah 3: Tentukan Label
Untuk klasifikasi sentimen, gunakan:
. Ini boleh disesuaikan seperti yang diperlukan. ["positive", "negative", "neutral"]
Langkah 4: Klasifikasi Zero-Shot
Instantiate
(menggunakan ZeroShotGPTClassifier
atau model lain yang sesuai): gpt-4o
clf = ZeroShotGPTClassifier(model="gpt-4o")
clf.fit(None, ["positive", "negative", "neutral"])
Salin selepas log masuk
menunjukkan bahawa tiada data latihan diperlukan; Pengelas diasaskan dengan set label. fit(None, labels)
Langkah 5: Klasifikasi ulasan
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)
Salin selepas log masuk
Ini memaparkan lima ulasan pertama dan sentimen yang diramalkan.
Perbandingan hasil
Pendekatan ML tradisional memerlukan pelabelan, latihan model, pengesahan, dan kemas kini berterusan. Sifar-shot dengan ketara mengurangkan overhead ini, yang menawarkan hasil segera tanpa data berlabel dan penyempurnaan label mudah.
Kelemahan potensi
- Ketepatan TUJUH: Ketepatan boleh berbeza-beza bergantung kepada kerumitan teks dan keupayaan model untuk mentafsirkan jargon khusus domain.
- Pertimbangan Kos: Menggunakan model berkuasa seperti GPT-4 menanggung kos API.
- Privasi Data: Memastikan pematuhan dengan peraturan privasi data apabila menghantar data ke API luaran.
Klasifikasi teks beberapa tembakan
Klasifikasi beberapa tembakan menggunakan sebilangan kecil contoh berlabel setiap kelas untuk membimbing model. Penganggar SKLLM menggunakan keseluruhan latihan untuk membuat beberapa contoh tembakan. Untuk dataset yang besar, pertimbangkan untuk memisahkan data dan menggunakan subset latihan kecil (mis., Tidak lebih daripada 10 contoh setiap kelas) dan mengalihkan contoh.
pip install scikit-llm
Salin selepas log masuk
Salin selepas log masuk
Klasifikasi Teks Rantai-of-Thought
klasifikasi rantaian-pemikiran menghasilkan langkah-langkah penalaran pertengahan, berpotensi meningkatkan ketepatan tetapi meningkatkan penggunaan token dan kos.
from skllm.config import SKLLMConfig
# Replace with your OpenAI API key
SKLLMConfig.set_openai_key("your_openai_api_key")
Salin selepas log masuk
Salin selepas log masuk
bereksperimen dengan pendekatan beberapa pukulan dan rantai yang boleh dihasilkan dapat menghasilkan hasil yang lebih baik daripada kaedah sifar sifar asas.
Ringkasan
Perpustakaan SKLLM menyediakan alternatif yang cepat dan cekap untuk membina saluran paip analisis sentimen tersuai. Klasifikasi sifar-shot membolehkan analisis cepat maklum balas pelanggan tanpa memerlukan pelabelan manual atau latihan model. Ini amat berharga untuk tugas berulang dan pengembangan label.
mata utama
- klasifikasi sifar-shot memudahkan analisis sentimen tanpa pelabelan manual atau latihan model.
- SKLLM mengintegrasikan Scikit-learn dengan LLMS untuk klasifikasi teks yang cekap.
- LLMS Seperti GPT-4 memberikan hasil klasifikasi berkualiti tinggi dengan segera.
- klasifikasi sifar-shot cepat, boleh disesuaikan, dan memerlukan data yang minimum.
Soalan Lazim
Q1. Memilih antara sifar-tembakan, beberapa tembakan, dan rantaian yang dipikirkan: sifar-shot sangat sesuai untuk prototaip cepat dan data terhad; beberapa tembakan meningkatkan ketepatan dengan dataset berlabel kecil; Rantaian-of-Whought meningkatkan prestasi tetapi meningkatkan kos.
Q2. Bilangan contoh untuk beberapa tembakan: sehingga 10 contoh setiap kelas disyorkan; Contoh shuffle untuk mengelakkan bias.
Q3. Impak Rantai-of-Thought pada Ketepatan: tidak dijamin meningkatkan ketepatan; Keberkesanan bergantung kepada kerumitan tugas dan kejelasan segera.
Q4. Kos pada skala: Kos bergantung kepada penggunaan token, pilihan model, panjang segera, dan saiz dataset. Rantai-of-shought meningkatkan kos disebabkan oleh permintaan yang lebih lama.
Nota: Imej yang digunakan dalam artikel ini tidak dimiliki oleh penulis dan digunakan dengan kebenaran.
Atas ialah kandungan terperinci Klasifikasi teks sifar dan beberapa tembakan dengan Scikit-llm. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!