Introdução ao MapReduce, com exemplo de sintaxe escrita em Java

Seguindo o primeiro post sobre o HDFS, agora vamos para o Mapreduce. O segundo componente do Hadoop. Ele oferece uma abstração para que os desenvolvedores realizem cálculos e análises, ocultando detalhes de paralelismo, com balanceamento de carga e tolerância a falhas. Vale especificar duas palavras neste parágrafo:

Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software.

Computação paralela é uma forma de computação em que vários cálculos são realizados ao mesmo tempo,[1] operando sob o princípio de que grandes problemas geralmente podem ser divididos em problemas menores, que então são resolvidos concorrentemente (em paralelo). Existem diferentes formas de computação paralela: em bit, instrução, de dado ou de tarefa. A técnica de paralelismo já é empregada por vários anos, principalmente na computação de alto desempenho, mas recentemente o interesse no tema cresceu devido às limitações físicas que previnem o aumento de frequência de processamento.[2] Com o aumento da preocupação do consumo de energia dos computadores, a computação paralela se tornou o paradigma dominante nas arquiteturas de computadores sob forma de processadores multinúcleo.[3]

Fonte: Wikipedia

Gosto de especificar estes detalhes porque quando nos deparamos com conceitos da computação, podem aparecer algumas confusões a respeito dos termos. O Mapreduce executa aplicações que processam um grande volume de dados em um cluster de milhares de nós, no hardware convencional. Implementado em java, executa programas em python, Ruby e C++. No ecossistema Hadoop existem outros programas que combinados com outras linguagens executam tarefas, como o Spark que falarei nos próximos meses. Por isso que é tão importante aprender o Hadoop. Você nunca o utilizará sozinho. Ele é a base de qualquer aprendizado em Big data, inclusive no momento em que nós nos desenvolvemos nos comandos de programação para fazer análises. 

Os termos comuns do Mapreduce são “job”, ou seja, o programa completo/uma aplicação e “tarefa”, a  execução de um mapper ou reducer sobre uma fatia dos dados. Existem três características do Mapreduce: a primeira delas é mover as tarefas, não os dados, a segunda é ser tolerância a falhas e, por fim, a escalabilidade linear. No processo, uma aplicação cliente submete um job ao nó mestre, em seguida o nó mestre se comunica com o NameNode para determinar a localização dos dados. Após isso, o nó mestre localiza os nós escravos próximo aos dados e o nó mestre submete as tarefas aos nós escravos. Veja este vídeo que mostra isso utilizando cartas! Na aula, a professora Rosângela Pereira também explicou com cartas como é o processo do Mapreduce. Mas sendo bem simplista, o Mapreduce divide o trabalho em tarefas para elas serem processadas independentemente.

Recuperação automática das tarefas que falham, redirecionamento das tarefas falhas para outros nós do cluster e escalabilidade linear são mais algumas vantagens do MapReduce. Eu já comentei no post anterior a importância da escalabilidade em big data que é manter o desempenho, mesmo com o aumento da carga, pela adição de mais recursos. 

As funções map e reduce:

Função Map

Função Reduce

Quem escreve?

Desenvolvedor

Desenvolvedor

Qual é o objetivo?

Obter um par de chave/valor e produzir um conjunto de pares-chave/valores

Receber uma chave intermediária, um conjunto de valores para essa chave

O que acontece?

A biblioteca Mapreduce agrupa todos os valores intermediários associados à mesma chave intermediária e os transmite para a função reduce

Mescla esses valores para formar um conjunto final consolidando esses valore

Quais os tipos de análise nós podemos fazer? Mineração de texto, reconhecimento de padrões, análise de sentimento, análise de risco, modelos preditivos e filtragem colaborativa. Este último vale destacar como uma das técnicas popularizadas pela Amazon ao recomendar novos itens de compra para o usuário, de acordo com a sua colaboração. Isto também foi popularizado por sites com o Globo.com que tem um bom case da área. Observe no fluxograma como funciona o programa “Wordcount”. Primeiro ele divide os dados (split), ordena em tarefas map (ou as identifica), embaralha (shuffing), ordena em tarefas reduce e apresenta o resultado final.

Modelo de programação

Mapreduce job na implementação do wordcoun
Chaves e valores                Base de dados em formato texto, está presente no HDFS
Classe Mapper Recebe uma linha de texto, faz a tokenização do texto em palavras, emite cada palavra no formato par como visto acima no <Bear, 1>.
Classe Reducer Em cada iteração, recebe todos os valores de uma chave. Faz a soma dos valores chave e emite para cada chave o par <palavra, soma>; como no exemplo acima <Bear, 2>
Classe Driver Configura o job, especifica o tamanho dos dados de entrada e saída, especifica as classes mapper e reducer. Por fim, executa o jo

Entenda melhor o que seriam chaves e valores:

Chave

Número de telefone

Registro das chamadas

Usuário do Facebook

Informações de perfil

Número de cartão de crédito

Suas transações

#PartiuJava

Acho que nunca vi uma linguagem tão temida numa sala de aula. Python? Beleza. R? Lindeza. Java? Divide opiniões. Acho que a questão é a complexidade da sintaxe, não sei. Não há julgamentos por aqui porque precisamos do java no Hadoop. O exemplo abaixo foi retirado da documentação do site oficial que tem mais detalhes das funções da sintaxe.

Exemplo do Wordcount que pode ser executado no programa Hue:

public class WordCount {
public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1);

private Text word = new Text();
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {      String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
output.collect(word, one);
}
}
}

Este post foi baseado livremente no material exclusivo de ensino da professora Rosângela Pereira, especialista em java. Não tem por intenção ensinar e sim compartilhar conhecimento. Use as fontes linkadas para aprender mais. 🙂

 

Big Data, Hadoop e HDFS para os iniciantes em ciência de dados

Ao entrar em algumas lojas Marisa no centro de São Paulo, a locutora diz “use o wifi da Marisa para fotografar seus looks no provador”. Por algum tempo tentou-se descobrir uma forma de monitorar o comportamento do cliente offline e o oferecimento do wi-fi gratuito já está sendo implementado aos poucos pelo varejo. A Marisa, se for mais esperta do que imagino, poderá somente com isso saber o comportamento de centenas de pessoas que entram em suas lojas diariamente e obter uma enorme quantidade de insights.

Será que a mulherada vai diretamente para as seções dos looks ou para as promoções? Lingerie ou acessórios? Cartão de crédito ou sapatos? Será que a sazonalidade influencia? Se está frio eu devo esconder os bikinis e oferecer uma maior oferta de meias? E quem entrou em minha loja, experimentou e não comprou nada? Eu posso ter indícios disso do por quê, certo? Concordamos aqui que é um bando de informação. Ao lado disso tem mais dados vindo de todos os lados: das compras das pessoas desta loja, do setor de telemarketing com as reclamações, do Google Trends, da loja física, etc. Após a extração das informações, elas chegarão em em três formatos: não estruturada (80%), estruturada ou semi estruturada. Uma coisa não muda em nenhuma das três, o volume.  Neste cenário, entra o cientista de dados que minera informações para tomada de decisão.

Leia mais: Varejo oferece Wi-Fi gratuito para agradar e, ao mesmo tempo, entender melhor o cliente

Tá e esse tal de Big Data?

De forma clássica, big data é a forma que encontraram para descrever o imenso volume de dados que cresceram com as plataformas digitais e que podem trazer insights para obtermos melhores decisões e estratégias de negócio. É comportamento, é mina de ouro. Se antes não tínhamos noção de quem era o cliente, hoje sabemos demais, como no caso citado acima. Outro ponto fundamental é o barateamento do armazenamento das informações, o que torna possível até uma startup ser data driven. O volume de informação não para de crescer porque de toda a quantidade de dados disponível hoje, aproximadamente 90% foram produzidas nos últimos dois anos 

Um projeto de Big Data (responsável) é composto geralmente por 5 profissionais:  Gerente de big data, Engenheiro de dados, Administrador de banco de dados, Designer de big data e analista de dados. As skills principais envolvem programação, matemática e estatística. Em 2016 quando fui aprender python em um workshop não imaginava como a desmitificação da programação no período foi importante neste caminho profissional.

Resultado de imagem para https://i.pinimg.com/564x/42/0d/62/420d6288d8c0b7deb3ab24c5d468bde7.jpg

Sobre o analista de dados, eu, particulamente, defendo que exista mais uma cisão entre o analista de dados (geral ou específico) e o analista de dados de redes sociais, sobretudo se a empresa tiver um grande volume de conversas que mencionam sua empresa (ou o seu negócio). Ambos vão trabalhar com as mesmas ferramentas de mineração de informação, mas terão rotinas diferentes e insights bem diferentes que convergem em torno do negócio. Acho pouco provável que um bom analista de dados consiga dar conta da análise de centenas de milhares de “logs” de consumidores na loja física e outros milhares de tweets em um dia falando sobre a nova campanha da empresa. Neste ecossistema acima, eu ainda argumento a importância de um pesquisador contratado, com as mesmas skills dos analistas, porém um “outsider” que consiga descobrir novidades e trazer soluções que passariam desapercebidas pelo operacional das empresas, visto que estão ocupados com os problemas do dia a dia. Este pesquisador não estaria contaminado pela cultura local e traria uma visão altamente especializada de acordo uma necessidade específica, como redução de custo, por exemplo. Não é consultoria com meia dúzia de conselhos e a recomendação de remédio para um paciente; ou é medicina preventiva ou socorro médico em zona de guerra.  Se bem que na era da vantagem competitiva, nós já estamos no segundo cenário. 

“Atualmente, Ricieri tem se dedicado ao aperfeiçoamento da logística de uma usina de etanol. A “cobaia”, nesse caso, foi a Usina São Domingos, localizada na cidade de Catanduva, no interior de São Paulo. Por meio de equações gigantescas — que levam horas para ser processadas nos computadores da empresa –, o matemático conseguiu combinar mais de 20 milhões de variáveis, como tipo de adubo, espécie de cana, local de plantio e logística. O resultado foi um sistema mais eficiente de produção e transporte que promete aos donos da usina redução de custos de 30% nos próximos cinco anos. O método do “matemático” também leva em conta as oscilações do mercado financeiro. Assim, é possível prever se haverá maior lucratividade na produção de álcool ou açúcar num determinado período. “Esta será a usina mais moderna e eficiente do Brasil”, garante Rodrigo Sanchez, um dos donos da São Domingos, empresa que fatura 140 milhões de reais ao ano.” Via: Exame

Um processo em Big Data é composto por fonte de dados, que podem ser vindos de um CRM (Excel, etc), aquisição (extração de dados de fontes externas),  armazenamento (depósito de dados), análises, claro e, por fim, relatórios. Por este motivo que storytelling é uma das atividades principais neste processo final. Independente de robustos (ou parcos) dados das pesquisas realizadas por mim, eu sempre me preocupei em contar histórias com informação. Não há nada mais chato do que apresentar relatórios onde as pessoas pegam os celulares poucos minutos após as apresentações terem começado numa reunião.

Em específico, sobre armazenamento, existem 4 tipos de armazenamento em Big Data: orientado a chave-valor, orientado a colunas, orientado a documentos e orientado a grafos – não relacionado diretamente com análise em sites de redes sociais. Neste post em específico eu vou falar do Hadoop e HDFS, tecnologias estudadas no primeiro módulo do meu MBA. Fiz questão de incluir como entram as ferramentas de análise de redes sociais já conhecidas neste cenário. Antes de entrar no tema do Hadoop, veja abaixo a tabela que mostra os 8 tipos de dados:

Ferramentas Estruturados Dados semi estruturados Dados não estruturados Dados internos Dados externos Gerados por humanos  Sistemas de negócios Gerados por máquina
Facebook Insights x x
Google Analytics x x
Reclame Aqui x
Social media x x x x
CRM x x x x x
E-mail x x x x
Logs x x
SCUP, Stilingue x x x

Pense, por exemplo, no analista da Marisa no inicio da semana. Digamos que hoje é segunda-feira, e ele tem 2 terabytes de informações de 6 meses de logs de wifi de SP com campos como horário, endereço e, claro, comportamento. Ele precisa identificar os padrões e o framework  Hadoop permite analisar informação volumosa de forma otimizada.

Ferramentas de big data: Hadoop 

Open source, o Hadoop permite a execução de aplicações utilizando milhares de máquinas com recursos de armazenamento, gerenciamento e processamento distribuído de dados. Foi projetado para o processamento de lotes de grandes conjuntos de dados por ser mais barato, flexível e escalável. Em computação, escalabilidade significa a capacidade de manipular uma porção crescente, sem afetar desempenho. O framework possui um ecossistema tão completo que as empresas escolhem a solução, em conjunto com outras, de acordo com a necessidade.

Ele possui dois componentes principais, o HDFS e o Mapreduce (assunto do próximo post). O HDFS é otimizado para ler/armazenar grandes arquivos em um cluster porque os arquivos são divididos em blocos de 128MB e replicados, para serem mais tolerante as falhas. É composto por 3 tipos de processo: Namenode, Datanode e SecondaryNamenode. O primeiro gerencia o namespace do sistema de arquivos Hadoop, o segundo armazena o bloco de dados em um nó e o terceiro oferece tarefas de ponto de verificação e manuntenção de Namenode.  Abaixo, o canal InfoQ traz uma excelente explicação visual do processo (usando legos!!) que mostra como a divisão da informação garante que eu não perca um bloco inteiro de dados, caso haja uma falha em um dos sistemas do cluster.

Estou falando de nós e clusters, mas em computação, eles possuem um conceito diferente de análise de rede:

Um cluster (do inglês cluster : ‘grupo, aglomerado’) consiste em computadores fracamente ou fortemente ligados que trabalham em conjunto, de modo que, em muitos aspectos, podem ser considerados como um único sistema. Diferentemente dos computadores em grade, computadores em cluster têm cada conjunto de nós, para executar a mesma tarefa, controlado e programado por software.[1]

Comandos gerais do HDFS

Os comandos são executados dentro de um terminal em uma máquina virtual Cloudera, que pode ser instalado no VirtualBox ou VMware. É preciso exportar a base de dados para a pasta documentos (ou outra de sua preferência), afim de manipular as informações. Abaixo estão alguns dos comandos utilizados na análise de informações. A lista completa está no File System.

Comandos Função
-mkdir Criação de diretório
-ls Verificar se um diretório foi criado
-put + caminho local do arquivo Envio de base de dados para o HDFS
-ls + input Listando os arquivos armazenados no HDFS
-tail + input/arquivo Visualizando o conteúdo em kbytes do arquivo HDFS
-cat + input/arquivo Visualizar o conteúdo completo do arquivo no HDFS
-get + caminho do arquivo no Cloudera Copiando o arquivo do HDFS para a máquina virtual
-rm + -ls Remover um arquivo
-r Remoção de diretórios
Hdfs balancer Execução de balanceamento
Hdfs dfsadmin -report Gerando um diretório no cluster

Este post foi baseado livremente no material exclusivo de ensino da professora Rosângela Pereira, especialista em java. Não tem por intenção ensinar e sim compartilhar conhecimento. Use as fontes linkadas para aprender mais. 🙂

TV | Análise de rede do episódio “The Contest” de Seinfeld

 

“The Contest”[nota 1] foi o the 51º episódio da série Seinfeld (11º episódio da 4ª temporada) que foi ao ar em 18 de Novembro de 1992.[1] No episódio, George Costanza conta a Jerry SeinfeldElaine Benes e Cosmo Kramer que sua mãe o flagrou desprevenido quando ele estava se masturbando. A conversa resulta em George, Jerry, Elaine e Kramer entrando numa aposta para determinar quem consegue ficar por mais tempo sem se masturbar.

O episódio seria controverso para ir ao ar porque a NBC achava que masturbação não seria um tópico apropriado para o horário nobre. Por causa disto, a palavra “masturbação” não é utilizada em momento algum no episódio. Em vez disto, o assunto é descrito utilizando uma série de eufemismos, apesar de o significado ainda ser claro para a audiência.[2] O escritor do episódio, Larry David, ganhou o Primetime Emmy Award de Outstanding Individual Achievement in Writing in a Comedy Series por seu trabalho no episódio.[3][4] Um eufemismo usado no episódio foi quando um personagem afirmava sobre si mesmo que era “mestre do meu domínio”[nota 2] que significava que ainda estava na aposta. Esta frase se tornou um bordão na cultura popular, embora não seja sempre utilizada para se referir à masturbação.[5][6]

Fonte: Wikipedia 

Para mostrar as interações do episódio, eu realizei o estudo abaixo utilizando análise de rede. São ‘apenas’ 22 minutos, mas somente revendo cena por cena que é possível perceber as nuances contidas nas piadas. A série tem algumas características próprias, como por exemplo, um incidente que une os personagens e se estende em seus núcleos paralelos. Especificamente, em “The Contest”, o enredo está todo centrado no conflito moral da masturbação. A temporalidade define o texto com o fato (a mãe de George o pegando desprevenido) e a ação que envolve os personagens (o concurso). Ernani e Nicola (2002) definem a progressão temporal em narrativas com a metodologia:

ações —-> conflitos —-> resolução do conflito —> mudança de situação.

Mudança, no caso de Seinfeld, não é um ‘final feliz’. A série sempre se definiu ser sobre o nada, ou seja, o cotidiano. Para entender um pouco melhor a análise, eu vou explicar alguns detalhes desta narrativa:

  • A mãe do George, Estelle, vai parar no hospital porque sofre uma queda ao flagrá-lo. Quem a visita ao lado dele é sua prima, Shelly. Em ambas as ocasiões da visita,  George é surpreendido pela enfermeira dando banho numa paciente, elas são bonitas e isso o deixa transtornado.
  • Enquanto o concurso rola, Kramer descobre uma vizinha que anda pelada em casa, o que torna a competição mais difícil pra ele e Jerry, visto que moram no mesmo prédio. A personagem não tem nome, portanto foi apelidada de “naked woman”
  • Já Elaine conhece John F. Kennedy Jr em sua academia, o que a deixa maluca. Eles até se encontram e marcam um date que não dá muito certo.

Metodologia | Análise de rede

Etapa 1 | Primeiro eu listei todos os personagens (junto com suas cenas) que aparecem ou não, mas são mencionados de forma importante para a narrativa. Os principais são Jerry, George, Elaine e Kramer. Já os secundários são Marla (namorada do George), Estelle (mãe do George), Shelly (prima do George), Recepcionista (da academia de Elaine), John F. Kennedy Jr. (da academia da Elaine) e Naked Woman (vizinha do Jerry). Total de dez personagens*.

Nós são os personagens (claro) e as arestas são formadas graças as interações nas cenas. Se um personagem não interage com outro, não está ‘graficamente’ mencionado. Não coloquei peso diferente nas relações propositalmente porque acreditei ser difícil mensurar este fato durante a exibição do episódio. É tudo muito equilibrado. Se tivesse acesso ao roteiro original, certamente poderia fazer isso com uma análise de texto.

Etapa 2 | Após listar os 10 personagens principais e secundários, eu atribuí um número para eles, o que foi importante para a terceira etapa. Aqui eu separei os nós, representei as relações conforme este tutorial e fiz o upload para o software Gephi. Sem esquecer de atribuir ‘grafo não dirigido’ ao importar as planilhas.

Métricas de nós | Grau

Elaine e George têm os maiores graus porque interagem com mais personagens 

Métricas de nós | Closeness Centrality

Personagens centrais no tema são, obviamente, Elaine, George, Jerry e Kramer. A personagem secundária mais importante é Marla, a namorada do Jerry. 

Matriz Adjacente, lista de adjacências e estrutura de dados.

Etapa 3 | Para representar grafos numa estrutura de dados nós usamos matriz adjacente e lista adjacente. A matriz adjacente codifica as relações entre os vértices, já a lista é a forma como o computador lê estas interações. Primeiro eu listei todas as interações dos nós com outros nós.  Desta forma, no mapeamento, fiz a representação da lista de nós em que eles estão conectados. Ou seja, interagindo.

Depois renomeei os personagens com números: Jerry – 1/ George – 2/ Elaine – 3/ Kramer – 4/ Marla – 5/ Naked Woman – 6/ Recepcionista – 7/ John F Kennedy – 8/ Estelle – 9/ Shelly – 10. Portanto, esta tabela acima virou esta tabela abaixo:

“A matriz de adjacência de um grafo G = (V,A) contendo n vértices é uma matriz n × n de bits, onde A[i, j] é 1 (ou verdadeiro) se e somente se existe um arco do vértice i para o vértice j. Se não existir uma aresta de i para j então é necessário utilizar um valor que não possa ser usado como rótulo ou peso.Daqui. Ou seja, o 1 da matriz abaixo significa que gerou 1 bit, a ser processado pelo computador. Não é por volume.

Se houve 5 ou 2 interações entre personagens, não importa, ele foi representado ‘apenas’ por 1 bit. Se não houve interação entre os personagens, como por exemplo, Jerry (1) e Naked Woman (6), não teve aresta, portanto o número na matriz é 0 .

Sinalizei em vermelho a simetria na diagonal principal da matriz.

Dá pra calcular os graus dentro de uma matriz. O número 3 da matriz abaixo é a Elaine. Na horizontal temos o ‘grau de entrada’, já na vertical temos o ‘grau de saída’. Basta contar o número de arestas entre dois nós (personagens). 

“Em ciência da computação, uma lista de adjacência é uma estrutura de dados para representar grafos. Em uma representação de lista de adjacência, podemos manter, para cada vértice do grafo, uma lista de todos os outros vértices com os quais ele tem uma aresta (a “lista de adjacência”, deste vértice).” Daqui.

Lista de adjacência do episódio (representações das interações dos personagens em formato de estrutura de dados)

Lista adjacente com a cara dos personagens (representações das interações dos personagens em formato de estrutura de dados). Como eu mencionei acima, é desta forma que o “computador lê interações”.

Insights

  • Densidade do grafo: 0,356/ Grau médio: 3,2/ Modularidade: 0,238

  • A única relação que geraria um grafo ‘dirigido’ seria a do stand up do Jerry onde ele interage com a platéia. Basicamente seria Jerry ———> platéia
  • Elaine tem o maior grau porque interagiu com mais personagens durante o episódio, como o núcleo principal, além do John F Kennedy, a Marla (namorada do Jerry) e a recepcionista. Isso é confirmado melhor visualmente com a lista adjacente.
  • Jerry Seinfeld é o ator principal da série, enquanto que a situação de George fornece o enredo do episódio, mas Elaine é a personagem que mais interage com pessoas. Achei equilibrado, apesar da série sofrer sim da ‘síndrome de smurfete‘, o que pode ter relação com a época onde pouco se discutia este tipo de abordagem.
  • John F Kennedy Jr não aparece de fato, mas “interage” com três personagens importantes na história, incluindo Elaine
  • Marla é a personagem secundária com maior peso na trama e o ocaso a leva a conhecer John F Kennedy Jr.
  • Kramer é o único que tem uma relação não direcionada com a ‘naked woman’, afinal de contas eles se envolvem no final. Jerry, George, e até Elaine, dão uma espiada na moça que fica pelada em sua casa, mas só o Kramer que realmente a conhece. Situação semelhante acontece entre Elaine e o John F Kennedy. O ‘crush’ da Elaine mal aparece, mas a (quase) relação existiu entre os dois.

 

  • Observações
  • *Excluí a enfermeira e paciente do hospital da mãe de George porque não há interação entre eles. George nem dá ‘bom dia’ para as moças, a cena é paralela a principal para mostrar qual foi a sua tentação.
  • John F Kennedy Jr era o bonitão da década de 90, por isso que Elaine fica completamente fascinada ao conhecê-lo. Ele morreu em um acidente aéreo em 1999.
  • A matriz adjacente é fantástica para descobrir novos insights, mas pouco aplicável para fazer manualmente em redes mais complexas
  • É legal sair um pouco das redes sociais para fazer análise de rede, além de estruturar o dataset antes
  • Comecei o post falando de narrativa e dei uma pincelada em matemática computacional. Vale muito a pena estudar matemática para se tornar um pesquisador com perfil híbrido ao realizar análises de comportamento humano.
  • Não reclame comigo de Spoilers, isso foi pro ar há 25 anos, reprisado inúmeras vezes na TV e está disponível no Amazon Prime.
  • Este post foi livremente inspirado no exemplo clássico de “Os miseráveis” de Victor Hugo usado para o Gephi.
  • Datasets disponíveis

Material de Apoio

  • Formação do cientista de dados do Fernando Amaral na Udemy que me acompanha há uns 6 meses. Ele explica sobre ‘estrutura de dados’ na aula 106, seção 8, em ‘Teoria dos Grafos’. O professor tem ótima didática, mas como ele é engenheiro usa “vértices” ao invés de “nós”, o que pode ser confuso no início. No seu exemplo ele apresenta a estrutura de dados de ‘grafos direcionados’, o que não se aplicou em meu post, mas é válido como conhecimento. Fernando ensina ainda neste módulo a usar a biblioteca IGraph no R. O curso vale muito a pena e me ajuda até hoje.
  • Como criar uma rede no Gephi, do Laboratório de políticas públicas participativas.
  • Estrutura de Dados, com o professor Norton T. Roman, do curso de Engenharia de Computação Univesp que fala sobre os tipos de representação de estrutura de grafos direcionados, não direcionados, com ou sem peso nas arestas.
  • Gramática, Literatura e Produção de textos para o Ensino Médio, de Ernani e Nicola.

Referências

 

Ferramenta | Cloudera/Eclipse rodando liso no IOS High Sierra

Para contar palavras contidas em milhares de tweets, afim de fazermos análise com um grande volume de dados, nós podemos usar o programa ‘word count’ em hadoop/cloudera/eclipse. Daí que eu tenho um macbook air com 4G de memória que não é uma grande potência.

Depois de rondar muito a internet, eu achei o tutorial perfeito que não precisa usar o VMWare Fusion com trial de 30 dias.

  • Instale o Virtualbox. Pode dar um erro do tipo “fatal no bootable medium found system halted”, mas fique tranquilo. É por quê está faltando uma ISO que pode ser Windows (versão paga) ou Ubuntu (gratuito). 
  • Baixe o Ubuntu 64bits (se for o de 32 bits não vai rodar)
  • Depois, instale o Cloudera dentro do Virtualbox usando o Ubuntu (não precisa baixar o Ubuntu dentro do virtualbox, só usar sua ISO)

O passo a passo está neste vídeo.

 

Curso | Análise de rede para mídias sociais

Claire Danes as Carrie Mathison in Homeland (Season 5, Episode 3). – Photo: Stephan Rabold/SHOWTIME – Photo ID; Homeland_503_5519.R

A primeira vez que eu ouvi falar sobre análise de rede foi na série Numbers, que voltarei a comentar aqui em algum instante porque teve forte influência em minha reaproximação com matemática (hoje) e na época da faculdade. No entanto, ‘análise de rede’ se tornou memorável pra mim na primeira temporada de Homeland. Carrie Mathison tentava encontrar uma conexão entre o terrorista islâmico Abu Nazir e o Brody, um soldado americano que voltou como herói do Afeganistão. Desconfiada, ela estudou todas as redes dos dois, separadamente, tentando encontrar um elo entre elas. Ela não acreditava que Brody poderia voltar aos Estados Unidos após 9 anos preso sem ter sofrido algum tipo de lavagem cerebral dos terroristas. Infelizmente, por sofrer de ansiedade, bipolaridade e depressão, o FIB tirou a investigação dela em um dos episódios. Eles acreditavam que ela estivesse atrapalhando o governo. No fim, sua intuição estava correta e eu não vou explicar mais detalhes. Assista a primeira temporada.

Em séries de crimes americanas, como Law and Order SVU, Criminal Minds, dentre outras, é comum haver boards onde tentam encontrar conexões entre criminosos e suas vítimas. Ou entre criminosos, como no caso de Homeland. Ou entre criminosos e seus locais de atuação.

Leia também: Decoding The Detective’s ‘Crazy Wall’

“‘Network analysis’ pode ser usada para diversos fins como estudos de arquiteturas elétricas, coisas e suas interações, relação predatória, financeira e social. Descobrir coisas é uma das principais funções da análise de rede. Importante para entender similaridades, diferenças, conjuntos e processos com artifícios cognitivos e científicos.”

Dividido em 5 módulos, o curso ‘análise de redes para mídias sociais’ do IBPAD é essencial para profissionais de big data ou pesquisadores, como eu, que ousam estruturar dados digitais volumosos para analisar comportamento em redes sociais de alta complexidade. Mostro aqui as redes que fiz ao longo do curso porque voltarei a falar deste assunto, visto que o MBA da FIA abordará ‘análise de rede’ dentro no módulo 1 de introdução ao Big data e do módulo 2, em  Estatística aplicada (🧡). Particulamente estou bem curiosa com a abordagem da faculdade porque nesta semana aprendemos a contar palavras em milhares de tweets usando o Cloudera/Hadoop/Eclipse, afim de desenhar redes mais complexas. Segundo Rosângela Pereira, especialista em Hadoop, o java permite exportar as palavras em txt. 

1a e 2a | De primeiro somos introduzidos com o conceito histórico de redes sociais que está longe de ser sinônimo de Facebook. Nomes como Jacob Moreno e George Simmel, e seus estudos, são mencionados para falar de interações entre humanos em sociedade estudadas há pelo menos 60 anos. Para fazer análise de rede, nós usamos a teoria dos grafos. Um sub-tema da matemática. Uma rede é composta por nós e laços. Como me interesso por sistemas complexos, um assunto fascinante da engenharia que irei falarei em breve, vejo alguns matemáticos (ou engenheiros) usarem vértices e arestas em referência, mas são sinônimos. No caso de redes sociais, nós podem ser perfis no Instagram, Facebook, Twitter, Sites/Blogs ou hashtags e arestas podem ser retweets, menções, curtidas e interações ou também uma hashtag.

Fiz o fluxograma abaixo que sintetiza as informações contidas neste módulo. 

3a, 4a e 5a | Os módulos 3, 4 e 5 são mais práticos. Não vou entrar em detalhes sobre as ferramentas, mas sim demonstrar alguns estudos que eu fiz com os módulos. O que eu gostei deste módulo é que existe um estímulo dos professores para que as redes sejam criadas. Gostei quando foi mencionado que é interessante fazer diferentes layouts para demonstrar análises mais completas, portanto essa é a minha proposta aqui.

Redes no Twitter | #DeleteFacebook

O escândalo da Cambridge Analytica deixou abertas as feridas do Facebook. Dias após um ex-programador da empresa ter revelado a coleta ilegal de dados de (cerca) de 50 milhões de pessoas, a hashtag #DeleteFacebook chegou ao Trending Topics do twitter. Eu comecei a coleta da hashtag no Netylitc no dia 21 de março e também com as keywords “delete” AND “Facebook”.

Layout: Fruchterman Reingold/ Name network

Acima estão em destaque os maiores graus de entrada, como naturalmente, a citação do perfil do Facebook no Twitter. Além do perfil da @CambridgeAnalytica e do @BrianActon, co-fundador do Whatsapp, que postou a hashtag. Em resposta ao Brian, o empreendedor Elon Musk mandou deletar a página da SpaceX na rede.

 

Mesma rede, mesmo layout. Só mudei para a métrica ‘grau de saída’, afim de mostrar os indivíduos mais engajados no debate da hashtag #DeleteFacebook.

Redes no Instagram | Caso Marielle Franco 

A rede abaixo representa as hashtags #MariellePresente e #MarielleFranco no Instagram após o assassinato trágico da ativista. Eu já soltei uma versão prévia que pode ser vista no Slideshare.  Eu extraí como ‘name network’ (redes de pessoas) e ‘chain network’ (rede de conversas) do Neltytic e juntei as 4 redes para formar o grafo abaixo. Em uma das aulas é ensinado como abrir múltiplos arquivos. As análises de rede que podemos fazer com o Instagram são redes entre perfis e redes de hashtags. Abaixo estão os maiores destaques em ‘grau de entrada’ que utilizaram uma das duas hashtags. Viralizou no Brasil #Mariellepresente e lá fora #MarielleFranco. 

Layout: Forceatlas2/Métrica: Modularidade para mostrar comunidades

Há três clusters interessantes onde eu destaquei os maiores graus de entrada, ou seja, foram bastante mencionados na rede formada pelos perfis. Obviamente, o perfil da ativista foi bastante mencionado pelas pessoas que prestaram homenagem a sua memória. O @get_repost por causa do vídeo da Ana de Cesaro que viralizou sem menção a sua autoria, mas que foi repostado em grande volume com a ajuda do aplicativo e o cluster internacional formado pelos ativistas, @mrdavidawilson, @tamukadmallory e do perfil @blackgirlsrock. Há ainda o cluster de ativistas negras brasileiras, como Djamila Ribeiro. O de artistas da Globo, e do Rio de Janeiro, com Glória Pires e Paula Lavigne. De forma isolada, com menos destaque, estão Viola Davis e Naomi Campbell que também postaram sobre a tragédia que completou um mês dia 14 de abril de 2018. Apesar da popularidade dos posts, sobretudo o da Viola Davis, o grau de entrada foi menor. Isso relata a importância de monitoramento constante de perfis porque nem sempre pessoas populares são grandes influenciadoras em determinados assuntos.

Maiores graus de entrada dos perfis 

Disclaimer: Após o escândalo da Cambridge Analytica, o Facebook decidiu não autorizar o Neltyic a coletar conversas no Instagram. Atualmente só é possível fazer isso com hashtags e localização. 

Leia mais: #Mariellepresente no Instagram (prévia)

Redes no Facebook | Luisa Mell e ativismo vegano 

O ativismo vegano (ou vegetariano) nas redes sociais é curioso. Não existe uma separação entre o que é causa animal e um assunto de interesse. Por exemplo, se uma pessoa faz uma página para compartilhar receitas veganas, vez ou outra ela irá advogar em prol da causa. Se torna, de fato, um estilo de vida.

A rede acima foi colhida a partir da id da página da ativista Luisa Mell. Tive algumas surpresas: a primeira delas é que sua página não curte páginas brasileiras. Outra é que ela curte ‘Ben and Jerry’s’ que produz sorvetes veganos, mas eles não são o carro-chefe da empresa. A rede acima está selecionada com a métrica é a “closeness centrality”, onde eu gostaria de mostrar quais são os nós mais próximos uns dos outros. Quem está centralizando as conversas sobre o tema é, claro, a página do PETA.

Leia mais: Mercado vegano cresce 40% ao ano no Brasil

Redes no Youtube

Foi através de influenciadoras vegetarianas que descobri o ‘Water only’, tema da rede abaixo. Trata-se de uma técnica para lavar os cabelos apenas com água. Observe  a rede formada pelos comentários do vídeo da Luisa Moraleida, vegana que tem o vídeo brasileiro mais popular falando do assunto. Selecionei por ‘chain network’ no Neltytic, visto que eu gostaria de mostrar as conversas mais concentradas nos comentários do seu vídeo. Neste caso eu usei a rede formatada pelo Neltytic. 

1142 – posters with ties/ 1159 ties (include self loops)

As 30 palavras mais citadas no comentário do vídeo da Luisa. ‘Oleoso’ pode ser uma referência de mulheres de cabelo liso/alisado porque representa um certo receio com a técnica. É raro, mas a queixa pode acontecer entre mulheres de cabelo cacheado ou crespo. Por este motivo eu aponto que mulheres do cabelo liso podem frequentemente perguntar ‘Será que o meu cabelo vai ficar oleoso?’. Ainda há a presença proeminente da palavra ‘cacheadas’ por causa de perguntas “Dá certo com cacheadas?”. Menção mais direta a textura do cabelo.

Leia mais: Microtendência, Water Only  (Versão II)

O curso me inspirou a aumentar o nível das pesquisa que faço, inclusive para as minhas entregas atuais. Eu recomendo ir além dos exemplos mostrados e com datasets disponíveis, tenta coletar dados do Netlytic com algum assunto interessante que tem repercutido. Isso te ajudará a ficar mais independente. Com isso, disponibilize o dataset de forma livre. David Dooley, autor de Social Research Methods, alerta sobre transparência em dados e metodologia de pesquisa.

Dicas

  • Ative as legendas das aulas disponíveis. Estudar online exige muita disciplina e qualquer perda de tempo pode ser sentida ao longo do aprendizado.
  • Extraia os dados da tabela para fazer cruzamentos e obter mais informações das métricas calculadas. Não limite sua análise só ao ‘desenho’ das redes.
  • Coloque o gephi em português, visto que as aulas são no software em nosso idioma. No entanto, nem tudo é traduzido no software.

Seria legal se …

  • A barra de rolagem pudesse acompanhar o módulo do curso. Por exemplo, se eu estivesse no módulo 3, a barra ao lado poderia ser semelhante.
  • No Coursera sempre há um vídeo-resumo do sumário, antes do teste. Gosto bastante disso e adoraria ver presente em outros cursos online.
  • Tivesse uma outra edição do curso, só que mais avançado no Gephi. 

 

  • Positivo: Ótimo nível de professores e didática, além de amostragem prática das ferramentas Netlytic e Gephi. Foi decisivo para eu retomar um estudo que fiz sobre o caso Marielle no Instagram que venho monitorando desde o primeiro protesto, dia 15 de março de 2018.
  • Outro ponto legal do curso é intercalar os vídeos com artigos sobre análise de rede, assim como tem no Coursera.
  • Você pode consultar o curso por seis meses.
  • Por fim, o site não desloga o aluno, ao contrário do Coursera, o que eu acho ótimo porque revezo aulas online em dois navegadores diferentes.

Para saber mais: Análise de rede para mídias sociais

Professores: Tarcizio Silva, Max Stabile e Marcelo Alves

Valor: 549*

Nota: 4/5

Tempo de conclusão: 47h60**

*Na época em que realizei o pagamento (março/2018); o valor subiu mas vale bastante a pena.  

*Estimado com o aplicativo Get Focused (que usa a incrível técnica pomodoro) em 7 dias de aula porque além de pra pausar o vídeo em todo instante, afinal este é o meu ritmo de aprendizado, eu tive entregas da empresa, reuniões de prospects, estudei todos os artigos indicados pelo curso e fiz os exercícios. Pra mim essa é a melhor vantagem de cursos online, mas repito que é preciso ser muito organizado, se não você se perde.

Contato: nadjaepereira@gmail.com