3 MATERIAIS E MÉTODOS
3.1 Descrição de Metodologia
3.1.1 A Base de Dados
Para este trabalho a RSD escolhida foi o Twitter, pois além de ser uma mídia social de conteúdo acessível a todos, na questão de base de dados esse software oferece diversas vantagens. Entre uma das vantagens, ele disponibiliza uma API (Application
Programming Interface) que é composta por algumas ferramentas e, sendo assim, facilita
a obtenção dos dados.
A API do Twitter é dividida em três componentes. A RestAPI que é responsável pela manipulação dos dados dos usuários e as conexões entre eles, que podem ser descritas como a interação de um usuário com outro (um exemplo disso é a funcionalidade "Seguir", onde um usuário recebe as postagens de outro), além de controlar o envio de mensagens. O segundo componente trata-se da SearchAPI ou API de busca, que permite que um usuário consulte algum conteúdo encontrado na base do Twitter. A última componente chama-se StreamingAPI que tem como objetivo controlar a troca de dados em tempo real [37].
40
A base de dados utilizada neste trabalho foi obtida pelo grupo REMID, utilizando a biblioteca Twitter4J [38,39] que possibilita a integração das funcionalidades da API do
Twitter com a linguagem de programação Java. O período para a obtenção dos tweets foi
a semana de natal em dezembro de 2014.
Como dito anteriormente, o mecanismo de microblogging impossibilita que cada postagem seja analisada de forma separada pela aplicação de MT ou os algoritmos de indexação de texto. Logo, é preciso agrupar as postagens e para esta base de dados os
tweets foram agrupados pelo seu termo em comum, o natal.
A base possui 8982 postagens, separadas por linhas e que foram organizadas em uma arquivo com a extensão CSV (Comma-separated values).
3.1.2 Pré-processamento
Para a fase de pré-processamento foram utilizadas as seguintes técnicas: remoção de stopwords, o stemming, remoção de caracteres especiais, pontuação e numeração.
Foram então separadas, empiricamente, em quatro grupos: ∙ Grupo 1: Nenhuma atividade de pré-processamento;
∙ Grupo 2: Stemming + remoção de Stopwords;
∙ Grupo 3: Remoção de caracteres especiais + pontuação + numeração; ∙ Grupo 4: Todas as atividades de pré-processamento;
Foi desenvolvida uma aplicação para a linguagem R [40], que visa aplicar as ati- vidades dos quatro grupos na base de dados, criando assim novas bases pré-processadas. Para a implementação foi utilizado o pacote TM (Text Mining Package). Em suma, este é um framework que auxilia a utilização das técnicas de Mineração de Texto no R [41].
O primeiro passo foi abrir a base na aplicação e transformá-la em um corpus, e como pode ser visto no Código3.1, esta transformação é necessária para poder utilizar as funções da biblioteca TM.
Código 3.1 - Exemplo de como transformar a base de dados em um corpus l i b r a r y ( tm )
MeuCorpus <− Corpus ( V e c t o r S o u r c e ( TextoDeEntrada ) )
Em seguida as etapas de pré-processamento serão realizadas. Ainda utilizando as funções da biblioteca TM foram extraídas as stopwords, a pontuação e a numeração. Foram então salvas em três novos corpus, ou seja, os três grupos que recebem atividades de pré-processamento. O Código 3.2 exemplifica como foi feita esta etapa.
41
Código 3.2 - Aplicando as etapas de pré-processamento l i b r a r y ( tm )
#Grupo2
Grupo2 <− tm_map( MeuCorpus , removeWords , s t o p w o r d s ( " p o r t u g u e s e " ) )
#Grupo3
Grupo3 <− tm_map( MeuCorpus , r e m o v e P u n c t u a t i o n ) Grupo3 <− tm_map( Grupo3 , removeNumbers )
#Grupo4
Grupo4 <− tm_map( MeuCorpus , removeWords , myStopwords ) Grupo4 <− tm_map( Grupo4 , r e m o v e P u n c t u a t i o n )
Grupo4 <− tm_map( Grupo4 , removeNumbers )
A Tabela1 mostra a lista de palavras que foram removidas. Esta lista é utilizada pelo pacote de Mineração de Texto do R e pode ser encontrada em [42]. Para realizar o
stemming foi utilizado a biblioteca SnowballC, isto pois ela foi desenvolvida pela inicia-
tiva Snowball Stemmer [43] que oferece suporte para a língua portuguesa e o Código 3.3
exemplifica como ela funciona. Por fim, cada um dos corpus foi transformado em novos arquivos CSV.
Código 3.3 - Exemplo de realização do stemming l i b r a r y ( SnowballC )
MeuStemming <− wordStem ( L i s t a D e P a l a v r a s , l a n g u a g e=" p o r t u g u e s e " )
3.1.3 A Aplicação
A aplicação escolhida para ser reproduzida neste trabalho é o CBPI, que representa os conceitos da AS. Para a reprodução foi utilizado uma implementação do grupo REMID para o sistema no software R [40], que utiliza como base o que foi apresentado em [24]. Seguindo o que foi proposto, foi utilizado um classificador NB e para o limiar dos valores modelos foi estipulado o valor de 0.5.
3.1.4 Experimentos
Como existe duas abordagens distintas para os experimentos, eles foram divididos em duas classes, N e K. Os experimentos da classe N buscavam utilizar a aplicação esco- lhida e validar se os resultados foram satisfatórios, já os da classe K não visavam utilizar a aplicação, trabalhavam em cima da base de dados e do cálculo do TF-IDF.
Abaixo segue a Figura5para sintetizar os experimentos, onde X abrange a quan- tidade de grupos e experimentos:
42
De A O Que E Do Houveram
Da Qual Em Um Para Com Houvera
Não Uma Os No Se Na Houvéramos
Por Mais As Dos Como Mas Haja
Ao Ele Das À Seu Sua Hajamos
Ou Quando Muito Nos Já Eu Hajam
Também Só Pelo Pela Até Isso Houvesse
Isso Ela Entre Depois Sem Mesmo Houvéssemos
Aos Seus Quem Nas Me Esse Houvessem
Eles Você Essa Num Nem Suas Houver
Meu Às Minha Numa Pelos Elas Houvermos
Nós Lhe Deles Essas Esses Pelas Houverem
Este Dele Tu Te Vocês Vos Houverei
Lhes Meus Minhas Teu Tua Teus Houverá
Tuas Nossa Nossa Nossos Nossas Dela Houveremos
Delas Esta Estes Estas Aqueles Aquelas Houverão
Isto Aquilo Estou Está Estamos Estão Houveria
Estive Esteve Estivemos Estiveram Estava Estávamos Houveríamos Estavam Estivera Estivéramos Esteja Estejamos Estejam Houveriam Estivesse Estivéssemos Estivessem Estiver Estivermos Estiverem Sou
Hei Há Havemos Hão Houve Houvemos Somos
São Era Éramos Eram Fui Foi Fomos
Foram Fora Fôramos Seja Sejamos Sejam Fosse
Fôssemos Fossem For Formos Forem Serei Será
Seremos Serão Seria Seríamos Seriam Tenho Tem
Temos Têm Tinha Tínhamos Tinham Tive Teve
Tivemos Tivera Tivéramos Tenha Tenhamos Tenham Tivesse
Tenham Tivesse Tivéssemos Tivessem Tiver Tivermos Tiverem
Terei Terá Teremos Terão Teria Teríamos Teriam
Tabela 1 – Lista de Stopwords
3.1.4.1 Experimento N
Foram realizados quatro experimentos, que foram divididos a fim de utilizar todos os grupos de pré-processamento em conjunto com a aplicação escolhida, da seguinte forma:
∙ Experimento N1: Grupo 1 + Aplicação;
∙ Experimento N2: Grupo 2 + Aplicação;
∙ Experimento N3: Grupo 3 + Aplicação;
43
Figura 5 – Síntese dos experimentos.
3.1.4.2 Experimento K
Foram realizados mais quatro experimentos, estes também utilizam cada um dos grupos de pré-processamento porém estão relacionados ao número de termos e cálculo do TF-IDF, estão divididos da seguinte forma:
∙ Experimento K1: Grupo 1 + Cálculo TF-IDF; ∙ Experimento K2: Grupo 2 + Cálculo TF-IDF; ∙ Experimento K3: Grupo 3 + Cálculo TF-IDF; ∙ Experimento K4: Grupo 4 + Cálculo TF-IDF;
3.1.5 Análise dos Resultados
Para compor os resultados da classe de experimentos N, foi utilizado a matriz de confusão e acurácia para cada nicho e em seguida foi gerada uma tabela que ranqueou os resultados. O cálculo da acurácia se dá pela Equação 3.1, onde 𝑇𝑝 é a quantidade
de verdadeiros positivos, e 𝑇𝑛 é a quantidade de verdadeiros negativos, portanto os que
receberam uma classificação correta. Já 𝐹𝑝 e 𝐹𝑛 são os falsos positivos e falso negativos,
ou seja, foram classificados como uma classe mas na verdade pertencem a outra. Como a aplicação CBPI tem adicionalmente a classe neutra é necessário adicionar a classe de verdadeiros neutros e falso neutros para realizar o cálculo. As discussões foram baseadas neste cálculo e como ele foi modificado a cada nova iteração.
44
𝐴𝑐𝑢𝑟á𝑐𝑖𝑎 = 𝑇𝑝+ 𝑇𝑛 𝑇𝑝 + 𝐹𝑝+ 𝑇𝑛+ 𝐹𝑛
(3.1) A fim de gerar os resultados da classe de experimentos K, para cada experimento o cálculo do TF-IDF foi ranqueado em uma tabela com os 20 melhores resultados e suas incidências na base de dados. As discussões se dão comparando os resultados encontrados em cada uma das tabelas e como foi alterada a frequência dos termos dada uma nova etapa. Por fim, como recurso visual para mostrar os termos que mais aparecem na base foi confeccionada uma nuvem de palavras após cada um dos experimentos.
45