Pitão

Análise de sentimento com TextBlob e Python

Análise de sentimento com TextBlob e Python
Nesta lição, usaremos um dos excelentes pacotes Python - TextBlob, para construir um analisador sentimental simples. Todos nós sabemos que os tweets são um dos exemplos de conjuntos de dados favoritos quando se trata de análise de texto em ciência de dados e aprendizado de máquina. Isso ocorre porque os tweets são em tempo real (se necessário), disponíveis publicamente (principalmente) e representam o verdadeiro comportamento humano (provavelmente). É por isso que os tweets são normalmente usados ​​para fazer qualquer tipo de prova de conceito ou tutoriais relacionados ao Processamento de Linguagem Natural (PNL) e análise de texto.

Usando TextBlob na indústria

Exatamente como parece, o TextBlob é um pacote Python para realizar operações de análise de texto simples e complexas em dados textuais, como marcação de voz, extração de frase nominal, análise de sentimento, classificação, tradução e muito mais. Embora haja muito mais casos de uso para TextBlob que podemos cobrir em outros blogs, este cobre a análise de tweets para seus sentimentos.

Os sentimentos de análise têm um grande uso prático para muitos cenários:

Introdução ao TextBlob

Sabemos que você veio aqui para ver alguns códigos práticos relacionados a um analisador sentimental com TextBlob. É por isso que manteremos esta seção extremamente curta para apresentar o TextBlob para novos leitores. Apenas uma observação antes de começar é que usamos um ambiente virtual para esta lição que fizemos com o seguinte comando

python -m virtualenv textblob
fonte textblob / bin / activate

Assim que o ambiente virtual estiver ativo, podemos instalar a biblioteca TextBlob dentro do ambiente virtual para que os exemplos que criaremos a seguir possam ser executados:

pip install -U textblob

Depois de executar o comando acima, não é isso. O TextBlob também precisa de acesso a alguns dados de treinamento que podem ser baixados com o seguinte comando:

python -m textblob.download_corpora

Você verá algo assim fazendo o download dos dados necessários:

Você pode usar o Anaconda também para executar esses exemplos, o que é mais fácil. Se você deseja instalá-lo em sua máquina, veja a lição que descreve “Como instalar o Anaconda Python no Ubuntu 18.04 LTS ”e compartilhe seu feedback.

Para mostrar um exemplo rápido de TextBlob, aqui está um exemplo diretamente de sua documentação:

from textblob import TextBlob
text = "'
A ameaça titular de The Blob sempre me pareceu o melhor filme
monstro: uma massa insaciável e faminta, semelhante a uma ameba, capaz de penetrar
virtualmente qualquer salvaguarda, capaz de - como um médico condenado assustadoramente
descreve - "assimilar carne em contato.
Comparações sarcásticas com a gelatina que se danem, é um conceito com a maioria
devastador de consequências potenciais, não muito diferente do cenário grey goo
proposto por teóricos tecnológicos temerosos de
inteligência artificial corre solta.
"'
blob = TextBlob (texto)
imprimir (blob.Tag)
imprimir (blob.substantivo_frases)
para sentença em blob.frases:
imprimir (frase.sentimento.polaridade)
bolha.traduzir (para = "es")

Quando executamos o programa acima, obteremos as seguintes palavras-chave e, finalmente, as emoções que as duas frases no texto de exemplo demonstram:

Palavras tag e emoções nos ajudam a identificar as palavras principais que realmente afetam o cálculo do sentimento e a polaridade da frase fornecida ao. Isso ocorre porque o significado e o sentimento das palavras mudam na ordem em que são usadas, então tudo isso precisa ser mantido dinâmico.

Análise de sentimento baseada no léxico

Qualquer sentimento pode ser definido simplesmente como uma função da orientação semântica e da intensidade das palavras usadas em uma frase. Com a abordagem baseada em léxico para identificar emoções em uma determinada palavra ou frase, cada palavra é associada a uma pontuação que descreve a emoção que a palavra exibe (ou pelo menos tenta exibir). Normalmente, a maioria das palavras tem um dicionário pré-definido sobre sua pontuação lexical, mas quando se trata de humano, sempre há intenção de sarcasmo, então esses dicionários não são algo em que possamos confiar 100%. O Dicionário de Sentimentos WordStat inclui mais de 9164 padrões de palavras negativas e 4847 positivas.

Finalmente, há outro método para realizar a análise de sentimento (fora do escopo desta lição) que é uma técnica de aprendizado de máquina, mas não podemos fazer uso de todas as palavras em um algoritmo de ML, pois certamente enfrentaremos problemas com overfitting. Podemos aplicar um dos algoritmos de seleção de recursos como Chi Square ou Mutual Information antes de treinar o algoritmo. Limitaremos a discussão da abordagem de ML apenas a este texto.

Usando a API do Twitter

Para começar a receber tweets diretamente do Twitter, visite a página inicial do desenvolvedor do aplicativo aqui:

https: // desenvolvedor.Twitter.com / en / apps

Registre sua inscrição preenchendo o formulário fornecido da seguinte forma:

Depois de ter todos os tokens disponíveis na guia "Chaves e tokens":

Podemos usar as chaves para obter os tweets necessários da API do Twitter, mas precisamos instalar apenas mais um pacote Python que faz o trabalho pesado para obtermos os dados do Twitter:

pip install tweepy

O pacote acima será usado para completar toda a comunicação de trabalho pesado com a API do Twitter. A vantagem do Tweepy é que não precisamos escrever muito código quando queremos autenticar nosso aplicativo para interagir com os dados do Twitter e ele é automaticamente envolvido em uma API muito simples exposta através do pacote Tweepy. Podemos importar o pacote acima em nosso programa como:

importar tweepy

Depois disso, só precisamos definir as variáveis ​​apropriadas onde podemos manter as chaves do Twitter que recebemos do console do desenvolvedor:

consumer_key = '[consumer_key]'
consumer_key_secret = '[consumer_key_secret]'
access_token = '[access_token]'
access_token_secret = '[access_token_secret]'

Agora que definimos segredos para o Twitter no código, estamos finalmente prontos para estabelecer uma conexão com o Twitter para receber os tweets e julgá-los, quero dizer, analisá-los. Claro, a conexão com o Twitter deve ser estabelecida usando o padrão OAuth e O pacote Tweepy será útil para estabelecer a conexão também:

twitter_auth = tweepy.OAuthHandler (consumer_key, consumer_key_secret)

Finalmente, precisamos da conexão:

api = tweepy.API (twitter_auth)

Usando a instância da API, podemos pesquisar no Twitter qualquer tópico que passarmos para ele. Pode ser uma única palavra ou várias palavras. Apesar de recomendarmos o uso de poucas palavras para a precisão possível. Vamos tentar um exemplo aqui:

pm_tweets = api.pesquisa ("Índia")

A pesquisa acima nos dá muitos tweets, mas vamos limitar o número de tweets que recebemos para que a chamada não demore muito, pois precisa ser processada posteriormente pelo pacote TextBlob:

pm_tweets = api.pesquisa ("Índia", contagem = 10)

Finalmente, podemos imprimir o texto de cada tweet e o sentimento associado a ele:

para tweet em pm_tweets:
imprimir (tweetar.texto)
análise = TextBlob (tweet.texto)
imprimir (análise.sentimento)

Depois de executar o script acima, começaremos a obter as últimas 10 menções à consulta mencionada e cada tweet será analisado quanto ao valor do sentimento. Aqui está a saída que recebemos para o mesmo:

Observe que você também pode fazer um bot de análise de sentimento de streaming com TextBlob e Tweepy também. Tweepy permite estabelecer uma conexão de streaming de websocket com a API do Twitter e permite transmitir dados do Twitter em tempo real.

Conclusão

Nesta lição, vimos um excelente pacote de análise textual que nos permite analisar sentimentos textuais e muito mais. O TextBlob é popular devido à maneira como nos permite simplesmente trabalhar com dados textuais sem o incômodo de chamadas API complexas. Também integramos o Tweepy para usar os dados do Twitter. Podemos facilmente modificar o uso para um caso de uso de streaming com o mesmo pacote e muito poucas mudanças no próprio código.

Por favor, compartilhe seus comentários livremente sobre a lição no Twitter com @linuxhint e @sbmaggarwal (sou eu!).

Os 5 principais produtos ergonômicos de mouse de computador para Linux
O uso prolongado do computador causa dor no pulso ou nos dedos? Você está sofrendo de rigidez nas articulações e constantemente precisa apertar as mão...
Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...
Remapeie os botões do mouse de maneira diferente para software diferente com o controle de botão do mouse X
Talvez você precise de uma ferramenta que possa fazer o controle do seu mouse mudar com cada aplicativo que você usa. Se for esse o caso, você pode ex...