• Nenhum resultado encontrado

CAPÍTULO 1 Data Science, Teoria Ator-Rede e Novos Métodos de Análise de Redes

1.2 Twitter como fonte de dados para a "Data Science": vantagens e desvantagens

1.3.3 Processamento dos dados

A etapa seguinte é a de processamento de dados, após termos os dados

crawleados17, quanto são tratados os datasets, arquivo que contém toda coleção de dados coletados. Em nossa pesquisa, o dataset possui extensão de texto (.csv, comma separated values) de 680.682 linhas e 13 colunas.

A seguir, na tabela 1, está um exemplo dessa tabela com dez tweets retirados do

dataset utilizado na parte empírica deste trabalho.

16 Timestamp, ou UNIX timestamp, é o número de segundos que se passaram desde 1 de janeiro de 1970 às

00:00:00 até a data indicada. Este número serve para padronizar as datas e facilitar sua manipulação na hora de processamentos.

17 O verbo crawlear, vem do inglês “Rastrear”, usado no sentido que se rastreia os traços deixados nas redes

Esse dado, muitas das vezes, pode ser caracterizado como Big Data. Arquivo extenso de informações que, como dito anteriormente, necessita de um processamento para um entendimento e uma análise aprofundada, sendo o mesmo de difícil, quiçá impossível análise por si só. Dessa forma, processamos os arquivos para extrair as informações, previamente selecionadas, dos dados. Tais informações são retiradas através das métricas de processamento, que são concebidas na criação da ferramenta que irá filtrar o dado bruto em um relatório mais acessível para análise.

Ou seja, é necessário softwares especializados ou a programação de scripts e desenvolvimento de ferramentas específicas, como o script utilizado neste projeto, capaz de processar uma grande quantidade de tweets, retornando as informações que nos são necessárias.

Microblogs como o Twitter proporcionam um valioso corpus de um diversificado conteúdo gerado por usuários. Os dados extraídos do Twitter são geralmente feitos de forma oportuna e precisa, o processo pelo qual os desenvolvedores atualmente extraem os dados estruturados do fluxo de tweets é ad-hoc e exige reimplementações da manipulação primitiva de dados comuns. (Marcus et al, 2012, p. 1)18

As formas de processamento podem ser diversas e devem atender os requisitos do trabalho feito com os dados. Elas devem ser compatíveis com a saída do minerador utilizado. Dessa forma, define-se o output do coletor como o input da ferramenta de processamento. As funções da ferramenta devem ser definidas na sua produção (programação) ou, no caso de escolher uma ferramenta já existente, analisar suas funcionalidades afim de conhecer o resultado e determinar ser o mais certo para as finalidades de sua análise.

No caso presente, se utilizou a ferramenta yTK e deve-se trabalhar com a saída que ela fornece. Inicialmente, ela fornece três tipos principais de saída/exposição: HTML, em que é mostrado os tweets no próprio aplicativo; como RSS, os tweets são dispostos em formato de

feed de RSS; e como arquivo de Microsoft Office Excel, arquivo em formato de tabela para ser

exposto no Excel. (Medeiros, 2014) Porém, a fim de processamento, ou seja, facilitar o manuseio dos tweets, Axel Bruns e Burgess (2011) nos trazem uma modificação ao aplicativo, adicionando mais duas saídas: CSV (Comma-separated values) e TSV (Tab-separated values),

18 Tradução nossa de: “Microblogs such as Twitter provide a valuable corpus of diverse user-generated content.

While the data extracted from Twitter is generally timely and accurate, the process by which developers currently extract structured data from the tweet stream is ad-hoc and requires reimplementation of common data manipulation primitives.”

ambos são arquivos de texto que formam uma estrutura de tabela, o primeiro faz isso separando os conteúdos com vírgula e o segundo, por espaçamentos (tabulações).

Ainda assim, havia a necessidade de um output mais otimizado para o processamento. Dessa forma, como o arquivo tratado contém textos, sendo eles textos que podem conter praticamente qualquer tipo de caractere, optamos por tratar um output em que os conteúdos se separassem pelo caractere “|” (pipe), um caractere raro, evitando assim possíveis arquivos corrompidos. Dessa forma, aproveitando da alteração feita por Bruns e Burgess (2011), modificamos um dos arquivos utilizados por ele, para adicionar um output de arquivo “Pipe-

delimited”, em que em lugar da vírgula em CSV’s, utiliza-se do caracetere pipe.

Feito isso, temos a incumbência de tratar esses arquivos, retirar as informações necessárias para análise e transformá-los em arquivos de grafos para as visualizações. Para tal ação, primeiro definimos quais informações pode-se retirar dos tweets e que são interessantes para análise. Após essas escolhas, cria-se um script capaz de realizar esses procedimentos.

O primeiro passo de processamento desses dados se constitui de um processo de coleta. Os dados do dataset “primário” contém somente tweets com a ocorrência da hashtag #NaoVaiTerCopa e “Nao vai ter copa”, desse modo, impedindo a presença de possíveis replies à esses tweets. Uma maneira de coletar essas mensagens se faz necessária, pois os estudos dos diálogos presentes na rede precisam desses dados. O Labic possui um algoritmo criado pelos membros do laboratório intitulado FORD e uma de suas extensões que se chama Hash-collector. Essa extensão faz a coleta dos replies dos tweets ainda acessíveis pela rede social. A figura 2 mostra como ele funciona em forma de diagrama.

Figura 2: Diagrama dos processos realizados no dataset primário.

A figura 2 demonstra o processo realizado com os dados inicialmente coletados pelo yTK. O algoritmo dentro do Ford extrai os IDs de cada tweet presente no dataset primário e os processa com o hash-collector. O hash-collector, por sua vez, verifica se o tweet ainda existe na rede social, se existir, ele verifica se há replies à esse tweet, se existirem, o algoritmo coleta os IDs destes replies (pode-se ver o algoritmo em utilização na figura 3). Após a coleta das IDs, um algotimo de coleta chamado Flashback faz a coleta dos tweets e seus metadados a partir das IDs deles. Na figura 4 podemos perceber um exemplo do resultado de uma extração de IDs e, logo após, da coleta (mining) dos replies. O último passo se concretiza com um Merge (algoritmo que une dois arquivos csv) entre os dois datasets, tanto o primário, quanto os replies coletados, formando assim o arquivo final para o processamento das métricas.

Figura 3: Algoritmo Hash-Collector do FORD em ação.

No LABIC, foi criado um script chamado “parse-tweets” e realizava essa tarefa em cima do output retirado do yTK. Tal script se fez necessário, pois o arquivo de saída do coletor, por muitas vezes, era grande e de difícil análise, necessitava de processamento. Um script capaz de gerar grafos desse arquivo de saída já estava em nossas mãos, porém, outras análises, com mais acurácia quantitativa eram precisas. Assim, esse script foi criado. Seu resultado continha diversos arquivos para serem usados em uma análise mais precisa dos tweets encontrados. As informações são expostas através dos seguintes arquivos (pipe-delimited csv’s):

dates.csv: Número de tweets por dia;

 hashtags.csv: Número de usuários distintos que utilizaram certas hashtags;

 hashtags_without_accents.csv: Mesma função que a anterior, porém retirando as

hashtags que contem acentos.

 hashtags_network.csv: Tabela formada para a criação de uma rede de hashtags em co- ocorrência, ou seja, que aparecem no mesmo tweet.

 hashtags_network_without_accents.csv: Mesma função que a anterior, porém retirando as hashtags que contem acentos.

locations.csv: A geolocalização dos tweets. (Número muito limitado devido ao pequeno número de usuários que ativam a função localizadora.)

mentions.csv: Os usuários mais mencionados no dataset;

top_tweets.csv: Os top tweets ordenados pelo número de retweets recebidos;

top_urls.csv: As urls mais mencionadas pelos usuários do dataset;

 top_words.csv: Lista das palavras mais mencionadas e o número de vezes que a mesma foi mencionada no dataset;

 tweets_with_links.csv: Arquivo semelhante com o original, porém contendo somente os tweets que tem links em seus textos;

 tweets_without_hashtags.csv: Arquivo semelhante com o original, porém contendo somente os tweets que não contém hashtags em seus textos;

 tweets_without_RTs.csv: Arquivo semelhante com o original, porém excluindo os

tweets que são retweets;

 user_influence.csv: Lista de usuários ordenada pela sua influência, onde influência é um número dado por: (quantidades de menções)/(número de tweets efetuado pelo usuário);

users_activity.csv: Lista de usuários ordenada pela quantidade de seus tweets no

dataset;

 users_by_date.csv: Contém o número de usuários em cada dia de coleta;

words_per_period.csv: Tabela com as 10 palavras mais mencionadas do dataset e o número de ocorrências das mesmas em cada dia de coleta.

 hashtags_network.csv (este é csv com vírgulas): um arquivo tabela que mostra a co- ocorrência de hashtags em um mesmo tweet e serve para geração de um grafo, conectando as hashtags em caso de co-ocorrência.

 top_words_wordle.txt (arquivo texto): Arquivo contendo em texto a proporção das 100 palavras mais mencionadas no dataset. Serve para criação de nuvens de palavras.

 top_hashtags_wordle.txt (arquivo texto): Arquivo contendo em texto a proporção das 100 hashtags mais mencionadas no dataset. Serve para criação de nuvens de palavras.

 top_hashtags_without_accents_wordle.txt: O mesmo que o anterior, porém retirando as

hashtags com acento.

O outro script, batizado de tweetgraph, trabalha com o dataset para gerar dois arquivos de grafo. Os dois arquivos podem ser abertos em qualquer ferramenta que suporte .graphml, um tipo de arquivo-grafo. Eles são os arquivos RTs.graphml e ATs.graphml. O primeiro faz um grafo em que os nós são perfis e as conexões são geradas ao haver um retweet entre os mesmos, o segundo, os nós também são perfis e as conexões feitas se um fez um reply ao outro.