Este repositório contém o equivalente Streamlit de um aplicativo interativo existente, que explica os resultados da classificação refinada de sentimentos, descrita 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.
Streamlit é uma estrutura leve e minimalista para construir painéis em Python. O foco principal do Streamlit é fornecer aos desenvolvedores a capacidade de prototipar rapidamente seus designs de UI usando o mínimo de linhas de código possível. Todo o trabalho pesado normalmente necessário para implantar um aplicativo da web, como definir o servidor back-end e suas rotas, lidar com solicitações HTTP, etc., é abstraído do usuário. Como resultado, torna-se muito fácil implementar rapidamente um aplicativo web, independentemente da experiência do desenvolvedor.
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
Depois que o ambiente virtual estiver configurado e ativado, execute o aplicativo usando o comando abaixo.
streamlit run app.py
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-streamlit.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. No entanto, eles podem ser executados em uma instância local do aplicativo.