Projecto Em Engenharia Informatica
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDADE DE LISBOA Faculdade de Cienciasˆ Departamento de Informatica´ ANALISE´ DE CORPORA JORNALISTICO´ ATRAVES´ DAS OCORRENCIASˆ DE N-GRAMAS Joao˜ Antonio´ Monteiro de Oliveira PROJECTO MESTRADO EM ENGENHARIA INFORMATICA´ Especializac¸ao˜ em Sistemas de Informac¸ao˜ 2015 UNIVERSIDADE DE LISBOA Faculdade de Cienciasˆ Departamento de Informatica´ ANALISE´ DE CORPORA JORNALISTICO´ ATRAVES´ DAS OCORRENCIASˆ DE N-GRAMAS Joao˜ Antonio´ Monteiro de Oliveira PROJECTO Projecto orientado pelo Prof. Doutor Francisco Jose´ Moreira Couto e co-orientado pelo Prof. Doutor Bruno Emanuel da Grac¸a Martins MESTRADO EM ENGENHARIA INFORMATICA´ Especializac¸ao˜ em Sistemas de Informac¸ao˜ 2015 Agradecimentos Gostaria de comec¸ar por agradecer ao meu orientador, o Professor Francisco Couto e ao meu co-orientador Bruno Martins por todo o apoio prestado durante todo o processo da criac¸ao˜ do trabalho que realizei e da tese resultante deste. Igualmente, gostaria de agradecer ao Professor Mario´ Silva e a todos os membros do projecto REACTION do INESC-ID que ajudaram a guiar o meu trabalho e me abriram as portas a uma experienciaˆ academica´ que me enriqueceu, tanto ao n´ıvel academico´ como ao n´ıvel pessoal. Devo a minha gratidao˜ a` minha fam´ılia, ao meu pai em especial, que me ajudaram a ver a importanciaˆ deste projecto quando a minha motivac¸ao˜ ja´ nao˜ era a mesma e a concluir este. Adicionalmente, gostaria de agradecer aos meus colegas de curso e amigos por toda a ajuda e conv´ıvio que partilharam comigo. Finalmente, tambem´ gostaria de agradecer a` FCT (Fundac¸ao˜ para a Cienciaˆ e Tecnologia) pelo seu apoio financeiro. iii Aos meus pais, Teresa Maria e Antonio´ Valdemar, pelo apoio e motivac¸ao˜ Resumo O mundo jornal´ıstico mudou drasticamente com a transic¸ao˜ dos meios tradicionais de publicac¸ao˜ para o mundo digital. O aumento da informac¸ao˜ dispon´ıvel e o melhoramento dos meios de processamento desta facilitam a sua interpretac¸ao,˜ sendo assim poss´ıvel analisar a importanciaˆ de certos elementos informativos (memes) ao longo do tempo. O estudo destas tendenciasˆ permite avaliar as flutuac¸oes˜ de interesse dos memes, possibili- tando a previsao˜ de novos picos de popularidade e a correlac¸ao˜ destes com os eventos que estiveram na origem do referido interesse. Considerando esta realidade, o trabalho proposto nesta tese tem como objectivo a transformac¸ao˜ de um corpus jornal´ıstico em dados estat´ısticos que permitam a analise´ de tendenciasˆ ao longo de um per´ıodo de tempo. A soluc¸ao˜ proposta deve ter em conta o tamanho do cor- pus a ser processado e como este afecta o tempo de processamento. Em termos anal´ıticos, deve considerar-se a performance da soluc¸ao˜ e a validade dos resultados produzidos. Para responder aos objectivos propostos, construi a aplicac¸ao˜ Web Publico´ N-Gram Vi- ewer para a criac¸ao˜ de dados estat´ısticos e visualizac¸ao˜ de tendencaisˆ de N-Gramas. A analise´ da performance da soluc¸ao˜ tem como base o tempo de execuc¸ao˜ dos diversos algo- ritmos de criac¸ao˜ de N-Gramas para conjuntos de dados de tamanho variavel´ e o numero´ de maquinas´ usado para o processamento destes. Ao n´ıvel da validade dos resultados produzidos, sao˜ analisados exemplos onde se verifica a correlac¸ao˜ entre o numero´ de ocorrenciasˆ gerado e a ocorrenciaˆ de eventos que justifiquem o aumento de popularidade. Palavras-chave: Prospecc¸ao˜ de informac¸ao˜ em textos, Analise´ de N-Gramas, Indexac¸ao˜ de textos, jornalismo computacional, memes vii Abstract The news world has changed drastically with the transition from the tradicional pub- lishing methods to the digital world. The increase of available information, as well as the improvement of the methods to process that information, facilitate its interpretation, al- lowing the analysis of the importance of memes along a period of time. The study of these tendencies allows the analysis and prediction of the future occurrences of the memes. Considering this reality, the point of this thesis is the creation of a software solution for the transformation of a corpus into statistic data and the study of the resulting trends for the given time period. The program must have in consideration the size of the corpus and how it will affect its performance. In terms of analysis, besides software performance, it is also necessary to confirm the validity of the produced statistics. In order to hit the goals defined for this thesis, the Publico´ N-Gram Viewer Web ap- plication was built. The solution creates statistical data from corpus text files given as input and allows the search for N-Gram interest tendencies in a time interval. The per- formance analysis is based on the time necessary for the completion of the algorithms for the creation of the N-Grams, given inputs of variable size and the number of nodes used for processing. Regarding the consistency of the produced results, examples are consid- ered where the correlation between the number of occurrences for a given N-Gram match events that occurred that justify the increase in popularity. Keywords: Text data mining, N-gram analysis, full text search, computational journalism, memes ix Conteudo´ Lista de Figuras xv Lista de Tabelas xvii 1 Introduc¸ao˜ 1 1.1 Motivac¸ao..................................˜ 1 1.2 Objectivos . .2 1.3 Metodologia . .2 1.4 Estrutura do documento . .3 1.5 Conclusoes˜ do cap´ıtulo . .4 2 Trabalho relacionado 5 2.1 Back-End . .5 2.1.1 Finding and Exploring Memes in Social Media . .5 2.1.2 MapReduce: Simplified Data Processing on Large Clusters . .5 2.1.3 Computing n-Gram Statistics in MapReduce . .6 2.2 Interface . .7 2.2.1 Google NGram Viewer . .7 2.2.2 MemeTracker . .8 2.3 Conclusoes˜ do cap´ıtulo . .9 3 Analise´ 11 3.1 Arquitectura . 11 3.1.1 Camada de Dados . 12 3.1.2 Camada Logica´ . 13 3.1.3 Camada de Apresentac¸ao......................˜ 14 3.2 Conlusoes˜ do cap´ıtulo . 14 4 Implementac¸ao˜ 17 4.1 Back-End . 17 4.1.1 Configurac¸ao/Inicializac¸˜ ao.....................˜ 17 4.1.2 Tokenizador . 21 xi 4.1.3 MapReduce . 22 4.1.4 Algoritmo Principal . 23 4.1.5 Algoritmo de Categoria de Not´ıcias . 26 4.1.6 Algoritmo de Classificac¸ao˜ de Entidades . 26 4.1.7 Algoritmo de Classificac¸ao˜ Gramatical . 27 4.1.8 Construc¸ao˜ das Estruturas de Dados . 28 4.1.9 Implementac¸oes˜ descartadas . 29 4.2 Web Service . 30 4.3 Front-End . 35 4.3.1 Publico´ Online NGram Search . 36 4.3.2 Publico´ Online NGram Admin Client . 40 4.4 Principais Problemas Encontrados . 44 4.4.1 Actualizac¸ao˜ dos dados nas estruturas MapDB . 44 4.4.2 Criac¸ao˜ da aplicac¸ao˜ administrativa . 44 4.4.3 Criac¸ao˜ da estrutura de dados TreeMap na func¸ao˜ Reduce . 45 4.4.4 Implementac¸ao˜ do cluster Hadoop . 45 5 Resultados 47 5.1 MapReduce . 47 5.1.1 Algoritmo Base . 48 5.1.2 Algoritmo de Categorias de Not´ıcias . 49 5.1.3 Algoritmo de Classificac¸ao˜ de Entidades . 50 5.1.4 Algoritmo de Classificac¸ao˜ Gramatical . 52 5.2 Estat´ısticas . 52 5.2.1 Pesquisa regular . 52 5.2.2 Pesquisa por Categoria . 54 6 Conclusao˜ 57 6.1 Trabalho Futuro . 58 Bibliografia 60 Abreviaturas 61 A Anexos 63 Indice´ 71 xii xiv Lista de Figuras 2.1 Google Ngram Viewer . .7 2.2 MemeTracker . .8 3.1 Arquitectura da plataforma . 12 4.1 Publico´ Online N-Gram Search - News Articles . 34 4.2 Publico´ Online N-Gram Search - Start Screen . 36 4.3 Publico´ Online N-Gram Search - Normal Search . 37 4.4 Publico´ Online N-Gram Search - Category Search . 38 4.5 Publico´ Online N-Gram Search - Lexical Search . 38 4.6 Publico´ Online N-Gram Search - Entity Search . 39 4.7 Publico´ Online N-Gram Search - On Hover Info . 39 4.8 Publico´ Online N-Gram Search - Artigos que contem´ o N-Grama pesquisado 40 4.9 Publico´ N-Gram Search Admin Program - Main Window . 40 4.10 Publico´ N-Gram Search Admin Program - Upload Window . 41 4.11 Publico´ N-Gram Search Admin Program - Upload Conclu´ıdo . 42 4.12 Publico´ N-Gram Search Admin Program - Verificar Progresso . 43 4.13 Publico´ N-Gram Search Admin Program - Definic¸oes˜ . 43 5.1 Tempo de execuc¸ao˜ pelo tamanho do ficheiro corpus - Algoritmo Base . 48 5.2 Func¸oes˜ Map - Algoritmo Principal . 48 5.3 Tempo de execuc¸ao˜ pelo tamanho do ficheiro corpus - Algoritmo Catego- ria Not´ıcias . 50 5.4 Tempo de execuc¸ao˜ pelo tamanho do ficheiro corpus - Algoritmo Entidades 51 5.5 Tempo de execuc¸ao˜ pelo tamanho do ficheiro corpus - Algoritmo Gramatical 52 5.6 Publico´ N-Gram Search - Pedro Passos Coelho . 53 5.7 Publico´ N-Gram Search Categoria - Pedro Passos Coelho . 54 5.8 Publico´ N-Gram Search Classe Gramatical - Pedro Passos Coelho . 55 xv Lista de Tabelas 5.1 Configurac¸oes˜ das maquinas´ do cluster ................... 47 xvii Cap´ıtulo 1 Introduc¸ao˜ A crescente transic¸ao˜ dos meios tradicionais de comunicac¸ao˜ social para o espac¸o digital veio trazer um novo conjunto de paradigmas relativos as` actividades normalmente associ- adas ao jornalismo, fornecendo um maior leque de analises´ sobre a informac¸ao˜ dispon´ıvel. Esta informac¸ao˜ encontra-se em constante crescimento, com dados a serem produzidos diariamente´ na Internet. O conceito de Big Data e´ actualmente uma realidade, sendo poss´ıvel processar grandes quantidades de informac¸ao˜ atraves´ de tecnicas´ especialmente desenhadas para esse proposito´ e do aumento da capacidade computacional dispon´ıvel. Um estudo poss´ıvel sobre grandes quantidades de dados consiste na analise´ da correlac¸ao˜ entre o numero´ de ocorrenciasˆ de entidades e eventos durante um determinado per´ıodo de tempo.