Previsão de sentimento de tuítes do COVID-19

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon.

Introdução

como reabilitar pessoas por meio do uso de dados e informações relevantes.

Neste projeto, vamos prever os sentimentos dos tweets do COVID-19. Os dados coletados do Tweeter e vou usar o ambiente Python para implementar este projeto.

Exposição do problema

O desafio apresentado é construir um modelo de classificação para prever o sentimento dos tweets da Covid-19.. Os tweets foram extraídos do Twitter e a marcação manual foi realizada. Recebemos informações como Localização, Tuitear en, Tuíte original e sentimento.

Abordagem para analisar vários sentimentos

Antes de continuar, é útil saber o que se entende por análise de sentimento. A análise de sentimento é o processo de identificar e categorizar computacionalmente as opiniões expressas em um texto, especialmente para determinar se a atitude do escritor em relação a um determinado tópico é positiva, Negativa o Neutral. (dicionário de Oxford)

Abaixo está o procedimento operacional padrão para abordar o tipo de projeto de análise de sentimento. Vamos passar por este procedimento para prever o que devemos prever!!

  1. Análise exploratória de dados.

  2. Pré-processamento de dados.

  3. Vetorização.

  4. Modelos de classificação.

  5. Avaliação.

  6. conclusão.

Vamos adivinhar alguns tweets

Vou ler o tweet e você pode me dizer qual é o sentimento desse tweet se for positivo, negativo o neutral? Então, o primeiro tweet é “Ainda me surpreende quantos funcionários do supermercado #Toronto trabalham sem algum tipo de máscara. Todos nós sabemos agora que os funcionários podem ser assintomáticos enquanto transmitem #coronavírus ”. Qual é o seu palpite? sim, tem razão. Este é um tweet negativo porque contém palavras negativas como “Surpreso”.

Se você não consegue adivinhar o tweet acima, não se preocupe, Eu tenho outro tweet para você. Vamos adivinhar este tweet-"Devido à situação da Covid-19, aumentamos a demanda por todos os produtos alimentícios. O tempo de processamento pode ser maior para todos os pedidos online, especialmente os pacotes de freezer e compartilhamento de carne bovina. Agradecemos sua paciência durante esse tempo. ". Desta vez, você está absolutamente correto em prever este tweet como “Positivo”. Palavras como “Obrigado”, “Maior demanda” são otimistas por natureza, então essas palavras categorizaram o tweet como positivo.

Resumo de dados

O conjunto de dados original tem 6 colunas e 41157 filas. Para analisar vários sentimentos, precisamos apenas de duas colunas chamadas Original Tweet e Sentiment. Existem cinco tipos de sentimentos: Extremamente negativo, negativo, neutro, positivo e extremamente positivo como você pode ver na imagem a seguir.

56118data20summary-1630560

Resumo do conjunto de dados

Análise exploratória básica de dados

Colunas como “Nome de usuário” e “Nome do ecrã“Eles não fornecem informações significativas para nossa análise. Portanto, não usamos essas funções para construção de modelo. Todos os dados de tweet coletados para os meses de março e abril 2020. O gráfico de barras a seguir nos mostra o número de valores únicos em cada coluna.

56103Unique20values-4577149

Existem alguns valores nulos na coluna de localização, mas não precisamos cuidar deles, uma vez que usaremos apenas duas colunas, quer dizer, “Sentindo-me” e “Tweet original”. A maioria dos tweets veio de Londres (11,7%), como se desprende de la siguiente figura.

67792ratio20of20location-6014881

Existem algumas palavras como 'coronavírus', 'bomboneria', que têm a frequência máxima em nosso conjunto de dados. Podemos ver isso na seguinte nuvem de palavras. Existem várias #hashtags na coluna do tweet. Mas eles são quase os mesmos em todos os sentimentos, então eles não nos fornecem informações completas e significativas.

85272world20cloud-8255543

World Cloud mostrando as palavras com frequência máxima em nossa coluna Tweet

87807hashtags-8988051

Quando tentamos explorar a coluna 'Sentimento', descobrimos que a maioria das pessoas tem sentimentos positivos sobre vários tópicos, o que nos mostra seu otimismo em tempos de pandemia. Muito poucas pessoas têm pensamentos extremamente negativos sobre a Covid-19.

17245sentiment20count-5558933

Pré-processamento de dados

O pré-processamento de dados de texto é uma etapa essencial, pois torna o texto simples pronto para mineração. O objetivo desta etapa é limpar os ruídos menos relevantes para encontrar o sentimento de tweets como pontuação(.,?, ”Etc.), caracteres especiais(@,%, &, $, etc.), números(1,2,3, etc.), manga o tweeter, links(HTTPS: / HTTP:) e termos que não têm muito peso no contexto do texto.

83662tweet20single-4100190

O que mais, devemos remover palavras vazias dos tweets. Palavras irrelevantes são aquelas palavras de linguagem natural que têm muito pouco significado., O que “isto é”, “uma”, “a”, etc. Para remover palavras irrelevantes de uma frase, você pode quebrar o texto em palavras e, em seguida, excluir a palavra se ela existir na lista de palavras irrelevantes fornecida por NLTK.

Mais tarde, precisamos normalizar os tweets usando Stemming ou Lemmatization. “Stemming ”é um processo baseado em regras para remover sufixos (“Ing”,“Sim”," isto é ",“Ed”,“S”, etc.) de uma palavra. Por exemplo, “Toque”, “jogador”, “reproduziu”, “Toque” e “Toque” são as diferentes variações da palavra – “Toque”.

41564stemming-5718178

A derivação não converterá as palavras originais em palavras significativas. Como você pode ver, “considerado” é derivado em “condicional”, que não tem significado e também é um erro ortográfico. A melhor maneira é usar lematização em vez do processo de derivação.

O stemming é uma operação mais poderosa e leva em consideração a análise morfológica das palavras. Devolve o lema, que é a forma básica de todas as suas formas flexionais.

16582lema-8257270

Aqui, no processo de lematização, estamos transformando a palavra “erguer” à sua forma básica “erguer”. También necesitamos convertir todos los tweets a minúsculas antes de realizar el proceso de padronização.

Podemos incluir o processo de tokenização. Em tokenização, nós convertemos um grupo de frases em tokens. También se denomina O desempenho é exibido como gráficos de dispersão e caixa de texto o análise léxico. Basicamente, trata-se de dividir os dados em um pequeno número de palavras. A tokenização em Python pode ser feita por Python NLTK função word_tokenize () da Biblioteca.

Vetorização

Podemos usar um vetorizador de contagem ou um vetorizador TF-IDF. O Count Vectorizer irácriar um array esparso de todas as palavras e o número de vezes que elas estão presentes em um documento.

TFIDF, abreviatura de termo frequência-frequência inversa do documento, é uma estatística numérica que tenta refletir a importância de uma palavra para um documento em uma coleção ou corpus. O valor TF - IDF aumenta proporcionalmente ao número de vezes que uma palavra aparece no documento e é compensado pelo número de documentos no corpus que contêm a palavra, o que ajuda a ajustar o fato de que algumas palavras aparecem com mais frequência em geral. (wiki)

Modelos de classificação de edifícios

O problema dado é a classificação ordinal multiclasse. Existem cinco tipos de sentimentos, então temos que treinar nossos modelos para que eles possam nos dar o rótulo correto para o conjunto de dados de teste. Vou construir modelos diferentes como Bayes ingenuo, Regressão logística, floresta aleatória, XGBoost, apoiar máquinas de vetor, CatBoost y descenso de gradiente estocástico.

He usado el problema dado de Clasificación multiclase que es una variável dependiente que tiene los valores -Positivo, Extremamente positivo, Neutro, Negativo, Extremamente negativo. Eu também converto este problema para uma classificação binária, quer dizer, Classifiquei todos os tweets em apenas dois tipos positivo e negativo. Você também pode optar pela classificação de três classes, quer dizer, Positivo, Negativo e neutro para maior precisão. Na fase de avaliação, vamos comparar os resultados desses algoritmos.

62382comparação201-6919137
71246comparação202-9820346

Importância do recurso

a importância do recurso (importância variável) descreva qual caracteristicas é relevante. Pode ajudar a entender melhor o problema resolvido e, as vezes, levar a melhorias de modelo, empregando característica seleção. As três palavras mais destacadas são pânico, crise e fraude, como podemos ver no gráfico a seguir.

23369feature20imp-4413934

conclusão

Desta maneira, podemos explorar mais a partir de vários tweets e dados textuais. Nossos modelos tentarão prever corretamente os diferentes sentimentos. Usei vários modelos para treinar nosso conjunto de dados, mas alguns modelos mostram maior precisão, enquanto outros não. Para classificação multiclasse, o melhor modelo para este conjunto de dados seria CatBoost. Para classificação binária, o melhor modelo para este conjunto de dados seria Stochastic Gradient Descent.

(Você pode acessar o código Python deste projeto neste link-https://github.com/rajeshmore1/Capstone-Project-2 )

A mídia mostrada neste artigo não é propriedade da DataPeaker e é usada a critério do autor.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.

Datapeaker