? Demos en direct en ligne: http://tworld.io/ss3/ ???
Le classificateur de texte SS3 est un modèle d'apprentissage automatique supervisé nouveau et simple pour la classification du texte qui est interprétable, c'est-à-dire qu'il a la capacité d'expliquer naturellement sa justification . Il a été initialement introduit dans la section 3 du document "un cadre de classification de texte pour une détection de dépression précoce simple et efficace sur les flux de médias sociaux" (ARXIV Preprint). Ce modèle simple a obtenu les meilleurs et 2e meilleurs résultats, consécutivement, dans les trois dernières éditions du laboratoire Erisk du CLEF parmi tous les modèles participants [Burdisso et al. 2019; Loyola et al. 2021]. Compte tenu de sa nature blanche, il permet aux chercheurs et aux praticiens de déployer des modèles interprétables (c'est-à-dire auto-explicables) et donc plus fiables, des modèles de classification du texte (qui pourraient être particulièrement utiles pour ceux qui travaillent avec des problèmes de classification par lesquels la vie des gens pourrait être affectée en quelque sorte).
Remarque: Ce package intègre également différentes variations du modèle d'origine, telles que celle introduite dans "T-SS3: un classificateur de texte avec des N-grammes dynamiques pour la détection des risques précoces sur les flux de texte" (ARXIV Preprint) qui permet à SS3 de reconnaître un mot n-grammes de longueur variable d'important "sur la mouche".
Pyss3 est un package Python qui vous permet de travailler avec SS3 d'une manière très simple, interactive et visuelle. En plus de la mise en œuvre du classificateur SS3, PYSS3 est livré avec un ensemble d'outils pour vous aider à développer vos modèles d'apprentissage automatique d'une manière plus claire et plus rapide. Ces outils vous permettent d'analyser, de surveiller et de comprendre vos modèles en vous permettant de voir ce qu'ils ont réellement appris et pourquoi. Pour y parvenir, Pyss3 vous fournit 3 composants principaux: la classe SS3 , la classe Live_Test et la classe Evaluation , comme indiqué ci-dessous.
SS3qui implémente le classificateur à l'aide d'une API claire. Par exemple, chargeons d'abord l'un des ensembles de données du tutoriel:
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" ) Maintenant, formons notre premier modèle SS3! Notez que l'API est très similaire à celle des modèles de sklearn :
from pyss3 import SS3
clf = SS3 ()
clf . fit ( x_train , y_train )
y_pred = clf . predict ( x_test ) De plus, cette classe fournit une poignée d'autres méthodes utiles, telles que, par exemple, extract_insight() pour extraire les fragments de texte impliqués dans la décision de classification (vous permettant de mieux comprendre la justification derrière les prédictions du modèle) ou classify_multilabel() pour fournir un support de classification multi-élaborations:
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_TestCe qui vous permet de tester votre modèle de manière interactive et de voir visuellement les raisons derrière les décisions de classification, avec une seule ligne de code :
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? :) Comme indiqué dans l'image ci-dessous, cela s'ouvrira, localement, un outil interactif dans votre navigateur que vous pouvez utiliser pour (en direct) tester vos modèles avec les documents donnés dans x_test (ou taper le vôtre!). Cela vous permettra de visualiser et de comprendre ce que votre modèle apprend réellement.
Par exemple, nous avons téléchargé deux de ces tests en direct en ligne pour que vous puissiez essayer: "Revue de film (analyse des sentiments)" et "catégorisation de sujets", les deux ont été obtenus après les tutoriels.
Evaluation C'est probablement l'un des composants les plus utiles de PYSS3. Comme son nom l'indique, cette classe fournit à l'utilisateur des méthodes faciles à utiliser pour l'évaluation des modèles et l'optimisation de l'hyperparamètre, comme, par exemple, le test , kfold_cross_validation , grid_search et les méthodes plot pour effectuer des tests, la visualisation des résultats de l'évaluation K-Fold, un tracé 3D interactif, respectivement, respectivement. L'une de ses fonctionnalités les plus importantes est probablement la possibilité d'enregistrer automatiquement (et définitivement) l'historique des évaluations que vous avez effectuées. Cela vous fera gagner beaucoup de temps et vous permettra de visualiser et d'analyser de manière interactive les performances de votre classificateur en termes de ses différentes valeurs d'hyper-paramètres (et de sélectionner le meilleur modèle en fonction de vos besoins). Par exemple, effectuons une recherche de grille avec une validation croisée de 4 fois sur les trois hyperparamètres, la douceur ( s ), la signification ( l ) et la sanction ( p ):
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
) Dans cet exemple illustratif, s , l et p prendra ces 6 valeurs différentes chacune, et une fois la recherche terminée, cette fonction renvoie (par défaut) les valeurs d'hyperparamètre qui ont obtenu la meilleure précision. Maintenant, nous pourrions également utiliser la fonction plot pour analyser les résultats obtenus dans notre recherche de grille en utilisant le tracé d'évaluation 3D interactif:
Evaluation . plot () Dans ce tracé 3D, chaque point représente une expérience / évaluation effectuée en utilisant cette combinaison particulière de valeurs ( s , l et p ). De plus, ces points sont peints proportionnels à la qualité des performances en fonction de la métrique sélectionnée; Le tracé mettra à jour "à la volée" lorsque l'utilisateur sélectionne une métrique d'évaluation différente (précision, précision, rappel, F1, etc.). De plus, lorsque le curseur est déplacé sur un point de données, des informations utiles sont affichées (y compris une représentation "compacte" de la matrice de confusion obtenue dans cette expérience). Enfin, il convient de mentionner que, avant d'afficher les parcelles 3D, PYSS3 crée un fichier HTML unique et portable dans votre dossier de projet contenant les parcelles interactives. Cela permet aux utilisateurs de stocker, d'envoyer ou de télécharger les tracés dans un autre endroit en utilisant ce fichier HTML unique. Par exemple, nous avons téléchargé deux de ces fichiers pour que vous puissiez voir: "Analyse des sentiments (critiques de films)" et "Catégorisation de sujet", les deux tracés d'évaluation ont également été obtenus après les tutoriels.
Allez simplement à la page de démarrage: D
Utiliser simplement:
pip install pyss3 Merci de votre intérêt pour le projet, vous êtes !! Tout type d'aide est le bienvenu (code, rapports de bogues, contenu, données, documentation, conception, exemples, idées, commentaires, etc.), les problèmes et / ou les demandes de traction sont les bienvenus pour tout niveau d'amélioration, d'une petite faute de frappe à de nouvelles fonctionnalités, nous aidez-nous à améliorer PYSS3?
N'oubliez pas que vous pouvez utiliser le bouton "Modifier" (icône 'crayon') en haut pour modifier n'importe quel fichier de ce référentiel directement sur github.
Enfin, au cas où vous prévoyez de créer une nouvelle demande de traction , pour vous engager dans ce dépôt, nous suivons les "sept règles d'un grand message Git Commit" de "Comment rédiger un message Git Commit", alors assurez-vous que vos engagements les suivent également.
(Si vous avez besoin d'informations supplémentaires, n'hésitez pas à me contacter - [email protected])
Merci à ces gens formidables (clé emoji):
Florian Angermeir ? ? | Muneeb Vaiyani ? ? | Saurabh Bora ? | Hubert Baniecki ? |
Ce projet suit les spécifications de tous les contributeurs. Contributions de toute nature bienvenue!
Documentation complète
Documentation API
Préparation en papier