Os gestores de negócios necessitam de respostas cada vez mais rápidas e o processo de análise precisa ser pensado e remodelado para dar conta dessa exigência. Por isso, quando pensamos em construir uma arquitetura de Big Data que possa resistir a essa dinâmica, precisamos criar mecanismos que otimizem todas as camadas de análise.
Nesta etapa serão explorados conceitos, técnicas, ferramentas e aplicações no mundo Big Data, vamos começar com o conceito de cluster, ou seja, agrupamento) em nível de dados.
A clusterização é uma técnica importante para classificar pontos de dados que não são rotulados previamente e parte do pressuposto que, uma vez que pertençam a um mesmo grupo - de acordo com alguma métrica de distância definida previamente -, os pontos de dados são homogêneos entre si e assim podem ser rotulados.
A clusterização em Big Data pode ser dividida em duas principais categorias, conhecidas como: Single-Machine clustering e Multi-Machine clustering. Vamos acompanhar os principais tópicos dessas duas categorias.
É importante que você considere alguns fatores-chave para a seleção do melhor algoritmo:
Confira o vídeo da etapa 2:
O crescimento das redes sociais reflete diretamente no consumo e na geração de conteúdo. Isso significa que existe uma grande fonte de conhecimento que pode ser coletada, organizada e explorada por ferramentas analíticas.
Os resultados obtidos a partir das análises de rede podem ajudar empresas a traçar estratégias para envolver o público com a marca, analisar o sentimento do público com relação a um novo produto lançado, prever tendências com base no comportamento social ou individual dos clientes, entre outras possibilidades.
No Artigo Análise de Redes Sociais, Da teoria à ação, Robson Oliveira explica as principais métricas para analisar as redes sociais.
Além das redes sociais, existem outros dados não estruturados que são a maioria na atualidade. Analisar dados não estruturados em tempos de Big Data parece ser um desafio. Por essa razão, diversas pesquisas têm sido realizadas para construção de novos métodos, técnicas ou algoritmos para analisar dados textuais de grande volume.
Em atividades de análise textual é preciso converter dados não estruturados para um formato estruturado para que assim análises sejam aplicadas. Diante dessa situação, o Processamento de Linguagem Natural (PLN) surge como uma alternativa do campo linguístico, que permite estudar relações entre palavras e sentenças em um texto.
O mecanismo de busca e o tradutor do Google, bem como os corretores de texto, são alguns dos inúmeros exemplos de aplicações do PLN.
No vídeo: Mineração de textos, Parte 1 Jones Granatyr apresenta uma introdução à área de mineração de texto. Já no vídeo Mineração de Textos – Parte 2, Jones Granatyr apresenta tarefas e aplicações práticas da mineração de textos.
O último assunto que abordaremos neste tópico é o Digital Analytics, ou Análise Digital. Mas o que é Digital Analytics?
É um conjunto de atividades técnicas e de negócios que definem, criam, coletam, verificam ou transformam dados digitais em relatórios, pesquisas, análises, recomendações, otimização, predições, que criam valor para os negócios auxiliando empresas a criar valor, aumentando a receita ou reduzindo custos. Os dados digitais podem ser dados comportamentais sobre como as pessoas usam e interagem com experiências digitais, dados ou metadados relacionados a eventos, cliques e interações, é utilizada para responder perguntas de negócio e fornecer base para decisões baseadas em fatos (PHILLIPS, 2014, p. 3-4).
Vamos verificar algumas métricas importantes que são utilizadas para monitorar sites ou lojas virtuais?
Existem outras métricas digitais incorporadas em ferramentas voltadas para as análises digitais. O próprio Google Analytics (ferramenta gratuita do Google) possui numerosas métricas e indicadores para auxiliar as empresas a obterem ganho competitivo no mundo digital. No site de ajuda ao Google Analytics você pode ter uma visão ampla da ferramenta.
CAPÍTULO 2 - COMPREENDENDO E EXPLORANDO TÉCNICAS PARA ANÁLISE DE BIG DATA
A partir da perspectiva do saber-fazer, são apresentados os seguintes objetivos de aprendizagem:
Conceituar e aplicar técnicas avançadas no mundo dos negócios.
Apresentar, descrever e explorar técnicas para análise de grandes volumes de dados.
Discutir e demonstrar a aplicação de diferentes técnicas para análise de Big Data.
No capítulo anterior, vimos que o massivo crescimento no volume de dados exigiu novas demandas para análise de dados. A pergunta que surge é: como criar uma alternativa para lidar com toda essa dinâmica e entregar respostas rápidas tendo em vista o suporte à tomada de decisão? Mais do que isso, como podemos tornar esse processo menos custoso nas empresas? É importante pensar nesses questionamentos a fim de fornecer soluções apropriadas para o negócio para garantir um bom custo-benefício.
Nos últimos anos, novas tecnologias (ou fontes de dados) têm surgido e são capazes de criar conteúdo ou produzir dados em um menor intervalo de tempo. Por exemplo, drones são responsáveis por criar conteúdo relacionado a imagens, que podem ser úteis para mapear áreas de risco na agricultura, medir grau de poluição nos rios e monitorar áreas de preservação ambiental para combater o desmatamento. Sensores dos mais diversos tipos e tamanhos representam uma outra rica fonte de dados que podem ser utilizados também para fins de monitoramento, como: eficiência de máquinas na produção de peças automotivas, sensores de imagens para detecção de materiais e peças, ou sensores magnéticos para abertura e fechamento de portas ou portões.
Como estamos imersos em tecnologias inovadoras, sem nos dar conta disso, não precisamos ir muito longe para ratificar. Se você pegar seu smartphone, constatará que existem algumas funcionalidades que incorporam o uso de sensores. Quando você programa o controle de brilho na sua tela de forma automática, o sensor fará uma leitura da luminosidade do ambiente e a adequará a sua tela. Sensores de acelerômetro conseguem medir informações de orientação do aparelho e também determinar altitude por meio de giroscópios. São muitos exemplos práticos em que a tecnologia está onipresente. Nesse universo tecnológico são muitos dados sendo produzidos e estamos diante de uma realidade na qual ferramentas tradicionais de análise de dados não fornecem o devido suporte, o Big Data emergiu a partir disso.
Nessa atual conjuntura, vimos que o Big Data pode ser definido, mesmo que de forma mais simplista, em função do volume e variedade dos dados que são extraídos e analisados no tempo certo, ou seja, em uma velocidade ideal de acordo com a demanda dos negócios. Os gestores de negócios, por sua vez, necessitam de respostas cada vez mais rápidas e o processo de análise precisa ser pensado e remodelado para dar conta dessa exigência. Por isso, quando pensamos em construir uma arquitetura de Big Data que possa resistir a essa dinâmica, precisamos criar mecanismos que otimizem todas as camadas de análise. Desde o momento que coletamos os dados até o instante em que apresentamos as visualizações ao usuário final. Vale frisar que esse processo não termina quando você implanta um modelo ou apresenta visualizações. Ao contrário, todo o processo de Big Data é iterativo, precisando sempre ser monitorado e, quando necessário, readaptado sob demanda. Por essa razão, a arquitetura precisa ser muito bem pensada, a fim de ser menos sensível a eventuais modificações. Portanto, é vital que os objetivos de negócio (definido na etapa de requisitos) tenham um escopo bem definido para que os analistas possam direcionar seus estudos em função das reais necessidades da empresa.
Neste capítulo serão explorados conceitos, técnicas, ferramentas e aplicações no mundo Big Data. Você conhecerá algoritmos e técnicas baseadas em cluster, assim como compreenderá a importância da análise de dados em redes sociais. Serão abordadas técnicas para analisar dados não estruturados e, por fim, o capítulo será encerrado com um estudo sobre o Digital Analytics, conceitos e implicações no mundo dos negócios. Faça bom proveito e bons estudos!
Nós já comentamos sobre cluster no final do capítulo anterior, mas o cluster que abordaremos nesta seção não se refere a um cluster físico ou hardware, embora grande parte do conhecimento obtido possa ser reaproveitado, mas, sim, diz respeito ao clustering (agrupamento) em nível de dados, que exploraremos a seguir.
2.1 CLUSTERING: CONCEITOS, TÉCNICAS E ALGORITMOS
Em uma análise de dados tradicional, a clusterização (ou clustering) é um método que visa classificar um conjunto de pontos de dados semelhantes em um mesmo grupo, ou seja, são pontos que apresentam um elevado grau de similaridade entre si. Enquanto que, por outro lado, pontos de dados que estão fora da margem desse grupo podem formar outros clusters que possuem elevado grau de dissimilaridade entre eles.
A clusterização é uma técnica importante para classificar pontos de dados que não são rotulados previamente e parte do pressuposto que, uma vez que pertençam a um mesmo grupo - de acordo com alguma métrica de distância definida previamente -, os pontos de dados são homogêneos entre si e assim podem ser rotulados. De acordo com a Figura 1, os pontos de dados foram classificados em três grandes grupos (A, B e C) considerando alguma métrica de distância. A linha que divide o grupo de dados representa a fronteira de decisão que segmenta os grupos. É possível utilizar algumas métricas de distância que se adéquam a determinados tipos de dados, tais como distância Euclidiana, de Minkowski, de Manhattan, correlação, entre outras.
Você pode se aprofundar mais com relação às métricas de distância por meio deste link: <https://bit.ly/2EbW25A>.
Quanto ao grau de dissimilaridade (ou divergência), ele é importante para garantir que os pontos de dados que foram classificados fora da região (ou margem) de um grupo realmente não fazem parte daquele determinado grupo. Isso oferece uma alternativa adicional para verificar o erro de classificação dos objetos. Assim, podemos afirmar que o grau de dissimilaridade dos objetos em um cluster é dado por:
Dissimilaridade = 1 – Similaridade, onde:
Dissimilaridade ͼ [0,n]
Os métodos tradicionais baseados em cluster são muito utilizados em mineração de dados com diferentes finalidades e podem ser divididos em:
Métodos de particionamento: é um método que inicialmente cria uma partição inicial definindo um número fixo para o parâmetro K. Ao longo do processo iterativo, busca otimizar o particionamento utilizando como parâmetro alguma medida de distância (ou similaridade) que possa ser implementada através de algoritmos como K-means (ou c-means), CLARANS, PAN etc.
Uma forma interativa de observar visualmente o funcionamento de um método de particionamento é através desta pequena aplicação: <https://bit.ly/2ErCw4D>. Você define o número de nós (N) do cluster e, em seguida, o parâmetro K (número de clusters). Os pontos coloridos são o ponto de referência para a formação dos grupos. Clique em “New” quantas vezes você julgar necessário. Por fim, ao clicar em “Step” você tem a representação.
Métodos hierárquicos: este tipo de método particiona os dados no cluster de forma hierárquica e fornece uma visualização em formato de “dendograma”, que classifica os objetos de acordo com os seus níveis, considerando como parâmetro medidas de distância ou similaridade entre os pontos de dados. Os métodos hierárquicos podem ser classificados como aglomerativo (abordagem bottom-up) ou divisivo (top-down), estes, por sua vez, no que se refere a questões de interpretabilidade, necessitam de participação ativa de um especialista do domínio para esclarecer os resultados. Exemplos de algoritmos que implementam métodos hierárquicos são: ROCK, DIANA, BIRCH, entre outros.
Métodos baseados em densidade: são métodos que avaliam a densidade em torno dos pontos que os cercam para definir a fronteira do cluster de acordo com um determinado raio, ou seja, o crescimento da região de densidade pode acontecer em quaisquer direções. Regiões do cluster que apresentam baixa densidade podem indicar a presença de outliers (anomalias). Alguns exemplos de algoritmos deste método são: DBSCAN, DENCLUE e OPTICS.
Métodos baseados em modelos: considera que os pontos de dados estejam em função de probabilidade multivariada, criando hipóteses para os grupos na tentativa de otimizar e encontrar um melhor modelo que classifique os grupos com base nesses ajustes estatísticos. Expectation-Maximization (EM) e Self-Organizing Map (SOM) são alguns exemplos de algoritmos relacionados a esse método.
Métodos baseados em grid: basicamente divide o espaço de dados em células formando uma estrutura em grid e define os clusters considerando a elevada densidade das células adjacentes. Alguns algoritmos que podem ser implementados são: STING, WaveCluster e GRIDCLUS.
Métodos evolutivos: inspirado em algoritmos genéticos e outras abordagens evolutivas, tem como objetivo explorar de forma iterativa um conjunto inicial e aleatório de soluções (clustering) e verifica, dentre estas, qual é a melhor solução. O critério de parada é determinado a priori.
O problema dos algoritmos tradicionais de agrupamento está relacionado a sua ineficiência para lidar com grandes volumes de dados, o que acaba comprometendo todo o tempo da análise e tornando a utilização de Big Data inviável para esse tipo de análise. Assim, a comunidade científica não mediu esforços para superar esse desafio e, dessa maneira, foram propostas novas abordagens para enfrentar esse problema. Assim, novos algoritmos foram propostos com a promessa de tornar esse tipo de análise adaptável à era do Big Data, oferecendo não somente suporte a massivos volumes de dados, como também a capacidade de serem escaláveis para atender à demanda das análises.
Diante disso, a clusterização em Big Data pode ser dividida em duas principais categorias, conhecidas como: Single-Machine clustering e Multi-Machine clustering. A principal diferença é que a primeira utiliza recursos computacionais de uma única máquina para executar os dados, enquanto que a segunda pode utilizar recursos de várias máquinas para obtenção de ganho computacional e aumento de escalabilidade.
Chen, Ludwig e Li (2017) apresentaram um resumo das técnicas de cluster voltadas para a Big Data que pode lhe fornecer uma boa base para a compreensão do tema. A Figura 2 apresenta uma esquematização de técnicas e de clusterização que visa atender às necessidades do Big Data.
FONTE: Chen, Ludwig e Li (2017, p. 338)
Nas próximas seções, exploraremos técnicas de Single-Machine Clustering e, em seguida, abordaremos as técnicas de Multi-Machine Clustering.
2.1.1 Técnicas de Clusterização em uma Única Máquina (Single-Machine Clustering)
Muitos dos algoritmos voltados para a análise em cluster são computacionalmente custosos e estão contidos em classes de problemas NP-difícil, como é o caso do K-means - um dos algoritmos de particionamento mais populares. Assim, uma das primeiras maneiras de enfrentar problemas dessa natureza foi através da criação de técnicas e algoritmos voltados para Single-Machine Clustering com o intuito de atender e dar suporte à alta demanda no volume de dados na era Big Data. Dessa forma, conforme mostrado por Chen, Ludwig e Li (2017), podemos dividir as técnicas de Single-Machine clustering de duas formas: as que são baseadas em amostragem e aquelas voltadas para a redução de dimensionalidade:
Técnicas baseadas em amostragem: tem como objetivo generalizar o conhecimento dos dados a partir de uma pequena amostra (sample) retirada de todo o conjunto de dados. Assim, em vez de manipular todo o volume de dados disponível, os algoritmos trabalham apenas com uma pequena parcela do conjunto, isso significa um menor número de pontos de dados. Em razão disso, obtem-se um ganho de desempenho e os efeitos da complexidade computacional são minimizados. A maioria das técnicas baseadas em amostragem fazem parte da classe de algoritmos de particionamento. Em geral, os algoritmos são: BIRCH, CLARANS, PAM e assim por diante.
Técnicas de redução de dimensionalidade: o tamanho dos dados (dimensão) diz respeito ao número total de atributos (variáveis) em relação ao número total de instâncias em um conjunto de dados. Caso você estiver diante de um conjunto de dados com dimensão (2000000, 500) saiba que seria algo muito mais custoso que trabalhar com conjuntos de dimensões (4000, 200). É em função dessa problemática que as técnicas de redução de dimensionalidade foram pensadas, isto é, reduzir a dimensionalidade do conjunto de dados para tornar o ambiente de execução mais ágil. Desta forma, uma alternativa para resolver esse problema seria reduzir a dimensão do conjunto de dados aplicando tarefas de pré-processamento antes mesmo de aplicar os algoritmos de análise em cluster. O PCA (Principal Component Analysis) é um dos métodos mais populares que você pode utilizar para a redução de dimensionalidade, ao remover atributos desnecessários e redundantes para a análise. Métodos de projeção locais e globais também podem ser utilizados para este fim. Essas técnicas são muito utilizadas também para extração e seleção de features para fins de otimização quando construímos modelos de Machine Learning.
2.1.2 Técnicas de Clusterização em Múltiplas Máquinas (Multi-Machine Clustering)
Uma maneira aperfeiçoada para processar os dados em uma análise em cluster é segmentar conjuntos de dados em partições reduzidas e carregá-los em máquinas diferentes com o objetivo de tirar vantagem do processamento individual dessas máquinas para ganhar em escalabilidade e tempo de processamento. Em suma, é dessa maneira que as técnicas de Multi-Machine clustering foram projetadas. Como já vimos na Figura 2, podemos dividir essas técnicas em duas grandes categorias: clusterização paralela e clusterização baseada em MapReduce. Em ambos os casos, os dados são particionados e distribuídos em máquinas diferentes que executam iterativamente suas operações de cluster localmente e entregam os resultados a um cluster final que agrega os resultados locais e gera o resultado final.
Clusterização paralela: os dados são distribuídos em diferentes máquinas e precisam ser gerenciados pelo desenvolvedor. É evidente que este é um processo que demanda mais esforço na implementação, porém, uma vez executado, os resultados apresentam melhor desempenho em relação a abordagens tradicionais de processamento. Pode-se citar alguns algoritmos, como ParMETIS, G-DBSCAN, K-Means, PBIRCH e DBDC. Grande parte desses algoritmos foram reformulados para suportar a computação paralela.
ParMETIS: é um algoritmo de particionamento paralelo, derivado do METIS, que foi otimizado com a finalidade de encontrar um bom cluster de vértices em um grafo.
G-DBSCAN: você recorda da versão DBSCAN que citamos em métodos baseados em densidade? Foi construído uma versão otimizada do DBSCAN, baseada em GPU, para incrementar o poder de processamento, bem como a velocidade do algoritmo.
K-Means: também foi remodelado para atender às exigências do paralelismo. Existem diversos trabalhos que fornecem métodos de paralelização utilizando este algoritmo.
PBIRCH: uma versão derivada do algoritmo BIRCH dos métodos hierárquicos.
DBDC: consiste em um algoritmo paralelo que constrói clusters utilizando como parâmetro a densidade dos pontos.
Clusterização baseada em MapReduce: é verdade que a clusterização paralela trouxe melhorias significativas em termos de desempenho no que se refere a dados de grande volume. Entretanto, como já foi abordado, na clusterização paralela existe uma complexidade maior de gerenciamento por parte do desenvolvedor, que precisa se preocupar com detalhes inerentes à paralelização, por exemplo, definir como os dados serão distribuídos ou como criar mecanismos que forneçam suporte de tolerância a falhas. O MapReduce é um modelo de programação simples que permite que o desenvolvedor se preocupe apenas com a estratégia que será adotada, tornando as tarefas de mais baixo nível transparentes enquanto os dados são processados. Podemos afirmar que essa é uma das principais diferenças entre esses dois tipos de clusterização. Da mesma forma que na clusterização paralela, o K-means também foi adaptado à abordagem MapReduce, conforme mostra a Figura 3. Algoritmos como MR-DBSCAN e DBCURE-MR, MR-CPSO, EM e BIRCH também foram aperfeiçoados com o emprego do MapReduce. Além disso, algumas abordagens propõem o uso de GPU (GPMR) para processar algoritmos para este fim. Dentre elas, destacam-se:
MR-DBSCAN: a união de um método baseado em densidade e um modelo de programação MapReduce permitiu a construção desse algoritmo.
DBCURE-MR: consiste em um modelo baseado em densidade combinado com o MapReduce, aprimorado para encontrar eficientemente diversos clusters de forma independente, considerando as densidades que compõem os clusters.
GPMR: é uma maneira ainda mais otimizada de conduzir a forma de processamento baseado em CPU para GPU utilizando o MapReduce. Permite um desempenho e uma escalabilidade ainda maior.
FONTE: <https://portal.futuresystems.org>. Acesso em: 10 nov. 2018.
Tendo em mente as técnicas e os algoritmos baseados em cluster que foram apresentados até o presente momento, pode ser que você se pergunte: “Qual desses algoritmos é o mais indicado?”. A resposta é simples: depende. De fato, tudo dependerá do domínio do problema que você está trabalhando. Por exemplo, se você estiver diante de um cenário onde o volume e a variedade dos dados estejam sujeitos a poucas alterações, talvez o mais indicado seja empregar métodos tradicionais de cluster, como particionamento ou hierárquico, ou mesmo, de densidade. Por outro lado, se os requisitos de negócio exigirem que você trabalhe com uma ampla variedade e volume de dados, seria bom pensar em técnicas voltadas para o processamento em múltiplas máquinas, paralelizando o conjunto de dados para compensar a possibilidade de altas taxas de latência devido ao processamento de dados de grande volume. Tenha sempre em mente que, se o problema é simples, resolva-o da forma mais simplificada possível. Não agregue complexidade ao utilizar algoritmos de múltiplas máquinas em cenários de implementação de baixa complexidade. Portanto, direcione suas análises e decisão de escolha dos algoritmos sempre de acordo com o domínio (ou problema) que está sendo explorado. De qualquer modo, é importante que você considere alguns fatores-chave para a seleção do melhor algoritmo:
Volume dos dados: como já estudamos, grande parte dos algoritmos de clusterização apresenta alta complexidade computacional, por esse motivo, métodos e técnicas tradicionais somente devem ser empregados em conjuntos de dados pequenos.
Variedade dos dados: algoritmos de clusterização não são projetados para lidarem com tipos de dados diferentes. Ao contrário, em geral, ou funcionam bem em dados numéricos ou em dados categóricos. A etapa de transformação também pode se tornar custosa para lidar com a variedade dos dados obtidos da fonte. Conhecer o tipo de dado aceito pelos algoritmos que pretendemos utilizar é uma tarefa importante.
Total de parâmetros: quanto maior a dimensão vertical (colunas) dos dados mais difícil se torna a tarefa de clusterização. Por isso, métodos de redução de dimensionalidades podem ser úteis para minimizar os efeitos que o excesso de parâmetros possa causar.
Dimensionalidade: está relacionado ao número de linhas e colunas que podemos exigir consideravelmente dos algoritmos de clusterização. Remover dimensões irrelevantes é uma etapa fundamental para melhorar o desempenho da análise.
Uma enquete realizada em 2017 pelo KDnuggets mostrou que, entre os métodos voltados para a ciência de dados e aprendizagem de máquina, a clusterização foi o segundo método mais empregado (55%) pelos usuários em cenários reais de aplicação, ficando atrás apenas dos métodos de regressão (60%). Os resultados também apontam bons números de uso dessa técnica na indústria, que ficou em torno de 60%, e na área de pesquisa: 56,8%.
O que retrata tudo isso é a diversidade de aplicações que empregam as análises em cluster, conforme será mostrado a seguir:
Segmentação de clientes: as empresas inclinam-se a descobrir padrões de consumo de seus clientes dividindo-os em grupos distintos e tomando como base informações contidas em suas bases ou, em alguns casos, fontes externas para agregar conhecimento aos seus negócios e melhorar a experiência de seus produtos.
Detecção de anomalias: a análise em cluster também é utilizada para dividir grupos entre atividades suspeitas (ou ações fraudulentas) e atividades normais de compras no cartão de crédito com base no histórico de compras e renda dos clientes, por exemplo.
Mecanismos de pesquisa: visam agrupar um conjunto de documentos com base em suas similaridades. Quando pesquisamos algo em algum buscador, este retorna um conjunto de artigos ou documentos que possuem elevada similaridade com a palavra-chave que digitamos.
Segmentação de imagens: dados de imagens como pixels também podem ser utilizados para classificar imagens em visão computacional. Evidentemente que a tarefa se torna mais complexa em cenários dessa natureza e, por essa razão, técnicas paralelas de análise de cluster têm sido empregadas nesses casos.
Este artigo mostra alguns casos de aplicações que utilizam o algoritmo de clusterização K-means. Acesse: <https://bit.ly/34iE6AQ>.
Segue mais um link que pode complementar o seu aprendizado com relação a um dos algoritmos mais conhecidos para a análise de clusters - o K-Means: <https://bit.ly/2SCYXYC>.
Na próxima seção você aprenderá a respeito de uma análise comumente empregada, especialmente com o advento de um novo meio de interação digital: os relacionamentos digitais. Assim, estudaremos conceitos e componentes de análise de rede, especialmente redes sociais que ampliarão o seu leque de possibilidades de análises mais avançadas.
Um dos meios que mais retratam essa nova era digital são as redes sociais. Não há dúvidas de que muitos dados têm sido gerados a partir de posts no Facebook, imagens no Instagram, vídeos no Youtube, entre outras redes sociais. Enfim, uma diversidade de conteúdos sendo produzidos por usuários em todo o planeta. Um relatório publicado em 2018 pela We Are Social revelou que o total de usuários de mídias sociais cresceu 13% em relação ao ano anterior, totalizando 3 bilhões e 196 milhões de usuários. O mesmo relatório apontou algo curioso: os brasileiros consomem em média 3 horas e 39 minutos por dia com redes sociais, ocupando a segunda colocação dos países que mais gastam tempo em redes sociais, ficando atrás apenas dos filipinos, que consomem 3 horas e 57 minutos do tempo
Essa realidade evidencia o crescimento das redes sociais, que reflete diretamente no consumo e na geração de conteúdo. Isso significa que existe uma grande fonte de conhecimento que pode ser coletada, organizada e explorada por ferramentas analíticas. Os resultados obtidos a partir disso podem ajudar empresas a traçar estratégias para envolver o público com a sua marca, analisar o sentimento do público com relação a um novo produto lançado, prever tendências com base no comportamento social ou individual dos clientes, entre outras possibilidades. Para que você possa tirar proveito desta seção, atente-se aos conceitos e às técnicas que serão apresentadas.
3.1 ANÁLISE DE REDES SOCIAIS: CONCEITOS IMPORTANTES
Usualmente uma rede pode ser definida em função da teoria dos grafos: um grafo composto por um conjunto de vértices e arestas. No âmbito de redes sociais, os vértices representam os atores sociais (organização, pessoas ou entidades) e as arestas o relacionamento (links) entre eles. Assim, através de uma rede social podemos observar os relacionamentos entre pessoas compreendendo inclusive o grau de relacionamento e interação entre elas. O foco da análise desse tipo de rede está nas relações construídas entre os atores que se constitui em forma de amizade, confiança, interesse, parentesco, entre outros aspectos. A diagramação é normalmente representada por grandes quantidades de vértices (nós) e arestas (laços) e retratam a complexidade deste ambiente.
A análise de redes sociais parte do pressuposto que extrairemos, além da capacidade, meras informações quantitativas, tais como o total de amigos que fazem parte de um círculo social de uma pessoa. A ideia é ir a fundo e estudar aspectos relacionais no que diz respeito à influência comportamental de uma pessoa ou um grupo de pessoas, ou mesmo, o grau de conexão em relação aos outros componentes que estão interconectados. É por isso que esse tipo de análise é interdisciplinar e incorpora, além de análises computacionais e matemáticas, as ciências sociais, a administração, a antropologia, a própria geografia etc. A Figura 4 exemplifica a representação de uma rede com suas interações. Os grupos podem ser divididos por cores e tamanhos. Os relacionamentos entre os vértices podem ser também representados pela espessura das linhas para reforçar o grau de conexão entre estes.
Além da representação por grafos, as redes sociais podem ser definidas por intermédio de matrizes ou lista de dados, que, por sua vez, possuem uma representação mais matemática e podem ser reveladas através de números. O grafo da Figura 4 é considerado direcionado, uma vez que os vértices possuem uma direção predefinida. Em contrapartida, grafos que não possuem orientação e têm como função apenas conectar os elementos (vértices) de um grafo são conhecidos como não direcionados. Os grafos também podem ser ponderados, isto é, as relações entre os vértices podem carregar um peso ou uma força associada. Para determinar o grau de um vértice em um grafo não direcionado, é preciso verificar o número de arestas que incidem sobre ele. Em grafos direcionados, o grau de um vértice é calculado por meio da contagem de arestas que entram (grau de entrada) e saem (grau de saída) de um vértice.
Você pode explorar um pouco mais a respeito da teoria dos grafos por meio desse tutorial interativo: <https://bit.ly/2Ylf8gk>.
Liu et al. (2016) destaca que a estrutura das redes sociais pode ser dividida em três substâncias básicas: o ator, o relacionamento e a rede, conforme descritos a seguir:
Ator: os atores sociais são os vértices da rede e podem representar organização, indivíduos ou entidades. Algumas atividades podem ser realizadas a partir dos atores, como identificar quais os atores centrais em uma rede que possui um elevado número de conexões ou relacionamentos e qual a importância que estes exercem dentro da rede.
Relacionamento: descreve a relação entre dois vértices. O relacionamento entre os atores pode assumir características que consideram direção e força. Os atores podem ter relacionamentos do tipo direcionado ou não direcionado. Quando há o direcionamento, o sentido é relevante, dizer que um carro que saiu de uma cidade A e foi para uma cidade B, implica um relacionamento de A para B. No entanto, o caso inverso não pode ser validado: não podemos afirmar que, uma vez que o carro fez a trajetória A para B, ele necessariamente terá que fazer o caminho de volta (B para A), ou seja, existe uma relação entre os vértices bem definida e direcional. Por outro lado, em um outro contexto, quando você adiciona um amigo no Facebook, necessariamente é estabelecido uma amizade ou relação bidirecional, isto é, não importa se você ou seu amigo solicitou amizade na rede, uma vez que a ligação se estabeleça, ela vai existir necessariamente em ambos os lados - você será amigo da pessoa que você aceitou e vice-versa (o que se caracteriza como uma relação não direcionada). No Twitter, o funcionamento é diferente, se você segue uma pessoa isso não a obriga a lhe seguir também (a direção importa, por isso é uma relação direcionada). Um outro ponto a considerar é a força da relação entre os vértices, ou seja, a conexão é forte ou fraca? Monitorar a força do relacionamento é algo importante para tentar extrair o grau de conectividade entre os componentes da rede. Além disso, é importante destacar que existe a possibilidade de circunstâncias externas ou sociais modificarem a força da relação. Por exemplo, uma simples postagem polêmica pode comprometer toda a estrutura de relacionamento entre os vértices de uma rede. Por essa razão, eventualmente, a análise compreende monitoramento constante da rede.
Rede: é um conjunto de relacionamentos que descreve como os vértices estão interconectados. Podemos classificá-las como: rede egocentrada e rede coletiva. As redes egocentradas são construídas a partir de um indivíduo (ego), que é o ponto de partida, enquanto que as redes coletivas estudam os relacionamentos de todos os atores de um determinado grupo.
3.2 ANÁLISE DE REDES SOCIAIS: MÉTRICAS
Para analisar redes sociais, podemos utilizar um conjunto de métricas de acordo com o objetivo. Assim, convém dividir ou classificar essas métricas em alguns tipos conhecidos como: métricas de conexão, de distribuição e de segmentação. Nas próximas seções você conhecerá mais a respeito dessas métricas.
3.2.1 Métricas de Conexões
Dentre as métricas de conexões podemos destacar a homofilia, a reciprocidade, a propinquidade e a multiplexidade, conforme descritas a seguir:
Homofilia: seleciona e conecta um conjunto de atores semelhantes com base em variáveis predefinidas, como idade, sexo e escolaridade. A ideia é selecionar um grupo de pessoas relacionadas que compartilham características em comum, como visão política, crenças, gostos pessoais etc. A Figura 5 exibe um exemplo dessa medida.
Reciprocidade ou mutualidade: é uma medida que avalia o quão recíproco é o relacionamento entre vértices (atores) em um grafo direcionado, ao verificar a existência de arestas em ambas as direções.
Propinquidade: calcula a tendência de um ator criar relações com outros atores próximos geograficamente.
Multiplexidade: diz respeito à maneira pela qual atores estão interagindo entre si de múltiplas maneiras em diferentes contextos. Um homem e uma mulher podem trabalhar juntos em uma novela e ao mesmo tempo namorar um ao outro, assumindo o papel de atores e namorados em seus relacionamentos (arestas).
FONTE: <http://migueldelfresno.com>. Acesso em: 10 nov. 2018.
3.2.2 Métricas de Distribuição
As métricas de distribuição são compostas pelas medidas de centralidade, densidade, força de conexão, de distância etc. A Figura 6 mostra um exemplo de medidas de centralidade, como o grau de centralidade: embora Alice tenha maior grau de centralidade, ela não é a pessoa mais poderosa, pois precisará passar necessariamente por Rafael se quiser chegar em outros vértices.
FONTE: <http://www.fmsasg.coms/>. Acesso em: 10 nov. 2018.
Centralidade: em geral quantificam a importância ou a influência de atores ou grupo de atores em uma determinada rede. São subdivididas em:
Grau de centralidade: o grau de cada vértice diz respeito ao número de relacionamento direto com o vértice em questão. O grau de entrada (+) e de saída (-) pode ser medido em grafos direcionados. Um alto grau de centralidade indica que o ator é ativo dentro da rede e, por meio deste, é possível atingir diretamente um grande número de atores.
Centralidade de betweenness: para cada vértice soma-se o total de caminhos mais curtos (menores distâncias). Os vértices com maior grau de betweenness possuem maior frequência de caminhos mais curtos em relação a outros vértices e possuem alta influência na rede, pois representam um (forte) elo de comunicação entre outros vértices da rede.
Centralidade de proximidade: qual o caminho mais rápido que um determinado vértice pode alcançar outros vértices? A centralidade baseada em proximidade é uma medida que visa extrair os caminhos mais rápidos (ou mais curtos) ao sair de um vértice A até chegar a um vértice X. Por exemplo, você pode ter em mãos um mapa e verificar qual o caminho (rota) mais curto para sair da cidade de Ouro Preto e chegar na cidade de Ribeirão Preto, tendo em mente que você possa ter n rotas e deseja minimizar custos com viagem. Assim, podemos afirmar que um vértice com alto grau de proximidade pode acessar outros vértices através de caminhos mais curtos na rede, isso porque este vértice está em uma posição estratégica (em termos de proximidade) dentro da rede.
Você consegue pensar em um exemplo prático relacionado à centralidade baseada em proximidade? Dica: pense em algo do dia a dia.
Centralidade de Autovalor: permite medir a importância de um vértice na rede através de scores que lhe são atribuídos por outros vértices da rede. Vértices com elevada centralidade de autovalor estão conectados com outros vértices que também possuem valores elevados de centralidade de autovalor. Por meio de um grafo direcionado, é possível contar o número de arestas recebidas por um vértice como votos, formando a base para construir o score de importância do vértice em questão. No Twitter, um usuário que é muitas vezes citado por outros usuários populares na rede, tem alto grau de centralidade de autovalor.
Densidade: é uma medida que calcula o número de relacionamentos existentes entre os vértices em função do total de possibilidades de relacionamentos entre eles. Redes densas são aquelas que possuem uma medida de densidade próxima de 1, caso contrário, são classificadas como redes esparsas.
Força de conexão: considera fatores que podem fortalecer ou comprometer o relacionamento entre atores, como questões sociais, emocionais, reciprocidade etc. As arestas (que representam os relacionamentos) são ponderadas para indicar a força da relação entre os atores envolvidos.
Distância: basicamente é uma medida que calcula o número de arestas necessárias para alcançar um destino final desejado.
3.2.3 Métricas de Segmentação
FONTE: <http://www.jsquaredanalytics.com>. Acesso em: 10 nov. 2018.
Coeficiente de agrupamento ou clusterização: é uma medida que avalia a densidade dos vértices vizinhos de um vértice em relação a ele mesmo. Um coeficiente de clusterização elevado implica dizer que um vértice contém vizinhos conectados entre si formando um clique.
Clique: se um determinado ator estiver diretamente conectado a todos os outros atores então temos a formação de um grupo em uma rede.
Coesão: qual o número mínimo de vértices que, uma vez removidos do grupo ao qual pertenciam, desconectariam o grupo? A coesão é uma medida que revela o grau de ligação entre os vértices em um grupo.
É importante você estar ciente de que existem outras métricas que podem ser consideradas quando analisamos redes sociais. Mais que isso, todas as métricas mencionadas podem ser combinadas para fornecer uma compreensão mais ampla do conjunto de dados que estamos manipulando. A seleção da métrica mais apropriada para o seu domínio dependerá da definição-problema e do objetivo da sua análise. É claro que, quanto mais rica forem suas análises, maior será a possibilidade de se obter insights interessantes. No próximo tópico apresentaremos algumas ferramentas que podem ser úteis para você praticar e consolidar os conceitos que foram exibidos nesta seção.
A análise de redes sociais objetiva auxiliar as organizações a compreenderem e a responderem perguntas como: “Como podemos classificar os indivíduos mais influentes na organização?”, “Como estão segmentados nossos clientes?”, “Como melhorar a estrutura organizacional para tentar maximizar a produção?”. Com base nisso, por meio das redes, podemos observar o fluxo de informação, detectar falhas ou gargalos no processo organizacional, além de considerar fatores externos para melhorar a compreensão da posição da empresa frente aos seus clientes. As decisões não são tomadas isoladamente, mas considera a posição e o relacionamento de um ator social em função do grupo que o compõe.
Essa realidade não é exclusividade de empresas. Pesquisadores têm investido no campo de aprendizagem colaborativa para potencializar ações de interação entre alunos com intermediação docente (SAGAR et al., 2018). A análise dessa rede pode contribuir para a identificação de padrões de aprendizagem em um dado intervalo de tempo. O interesse na exploração desse campo de estudo tem conduzido a um grande número de ferramentas que podem ser utilizadas para analisar dados obtidos de redes sociais. A seguir apresentaremos algumas ferramentas que podem ser úteis para a análise de redes sociais:
Sentinel Visualizer: é uma ferramenta desktop que permite fazer uma análise automática de baixa complexidade em termos de uso e sem necessidade de programação. É possível realizar cálculos rapidamente com uma diversidade de métricas para analisar a rede.
Gephi: é uma poderosa ferramenta open-source para visualizar e analisar grafos de grande complexidade. Por meio da ferramenta é possível explorar, agrupar, manipular e analisar grafos em tempo real.
NodeXL: se você tem familiaridade em utilizar o Excel, é possível com o modelo NodeXL explorar dados em rede diretamente do ambiente Excel, bem como gerar relatórios, ter acesso a dados de mídias sociais e utilizar métricas para análise textual e de sentimento.
Pajek: é um software aberto de uso não comercial para análise de redes. O software foi projetado para suportar redes de grande magnitude e fornece poderosas ferramentas de visualização. Possui um conjunto de algoritmos poderosos para lidar com grandes volumes voltados para partições, operações binárias, caminhos ótimos etc.
NetMiner: consiste em um software para exploração e visualização de grandes conjuntos de dados voltados para as redes sociais. Essa ferramenta possui como ponto forte a riqueza de recursos visuais e a possibilidade de analisar dados da rede extraindo informações estatísticas. Além disso, possui grande capacidade de importação de dados (inclusive dados não estruturados).
Graphviz: é uma ferramenta open-source projetada para visualização de grafos. Possui diversos recursos para manipulação de diagramas, como personalização de cores, fontes, formas e outros estilos.
Visone: é uma ferramenta simples para criação gráfica de redes, podendo coletar dados de uma rede, analisá-los e criar uma visualização. Ao final do processo, você pode exportar a rede para um arquivo externo, como uma imagem, PDF, SVG, entre outros.
Muito do que foi explorado nesta seção, reforça o grande poder analítico que analistas têm a seu favor. Na realidade, lidar com dados de natureza baseada em grafos e extrair o máximo de conhecimento útil para organização, requer o conhecimento de técnicas, métricas e ferramentas potencialmente necessárias para resolver o problema. Contudo, em ambientes dessa natureza, o nível de complexidade aumenta quando se manipula dados não estruturados. Na próxima seção, você conhecerá um pouco mais dessa outra possibilidade.
Você pode acessar alguns tutoriais/materiais que podem auxiliá-lo na exploração de algumas ferramentas.
• Visone: <https://bit.ly/2CKk9rd)>.
• Graphviz: <https://graphs.grevian.org/>.
• Pajek: <https://bit.ly/2FIVbK6>.
• NetMiner: <https://bit.ly/3hhr3Dv>.
• NodeXL: <https://bit.ly/3lbVwFx>.
Que tal explorar uma destas ferramentas? Um conjunto de datasets para análise de redes sociais está disponível em: <https://aminer.org/data-sna>. Basta você realizar o download, escolher a ferramenta e colocar a mão na massa.
No Capítulo 1 vimos os conceitos relacionados a dados não estruturados e você talvez recorde que na atualidade cerca de 80% dos dados digitais gerados não possuem quaisquer estruturas. São dados de vídeos, imagens, sensores, áudios, documentos eletrônicos, blogs, entre outros exemplos. De fato, analisar dados não estruturados em tempos de Big Data parece ser um desafio. Por essa razão, diversas pesquisas têm sido realizadas para construção de novos métodos, técnicas ou algoritmos para analisar dados textuais de grande volume. Basta observar como os tradutores, como o Google Translator, evoluíram com o passar dos anos.
Nesta seção serão abordados conceitos e técnicas relacionados à análise de dados não estruturados do tipo texto, que sem dúvida é um dos campos mais importantes para análises avançadas em Big Data.
4.1 MINERAÇÃO DE TEXTOS: CONCEITOS IMPORTANTES E VISÃO GERAL
A Análise em Mineração de Texto (ou Text Mining) consiste em uma das tarefas mais árduas quando analisamos dados desse formato. Isso porque grande parte das informações não possui uma estrutura definida e, consequentemente, a escrita do texto normalmente não segue um padrão específico ou determinado. Por outro lado, em uma análise de dados estruturada, os dados estão prontos para análise, pois seguem um padrão específico armazenado e organizado em linhas e colunas.
Na verdade, em atividades de análise textual é preciso converter dados não estruturados para um formato estruturado para que assim análises sejam aplicadas. Consegue perceber que neste momento existe mais uma camada de complexidade para as análises? Note que, até então, você extraía os dados de uma ou mais fontes e, em seguida, aplicava um processo de transformação e limpeza e entregava o conjunto de dados pronto para ser analisado, seja para um algoritmo de mineração de dados ou como input para um modelo de aprendizagem de máquina. Agora é necessário lidar com um conjunto de informações - espalhados em um arquivo de texto, em um post em uma rede social, ou até mesmo em um campo (coluna) textual específico de um Banco de Dados relacional como: “observações”, “considerações”, “descrição” e que fora escrito em uma linguagem natural - redigida por um ser humano. Como consequência disso, em um cadastro de informações, inevitavelmente, é comum encontrar erros de ortografia, ambiguidade, vícios de linguagem e assim por diante. Por exemplo, como fazer que a máquina compreenda que a palavra companhia significa ‘uma empresa’ e não ‘vínculo entre pessoas’?
Diante dessa situação, o Processamento de Linguagem Natural (PLN) surge como uma alternativa do campo linguístico, que permite estudar relações entre palavras e sentenças em um texto. Na computação, permite que máquinas compreendam a linguagem humana analisando o contexto no qual foi empregada. Basicamente, isso é feito por intermédio de análises léxicas - (identificar padrões em uma string), sintáticas (observar a ligação entre os elementos textuais que formam uma frase), semânticas (extrair o significado dos termos, frases observando as relações entre elas) etc. O mecanismo de busca e o tradutor do Google, bem como os corretores de texto, são alguns dos inúmeros exemplos de aplicações do PLN.
Essas tarefas subjacentes são frequentemente utilizadas em níveis mais complexos de PLN, tais como:
Categorização de conteúdo: um resumo do documento baseado em linguística, que inclui pesquisa e indexação, alertas de conteúdo e detecção de duplicações.
Descoberta e modelagem de tópicos: captura com precisão o significado e os temas em coleções de texto, e aplica Advanced Analytics como otimização e Forecasting.
Extração contextual: extrai automaticamente informações estruturadas de fontes textuais.
Análise de sentimento: identifica o estado de espírito ou opiniões subjetivas em grandes quantidades de texto, incluindo o sentimento médio e a mineração de opinião.
Conversão fala-texto e texto-fala: transforma comandos de voz em texto escrito e vice-versa; sumarização; gera sinopses de grandes corpos de texto automaticamente; tradução de máquina; traduz texto ou fala de um idioma para outro, automaticamente. Em todos esses casos, o objetivo almejado é pegar as entradas brutas e usar linguística e algoritmos para transformar ou enriquecer o texto de modo a obter resultados melhores.
FONTE: <https://bit.ly/3nonHBY>. Acesso em: 10 nov. 2018.
Tendo em vista a vasta quantidade de informações textuais presentes nas empresas e armazenadas em relatórios, atas, planilhas, arquivos de logs e outros documentos de texto (como pdf e txt), além de fontes ricas externas (redes sociais, páginas web, e-mails etc.), a análise de dados não estruturados pode ser considerada mais útil para criar diferencial competitivo no mundo dos negócios. Ademais, as técnicas baseadas em PLN têm sido aplicadas para minerar textos, como extração de informação, classificação, clustering, entre outros (CHEN; MAO; LIU, 2014).
Tipicamente, um processo para análise de texto pode ser representado conforme a Figura 8. A primeira etapa consiste na obtenção dos textos direto da fonte. Este, por sua vez, pode estar situado em alguma tabela do banco de dados, em um arquivo de texto local, ou em algum ambiente externo (web). Essa coleta pode ser manual ou automática e tudo dependerá das necessidades do seu projeto. A dica é: se você precisa coletar constantemente dados de uma mesma fonte, o ideal é automatizar o processo e criar código em alguma linguagem de programação de sua preferência, ou utilizar uma ferramenta como o Apache Kafka para capturar esses dados. Em seguida, aplica-se o pré-processamento dos dados textuais, que inclui tarefas como:
Stemming: o processo de Stemming consiste em reduzir uma palavra ou termo ao seu radical. Vamos supor que em um determinado texto você tem uma coleção de documentos (que são instâncias ou registros de uma tabela não normalizada) dos seguintes termos: planejamento, planejei, planejado, planejar. Após a aplicação do processo de Stemming, todos os termos derivados de “planejar”, seriam reduzidos ao seu radical “planej”, isto é, todos os termos citados no exemplo seriam unificados no texto e não gerariam redundância.
O algoritmo de Porter é um dos algoritmos que implementam o processo de Stemming para a língua portuguesa: <https://bit.ly/3hh5DpP>.
Tokenization (Bag-of-words): processo de quebrar em ‘tokens’, ou seja, ocorre a quebra do texto em termos individuais. Considere a frase: “Eu sou aluno da UNIASSELVI”. O processo observa os espaços em branco dessa sentença e determina os tokens: [“Eu”, “sou”, “aluno”, “da”, “UNIASSELVI”]. É possível definir regras de “tokenização” de acordo com suas necessidades, sem necessariamente estarem atrelados a uma única regra que, no caso desse exemplo, foi determinado pelo espaço em branco.
Algumas linguagens de programação, como R e Python possuem bibliotecas para este fim. Existe também uma API open-source (Lucene) que pode ser utilizada para tarefas de mineração de texto:
R: <https://bit.ly/2EbZtcu>.
Python: <https://bit.ly/31fQMql>.
Lucene: <https://bit.ly/3geXEZd>.
Remoção de Stopwords: sabe aqueles termos que aparecem no texto que têm a função meramente de conectar elementos de uma sentença? São Stopwords! Artigos (o, a, os, as, um, umas etc.), preposições (de, para, entre etc.), conjunções (nem, já, mas etc.), crase (à), pronomes (ele, teu, meu etc.) são termos que não são relevantes para análise e por isso são removidos. As Stopwords são armazenadas em uma lista (dicionário) e estão disponíveis em vários idiomas, podendo ser consumidas por linguagens ou ferramentas que desejam executar tarefas de mineração de texto.
Correção ortográfica: erros ortográficos são muito comuns em textos. Por isso é importante corrigi-los para melhorar a qualidade dos nossos dados. Existem algumas abordagens para tratar esses erros (como correção automática). É claro que a alternativa mais segura é realizar a correção manual, entretanto, o processo se torna mais custoso à medida que o volume de dados aumenta.
Você pode experimentar alguns corretores on-line, potencialmente úteis para suas análises de texto. O Flip9 pode ser útil. Acesse: <https://bit.ly/328YT7n>.
Remoção de números, espaços e caracteres indesejados: números, espaços e caracteres especiais ou símbolos muitas vezes não são relevantes para análise de texto e são removidos: figura solta no texto, relacionar texto à figura.
FONTE: <https://www.softwareadvice.com>. Acesso em: 2 fev. 2019.
Ainda na Figura 8, após a etapa de pré-processamento, assume-se que os dados já possuam uma estrutura mínima para que análises sejam aplicadas - que irão desde uma simples extração dos termos mais frequentes até análises preditivas. Por fim, o processo encerra com a visualização dos resultados alcançados. Na próxima seção, você conhecerá algumas técnicas que certamente o auxiliarão em suas análises textuais.
Acesse o endereço <https://www.online-utility.org/text/analyzer.jsp>. Insira o texto: “análise de frequência é a forma mais simples de análise, você extrai os termos dos documentos e aplica um método para realizar a contagem dos termos. Os resultados podem ser exibidos de forma tabular, gráfico de barras, ou em uma wordcloud (nuvem de palavras)” no campo destacado (“Enter Text”). Em seguida clique no botão “Process text”. Observe o resultado apresentado em forma tabular que não somente apresenta o total de ocorrências de cada termo, como também a porcentagem em relação ao total de ocorrências de todos os termos no documento. Destaca-se que o pré-processamento implementado nessa ferramenta não assegura a remoção de Stopwords, remoção de números ou processo de Stemming. Contudo, em um cenário real, essas tarefas de pré-processamento são necessárias.
Você também pode experimentar a visualização de texto em uma wordcloud por meio do endereço: <https://www.jasondavies.com/wordcloud/>
4.2 TÉCNICAS PARA ANÁLISE DE MINERAÇÃO DE TEXTOS
Uma vez que os dados estejam prontos para análise, você pode aplicar uma ou mais técnicas para tentar extrair informações úteis para o negócio. A seguir, algumas técnicas comuns para a análise de texto.
4.2.1 Recuperação de Informação (IR)
A recuperação de informação pode ser definida como a busca por material (normalmente documentos) de natureza não estruturada (geralmente texto) que satisfaça uma necessidade de informação a partir de grandes coleções (geralmente armazenadas em computadores) (MANNING; RAGHAVAN; SCHÜTZE, 2009).
A partir dessa definição, percebemos que a IR cria mecanismos para extrair informações relevantes de uma grande massa de documentos textuais. O exemplo mais comum são os mecanismos de pesquisa, como Google ou Bing que, frente a um universo de documentos, conseguem selecionar apenas um subconjunto relevante de documentos a partir de palavras-chave (keywords) digitadas no buscador. Faça um teste: abra o Google Acadêmico <https://scholar.google.com.br/> e digite: recuperação de informação e observe o conjunto de documentos Web contendo essas palavras-chave. Experimente agora digitar “recuperação de informação” (com aspas). Notou alguma diferença no retorno dos documentos? Parece que as aspas indicam que você deseja que a busca retorne apenas os documentos que apresentam a sentença digitada como um todo e não Keywords separadas (recuperação/informação).
Este site <https://bit.ly/3hk9wKP> sugere algumas outras dicas para melhorar as pesquisas no Google.
Como avaliamos a performance de sistemas que implementam IR? Existem algumas medidas que poderemos utilizar, a saber: Recall, Precision, F-Measure, R-Precision, Fall-out e assim por diante. As duas mais populares são:
Recall (Revocação): é uma medida que qualifica a fração de documentos recuperados que foram relevantes para a consulta.
Recall = número de documentos relevantes que foram recuperados / número total de documentos relevantes na coleção (x 100).
Um Recall com valor 1 ou 100% aponta o melhor caso e, de fato, é o que normalmente acontece em uma consulta, todos os documentos recuperados na coleção são relevantes. Por isso, combinamos Recall com outras medidas para avaliar a performance do IR.
Exemplo: considere um conjunto esperado com 10 documentos D = {1,2, 3, ...,10} e que foram recuperados um total de 6 documentos (vamos supor os documentos {3,4,9,10,12,15}). No entanto, foram recuperados apenas 4 documentos com sucesso {3,4,9,10}. Por isso:
Recall: 4 / 10 = 40%.
Precision (Precisão): refere-se à fração de documentos recuperados que são relevantes para o usuário.
Precision = número de documentos relevantes que foram recuperados /número total de documentos que foram recuperados (x 100).
Dessa maneira, obtemos uma taxa de documentos não relevantes que foram retornados em uma consulta.
Se utilizarmos o mesmo exemplo citado anteriormente, podemos calcular a precisão:
Precision: 4 / 6 = 66,67% (aprox.).
A recuperação de informação é um amplo campo de estudo, sendo composto por diversas técnicas ou modelos. Para complementar seu conhecimento, recomendamos que você se aprofunde e leia o artigo proposto por Nyamisa, Mwangi e Che (2017), disponível no seguinte endereço: <https://bit.ly/34lrcCm>. Se desejar, você também poderá acessar este blog: <https://bit.ly/2EchWFN>.
4.2.2 Extração de Informação (IE)
Diferentemente do processo de Recuperação de Informação, o processo de Extração de Informação (IE) está preocupado em extrair a semântica de documentos textuais. Isso significa que a IE é capaz de coletar informações-chave de forma resumida de um documento. A ideia é pressupor a existência de um conjunto de documentos presentes em um domínio, que descreve uma ou mais entidades ou eventos e que compartilham semelhanças em relação a outros documentos, mas que diferem em seus respectivos detalhes (FREITAG, 2000).
O que torna o processo de IE custoso é o fato de que grande parte dos documentos contém dados não estruturados (textuais). Como vimos, problemas inerentes à linguagem natural precisam ser tratados por softwares que implementem tarefas dessa natureza. Imagine que você crie um software baseado em IE que colete informações de um Call Center. Então, você pode monitorar um conjunto de informações livres em texto e organizá-las em uma estrutura. Por exemplo, pode ser que você queira extrair para cada cliente apenas palavras de baixo calão, armazená-las em uma estrutura e associá-las a um campo chamado “tipo de serviço”. Isso possibilitaria conhecer quais tipos de serviços estão deixando os clientes insatisfeitos.
A Figura 9 exibe outro exemplo que pode ser útil para você compreender melhor como funciona a Extração de Informação de maneira geral. Note que os textos em destaque em Text In foram estruturados em Data Out. Se pegarmos a palavra Brazil do primeiro documento, é possível que o IE “compreenda” o texto de modo a ranquear o país na 5ª posição entre os países mais populosos. O software precisa ser capaz de lidar com variações na ordem do texto. Afinal, escrever que “o Brasil é o 5º país mais populoso do mundo” pode ser escrito de diversas formas.
FONTE: <https://bit.ly/3kYr9Ch>. Acesso em: 11 nov. 2018.
Técnicas para extração de informações baseadas em PLN podem ser aprofundadas através deste endereço: <https://bit.ly/31gsNaA>.
Você pode também experimentar a ferramenta de extração IKE (Interactive Knowledge Extraction). Neste endereço <https://bit.ly/3j4FUBL> existe uma breve definição da ferramenta, o artigo completo e o repositório com os códigos com o passo a passo para você experimentá-la.
Adicionalmente, você também pode testar esse analisador de redes sociais e texto: <https://netlytic.org/home/>.
4.2.3 Análise de Texto Baseada em Cluster
Esta técnica classifica um conjunto de termos (ou documentos) em grupos. Assume-se que os termos que pertencem ou são classificados em um mesmo grupo possuem maior relação entre si. Essa classificação pode ser importante para que você visualize os relacionamentos entre eles. Além disso, é possível que os resultados obtidos por esses clusters possam ser utilizados como input para uma tarefa de mineração de dados, também para realizar análise de sentimento (por exemplo, checar como está a reputação - positiva ou negativa -, de uma empresa no mercado), ou outras análises avançadas.
Talvez você já tenha observado que quando acessa um site de notícias existe um grupo de notícias que está relacionado ao que você pesquisou em destaque em algum local da página. Por exemplo, em uma busca você digitou uma notícia sobre “cura de diabetes”. Os conteúdos em destaque (que serão retornados) serão relacionados à categoria saúde, pois existe um nível maior de proximidade com a notícia pesquisada.
Quando falamos de clusterização baseada em texto, alguns conceitos e medidas são importantes e merecem ser destacados:
Coleção de documentos: representada por uma matriz termo-documento (TDM) ou documento-termo (DTM), conforme mostra a Tabela 1. Se considerarmos a frequência dos termos (medida) como um peso para medir a importância de um termo no documento, poderíamos afirmar que “Amor” e “Casa” são termos que têm um peso maior no Documento 2, pois são comumente utilizados.
Frequência do termo: como foi mostrado anteriormente, você pode medir a importância do termo no documento verificando a quantidade de vezes que ele ocorre (contagem bruta). Essa representação de frequência do termo pode ser feita não somente pela contagem bruta que, em determinados casos possui sérias limitações, como também de forma binária - intervalo [0,1] que indicaria meramente a presença ou a ausência do termo no documento, também existe a medida normalizada - que considera o total de termos presentes no documento, log de frequência - estabelece um score usando logaritmos etc.
Frequência do termo na coleção: termos frequentes não necessariamente são os mais relevantes. Ao contrário, em grande parte dos casos, os termos menos frequentes possuem uma relevância maior em toda coleção. A frequência do termo na coleção permite definir o peso do termo. dft (Document Frequency) obtém o número de documentos que contém um determinado termo t. idft (Inverse Document-Frequency) é calculada pelo logaritmo entre a fração do total de documentos pelo total de documentos que possui o termo. Existem outras variações para cálculo do peso que aprofundam matematicamente.
idft = log (N/dft)
É possível também utilizar algoritmos voltados para a análise de cluster em textos, como o próprio K-Means, que abordamos em seções anteriores. Assim, pode-se determinar similaridades entre clusters utilizando, por exemplo, o método cosseno, e também verificar documentos que compartilham informações em comum e assim por diante.
Na próxima seção você conhecerá um pouco sobre o Digital Analytics e sua devida importância para o mundo dos negócios. Antes disso, não deixe de explorar um demo do IBM Watson para processamento de linguagem natural. Se preferir, você também pode testar essa poderosa ferramenta (Elasticsearch) para pesquisa e análise de dados.
Finalizaremos este capítulo explorando o Digital Analytics. Você compreenderá como a análise dos dados do mundo digital impacta diretamente no mundo dos negócios, assim como de que maneira é possível extrair e analisar esses dados em ambientes Big Data. Antes disso, precisamos que você conheça e assimile conceitos e a importância do Digital Analytics, conforme será abordado a seguir.
5.1 DIGITAL ANALYTICS: CONCEITO E IMPORTÂNCIA NAS DECISÕES DE NEGÓCIO
O termo “Web Analytics” (Análise Web) era o nome utilizado antes de se empregar o “Digital Analytics” (Análise Digital), isso significa que houve uma transição ou ampliação do termo “Web” para o “Digital”. Como assim? Quando se falava em Web Analytics, o conceito era restrito à análise de páginas web, isto é, extraíam-se métricas do número de visitas ou número de visualizações das páginas de um website, devido à diversificação do número de canais “plugáveis” à web, como dispositivos móveis, televisores digitais, redes sociais, e-mails, entre outros. A possibilidade de fazer análises aumentou para o mundo digital e passou a englobar todos os canais que envolvem a era digital. A incorporação progressiva da Internet das Coisas (IoT) - que será abordada no próximo capítulo - corroborou para que o termo Digital Analytics fosse consolidado.
O Digital Analytics pode ser definido como:
Um conjunto de atividades técnicas e de negócios que definem, criam, coletam, verificam ou transformam dados digitais em relatórios, pesquisas, análises, recomendações, otimização, predições, que criam valor para os negócios auxiliando empresas a criar valor, aumentando a receita ou reduzindo custos. Os dados digitais podem ser dados comportamentais sobre como as pessoas usam e interagem com experiências digitais, dados ou metadados relacionados a eventos, cliques e interações, é utilizada para responder perguntas de negócio e fornecer base para decisões baseadas em fatos (PHILLIPS, 2014, p. 3-4, grifos nossos).
Observe os termos comportamento e experiências digitais citados por Phillips (2014). De fato, o Digital Analytics incorpora ou avalia o comportamento dos usuários na rede. Dados do Internet World Stats apontam um total de aproximadamente 4,2 bilhões de usuários conectados à web em junho de 2018. No Brasil, foram quase 150 milhões de pessoas conectadas. Em épocas passadas, o Marketing Tradicional intensificava seus esforços em meios de comunicação off-line, como jornais, revistas ou TV. Compreender ou conhecer o comportamento dos usuários para compra de um determinado produto era um desafio. Não obstante, hoje profissionais digitais (como o próprio profissional de Marketing Digital) ganham espaço para lidar com essa nova dinâmica de mercado: o mercado digital.
Conheça mais sobre a Internet World Stats, acessando o site <https://www.internetworldstats.com/stats.htm>.
Como uma empresa pode vender melhor sua marca e/ou produto pela internet? Até que ponto conhecer o comportamento do cliente nos meios digitais é importante para impulsionar seus negócios? A Walmart, apontada pela Fortune (2018) como a empresa que mais faturou em 2018, emprega técnicas de mineração de dados para descoberta de padrões de vendas.
Por isso é recomendado que se cheque quais produtos normalmente são comprados em conjunto ou que a compra de um produto X é seguido pela compra de um produto Y. A partir desses dados, a Walmart conseguiu identificar que seus clientes compravam sete vezes mais tortas de morango antes de um furacão. Todos os seus clientes são rastreados e segmentados de maneira única por intermédio de inúmeros atributos - produtos de compra do cliente, hábitos de compra pela loja (física ou pelo website), o que postam nas redes sociais, como Twitter e assim por diante. Cada evento é capturado, analisado e processado por uma infraestrutura de Big Data que fornece insights personalizados para a companhia (DEZYRE, 2017).
Se você ficou curioso em aprender mais como a Walmart tem usufruído do Big Data Analytics para entender o comportamento dos seus clientes, sugerimos este link: <https://bit.ly/3aKNAGi>.
Assim como o Walmart, em menor ou maior escala, as empresas, quando analisam dados digitais, objetivam avaliar o comportamento dos usuários na rede e assim oferecem produtos personalizados. Os famosos cliques no mouse em um produto específico no Mercado Livre (ou outra loja virtual), poderá causar uma grande “perseguição” de propagandas deste ou de produtos relacionados em outros websites ou redes sociais. A captura deste evento (clique do mouse), tempo de duração na página do produto, comentário para sanar alguma dúvida de algum produto, fornece um conjunto de métricas para que as empresas ofereçam aos usuários a recomendação do produto certo no tempo adequado por intermédio de indicadores que fornecerão suporte adequado para a tomada de decisão do algoritmo ou do gestor da empresa.
O que é uma métrica? Podem ser consideradas como medidas brutas de simples composição, são úteis para a composição de indicadores, pois fornecem base para medir algo concreto. Por exemplo, foram vendidos 300 livros (métrica quantidade) este mês. Um indicador ou KPI (Key Performance Indicator) é o que direciona a performance organizacional por intermédio da composição de uma ou mais métricas e fornece parâmetro para a tomada de decisão. Imagine que você quer saber qual a porcentagem de livros que foram vendidos mês a mês. Ambos, podem ser apresentados em um Dashboard (painel de visualização) e fornecidos à gestão em intervalos variáveis, de acordo com as necessidades organizacionais. Para ver mais, acesse: <https://bit.ly/2YngDL3>.
5.1.1 Análise de Métricas e Indicadores para Melhoria das Decisões de Negócio
As lojas virtuais normalmente possuem alguma ferramenta de Analytics (como o Google Analytics) incorporada a sua página web. Entretanto, quantas realmente fazem uso das informações colhidas por essas ferramentas? As principais redes sociais possuem ferramentas específicas para Analytics: Facebook (https://analytics.facebook.com/), Twitter (https://analytics.twitter.com/),
Pinterest (https://analytics.pinterest.com/) etc. No entanto, para que as empresas realmente possam tirar total proveito do Analytics, é necessário que compreendam as métricas existentes.
Considere as características (features) do Facebook Analytics para as páginas conforme mostra a Figura 10. Os dados apresentados são apenas para efeitos de demonstração e a tela apresentada é uma página inicial contendo um overview de todos os dados referentes a acessos de novos usuários, taxa de crescimento, duração mediana de sessão (tempo que o usuário visita sua página), informações demográficas, taxa de rejeição (porcentagem de sessões em um dia com apenas uma única visualização de página) e total de usuários ativos por hora, estes dois últimos são classificados como métricas de envolvimento, indicando o quão interessados os usuários estão com a sua página. Todas essas informações podem ser observadas em diferentes níveis de granularidade (detalhamento) por mês, ano, dia, hora etc. Observe ainda que o menu disposto à esquerda fornece uma gama de informações coletadas que são potencialmente úteis para as empresas que comercializam pelo Facebook. Os “Funis”, por exemplo, para determinar ou mensurar a taxa de conversão dos clientes na página, rastreando as atividades do usuário como: usuário instala o aplicativo > adiciona um produto ao carrinho > clica em compras. Outro usuário poderia: inicializar o aplicativo > pesquisa por “computador” > posta algum comentário na página, e assim por diante. Note que, por meio de algumas atividades, é possível que você perceba que grande parte dos usuários que interagem com o produto em seguida compram.
Ficou curioso para saber mais sobre a taxa de conversão? Acesse: <https://bit.ly/2EqofFG>.
Outras métricas são importantes para monitorar um site ou uma loja virtual. Algumas destas são comuns a outras ferramentas de Analytics implementadas, como:
Número de visitantes: corresponde ao total de usuários que visitaram o website. Se você, João e eu, acessamos uma única vez o site da Amazon para checar a disponibilidade de algum produto, têm-se um total de 3 visitantes (ou visitas únicas). No entanto, se você voltar no mesmo site para ver algum outro produto, o número de visitantes permanece 3, porém, a visita ao site é contabilizada mais uma vez. Ao final, teremos 3 visitantes e 4 visitas.
Origens de tráfego: é importante muitas vezes que você saiba de onde os usuários estão acessando a sua página. É por meio do acesso direto ao link do seu site? (Tráfego Direto); ou seria através de links de terceiros? (Tráfego de referência); talvez o usuário tenha acessado utilizando algum buscador, como Google ou Bing (Tráfego Orgânico); ou mesmo por meio de mecanismos de anúncios que priorizam a exibição de página, como o Google AdWords (Tráfego por Campanhas).
Páginas por visita: é uma métrica importante para inferir se o usuário está interessado ou não naquilo que ele está visualizando. Uma média alta de acesso em uma mesma página indica que ele está interessado.
Dispositivos: é interessante muitas vezes conhecer qual o percentual de acessos por diferentes dispositivos (smartphones, tablets ou desktop). Ao constatar uma massiva presença de dispositivos móveis, talvez seja interessante pensar em reimplementar as páginas do site, tornando-as mais ágeis para os usuários (observando sempre outras métricas, tais como tempo de carregamento de uma página), ou tomar uma ação e direcionar esforços para construção de aplicativos (apps).
Caso você tenha interesse em se aprofundar no Google Analytics, o Google disponibiliza treinamentos gratuitos no site: <https://bit.ly/3aJfGl4>.
Você também pode experimentar a ferramenta SimilarWeb para comparar métricas analíticas entre websites e aplicativos. A versão gratuita oferece alguns recursos para você testar a ferramenta <https://www.similarweb.com/>.
Evidentemente que existem outras métricas digitais incorporadas em ferramentas voltadas para as análises digitais. As próprias features do Google Analytics são constituídas de numerosas métricas e indicadores para auxiliar as empresas a obterem ganho competitivo no mundo digital. Em situações nas quais o volume de dados cresce exponencialmente, é mais seguro optar por soluções Big Data que assegurem uma boa escalabilidade e disponibilidade para que o processo de análise transcorra adequadamente. Nesse sentido, o Apache Kafka é uma plataforma para o processamento distribuído, que pode ser uma alternativa viável para capturar métricas digitais do Google Analytics, estabelecendo uma ponte entre a captura e a análise de imensos volumes de dados.
Este tutorial <https://bit.ly/34g6zHD> apresenta um passo a passo de como construir um pipeline para extrair os dados do Google Analytics e em seguida enviar para o Kafka. Esses dados podem ser entregues ao Spark para posterior análise. No capítulo 3 você aprenderá mais sobre o Apache Spark.
Adicionalmente, você pode trabalhar com Digital Analytics em cima de ferramentas da IBM, como o IBM Analytics, que agrupa diversos mecanismos para otimizar a presença de uma empresa na Web, fazendo comparativos de desempenho em relação à concorrência em diversos canais digitais, agrupando em uma única visualização. A fidelização do cliente é algo importante para as empresas, pensando nisso, a ferramenta organiza e segmenta os visitantes em cada canal, fornecendo métricas em função de probabilidade de conversão do visitante para um cliente. A ferramenta também apresenta algumas features interessantes como: análises avançadas (mobile, redes sociais e web), indicadores (KPIs), dashboards (painéis), visualização intuitiva, entre outros pontos. Além das empresas mencionadas, Teradata, AWS e Avanade também são opções para realizar análises de dados digitais.
O importante é que você compreenda que antes de mergulhar na ferramenta, você precisa compreender os conceitos e os contextos envolvidos. Conhecer os pormenores de tudo que foi apresentado e sanar suas dúvidas é algo que você deve ter em mente. Execute cada passo a passo. Todas as métricas que foram apresentadas fazem parte apenas de um subconjunto de algo amplo e complexo do mundo digital. Não desanime, ao contrário, a mola propulsora do seu conhecimento está em você mesmo.
Ao longo desse capítulo, apesar de ter apresentado uma gama de técnicas, ferramentas e métricas, você talvez tenha percebido que há muito para aprender e explorar. De fato, tudo que aqui foi mostrado representa apenas uma parte de um amplo campo de estudo. Possivelmente, você deve ter percebido que existe a possibilidade de fazer a intersecção entre os conhecimentos de cada técnica. Por exemplo, lembra quando falamos sobre clusterização pela primeira vez? Quantas vezes a repetimos em seguida? A base do conhecimento de clusterização, técnicas e algoritmos são úteis para diversas aplicações e podem ser perfeitamente úteis no seu trabalho.
É difícil separar o Digital Analytics do Text Analytics ou das análises em Cluster quando lembramos que todos se constituem e fazem parte do mesmo contexto. Eventualmente, você pode querer fazer uma análise de dados em uma rede social procurando identificar quais são os principais atores (mais influentes ou relevantes) em uma rede analisando a interatividade entre os posts produzidos por estes. Em seguida, você agrupa os atores com base na similaridade entre eles. Note a amplitude de conceitos envolvidos ao lidar com esse tipo de análise - um cenário de Digital Analytics para investigar em uma rede social os atores mais influentes com base em alguma métrica. Por fim, analisar o conteúdo textual presente nos posts, estruturá-los e agrupá-los de acordo com alguma medida de similaridade.
Tendo em mente tudo que foi abordado nesse capítulo, esperamos que você tenha assimilado o conteúdo e esteja preparado para alguns aspectos mais avançados que serão abordados no Capítulo 3.
Na próxima etapa trataremos de alguns conceitos relacionados à integração para análise de Big Data, além de abordarmos a Internet das coisas, prontos?