• Nenhum resultado encontrado

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

Documentos relacionados