SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
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
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
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
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
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
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
Ecossistema Hadoop
Fonte: blog.newtechways.com/2017/10/apache-hadoop-ecosystem.html
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 7 / 38
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
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
Arquitetura do Sistema
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 10 / 38
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
Polypus4t: um crawler para o Twitter
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 12 / 38
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
Classificador de Sentimentos em Tempo Real
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 14 / 38
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
Módulo de Agregação
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 16 / 38
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
API HTTP
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 18 / 38
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
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
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
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
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
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
Configuração do cluster
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 25 / 38
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
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
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
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
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
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
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
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
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
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
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
Obrigada pela atenção!
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 37 / 38
Q & A
LinkedIn:
linkedin.com/in/luanadasilva
GitHub: github.com/silva-luana
E-mail: eca.luds@gmail.com
Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 38 / 38

Mais conteúdo relacionado

Semelhante a Resenha _big_data_sentiment_analysis (3)

Plano de projeto de software - SISCONI
Plano de projeto de software - SISCONIPlano de projeto de software - SISCONI
Plano de projeto de software - SISCONIocfelipe
 
JoinCommunity 2022 - Modern Data Stack - As tecnologias e práticas mais mode...
JoinCommunity 2022 -  Modern Data Stack - As tecnologias e práticas mais mode...JoinCommunity 2022 -  Modern Data Stack - As tecnologias e práticas mais mode...
JoinCommunity 2022 - Modern Data Stack - As tecnologias e práticas mais mode...Cicero Joasyo Mateus de Moura
 
Big data e o dirieto internacional - SILVA JR., Nelmon J.
Big data e o dirieto internacional - SILVA JR., Nelmon J.Big data e o dirieto internacional - SILVA JR., Nelmon J.
Big data e o dirieto internacional - SILVA JR., Nelmon J.Autônomo
 
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...DouglasAmmirantedaCu
 
Big Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosBig Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosCicero Joasyo Mateus de Moura
 
ThingProvider-Proposal
ThingProvider-ProposalThingProvider-Proposal
ThingProvider-ProposalKevin Martins
 
Plano de Projeto - Gerencia de Projetos
Plano de Projeto - Gerencia de ProjetosPlano de Projeto - Gerencia de Projetos
Plano de Projeto - Gerencia de ProjetosHelder Filho
 
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE  para produtos da Lacertae SWPLANO DE PROJETO DE SOFTWARE  para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SWMatheus Costa
 
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...Cicero Joasyo Mateus de Moura
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_finaluserrx
 
SACI 2019 - Introdução prática ao Web Scraping com Python
SACI 2019 - Introdução prática ao Web Scraping com PythonSACI 2019 - Introdução prática ao Web Scraping com Python
SACI 2019 - Introdução prática ao Web Scraping com PythonAlex Camargo
 
The Data Science Workflow
The Data Science WorkflowThe Data Science Workflow
The Data Science WorkflowRenzo Ziegler
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaeslucassrod
 
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Adilson Nascimento
 
Aceleração no-acesso-à-internet-estudo-sobre-o-servidor-proxy-cache-squid1
Aceleração no-acesso-à-internet-estudo-sobre-o-servidor-proxy-cache-squid1Aceleração no-acesso-à-internet-estudo-sobre-o-servidor-proxy-cache-squid1
Aceleração no-acesso-à-internet-estudo-sobre-o-servidor-proxy-cache-squid1UNOESTE - Universidade do Oeste Paulista
 
Firescrum - UFRA 2013
Firescrum - UFRA 2013Firescrum - UFRA 2013
Firescrum - UFRA 2013Renan Soranso
 
Web Analytics para Desenvolvedores - TDC 2011
Web Analytics para Desenvolvedores - TDC 2011Web Analytics para Desenvolvedores - TDC 2011
Web Analytics para Desenvolvedores - TDC 2011dp6
 

Semelhante a Resenha _big_data_sentiment_analysis (3) (20)

Bigadata casese opotunidades
Bigadata casese opotunidadesBigadata casese opotunidades
Bigadata casese opotunidades
 
Plano de projeto de software - SISCONI
Plano de projeto de software - SISCONIPlano de projeto de software - SISCONI
Plano de projeto de software - SISCONI
 
JoinCommunity 2022 - Modern Data Stack - As tecnologias e práticas mais mode...
JoinCommunity 2022 -  Modern Data Stack - As tecnologias e práticas mais mode...JoinCommunity 2022 -  Modern Data Stack - As tecnologias e práticas mais mode...
JoinCommunity 2022 - Modern Data Stack - As tecnologias e práticas mais mode...
 
Big data e o dirieto internacional - SILVA JR., Nelmon J.
Big data e o dirieto internacional - SILVA JR., Nelmon J.Big data e o dirieto internacional - SILVA JR., Nelmon J.
Big data e o dirieto internacional - SILVA JR., Nelmon J.
 
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
Servidor com processamento paralelo utilizando CUDA aplicado em uma urna elet...
 
BIG DATA
BIG DATABIG DATA
BIG DATA
 
Big Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dadosBig Data na prática: como construir um Data Lake para análise de dados
Big Data na prática: como construir um Data Lake para análise de dados
 
ThingProvider-Proposal
ThingProvider-ProposalThingProvider-Proposal
ThingProvider-Proposal
 
Plano de Projeto - Gerencia de Projetos
Plano de Projeto - Gerencia de ProjetosPlano de Projeto - Gerencia de Projetos
Plano de Projeto - Gerencia de Projetos
 
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE  para produtos da Lacertae SWPLANO DE PROJETO DE SOFTWARE  para produtos da Lacertae SW
PLANO DE PROJETO DE SOFTWARE para produtos da Lacertae SW
 
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
Modern Data Stack - As tecnologias e práticas mais modernas atualmente em Big...
 
plano_de_projeto_controlart_final
plano_de_projeto_controlart_finalplano_de_projeto_controlart_final
plano_de_projeto_controlart_final
 
SACI 2019 - Introdução prática ao Web Scraping com Python
SACI 2019 - Introdução prática ao Web Scraping com PythonSACI 2019 - Introdução prática ao Web Scraping com Python
SACI 2019 - Introdução prática ao Web Scraping com Python
 
The Data Science Workflow
The Data Science WorkflowThe Data Science Workflow
The Data Science Workflow
 
Proposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaesProposta lucas simon-rodrigues-magalhaes
Proposta lucas simon-rodrigues-magalhaes
 
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
Portfolio Grupo 4 ADS Unopar Desafios1-2-3-4
 
Aceleração no-acesso-à-internet-estudo-sobre-o-servidor-proxy-cache-squid1
Aceleração no-acesso-à-internet-estudo-sobre-o-servidor-proxy-cache-squid1Aceleração no-acesso-à-internet-estudo-sobre-o-servidor-proxy-cache-squid1
Aceleração no-acesso-à-internet-estudo-sobre-o-servidor-proxy-cache-squid1
 
Firescrum - UFRA 2013
Firescrum - UFRA 2013Firescrum - UFRA 2013
Firescrum - UFRA 2013
 
Plano deprojeto grupo1
Plano deprojeto grupo1Plano deprojeto grupo1
Plano deprojeto grupo1
 
Web Analytics para Desenvolvedores - TDC 2011
Web Analytics para Desenvolvedores - TDC 2011Web Analytics para Desenvolvedores - TDC 2011
Web Analytics para Desenvolvedores - TDC 2011
 

Resenha _big_data_sentiment_analysis (3)

  • 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
  • 7. Ecossistema Hadoop Fonte: blog.newtechways.com/2017/10/apache-hadoop-ecosystem.html Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 7 / 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
  • 10. Arquitetura do Sistema Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 10 / 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
  • 25. Configuração do cluster Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 25 / 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
  • 37. Obrigada pela atenção! Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 37 / 38
  • 38. Q & A LinkedIn: linkedin.com/in/luanadasilva GitHub: github.com/silva-luana E-mail: eca.luds@gmail.com Luana da Silva (PGCIN/UFSC) Big Data e Web Semântica 12 de Abril de 2019 38 / 38