Este repositório contém um protótipo inicial de um aplicativo interativo escrito em Flask, que explica os resultados da classificação refinada de sentimentos, descritos em detalhes nesta Série Média.
Vários classificadores são implementados e seus resultados explicados usando o explicador LIME. Os classificadores foram treinados no conjunto de dados Stanford Sentiment Treebank (SST-5). Os rótulos das classes são [1, 2, 3, 4, 5]
, onde 1
é muito negativo e 5
é muito positivo.
Primeiro, configure o ambiente virtual e instale a partir de requirements.txt
:
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
Para maior desenvolvimento, basta ativar o ambiente virtual existente.
source venv/bin/activate
Execute o arquivo app.py
e depois digite uma frase, escolha um tipo de classificador e clique no botão Explain results!
. Podemos então observar as características (ou seja, palavras ou tokens) que contribuíram para o classificador prever um rótulo de classe específico.
O aplicativo front-end recebe uma amostra de texto e gera explicações LIME para os diferentes métodos. O aplicativo é implantado usando Heroku neste local: https://sst5-explainer.herokuapp.com/
Brinque com seus próprios exemplos de texto, conforme mostrado abaixo, e veja os resultados de sentimento detalhados explicados!
NOTA: Como os modelos baseados em PyTorch (Flair e o transformador causal) são muito caros para executar inferência (eles exigem uma GPU), esses métodos não são implantados.