? Demonsibras ao vivo online: http://tworld.io/ss3/ ???
O classificador de texto SS3 é um modelo novo e simples de aprendizado de máquina supervisionado para classificação de texto que é interpretável, ou seja, tem a capacidade de naturalmente (eu) explicar sua lógica . Foi originalmente introduzido na seção 3 do artigo "Uma estrutura de classificação de texto para detecção simples e eficaz da depressão precoce sobre os fluxos de mídia social" (ARXIV pré -impressão). Esse modelo simples obteve os melhores e os melhores resultados, consecutivamente, nas três últimas edições do laboratório Erisk da clave entre todos os modelos participantes [Burdisso et al. 2019; Loyola et al. 2021]. Dada a sua natureza de caixa branca, permite que pesquisadores e profissionais implantem modelos interpretáveis (ou seja, auto-explicáveis) e, portanto, mais confiáveis, modelos de classificação de texto (que podem ser especialmente úteis para aqueles que trabalham com problemas de classificação pelos quais a vida das pessoas poderia ser de alguma forma afetada).
NOTA: Este pacote também incorpora diferentes variações do modelo original, como o introduzido em "T-SS3: um classificador de texto com gramas n dinâmicos para detecção de risco precoce sobre fluxos de texto" (pré-impressão Arxiv) que permite que o SS3 reconheça o Word n-Grams de comprimento variável "na mosca".
O Pyss3 é um pacote Python que permite trabalhar com o SS3 de uma maneira muito direta, interativa e visual. Além da implementação do classificador SS3, o Pyss3 vem com um conjunto de ferramentas para ajudá -lo a desenvolver seus modelos de aprendizado de máquina de uma maneira mais clara e mais rápida. Essas ferramentas permitem analisar, monitorar e entender seus modelos, permitindo que você veja o que eles realmente aprenderam e por quê. Para conseguir isso, o Pyss3 fornece três componentes principais: a classe SS3 , a classe Live_Test e a classe Evaluation , conforme apontado abaixo.
SS3que implementa o classificador usando uma API clara. Por exemplo, vamos primeiro carregar um dos conjuntos de dados do 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" ) Agora vamos treinar nosso primeiro modelo SS3! Observe que a API é muito semelhante à dos modelos de sklearn :
from pyss3 import SS3
clf = SS3 ()
clf . fit ( x_train , y_train )
y_pred = clf . predict ( x_test ) Além disso, esta classe fornece um punhado de outros métodos úteis, como, por exemplo, extract_insight() para extrair os fragmentos de texto envolvidos na decisão de classificação (permitindo que você entenda melhor a lógica por trás das previsões do modelo) ou classify_multilabel() fornecer suporte a classificação de vários 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 permite testar interativamente o seu modelo e veja visualmente os motivos por trás das decisões de classificação, com apenas uma linha 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? :) Conforme mostrado na imagem abaixo, isso será aberto, localmente, uma ferramenta interativa no seu navegador que você pode usar para testar seus modelos com os documentos fornecidos no x_test (ou digitando por conta própria!). Isso permitirá que você visualize e entenda o que seu modelo está realmente aprendendo.
Por exemplo, enviamos dois desses testes ao vivo on -line para você experimentar: "Revisão de filmes (análise de sentimentos) e" categorização de tópicos ", ambos foram obtidos após os tutoriais.
Evaluation Este é provavelmente um dos componentes mais úteis do Pyss3. As the name suggests, this class provides the user easy-to-use methods for model evaluation and hyperparameter optimization, like, for example, the test , kfold_cross_validation , grid_search , and plot methods for performing tests, stratified k-fold cross validations, grid searches for hyperparameter optimization, and visualizing evaluation results using an interactive 3D plot, respectively. Provavelmente, um de seus recursos mais importantes é a capacidade de registrar automaticamente (e permanentemente) o histórico das avaliações que você executou. Isso economizará muito tempo e permitirá que você visualize e analise interativamente o desempenho do seu classificador em termos de seus diferentes valores de hiper-parâmetros (e selecione o melhor modelo de acordo com suas necessidades). Por exemplo, vamos realizar uma pesquisa de grade com uma validação cruzada de 4 vezes nos três hiperparâmetros, suavidade ( s ), significância ( l ) e sanção ( 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
) Neste exemplo ilustrativo, s , l e p levarão esses 6 valores diferentes cada, e assim que a pesquisa terminar, essa função retornará (por padrão) os valores de hiperparameter que obtiveram a melhor precisão. Agora, também poderíamos usar a função plot para analisar os resultados obtidos em nossa pesquisa de grade usando o gráfico interativo de avaliação 3D:
Evaluation . plot () Neste gráfico 3D, cada ponto representa um experimento/avaliação realizada usando essa combinação específica de valores ( s , l e p ). Além disso, esses pontos são pintados proporcionais ao bom desempenho, de acordo com a métrica selecionada; O gráfico atualizará "On the Fly" quando o usuário selecionar uma métrica de avaliação diferente (precisão, precisão, recall, F1, etc.). Além disso, quando o cursor é movido sobre um ponto de dados, informações úteis são mostradas (incluindo uma representação "compacta" da matriz de confusão obtida nesse experimento). Finalmente, vale a pena mencionar que, antes de mostrar as parcelas 3D, o Pyss3 cria um único arquivo HTML único e portátil na pasta do projeto que contém os gráficos interativos. Isso permite que os usuários armazenem, enviem ou enviem as parcelas para outro local usando este único arquivo HTML. Por exemplo, enviamos dois desses arquivos para você ver: "Análise de sentimentos (revisões de filmes)" e "categorização de tópicos", ambos os gráficos de avaliação também foram obtidos após os tutoriais.
Basta ir para a página de início: D
Basta usar:
pip install pyss3 Obrigado pelo seu interesse no projeto, você é !! Qualquer tipo de ajuda é muito bem -vinda (código, relatórios de bugs, conteúdo, dados, documentação, design, exemplos, idéias, feedback etc.), problemas e/ou solicitações de puxar são bem -vindos para qualquer nível de melhoria, de um pequeno erro de digitação a novos recursos, nos ajude a melhorar o Pyss3?
Lembre -se de que você pode usar o botão "Editar" (ícone 'lápis') na parte superior para editar qualquer arquivo deste repositório diretamente no GitHub.
Finalmente, caso você planeje criar uma nova solicitação de tração , para se comprometer com este repositório, seguimos as "sete regras de uma grande mensagem de commit Git" de "Como escrever uma mensagem GIT COMITE", portanto, verifique se os seus compromissos os seguem também.
(Se você precisar de mais informações, não hesite em entrar em contato comigo - [email protected])
Obrigado a essas pessoas incríveis (key emoji):
Florian Angermeir ? ? | Muneeb Vaiyani ? ? | Saurabh Bora ? | Hubert Baniecki ? |
Este projeto segue a especificação de todos os contribuintes. Contribuições de qualquer tipo de boas -vindas!
Documentação completa
Documentação da API
PRESEIRA DE PAPEL