? Demos en vivo en línea: http://tworld.io/ss3/ ???
El clasificador de texto SS3 es un modelo de aprendizaje automático supervisado novedoso y simple para la clasificación de texto que es interpretable, es decir, tiene la capacidad de explicar naturalmente (a sí mismo) su justificación . Originalmente se introdujo en la Sección 3 del documento "Un marco de clasificación de texto para una detección de depresión temprana simple y efectiva en las transmisiones de redes sociales" (preimpresión ARXIV). Este modelo simple obtuvo los mejores y mejores resultados, consecutivamente, en las últimas tres ediciones del laboratorio Erisk de la Clef entre todos los modelos participantes [Burdisso et al. 2019; Loyola et al. 2021]. Dada su naturaleza de caja blanca, permite a los investigadores y profesionales desplegar modelos interpretables (es decir, autoexplicables) y, por lo tanto, más confiables, modelos para la clasificación de texto (lo que podría ser especialmente útil para aquellos que trabajan con problemas de clasificación por los cuales la vida de las personas podría verse afectado de alguna manera).
Nota: Este paquete también incorpora diferentes variaciones del modelo original, como el introducido en "T-SS3: un clasificador de texto con N-Grams dinámicos para la detección de riesgos tempranos sobre los flujos de texto" (Prepimprint ARXIV) que permite a SS3 reconocer importantes N-Grams de longitud variable "en la mosca".
Pyss3 es un paquete Python que le permite trabajar con SS3 de una manera muy directa, interactiva y visual. Además de la implementación del clasificador SS3, Pyss3 viene con un conjunto de herramientas para ayudarlo a desarrollar sus modelos de aprendizaje automático de una manera más clara y rápida. Estas herramientas le permiten analizar, monitorear y comprender sus modelos permitiéndole ver lo que realmente han aprendido y por qué. Para lograr esto, Pyss3 le proporciona 3 componentes principales: la clase SS3 , la clase Live_Test y la clase Evaluation , como se señaló a continuación.
SS3que implementa el clasificador usando una API clara. Por ejemplo, primero cargamos uno del conjunto de datos del 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" ) ¡Ahora entrenemos nuestro primer modelo SS3! Tenga en cuenta que la API es muy similar a la de los modelos de sklearn :
from pyss3 import SS3
clf = SS3 ()
clf . fit ( x_train , y_train )
y_pred = clf . predict ( x_test ) Además, esta clase proporciona un puñado de otros métodos útiles, como, por ejemplo, extract_insight() para extraer los fragmentos de texto involucrados en la decisión de clasificación (lo que le permite comprender mejor la justificación detrás de las predicciones del modelo) o classify_multilabel() para proporcionar soporte de clasificación de múltiples etiquetas:
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_Testque le permite probar interactivamente su modelo y ver visualmente las razones detrás de las decisiones de clasificación, con solo una línea de código :
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? :) Como se muestra en la imagen a continuación, esto se abrirá, localmente, una herramienta interactiva en su navegador que puede usar para probar (en vivo) sus modelos con los documentos dados en x_test (¡o escribir en el suyo!). Esto le permitirá visualizar y comprender qué está aprendiendo realmente su modelo.
Por ejemplo, hemos subido dos de estas pruebas en vivo en línea para que pruebe: "Revisión de películas (análisis de sentimientos)" y "categorización de temas", ambas se obtuvieron después de los tutoriales.
Evaluation Este es probablemente uno de los componentes más útiles de Pyss3. Como su nombre indica, esta clase proporciona al usuario métodos fáciles de usar para la evaluación del modelo y la optimización de hiperparameter, como, por ejemplo, la test , kfold_cross_validation , grid_search y los métodos plot para realizar pruebas, validaciones cruzadas K-Fold estratificadas, las búsquedas de la grilla para la optimización de hiperparámetro y la visualización de la evaluación de la evaluación utilizando una trama interactiva 3D, respectivamente. Probablemente una de sus características más importantes es la capacidad de registrar automáticamente (y permanentemente) el historial de evaluaciones que ha realizado. Esto le ahorrará mucho tiempo y le permitirá visualizar y analizar interactivamente su rendimiento del clasificador en términos de sus diferentes valores de hiperparametadores (y seleccionar el mejor modelo según sus necesidades). Por ejemplo, realicemos una búsqueda de cuadrícula con una validación cruzada de 4 veces en los tres hiperparámetros, suavidad ( s ), importancia ( l ) y sanción ( 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
) En este ejemplo ilustrativo, s , l y p tomarán esos 6 valores diferentes cada uno, y una vez que la búsqueda haya terminado, esta función devolverá (por defecto) los valores de hiperparameter que obtuvieron la mejor precisión. Ahora, también podríamos usar la función plot para analizar los resultados obtenidos en nuestra búsqueda de cuadrícula utilizando el gráfico de evaluación 3D interactivo:
Evaluation . plot () En este gráfico 3D, cada punto representa un experimento/evaluación realizada utilizando esa combinación particular de valores ( s , l y p ). Además, estos puntos están pintados proporcionales a lo bueno que fue el rendimiento de acuerdo con la métrica seleccionada; El gráfico se actualizará "sobre la mosca" cuando el usuario seleccione una métrica de evaluación diferente (precisión, precisión, recuperación, F1, etc.). Además, cuando el cursor se mueve sobre un punto de datos, se muestra información útil (incluida una representación "compacta" de la matriz de confusión obtenida en ese experimento). Finalmente, vale la pena mencionar que, antes de mostrar las gráficas 3D, Pyss3 crea un archivo HTML único y portátil en la carpeta de su proyecto que contiene los gráficos interactivos. Esto permite a los usuarios almacenar, enviar o cargar los gráficos a otro lugar utilizando este archivo HTML único. Por ejemplo, hemos cargado dos de estos archivos para que vea: "Análisis de sentimientos (reseñas de películas)" y "Categorización de temas", ambos gráficos de evaluación también se obtuvieron después de los tutoriales.
Solo vaya a la página de inicio: D
Simplemente use:
pip install pyss3 Gracias por tu interés en el proyecto, ¡estás! Cualquier tipo de ayuda es muy bienvenida (el código, los informes de errores, el contenido, los datos, la documentación, el diseño, los ejemplos, las ideas, los comentarios, etc.), los problemas y/o las solicitudes de extracción son bienvenidos para cualquier nivel de mejora, desde un error tipográfico pequeño hasta nuevas características, nos ayuda a mejorar PYS3?
Recuerde que puede usar el botón "Editar" (icono 'lápiz') en la parte superior para editar cualquier archivo de este repositorio directamente en GitHub.
Finalmente, en caso de que planee crear una nueva solicitud de extracción , para comprometerse con este repositorio, seguimos las "Siete reglas de un gran mensaje de confirmación de GIT" del "Cómo escribir un mensaje de confirmación de git", así que asegúrese de que sus compromisos también las sigan también.
(Si necesita más información, no dude en ponerse en contacto conmigo - [email protected])
Gracias a estas personas increíbles (Key Emoji):
Florian Angermeir ? ? | Muneeb vaiyani ? ? | Saurabh bora ? | Hubert Baniecki ? |
Este proyecto sigue la especificación de todos los contribuyentes. ¡Contribuciones de cualquier tipo bienvenido!
Documentación completa
Documentación de API
Preimpresión