Resenha sobre o artigo de Castaño, Pichel e Gamallo 2018.
O sistema proposto permite a pesquisa de tweets em tempo real em uma base de dados distribuída, mostrando o sentimento associado a cada tweet. Muito interessante!
1. Polypus: a Big Data Self-Deployable Architecture for
Microblogging Text Extraction and Real-Time Sentiment
Analysis
Rodrigo Martínez-Castaño, Juan C. Pichel, Pablo Gamallo (2018)
Luana da Silva1
1Programa de Pós-Graduação em Ciência da Informação
eca.luds@gmail.com
12 de Abril de 2019
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 1 / 38
2. Sumário
1 Introdução
2 Tecnologias
3 Arquitetura do Sistema
4 Implantação usando Containers
5 Resultados Experimentais
6 Conclusões
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 2 / 38
3. 1 Introdução
2 Tecnologias
3 Arquitetura do Sistema
4 Implantação usando Containers
5 Resultados Experimentais
6 Conclusões
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 3 / 38
4. Análise de Sentimento em grandes quantidade de dados
Paradigma:
Análise de Sentimento: encontrar opinião (positiva, negativa ou
neutra) a partir de documentos de texto;
Base de dados:
Twitter: ampla fonte de textos curtos contendo opiniões de usuários;
Problemas de analisar sentimento em tweets:
Subjetividade;
Textos muito pequenos para serem analisados. Conclusões mais
significativas com maiores quantidades grandes de textos.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 4 / 38
5. Polypus
Proposta do Software
Objetivo: Classificar grandes quantidades de tweets para possibilitar a
mineração de opiniões (sentimentos) relacionados a um determinado
filtro.
Software: Framework modular baseado em tecnologias de Big Data
projetado para realizar mineração de opinião em tempo real em textos
curtos.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 5 / 38
6. 1 Introdução
2 Tecnologias
3 Arquitetura do Sistema
4 Implantação usando Containers
5 Resultados Experimentais
6 Conclusões
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 6 / 38
8. Apache Storm
Framework para processamento de dados em streaming em tempo
real;
Spout: lêem dados streaming de fontes externas;
Bolts: realizam cálculos e transformações nos dados recebidos.
Fonte: http://storm.apache.org/
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 8 / 38
9. 1 Introdução
2 Tecnologias
3 Arquitetura do Sistema
4 Implantação usando Containers
5 Resultados Experimentais
6 Conclusões
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 9 / 38
11. Recuperação de tweets
Problema: para fazer mineração de opiniões é preciso coletar grandes
quantidades de tweets. Porém, não é possível recuperar grandes
quantidades de texto em períodos curtos de tempo por meio das APIs
do Twitter.
Solução: crawler customizado junto com a API Streaming do próprio
Twitter
Resultado: a mesma quantidade de tweets obtidos em um dia todo
com a API Streaming agora podem ser recuperados em 15 minutos.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 11 / 38
12. Polypus4t: um crawler para o Twitter
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 12 / 38
13. Análise de Sentimento e Processamento de Linguagem
Natural
Features sintáticas simples (e.g. marcadores de negação);
Classificação com o Apache Storm usando o classificador Naive Bayes;
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 13 / 38
14. Classificador de Sentimentos em Tempo Real
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 14 / 38
15. Módulo de Agregação
Implementado em Scala e roda em Spark;
Dois modos de execução:
Automático: usa uma lista de keywords (Automated Processing List) e
já monta uma base de posts relacionados;
On demand: segundos a minutos para agregar os posts relacionados,
dependendo da query;
Resultado:
Polaridade média;
Número total de correspondências;
Razão entre os posts neutros, positivos e negativos.
Medidas salvas no MariaDB.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 15 / 38
16. Módulo de Agregação
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 16 / 38
17. API HTTP
Implementado em Java com o framework Jersey;
Funcionalidades:
Obter as keywords da APL (Automated Processing List);
Obter a avaliação de uma keyword da APL em um intervalo de tempo;
Deletar/adicionar keywords na APL;
Obter resultados para um filtro personalizado;
etc.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 17 / 38
18. API HTTP
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 18 / 38
19. Interface Gráfica do Usuário
Interface de gerenciamento das funcionalidades da API;
Quatro views: tempo real, pesquisa por keyword, exploração e
gerenciamento da APL.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 19 / 38
20. Interface Gráfica do Usuário
Informação em tempo real.
Pesquisa por uma keyword.
Resultado de um filtro.
Gerenciamento da APL.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 20 / 38
21. 1 Introdução
2 Tecnologias
3 Arquitetura do Sistema
4 Implantação usando Containers
5 Resultados Experimentais
6 Conclusões
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 21 / 38
22. Implantação usando Containers
Os scripts foram projetados para o AWS (Amazon Web Services)
EC2, mas podem ser facilmente adaptados para outras plataformas
cloud ou clusters locais;
Cada serviço tem um arquivo de configuração para ajuste fino;
Arquitetura completa rodando em 2 minutos.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 22 / 38
23. 1 Introdução
2 Tecnologias
3 Arquitetura do Sistema
4 Implantação usando Containers
5 Resultados Experimentais
6 Conclusões
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 23 / 38
24. Configuração do cluster
Máquinas virturais AWS EC2 rodando Amazon Linux AMI;
Cluster criado com 3 e 7 nós c4.4xlarge;
Características do cluster:
CPU: Intel Xeon E5-2666 v3
vCores por nó: 16
Memória RAM por nó: 30 GiB
Disco: cada nó com 50 GiB SSD de propósito geral
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 24 / 38
26. Configuração do cluster
Master:
Processos master: Nimbus (Storm), NameNode (HDFS),
ResourceManager (YARN), HMaster (HBase), um dos três serviços do
ZooKeeper;
MariaDB;
Instância do crawler Polypus4t;
etc.
Workers:
Processos slave: regionservers (HBase), nodemanager (YARN),
datanodes (HDFS), supervisors (Storm) e uma instância do crawler;
Processos do worker;
Pares do Aerospike;
Outros dois serviços do ZooKeeper;
etc.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 26 / 38
27. Avaliação do Crawler do Twitter
Termos: palavras mais frequentes da língua inglesa (obtido de
insightin.com e Eric Price);
Total: 11.329 palavras;
API Streaming não foi usada nos testes;
Experimentos ("some testes were made"):
1 Qual o número ótimo de threads por core?
2 Aumentar o número de nós/cores melhora a recuperação?
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 27 / 38
28. Avaliação do Crawler do Twitter
1 - Qual o número ótimo de threads por core?
Número ótimo de threads por core: 32 (para intervalos de 15
minutos);
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 28 / 38
29. Avaliação do Crawler do Twitter
2 - Aumentar o número de nós/cores melhora a recuperação?
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 29 / 38
30. Avaliação do Classificador de Sentimentos
Detalhe: Bolts precisam de um período de ’aquecimento’ antes de
começarem a processar em tempo real
Experimentos:
1 Valor ótimo de paralelismo (número inicial de threads) para cada Bolt;
2 Diminuir os recursos do crawler;
3 Adicionar um nó worker no cluster de 7 nós.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 30 / 38
31. Avaliação do Classificador de Sentimentos
1 - Valor ótimo de paralelismo para cada Bolt
Usando a configuração b (cluster com 3 nós e 2 nós worker do Storm):
588.7 tweets/s (?);
Storm levou 40 muinutos (aquecimento) até alcançar processamento em
tempo real.
Sequência dos Bolts: Sentences, Normalizer, Tokens, Splits, NER, Tagger and Polarity.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 31 / 38
32. Avaliação do Classificador de Sentimentos
2 - Diminuir os recursos do crawler
Configuração a (cluster com 3 nós e mesmo número de nós para os
workers): 382.8 tweets/s;
Storm levou 8 minutos (aquecimento) até alcançar processamento em
tempo real.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 32 / 38
33. Avaliação do Classificador de Sentimentos
3 - Adicionar um nó worker no cluster de 7 nós
Problema: O cluster com 7 nós não alcança processamento em tempo
real por causa da alta capacidade de recuperação do crawler: mais de
650 tweets/s
Solução: Adicionar um nó worker
Resultado: Classificação dos tweets em tempo real, também após 8
minutos de aquecimento do Storm.
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 33 / 38
34. Avaliação do Módulo de Agregação
Tempo (em min) de Execução para diferentes configurações do cluster
Processamento de todo o dataset (50M de tweets).
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 34 / 38
35. 1 Introdução
2 Tecnologias
3 Arquitetura do Sistema
4 Implantação usando Containers
5 Resultados Experimentais
6 Conclusões
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 35 / 38
36. Conclusões
Polypus permite criar grandes datasets em curtos períodos de tempo;
Permite analisar tendências de polaridade em keywords arbitrárias em
quase tempo real;
Estimação da polaridade dos tweets já recuperados em tempo real;
Arquitetura facilmente implantável;
Pode incorporar outros idiomas e outros classificadores;
Buffer com Aerospike reduz a latência entre os módulos;
Resultados agregados: polaridade média, número total de correspondências,
razões de positivos, negativos e neutros para um intervalo de tempo;
Para filtros personalizados, 50M de tweets podem ser processados em dois
minutos (1M em 15 s)
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 36 / 38