OBTENDO CONHECIMENTO A PARTIR DOS TWITTES PESSOAIS FRANTZ, Miguel Airton 1 ; FROZZA, Angelo Augusto 2 Instituto Federal Catarinense, Camboriú/SC INTRODUÇÃO Com o desenvolvimento e a popularização da informática, um grande número de pessoas passou a ter acesso aos computadores e às facilidades associadas ao uso dos mesmos. A Internet se tornou um importante meio de comunicação e disseminação de conhecimento, oferecendo uma infinidade de recursos. Hoje, a Internet está presente em grande parte das casas, escolas, faculdades, empresas e em diversos outros locais, possibilitando acesso às informações e notícias do mundo em praticamente todos os lugares. Pode-se encontrar informações na rede sobre praticamente qualquer assunto e a qualquer hora, com extrema facilidade e rapidez. Também é fácil compartilhar informações, o que motiva muitas pessoas a publicar suas produções e seus conhecimentos, seja através de blogs, redes sociais ou outros meios. O grande número de pessoas produzindo conteúdo e tornando esse material público faz com que se tenham enormes bancos de dados. Imensos bancos de dados pessoais fazem com que fique difícil recuperar a informação, uma vez que esta não é estruturada, estando espalhada dentro do computador (em arquivos de texto, planilhas eletrônicas etc.) ou na Internet (postagens em blogs e redes sociais, e-mails, entre outros). Nesse sentido, surge a proposta de um mecanismo de Recuperação da Informação (RI) para uso das pessoas que produzem conhecimento. A partir dele, o usuário pode indexar seus textos e recuperar a informação em um formato de representação visual, através de uma nuvem de tags. As nuvens de tags correspondem a um processo de indexação que leva em conta o número de vezes que determinado termo relevante aparece. Quanto mais frequente o termo, maior é seu tamanho na nuvem de tags, dando assim, maior destaque aos assuntos (termos) que são mais frequentes. 1 Aluno do Bacharelado em Sistemas de Informação; Bolsista do CNPq; e-mail: frantz.miguel@gmail.com 2 Professor do IFC Câmpus Camboriú; e-mail: frozza@ifc-camboriu.edu.br O presente trabalho foi realizado com apoio do CNPq - Conselho Nacional de Desenvolvimento Científico e Tecnológico Brasil, através do Edital Nº 106/2013 PIBITI/PIBIC/PIBIC-Af/CNPq/IF CATARINENSE.
Dada a amplitude de possibilidades de formatos de entrada de dados para esse mecanismo (TEIXEIRA e DUQUE, 2012), o projeto limitou-se aos textos publicados por usuários do Twitter, que é uma das três maiores redes sociais ativas, com aproximadamente 500 milhões de usuários (MASHABLE, 2012). Segundo Benevenuto, Almeida e Silva (2012), as redes sociais permitem que usuários criem conteúdo e vêm se tornando chave em pesquisas relacionadas ao tratamento de grandes quantidades de dados, além de constituírem um ambiente ideal para extração de conhecimento e aplicação de técnicas de mineração de dados. MATERIAL E MÉTODOS O presente projeto de pesquisa, classificado como Pesquisa Aplicada, iniciou com a análise dos arquivos de tweets (no formato de documentos JSON) - os quais são disponibilizados através de download (FELIX, 2013) - a fim de se identificar a estrutura desses arquivos e permitir a modelagem de um banco de dados (BD) para armazenar as informações necessárias para a aplicação. Esta análise considerou a estrutura dos arquivos e o conteúdo dos tweets para definir uma classificação de dados como textos, hashtags, links, usuário de origem etc. O processo de geração da nuvem de tags, neste primeiro momento, está utilizando apenas os textos publicados pelo usuário em seus tweets (cada tweet tem até 140 caracteres). Para a manipulação dos dados, optou-se por utilizar os recursos disponibilizados pelo Sistema Gerenciador de Banco de Dados PostgreSQL. Assim, a pesquisa foi direcionada para analisar a funcionalidade desses recursos e como configurá-los adequadamente. A arquitetura da aplicação, denominada TwitKnowledge, foi estruturada em camadas, de forma que cada camada é independente das demais, permitindo, o reuso dos componentes de software produzidos em projetos futuros: a) Camada de autenticação do usuário; b) Camada de upload dos arquivos de tweets; c) Camada de manipulação dos dados, para indexação das palavras; d) Camada de apresentação, que gera a nuvem de tags. RESULTADOS E DISCUSSÃO A primeira camada de software é responsável pelo processo de identificação do usuário. Para isso, a aplicação utiliza o login social do Twitter para autorizar o acesso aos seus dados cadastrais. Feita a autenticação, usam-se algumas informações sobre o usuário para 2
realizar o controle de quem está enviando determinada base de dados, permitindo ao usuário anexar mais do que um arquivo. A segunda camada é responsável por armazenar no banco de dados da aplicação os arquivos (base de dados) de tweets do usuário, os quais estão em formato JSON. Nesta etapa, o usuário faz o upload dos arquivos. A opção pelo upload dos arquivos com o histórico de tweets do usuário dá um ganho de performance considerável para a aplicação em comparação com a opção de buscar esses dados de forma on-line. Após o upload de um arquivo, é feita a indexação do texto por uma terceira camada, a qual teve como base a infraestrutura de full text searching fornecida pelo próprio PostgreSQL (através do módulo TSearch 2). Até o momento, o estudo dessa camada envolveu a compreensão de como funciona a indexação e os dicionários de palavras, uma vez que os mesmos são utilizados em diversas etapas de filtragem e limpeza dos dados. Por fim, a quarta camada, responsável pela geração da nuvem de tags, usa um framework de terceiros que demonstrou bons resultados. Na Figura 1 pode-se ver um exemplo de nuvem de tags produzida pela aplicação. Figura 1 Nuvem de tags gerada pelo TwitKnowledge. Em função de ter-se adotado o paradigma da codificação por camadas, no caso da adaptação da aplicação para usar outras fontes de dados, é necessário reescrever apenas a camada de entrada de dados. Pode-se ver na Figura 2 uma ilustração da arquitetura da aplicação e o seu fluxo de atividades. 3
Figura 2 Arquitetura da aplicação. Percebe-se a importância desta pesquisa para a comunidade em geral, em especial, para aquelas pessoas que produzem algum tipo de conhecimento. Com isso, além de servir como mecanismo de indexação, o sistema permite que o usuário dê maior visibilidade à sua produção, por meio da nuvem de tags que pode ser compartilhada nas redes sociais. O projeto compreende uma solução com aplicação prática na resolução de problemas associados com RI sobre uma base de dados produzida pelo usuário. Mais especificamente, esse projeto limita-se a bases de dados construídas sobre os tweets de um usuário. CONCLUSÕES O presente projeto disponibiliza um mecanismo para extração de conhecimento em cima dos tweets de um usuário e permite a representação das informações obtidas de uma maneira que o usuário possa entender com facilidade. Para tanto, é oferecido um local para o usuário anexar arquivos com seu histórico de publicação no Twitter e, a partir desses arquivos, gerar uma representação visual, no formato de uma nuvem de tags. As nuvens de tags correspondem a um processo de indexação de textos que leva em conta o número de ocorrências de determinado termo na base de dados. Quanto maior o número de ocorrências, maior é seu tamanho na representação da nuvem de tags, dando assim, maior destaque aos assuntos (termos) que são mais frequentes. Para obter os termos relevantes é realizado um tratamento dos textos anexados, utilizando dicionários de palavras, removendo as palavras que não possuem sentido e realizando diversas etapas de filtragem e limpeza dos dados. Após o tratamento dos textos, tem-se como resultado uma lista de termos relevantes, acompanhados do respectivo número de ocorrências. Esses valores são passados 4
para a camada responsável pela geração da nuvem de tags, que realiza a distribuição aleatória das palavras na nuvem, variando seu tamanho de acordo com o número de ocorrências. Além disso, as palavras são diferenciadas por cores aleatórias para facilitar a distinção dos termos. Como trabalhos futuros, pretende-se: realizar melhorias no layout do site; permitir a publicação da nuvem de tags gerada em redes sociais; adquirir um domínio próprio para o projeto e realizar mais algumas melhorias de acordo com análises feitas sobre o trabalho. Além disso, pretende-se estudar outras formas de realizar a indexação, buscando possíveis melhorias nos resultados, melhorando a exclusão de termos pouco relevantes e permitindo a criação de classes de busca (p.ex. todas as palavras, apenas links, apenas e-mails, apenas pessoas). Ainda, pretende-se desenvolver outros formatos para o layout da nuvem de tags, bem como, incluir novas formas de visualização das informações, além de ligar os termos presentes na nuvem com os textos que o originaram. Atualmente, a aplicação usa como entrada apenas os textos de tweets, porém, trabalhos futuros preveem, também, o uso de outras fontes de conteúdo geradas pelos usuários, como outras redes sociais, documentos de textos (PDF, DOC etc.) e textos de e-mails. Um protótipo funcional da aplicação desenvolvida pode ser acessado através do link http://54.186.98.82/twittknowledge. REFERÊNCIAS BENEVENUTO, F.; ALMEIDA, J.; SILVA, A. Coleta e Análise de Grandes Bases de Dados de Redes Sociais Online. In: JORNADA DE ATUALIZAÇÕES EM INFORMÁTICA (JAI). Cap. 2. Anais do XXXII Congresso da Sociedade Brasileira de Computação (CSBC). Curitiba: SBC, 2012. FELIX, V. Faça o download do histórico do Twitter. Link Estadão Cultura Digital. São Paulo, 18 jan. 2013. Disponível: <http://blogs.estadao.com.br/link/faca-o-download-dohistorico-do-twitter>. Acesso em: 29 set. 2014. MASHABLE. Will You Be Twitter s 500 Millionth User? fev., 2012. Disponível em: <http://mashable.com/2012/02/22/twitters-500-million-user/>. Acessado em: 25 Jul. 2014. POSTGRESQL. Chapter 12. Full Text Search. Disponível em: <http://www.postgresql.org/ docs/9.3/static/textsearch.html>. Acesso em: 01 mar. 2014. TEIXEIRA, F. A. G.; DUQUE, C. G. A Recuperação da Informação e a colaboração de usuários na Web Novas oportunidades para a Comunicação. In: CONGRESSO INTERNACIONAL COMUNICACION 3.0, 3., Salamanca (ES), 2012. Proceedings... Salamanca: Universidad de Salamanca, 2012. 5