? Demo langsung online: http://tworld.io/ss3/ ???
Klasifikasi teks SS3 adalah model pembelajaran mesin yang baru dan diawasi sederhana untuk klasifikasi teks yang dapat ditafsirkan, yaitu, ia memiliki kemampuan untuk secara alami (diri sendiri) menjelaskan alasannya . Awalnya diperkenalkan di bagian 3 dari makalah "Kerangka Klasifikasi Teks untuk Deteksi Depresi Dini yang Sederhana dan Efektif Selama Aliran Media Sosial" (ARXIV Preprint). Model sederhana ini memperoleh hasil terbaik dan terbaik ke-2, secara berurutan, dalam tiga edisi terakhir laboratorium Erisk Clef di antara semua model yang berpartisipasi [Burdisso et al. 2019; Loyola et al. 2021]. Mengingat sifat kotak putihnya, ini memungkinkan para peneliti dan praktisi untuk menggunakan yang dapat ditafsirkan (yaitu yang dapat dijelaskan sendiri) dan oleh karena itu lebih dapat diandalkan, model untuk klasifikasi teks (yang bisa sangat berguna bagi mereka yang bekerja dengan masalah klasifikasi yang dengannya kehidupan orang dapat terpengaruh).
CATATAN: Paket ini juga menggabungkan variasi yang berbeda dari model asli, seperti yang diperkenalkan dalam "T-SS3: Klasifikasi teks dengan gram n dinamis untuk deteksi risiko awal atas aliran teks" (pracrint arxiv) yang memungkinkan SS3 untuk mengenali kata N-gram N-gram yang penting "dengan cepat".
Pyss3 adalah paket Python yang memungkinkan Anda bekerja dengan SS3 dengan cara yang sangat mudah, interaktif, dan visual. Selain implementasi SS3 Classifier, Pyss3 hadir dengan serangkaian alat untuk membantu Anda mengembangkan model pembelajaran mesin Anda dengan cara yang lebih jelas dan lebih cepat. Alat -alat ini memungkinkan Anda menganalisis, memantau, dan memahami model Anda dengan memungkinkan Anda untuk melihat apa yang telah mereka pelajari dan mengapa. Untuk mencapai hal ini, Pyss3 memberi Anda 3 komponen utama: kelas SS3 , kelas Live_Test , dan kelas Evaluation , seperti yang ditunjukkan di bawah ini.
SS3yang mengimplementasikan classifier menggunakan API yang jelas. Misalnya, mari kita memuat salah satu dataset tutorial:
from pyss3 . util import Dataset
url = "https://github.com/sergioburdisso/pyss3/raw/master/examples/datasets/movie_review.zip"
x_train , y_train = Dataset . load_from_url ( url , "train" )
x_test , y_test = Dataset . load_from_url ( url , "test" ) Sekarang mari kita latih model SS3 pertama kita! Perhatikan bahwa API sangat mirip dengan model sklearn :
from pyss3 import SS3
clf = SS3 ()
clf . fit ( x_train , y_train )
y_pred = clf . predict ( x_test ) Juga, kelas ini menyediakan beberapa metode yang berguna lainnya, seperti, misalnya, extract_insight() untuk mengekstrak fragmen teks yang terlibat dalam keputusan klasifikasi (memungkinkan Anda untuk lebih memahami alasan di balik prediksi model) atau classify_multilabel() untuk memberikan dukungan klasifikasi multi-label:
doc = "Liverpool CEO Peter Moore on Building a Global Fanbase"
# standard "single-label" classification
label = clf . classify_label ( doc ) # 'business'
# multi-label classification
labels = clf . classify_multilabel ( doc ) # ['business', 'sports']Live_Testyang memungkinkan Anda untuk menguji model Anda secara interaktif dan secara visual melihat alasan di balik keputusan klasifikasi, hanya dengan satu baris kode :
from pyss3 . server import Live_Test
clf = SS3 ()
clf . fit ( x_train , y_train )
Live_Test . run ( clf , x_test , y_test ) # <- this one! cool uh? :) Seperti yang ditunjukkan pada gambar di bawah ini, ini akan terbuka, secara lokal, alat interaktif di browser Anda yang dapat Anda gunakan untuk (langsung) menguji model Anda dengan dokumen yang diberikan dalam x_test (atau mengetik sendiri!). Ini akan memungkinkan Anda untuk memvisualisasikan dan memahami apa yang sebenarnya dipelajari model Anda.
Misalnya, kami telah mengunggah dua tes langsung ini secara online untuk Anda coba: "Ulasan film (analisis sentimen)" dan "kategorisasi topik", keduanya diperoleh setelah tutorial.
Evaluation Ini mungkin salah satu komponen Pyss3 yang paling berguna. Seperti namanya, kelas ini memberikan metode yang mudah digunakan pengguna untuk evaluasi model dan optimasi hiperparameter, seperti, misalnya, test , kfold_cross_validation , grid_search , dan metode plot untuk melakukan tes, validasi silang Kabang yang dikelompokkan, grid untuk penghormatan. Mungkin salah satu fitur terpentingnya adalah kemampuan untuk secara otomatis (dan secara permanen) merekam sejarah evaluasi yang telah Anda lakukan. Ini akan menghemat banyak waktu dan akan memungkinkan Anda untuk memvisualisasikan secara interaktif dan menganalisis kinerja classifier Anda dalam hal nilai hyper-parameter yang berbeda (dan memilih model terbaik sesuai dengan kebutuhan Anda). Misalnya, mari kita lakukan pencarian grid dengan validasi silang 4 kali lipat pada tiga hiperparameter, kehalusan, signifikansi ( s ), dan sanksi ( p l :
from pyss3 . util import Evaluation
best_s , best_l , best_p , _ = Evaluation . grid_search (
clf , x_train , y_train ,
s = [ 0.2 , 0.32 , 0.44 , 0.56 , 0.68 , 0.8 ],
l = [ 0.1 , 0.48 , 0.86 , 1.24 , 1.62 , 2 ],
p = [ 0.5 , 0.8 , 1.1 , 1.4 , 1.7 , 2 ],
k_fold = 4
) Dalam contoh ilustratif ini, s , l , dan p akan mengambil 6 nilai yang berbeda masing -masing, dan setelah pencarian selesai, fungsi ini akan mengembalikan (secara default) nilai hyperparameter yang memperoleh akurasi terbaik. Sekarang, kami juga dapat menggunakan fungsi plot untuk menganalisis hasil yang diperoleh dalam pencarian grid kami menggunakan plot evaluasi 3D interaktif:
Evaluation . plot () Dalam plot 3D ini, setiap titik mewakili percobaan/evaluasi yang dilakukan dengan menggunakan kombinasi nilai tertentu ( s , l , dan p ). Juga, titik -titik ini dicat sebanding dengan seberapa baik kinerja menurut metrik yang dipilih; Plot akan memperbarui "dengan cepat" ketika pengguna memilih metrik evaluasi yang berbeda (akurasi, presisi, recall, f1, dll.). Selain itu, ketika kursor dipindahkan pada titik data, informasi yang berguna ditampilkan (termasuk representasi "kompak" dari matriks kebingungan yang diperoleh dalam percobaan itu). Akhirnya, perlu disebutkan bahwa, sebelum menunjukkan plot 3D, Pyss3 membuat file HTML tunggal dan portabel di folder proyek Anda yang berisi plot interaktif. Ini memungkinkan pengguna untuk menyimpan, mengirim atau mengunggah plot ke tempat lain menggunakan file HTML tunggal ini. Misalnya, kami telah mengunggah dua file ini untuk Anda lihat: "Analisis Sentimen (Ulasan Film)" dan "Kategorisasi Topik", kedua plot evaluasi juga diperoleh setelah tutorial.
Pergi saja ke halaman pemula: D
Cukup gunakan:
pip install pyss3 Terima kasih atas minat Anda pada proyek ini, Anda !! Segala jenis bantuan yang sangat disambut (kode, laporan bug, konten, data, dokumentasi, desain, contoh, ide, umpan balik, dll.), Masalah dan/atau permintaan tarik dipersilakan untuk tingkat peningkatan apa pun, dari kesalahan ketik kecil hingga fitur baru, membantu kami membuat Pyss3 lebih baik?
Ingatlah bahwa Anda dapat menggunakan tombol "Edit" (ikon 'pensil') di atas untuk mengedit file repo ini secara langsung di GitHub.
Akhirnya, jika Anda berencana untuk membuat permintaan tarik baru , untuk berkomitmen pada repo ini, kami mengikuti "tujuh aturan pesan komit git yang hebat" dari "Cara Menulis Pesan Git Commit", jadi pastikan komitmen Anda mengikuti mereka juga.
(Jika Anda memerlukan informasi lebih lanjut, tolong jangan ragu untuk menghubungi saya - [email protected])
Terima kasih kepada orang -orang yang luar biasa ini (kunci emoji):
Florian Angermeir ? ? | Muneeb Vaiyani ? ? | Saurabh Bora ? | Hubert Baniecki ? |
Proyek ini mengikuti spesifikasi semua-kontributor. Kontribusi apa pun yang baik!
Dokumentasi lengkap
Dokumentasi API
Preprint kertas