Neste projeto, será feito uma análise de sentimentos para avaliar se o texto apresenta o stress ou não, a partir de dataset obtido no kaggle (que pode ser obtido aqui) na qual foi extraido texto de comunidades no reddit.
Se quiser ler mais sobre o tema de NLP pode acessar o material no notion aqui no qual está os materiais que estudei e os slides.
Foi escolhido do datset apenas três colunas, sendo elas:
- Subreddit: Comunidade de onde o texto foi retirado;
- Texto: Texto que será utilizado para detecção de stress;
- label: 1 se for pra stress, 0 caso contrário.
Se olharmos a quatidade de labels, veremos que os mesmo tem quase a mesma qualidade, ou seja, não há um desbalanceamento dos dados.
Por comunidade, veremos que as comunidade que tem mais textos tem a ver com relações, ansiedade e ptsd (stress pós-traumático).
Separando as comunidades por label, temos que algumas comunidades apresentam mais textos como stress do que outras, como ansiedade e ptsd, que apresnetam mais textos com stress
- Comparando os wordclous entre textos com stress e sem, vemos que não há muito difrença nas palavras, apenas a palavra ansiedade que se tem no texto com stress.
Depois de um pré-processamento, foi dividido o dataset em 70% de treino e 30% de teste, da qual se utilizou vários algoritmos de machine learning, da qual se obteve os seguintes resultados.
(Se quiser entender um pouco mais sobre clique aqui).
Comparando as métircas, podemos ver que:
- Comparando as métricas, podemos ver que os modelos com melhor perfomace foram Multinomial NB (naive bayes), SVM com kernel sigmoid, e o Catboost.
- Comparando o acertos que os modelos tiveram, podemos ver a partir desses gráficos, que o modelo Multinomial NB acerto um pouco mais de texto sem stress, entretanto errou mais texto com stress, para ler mais sobre esse grá fico clique aqui.
-
Poderia ser feito o metodo embbeding na tokenização;
-
Fazer o cross-validation para comparar o resultado de vários testes (para saber melhor o que é cross-validation clique aqui).
- Fazer uma maior investigação pra ver se existem termos que tem mais uma classe do que outro.
- Aplicar otimização de hiperparametros nos modelos que tiveram as melhores perfomaces.