• Nenhum resultado encontrado

2014.2 Jadson Francisco de Jesus Silva

N/A
N/A
Protected

Academic year: 2021

Share "2014.2 Jadson Francisco de Jesus Silva"

Copied!
58
0
0

Texto

(1)

BACHARELADO EM ENGENHARIA DE COMPUTAÇÃO

JADSON FRANCISCO DE JESUS SILVA

AVALIAÇÃO DO IMPACTO DAS ETAPAS DE PRÉ-PROCESSAMENTO NA CLASSIFICAÇÃO DE TEXTOS EM UMA REDE SOCIAL

FEIRA DE SANTANA 2014

(2)

AVALIAÇÃO DO IMPACTO DAS ETAPAS DE PRÉ-PROCESSAMENTO NA CLASSIFICAÇÃO DE TEXTOS EM UMA REDE SOCIAL

Trabalho de Conclusão de Curso apresentado ao Colegiado de Engenharia de Computação como requisito parcial para obtenção do grau de Bacharel em Engenharia de Computação da Universidade Estadual de Feira de Santana.

Orientadora: Professora Ana Lúcia Lima Marreiros Maia

FEIRA DE SANTANA 2014

(3)

e à toda a turma de 2009.1 do curso Engenharia de Computação da Universidade Estadual de Feira de Santana.

(4)

Agradeço primeiramente a Deus por todas as conquistas que ele vem me proporcionando ao longo de minha vida, por me conceder saúde e forças para que eu completasse esta importante fase de minha vida.

Agradeço à minha família, em especial aos meus pais, Josenildo Moreira da Silva e Zita Maria de Jesus Silva pelos anos de dedicação que tiveram por mim e por me ensinarem a ser o homem que sou hoje. Ao meu irmão, Josenildo Moreira da Silva Júnior, pela imensa amizade e companheirismo ao longo de toda a minha vida. As minhas tias Idalia e Bebeu que acompanharam mais de perto toda a minha graduação sempre com palavras de força e incentivo. Às minhas avós Mariana e Hildete (in memoriam) que sempre me deram força e coragem para seguir em frente.

À todos os meus professores, que contribuíram de forma direta ou indireta para a minha graduação. Agradeço, em especial, ao professor Pablo Rodrigo Fica Piras por sua amizade e por me dar a chance de participar do Programa de Educação Tutorial (PET), programa este que possibilitou tanto meu crescimento acadêmico quanto o pessoal, e agradeço também à professora Ana Lúcia Lima Marreiros Maia pela grande amizade e por ter aceito o desafio de ser minha orientadora no TCC.

Aos meus amigos, que estiveram comigo em todos os momentos durante minha trajetória. Agradeço especialmente a Anderson Souza Rocha, a Luan Carlos dos Santos Batista (in memoriam) e Witã dos Santos Rocha que foram meus grandes amigos durante graduação e sem eles eu com certeza não estaria passando por este momento hoje.

(5)

Atualmente, a Mineração de Dados tem sido aplicada em numerosos meios de comunicação, em um esforço para ajudar as pessoas a encontrar informações em ambientes cada vez mais diversificados. Dentre estes meios de comunicação estão os chamados microblogs. Eles permitem que os usuários postem mensagens curtas de texto e imagens publicamente em uma página de acesso próprio na Internet. Muitos estudos vem sendo desenvolvidos com o intuito de proporcionar acesso aos dados, organização e classificação das informações nos microblogs. Este trabalho visa apresentar as etapas inerentes ao processo de modelagem e desenvolvimento de um Sistema de Classificação de Textos da rede social Twitter e analisar os impactos da associação de técnicas de Pré-processamento textual neste processo.

Palavras-chave: Mineração de Dados. Redes Sociais. Classificação de Textos. Twitter.

(6)

Nowadays, Data Mining has collaborated to a great deal of communication medias in order to help people to find information in several and diverse environments. Among these media are the microblogs, which allow users to post short text messages and images in a public with personal access website. Many studies have been developed in order to provide access to data, organization and classification of information in microblogs. This paper presents the steps in the modeling and development process of a Text Classification System on the social network Twitter and analyze the impacts of textual pre-processing techniques in this process.

(7)

Figura 1 Etapas de Desenvolvimento de um Sistema Mineração de Textos. 15

Figura 2 Identificação de StopWords. 16

Figura 3 Curva de Zipf e Cortes de Luhn. 18

Figura 4 Representação de Documentos. 19

Figura 5 Conjunto componente da consulta q. 20

Figura 6 Exemplo do cálculo do fi, j, Fi e ni. 22

Figura 7 Exemplo do cálculo do t fi, j em uma coleção. 23

Figura 8 Exemplo do cálculo do IDF em uma coleção. 24

Figura 9 Exemplo do cálculo do TF-IDF em uma coleção. 25

Figura 10 Representação dos vetores ~dj e ~q. 26

Figura 11 Fórmula de similaridade do modelo Vetorial. 27

Figura 12 Exemplo do Modelo Vetorial para a consulta “to do”. 27

Figura 13 Exemplo da vizinhança mais próxima para k = 3 e k = 6. 30

Figura 14 Exemplo da utilização do método K-Fold Cross Validation. 32

Figura 15 Etapas de um Sistema de Mineração e Classificação de Texto. 35

(8)

Figura 18 Classificações Presentes na Base Sanders-Twitter Sentiment Corpus. 38

Figura 19 Nova Distribuição das Classificações Presentes na Base de Tweets. 39

Figura 20 Distribuição das Categorias na Base de Treinamento. 42

(9)

Tabela 1 Variações do cálculo do TF. 25

Tabela 2 Variações do cálculo do IDF. 25

Tabela 3 Recomendação de combinação de esquema para o cálculo do TF-IDF. 26

Tabela 4 Tabela de Contingência. 33

Tabela 5 Critérios utilizados para classificar a base de dados. 37

Tabela 6 Configurações do Sistema - Similaridade Cosseno - Classificador kNN. 40

Tabela 7 Configurações do Sistema - Similaridade Jaccard - Classificador kNN. 41

Tabela 8 Configurações do Sistema - Similaridade Okapi - Classificador kNN. 41

Tabela 9 Configurações do Sistema - Classificador Naive Bayes. 41

Tabela 10 Resultado do Classificador kNN - Cosseno (Sem Pré-Processamento). 43

Tabela 11 Resultado do Classificador kNN - Cosseno (Eliminação de

StopWords). 44

Tabela 12 Resultado do Classificador kNN - Cosseno (Stemming). 44

Tabela 13 Resultado do Classificador kNN - Cosseno (Eliminação de StopWords

+ Stemming). 45

Tabela 14 Resumo dos resultados obtidos Classificador kNN - Cosseno. 46

(10)

Tabela 17 Resultado do Classificador kNN - Jaccard (Stemming). 47

Tabela 18 Resultado do Classificador kNN - Jaccard (Eliminação de StopWords

+ Stemming). 48

Tabela 19 Resumo dos resultados obtidos Classificador kNN - Jaccard. 48

Tabela 20 Resultado do Classificador kNN - Okapi (Sem Pré-processamento). 49

Tabela 21 Resultado do Classificador kNN - Okapi (Eliminação de StopWords). 49

Tabela 22 Resultado do Classificador kNN - Okapi (Stemming). 50

Tabela 23 Resultado do Classificador kNN - Okapi (Eliminação de StopWords +

Stemming). 50

Tabela 24 Resumo dos resultados obtidos Classificador kNN - Okapi. 51

(11)

1 INTRODUÇÃO. . . 11 2 FUNDAMENTAÇÃO TEÓRICA . . . 14 2.1 MINERAÇÃO DE TEXTOS . . . 14 2.1.1 PRÉ-PROCESSAMENTO DE TEXTOS . . . 15 2.1.1.1 ELIMINAÇÃO DE STOPWORDS . . . 16 2.1.1.2 STEMMING . . . 17

2.1.1.3 LEI DE ZIPF E CORTES DE LUHN . . . 17

2.1.2 MODELOS DE REPRESENTAÇÃO . . . 18

2.1.2.1 MODELO BOOLEANO . . . 19

2.1.2.2 PONDERAÇÃO DE TERMOS . . . 21

2.1.2.3 FREQUÊNCIA DO TERMO (TF) . . . 22

2.1.2.4 FREQUÊNCIA INVERSA DO DOCUMENTO (IDF) . . . 23

2.1.2.5 TF-IDF . . . 24 2.1.2.6 MODELO VETORIAL . . . 26 2.1.3 MÉTRICAS DE SIMILARIDADE . . . 28 2.1.3.1 COEFICIENTE JACCARD . . . 28 2.1.3.2 OKAPI BM25 . . . 28 2.1.4 ALGORITMOS DE CLASSIFICAÇÃO . . . 28

2.1.4.1 K-VIZINHOS MAIS PRÓXIMOS . . . 29

2.1.4.2 NAIVE BAYES . . . 31

2.1.5 DIVISÃO DA BASE DE DADOS . . . 31

2.1.6 AVALIAÇÃO DE DESEMPENHO DOS CLASSIFICADORES . . . 32

2.1.6.1 PRECISÃO . . . 33

2.1.6.2 REVOCAÇÃO (ABRANGÊNCIA) . . . 33

2.1.6.3 MEDIDA F . . . 34

2.1.6.4 FALLOUT . . . 34

2.1.6.5 ACURÁCIA (GRAU DE ACERTO) . . . 34

3 METODOLOGIA . . . 35

3.1 BASE DE DADOS UTILIZADA . . . 35

3.2 PRÉ-PROCESSAMENTO . . . 38

3.3 REPRESENTAÇÃO DOS DADOS . . . 39

3.4 CLASSIFICAÇÃO DE TEXTOS . . . 40

(12)

4 RESULTADOS. . . 43

4.1 CLASSIFICADOR KNN . . . 43

4.1.1 MÉTRICA COSSENO . . . 43

4.1.2 JACCARD . . . 46

4.1.3 OKAPI . . . 49

4.2 CLASSIFICADOR NAIVE BAYES . . . 51

4.3 DISCUSSÃO . . . 52

5 CONSIDERAÇÕES FINAIS . . . 54

(13)

1 INTRODUÇÃO

As Redes Sociais estão intimamente ligadas à vida das pessoas. A necessidade de interação entre as pessoas está passando cada vez mais do meio físico para o meio virtual. Neste sentido, as redes sociais vêm no intuito de facilitar as relações entre as pessoas, conectando-as em qualquer lugar, de qualquer distância e a qualquer momento.

Entre estas redes sociais estão os chamados microblogs, que segundo Efron (2011), representam um meio de comunicação em que os autores escrevem pequenos trechos de textos em uma base contínua, autores estes que vão desde pessoas famosas a anônimos, o que evidencia a grande abrangência deste meio de comunicação. Geralmente cada autor de um microblog possui sua página própria e suas atualizações são visualizadas por seus seguidores na rede.

Existem diversos microblogs na Internet, entre eles podemos citar o Tumblr, Twitter e Foursquare. Dentre estes, um que possui uma grande visibilidade e projeção mundial é o Twitter, sendo este o microblog escolhido para servir de base de dados para o desenvolvimento do presente trabalho.

O Twitter surgiu no ano de 2006 e vem ganhando uma grande popularidade ao longo dos anos e, hoje, conta com aproximadamente 50 milhões de mensagens postadas diariamente (EFRON, 2011). Cada usuário do Twitter mantém sua própria conta e posta mensagens de até 140 caracteres, os chamados tweets. Por causa da grande abrangência do Twitter e de sua importância e popularidade cada vez maiores na vida das pessoas, muitas empresas resolveram utilizá-lo para divulgar suas marcas. Sendo assim, é cada vez mais comum as empresas lançarem seus produtos e outras atividades empresariais e os divulgarem neste microblog. Estes tweets de divulgação acabam gerando vários outros tweets por parte dos usuários, com comentários acerca dos produtos lançados, positivos ou não.

De acordo com Golovchinsky & Efron (2010) ainda tem sido dada pouca atenção sobre a forma de como as pessoas, de um modo geral, interagem com o Twitter e como elas exploram as diversas mensagens (tweets) que chegam diariamente, e tratando-se de empresas, muitas ainda não sabem aproveitar as informações que o Twitter pode lhes proporcionar e não possuem meios automatizados para fazerem uma avaliação de sua marca e produtos de acordo com os comentários de seus seguidores neste microblog.

Com base nisso, o Twitter pode funcionar como um importante termômetro para as empresas saberem se um produto é bem aceito ou não pelos consumidores.

(14)

Contudo, a depender da quantidade de tweets referentes a um determinado produto, fica difícil para a empresa julgar cada uma destas mensagens manualmente, para dizer se elas foram positivas ou negativas e com isso saberem se os seus produtos foram bem aceitos pelos consumidores.

Neste sentido é que a Mineração de Textos (MT), que segundo Aranha & Passos (2006), se associa com a descoberta de informações e consequente obtenção de conhecimento em documentos de textos não estruturados (informações que não seguem um modelo formal, como um tweet), vem no intuito de facilitar este trabalho. Através desta e da Classificação de Textos é possível fazer a classificação automática destes tweets e assim oferecer um referencial às empresas sobre a aceitação dos produtos.

A Classificação de Textos objetiva identificar à qual, ou quais classes pertence um dado documento. Esta técnica pode ser utilizada para classificar notícias, publicações, criação de filtros e etc.

Os sistemas de Classificação de Documentos, de acordo com Corrêa (2002), podem ser criados automaticamente com a apresentação dos exemplos de treinamento para um algoritmo de aprendizagem e depois serem testados, pelo mesmo algoritmo, por meio da classificação dos exemplos de teste.

O presente trabalho vem, portanto, apresentar o desenvolvimento de um sistema de Mineração e Classificação de Textos para fazer a classificação automática de tweets. Com isso visa verificar se um dado tweet está fazendo uma avaliação positiva, negativa ou neutra em relação a um dado produto ou marca, com o objetivo de avaliar os impactos dos diferentes métodos de pré-processamento de texto na concepção deste Sistema.

Para tanto, foi necessário a aquisição de uma base de tweets já com sua devida classificação, o estudo das técnicas de Mineração de Textos e diferentes técnicas de pré-processamento textual, de similaridades textuais, além do estudo de diferentes técnicas de classificação automática de textos para o desenvolvimento do sistema de MT utilizando algumas das técnicas estudadas e a avaliação do sistema desenvolvido. O presente trabalho está organizado da seguinte forma: no Capítulo 2, denominado de Fundamentação Teórica, são apresentados os conceitos fundamentais sobre Mineração de Textos; o Capítulo 3, descreve a metodologia utilizada para o desenvolvimento do trabalho; o Capitulo 4 apresenta os resultados obtidos com alguns experimentos efetuados sobre o sistema desenvolvido; e por último vem a seção de Conclusão em que é feita uma breve discussão sobre o trabalho

(15)
(16)

2 FUNDAMENTAÇÃO TEÓRICA

Neste capítulo serão tratados os principais temas envolvidos no processo de desenvolvimento de um Sistema de Mineração e Classificação de Textos. Sendo assim, este capítulo aborda métodos de pré-processamento de texto, modelos de representação, métricas de similaridade, classificação de documentos e avaliação de desempenho dos classificadores.

2.1 MINERAÇÃO DE TEXTOS

Morais & Ambrosio (2007) abordam que a Mineração de Textos pode ser entendida como a evolução da Recuperação de Informação (RI), sendo que RI trata, segundo Elmasri & Navathe (2011), do processo de buscar documentos de uma dada coleção de dados, mediante a consulta prévia por parte do usuário. A RI trabalha com dados não estruturados e as técnicas de indexação, pesquisa e a recuperação de informações destes dados.

Com isso a Mineração de Textos, ainda segundo Morais & Ambrosio (2007) é caracterizada por utilizar técnicas de análise e obtenção de dados a partir de textos, frases ou apenas palavras. Esta área do conhecimento engloba a aplicação de algoritmos computacionais para o processamento de textos e identificação de informações úteis e implícitas, que normalmente não poderiam ser recuperadas utilizando métodos tradicionais de consulta (como num sistema de RI), pois a informação contida nestes textos não pode ser obtida de forma direta. Na prática, a mineração de textos define um processo que auxilia na descoberta de conhecimento a partir de documentos textuais, que pode ser utilizado em diversas áreas do conhecimento.

A Figura 1 representa as três principais etapas de um Sistema Mineração de Textos, pré-processamento, representação e extração do conhecimento.

(17)

Figura 1: Etapas de Desenvolvimento de um Sistema Mineração de Textos.

Fonte: Baseado na Figura original de (BRANDÃO, 2010)

2.1.1 Pré-Processamento de Textos

O pré-processamento de textos consiste em um conjunto de transformações realizadas sobre alguma coleção de textos com o objetivo de fazer com que esses passem a ser estruturados em uma representação atributo-valor. Esta etapa visa melhorar a qualidade dos dados disponíveis com o intuito de aprimorar o desempenho do sistema de MT(ARANHA, 2007).

Uma abordagem comumente usada para esta etapa de Pré-Processamento é a bag-of-words, sendo que nela, segundo Morais (apud BRANDÃO, 2010), cada documento é representado por um conjunto de palavras (termos), onde não há distinção na ordem em que aparecem no texto ou informações de pontuações ou estruturas, porém leva em consideração o número de ocorrências desses termos no texto.

Durante este processo de transformação de um documento em forma livre em um documento estruturado pode ocorrer que alguma informação importante no contexto de um dado documento seja perdida, neste sentido é que Aranha (2007) afirma que um grande desafio na área de Pré-Processamento de Textos é a obtenção de uma boa representação sem a perda de informação.

Uma das formas de realizar a etapa de Pré-Processamento é através da Redução de Dimensionalidade. A alta dimensionalidade é um dos maiores problemas enfrentados na representação de dados num Sistema de Mineração de Textos, isso se dá pelo fato de que cada termo representa uma dimensão na representação do documento, com isso existirão tantas dimensões quanto palavras diferentes presentes no texto. Sendo assim, segundo Aranha (2007), um dos principais problemas tratados no Pré-Processamento de Dados é reduzir o número de termos.

(18)

A redução da dimensionalidade tende a melhorar o desempenho de um Sistema de MT, porém tem-se que ter cuidado ao aplicar esta técnica, visto que ela pode acabar eliminando termos importantes da coleção. Sendo assim, é preciso analisar o contexto do problema e verificar se é possível aplicar alguma técnica de redução. Para a realização desta etapa de Pré-Processamento podem ser utilizados alguns métodos de redução de dimensionalidade, como por exemplo o Stemming, remoção de StopWords e Cortes de Luhn.

2.1.1.1 Eliminação de StopWords

Nem todo o conjunto de palavras presente em um documento deve ser analisado durante o processo de análise de um texto. Sendo assim, algumas palavras podem ser descartadas neste processo. Dentre estas palavras descartáveis, segundo Camargo (2007), temos as que aparecem em grande quantidade nos textos. Isso ocorre pelo fato de que estas palavras, devido a sua generalidade, não conseguem contribuir na seleção de documentos vinculados a um dado assunto.

Além das palavras repetitivas, em geral, cada idioma possui algumas palavras que não agregam nenhum significado semântico nas orações como, por exemplo, artigos, preposições, pronomes, advérbios e, portanto devem ser também eliminadas. Sendo assim, as palavras que não trazem nenhuma informação útil ao texto, ou seja, palavras que não traduzem a essência do texto são denominadas StopWords (GOMES, 2006).

Segundo Baeza-Yates & Ribeiro-Neto (2011), a eliminação das StopWords pode reduzir em média cerca de 40 % o tamanho da representação de um documento. Este dado alimenta a afirmação que as StopWords devem ser eliminadas ainda na etapa de pré-processamento de texto. Um exemplo de StopWords pode ser visto na Figura 2, sendo estas as palavras riscadas na imagem.

Figura 2: Identificação de StopWords.

(19)

2.1.1.2 Stemming

Na escrita de um documento, o usuário acaba repetindo a mesma palavra ao longo do texto, porém com variações sintáticas diferentes. Estas variações sintáticas como, por exemplo, plurais, formas de gerúndio e sufixos de tempos verbais que atrapalham uma perfeita combinação entre o documento a ser classificado e os documentos de treinamento (GOMES, 2006).

Ainda segundo Gomes (2006) este problema pode ser minimizado com a substituição de palavras pelos respectivos stems delas, sendo que stem pode ser entendido como a representação resultante das palavras após sofrer o processo de Stemming. Sendo assim, ele servirá como a denotação mínima, não ambígua, de uma dada palavra.

Com isso, Stemming pode ser entendido como um processo que realiza a remoção de sufixos e prefixos dos termos, escolhendo a qual radical deve ser relacionada a ocorrência. Isto provoca a redução do tamanho da coleção de termos do sistema. Um exemplo da aplicação do Stemming seria a redução das palavras trabalho, trabalhando, trabalhar de um texto qualquer para o stem trabalh.

Assim, como observado por Matsubara (2004), é possível inferir que a aplicação deste método de Redução de Dimensionalidade está vinculado ao idioma do documento analisado. Existem diversos algoritmos que realizam Stemming, sendo que o mais conhecido é o algoritmo de Porter, aplicado em documentos de língua inglesa (GOMES, 2006).

Uma das vantagens da utilização desta técnica é que ela potencializa a diminuição da quantidade de termos em uma coleção de dados. Porém, como escrito por Gomes (2006), no processo de Stemming não existe um mapeamento de cada palavra da linguagem para seu stem, com isso existem casos onde este método não apresenta resultados satisfatórios. Um exemplo disso pode ser demonstrado utilizando o algoritmo de Porter nas palavras “news” (notícias) e “new ” (novo), com isso estas palavras acabariam representadas pelo mesmo stem “new ”, porém possuem significados distintos.

2.1.1.3 Lei de Zipf e Cortes de Luhn

Outra técnica bastante utilizada durante o processo de Pré-Processamento de textos é a Lei de Zipf, juntamente com os Cortes de Luhn. Segundo Matsubara (2004), os Cortes de Luhn verificam a distribuição da frequência das palavras, observando a Lei de Zipf, e assim faz um corte nas palavras que acrescentam pouco para a

(20)

identificação do significado semântico do texto.

De acordo com Aranha (2007), a Lei de Zipf faz uma relação entre a frequência de ocorrência de uma palavra e sua ordenação em relação às outras. Considerando que f é a frequência de ocorrência de qualquer palavra do texto, e r a posição de ordenação decrescente da frequência com relação as outras palavras, então o produto f por r é aproximadamente constante. Luhn propôs que, em um gráfico f versus r, pode-se definir um limite superior e um limite inferior de corte, com isso as palavras que estiverem fora do intervalo são excluídas da análise. Uma ilustração da Lei de Zipf e Cortes de Luhn podem ser vistos na Figura 3, onde a curva f versus r representa a frequência dos termos da coleção em ordem decrescente, as linhas verticais representam os cortes superior e inferior descritos por Luhn e a curva em vermelho representa as palavras relevantes dentro desta faixa.

Figura 3: Curva de Zipf e Cortes de Luhn.

Fonte: (MATSUBARA, 2004)

2.1.2 Modelos de Representação

De acordo com Camargo (2007), os sistemas de Recuperação de Informação evitam trabalhar com o texto completo dos documentos, adotando termos ou índices para os processos de representação, classificação e recuperação. Esses termos são representados por palavras relacionadas, presentes no texto tratado.

A ideia fundamental, segundo Corrêa (2002), consiste na abordagem de que a semântica dos documentos de treinamento e o documento a ser classificado podem ser expressas por um conjunto de termos de indexação. Nessa abordagem os documentos passam a ser representados por vetores, onde os índices correspondem aos termos utilizados e os valores em cada posição representam a importância do

(21)

termo dentro do documento.

Como afirma Camargo (2007), uma palavra que aparece na maioria dos documentos não é um bom termo de indexação, já que não é um fator representativo na hora de escolher um dado documento. Entretanto, uma palavra que aparece em poucos documentos poderá contribuir mais efetivamente para a identificação de um determinado documento. Com isso, existem palavras que são mais significativas que outras, e por causa disto, é importante a atribuição de pesos aos termos de modo a se medir a importância dos mesmos para o documento tratado. Seguindo esta abordagem, temos um exemplo, ilustrado na Figura 4, onde é possível observar os documentos (d1 a dN) juntamente com seus termos (t1 a tM) e com seus pesos associados (a11 até aNM).

Figura 4: Representação de Documentos.

Fonte: (MATSUBARA, 2004)

O presente trabalho se apropriou dos conceitos de representação dos dados de um sistema de RI para a construção do sistema de Mineração de Textos. Os modelos de RI são basicamente baseados em textos, porém ao passar dos tempos foi necessário construir modelos para recuperação de outros tipos de dados, como links e multimídias. Como o presente trabalho trata de dados textuais, serão apresentados alguns modelos clássicos de RI, mas especificamente, o Booleano e o Vetorial.

2.1.2.1 Modelo Booleano

O modelo Booleano, segundo Baeza-Yates & Ribeiro-Neto (2011), é o modelo de recuperação mais simples e é baseado na teoria dos conjuntos e na álgebra booleana, com isso este modelo é bastante intuitivo e possui grande precisão semântica.

Este modelo considera se o termo indexado está presente ou não no documento, portanto, os pesos atribuídos a esses termos são binários, isto é 0 ou 1 e suas consultas são formuladas como uma combinação de termos associados por

(22)

operações booleanas, como and, or, not. A decisão de quantos vetores booleanos serão utilizados para representar uma categoria depende da capacidade em se especificar o conteúdo dos documentos a ela pertencentes apenas por uma conjunção de termos ou por uma disjunção de conjunções de termos.

Para exemplificar, considere o vocabulário V = Ka, Kb, Kc, sendo que vocabulário corresponde a todos os termos distintos indexados de uma coleção, e uma consulta pertencente a este vocabulário q = Ka∧ (Kb ∨ ¬Kc). Esta consulta pode ser colocada em sua forma normal disjuntiva qNV = (1, 1, 1) ∨ (1, 1, 0) ∨ (1, 0, 1), sendo que esta consulta na forma normal disjuntiva corresponde ao conjunto componente da consulta, o c(q). A Figura 5 ilustra o conjunto componente da consulta q.

Figura 5: Conjunto componente da consulta q.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

Considerando agora um documento d1 que contém o termo Kb e Kc, mas não tenha o termo Ka. O conjunto componente deste documento c(dj) é (0, 1, 1), mas podemos observar que ele não faz parte do conjunto componente da consulta e que, portanto, não satisfaz as condições da consulta. A partir desta relação do c(q) e do c(dj) é obtida a similaridade entre o documento dj e a consulta q, como definido na Equação 1 a seguir:

sim(dj, q) = (

1 se ∃cq> 0 | cq= c(dj)

0 se outros (1)

Sendo a sim(dj, q) = 1, o modelo Booleano irá constar que aquele documento é relevante para aquela consulta e o irá recuperá-lo, se sim(dj, q) = 0 ele irá considerar aquele documento como irrelevante e não o irá recuperá-lo, não existindo um documento parcialmente relevante.

(23)

Mesmo possuindo como vantagens sua fácil compreensão e implementação, o modelo Booleano apresenta algumas desvantagens como: nenhuma ordem de classificação dos documentos é fornecida; as consultas booleanas feitas pelos usuários as vezes acabam sendo simples demais; o modelo frequentemente ou retorna pouquíssimos resultados ou muitíssimos resultados; recuperação com base em critérios binários, não tem a noção de correspondência parcial.

2.1.2.2 Ponderação de Termos

Em um conjunto de termos indexados é possível notar que nem todos estes termos ajudam na correta descrição do documento, este fato, de acordo com Baeza-Yates & Ribeiro-Neto (2011), faz com que alguns termos indexados tenham um significado mais vago do que outros em relação a um dado documento.

Na tentativa de quantizar o quanto um termo é mais importante do que outro, pode se considerar um fator peso wi, j > 0, que associa um valor de importância para cada termo indexado Kiem um dado documento dj. O valor de wi, j = 0 reflete o termo ausente, ou seja, o termo de indexação Kinão gera nenhum fator de importância para o documento dj.

Este fator peso pode ser calculado através da frequência de ocorrência ( fi, j) de um termo indexado Ki em relação a um documento dj, sendo que esta frequência é dada pelo número de vezes que este termo Ki aparece no documento dj. O total da frequência (Fi) do termo Ki em toda a coleção de documentos é dada pelo somatório da frequência de ocorrência deste termo em todos os documentos, como ilustrado na Equação 2 onde o N representa o número de documentos da coleção.

Fi= N

j=1

fi, j (2)

Também é possível calcular em quantos documentos um determinado termo Ki aparece, sendo este valor representado por ni. Um exemplo ilustrando a aplicação destes conceitos pode ser vistos na Figura 6, que mostra os valores de fi, j, Fi e ni associados ao termo “do” na dada coleção.

(24)

Figura 6: Exemplo do cálculo do fi, j, Fie ni.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

2.1.2.3 Frequência do Termo (TF)

O peso de um termo pode ser igual a frequência em que este termo aparece em um texto. A forma mais simples de calcular o valor do TF (t fi, j) é igualá-lo à frequência de aparecimento deste termo no texto ( fi, j).

Uma outra forma usada na literatura para o cálculo do t fi, j pode ser vista na Equação 3, esta fórmula “suaviza” o valor da frequência e é a mais adotada.

t fi, j = (

1 + log fi, j se fi, j > 0

0 se outros (3)

Um exemplo do cálculo do t fi, j, utilizando a Equação 3, em uma coleção pode ser visto na Figura 7.

(25)

Figura 7: Exemplo do cálculo do t fi, j em uma coleção.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

2.1.2.4 Frequência Inversa do Documento (IDF)

IDF mede a especificidade de um termo em achar um dado documento. A IDF parte do princípio de que se um termo aparece em muitos documentos, ele não é um fator decisivo para a recuperação de um texto específico, já que este termo é muito comum. O fator IDF de um dado termo Ki pode ser obtido pela fórmula presente na Equação 4.

id fi= log N

ni (4)

Onde o N representa o número de documentos de uma coleção e o ni corresponde à quantidade de documentos em que o termo Ki aparece. Um exemplo do cálculo do IDF pode ser visto na Figura 8.

(26)

Figura 8: Exemplo do cálculo do IDF em uma coleção.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

2.1.2.5 TF-IDF

De acordo com Baeza-Yates & Ribeiro-Neto (2011) o TF-IDF é o mais popular esquema de atribuição de pesos, sendo que este é uma combinação do TF com o IDF e sua fórmula pode ser vista na Equação 5, onde o wi, j é o peso associado ao par (Ki, dj).

wi, j= (

(t f ) × (id f ) se fi, j> 0

0 se outros (5)

(27)

Figura 9: Exemplo do cálculo do TF-IDF em uma coleção.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

Algumas variações de TF-IDF (Tabela 3) foram propostas na literatura, sendo elas combinações das variações decorrentes das diferentes formas de se obter tanto o TF (Tabela 1) quanto o IDF (Tabela 2).

Tabela 1: Variações do cálculo do TF.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

Valor do TF Equação

Binário 0,1

Frequência pura fi, j Normalização Logarítmica 1 + log fi, j Normalização dupla por 0.5 0.5 + 0.5 maxfi, j

i fi, j

Normalização dupla por K K + (1-K) fi, j

maxi fi, j

Tabela 2: Variações do cálculo do IDF.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

Valor do IDF Equação

Unário 1

Frequência Inversa logNn

i

Frequência Inversa Suavizada log(1 +Nn

i)

Frequência Inversa Max log(1 +maxini

ni )

Frequência Inversa Probabilística logN−ni

(28)

Tabela 3: Recomendação de combinação de esquema para o cálculo do TF-IDF.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

Esquema de Pesos Peso do Termo no Documento Peso do termo na Consulta

1 fi, j× logNn

i (0.5 + 0.5

fi,q

maxi× fi,q) × log

N ni

2 1 + log fi, j log(1 +nNi)

3 (1 + log fi, j) × lognNi (1 + log fi,q) × logNni

2.1.2.6 Modelo Vetorial

O modelo Vetorial surgiu como uma alternativa ao Booleano e vem com a proposta de pesos não binários para os termos indexados permitindo uma correspondência parcial entre os documentos e as consultas dos usuários, sendo que seu valor é obtido através do cálculo de similaridade entre cada documento do sistema e a referida consulta do usuário.

Tanto os documentos quanto as consultas são representados por vetores contendo os pesos dos termos indexados, sendo que o primeiro (~dj) tem os pesos relacionados com os termos indexados e os documentos da coleção e o segundo (~q) é obtido da relação entre os termos indexados e a consulta dada como mostrado na Equação 6 a seguir: wi, j = ( ~ dj= (w1 j, w2 j...wt j) ~ qj= (w1q, w2q...wtq) (6)

Figura 10: Representação dos vetores ~dj e ~q.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

O grau de similaridade (sim (dj, q)) pode ser obtido através do cosseno do ângulo formado entre os vetores ~dj e ~q como mostrado na Figura 11. O peso utilizado é o mesmo abordado na Equação 5 e foi adotado o esquema 3 da Tabela 3.

(29)

Figura 11: Fórmula de similaridade do modelo Vetorial.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

Com a aplicação desta similaridade é possível obter um ranqueamento dos documentos em relação à uma dada consulta. A aplicação deste modelo pode ser conferida na Figura 12, sendo que a consulta utilizada foi “to do”.

Figura 12: Exemplo do Modelo Vetorial para a consulta “to do”.

Fonte: (BAEZA-YATES; RIBEIRO-NETO, 2011)

O modelo Vetorial apresenta como vantagens o fato de possuir um peso para os seus termos indexados, o que melhora a qualidade do resultado; a correspondência parcial permite a recuperação de documentos que se aproximam da consulta dada; e sua grande desvantagem é que ele assume que os termos indexados são independentes entre si.

(30)

2.1.3 Métricas de Similaridade

Além da similaridade cosseno, que foi apresentada na seção anterior e sua fórmula encontra-se na Figura 11, outras métricas de similaridade podem ser apontadas, de acordo com Calumby (2010), em se tratando do Modelo Vetorial. Dentre elas se encontram a Jaccard e a Okapi, sendo estas descritas nos tópicos a seguir.

2.1.3.1 Coeficiente Jaccard

Esta métrica pode ser expressa pela Equação 7 (BAEZA-YATES; RIBEIRO-NETO, 2011).

Jaccard(d1, d2) =

|{d1} ∩ {d2}| |d1| + |d2|

(7)

Onde d1 representa o conjunto de termos do documento d1e analogamente d2 representa o conjunto de termos do documento d2. Esta técnica é uma medida que analisa a porcentagem de palavras em comum nos documentos analisados.

2.1.3.2 Okapi BM25

Esta técnica de ranqueamento pode ser expressa, segundo (SILVA, 2007), pela seguinte Equação 8: SimOkapi=

∀t∈q (K1+ 1)tf K1((1 − b) + (blenghtlenght avg)) + tf logN− df+ 0.5 df+ 0.5 qtf (8) Onde:

• tf é a frequência de um termo t no documento d; • qtf é a frequência de um termo t na consulta q; • N é o número total de documentos da coleção;

• df é o número de documentos na coleção nos quais o termo sob consideração t está presente;

• lenght é o tamanho do documento d em palavras;

• lenghtavg é o tamanho médio dos documentos da coleção (em palavras); • K1e b são parâmetros utilizados para melhorar a performance.

2.1.4 Algoritmos de Classificação

Existem diversas técnicas que podem ser utilizadas no processo de classificação de textos, dentre estas, pode-se citar os métodos do K-vizinhos mais

(31)

próximos e do Naive Bayes. Devido a seu grande uso na literatura e bons desempenhos no trato de dados textuais, estes foram os métodos escolhidos para o desenvolvimento do presente trabalho.

2.1.4.1 K-vizinhos Mais Próximos

O método de K-vizinhos mais próximos, em inglês K-nearest neighbors (kNN), segundo Baeza-Yates & Ribeiro-Neto (2011), pertence ao grupo dos algoritmos de aprendizagem supervisionados e é denominado como um “aprendiz preguiçoso” (lazy learning). Um aprendizado preguiçoso é caracterizado por simplesmente armazenar os documentos utilizados para o treino do sistema e realizar uma única etapa de classificação.

O kNN possui aplicações em diferentes áreas do conhecimento, entre elas pode-se citar, o campo da mineração de dados, reconhecimento de padrões estatísticos e a área de processamento de imagem. De acordo com Santos (2009),ele é um dos métodos de classificação mais utilizado, devido principalmente à sua simplicidade e facilidade de implementação.

O algoritmo K-vizinhos mais próximos objetiva classificar um dado documento de teste de acordo com as categorias presentes em um documento de treinamento. Para isso, ele verifica as categorias dos k documentos de treino mais similares em relação ao documento de teste e decide, por maioria, a qual categoria este elemento de teste pertence, ou seja, ele verifica a vizinhança do documento teste e o classifica de acordo com o número de vizinhos de cada categoria presente no conjunto de treinamento. A Figura 13 apresenta um exemplo da aplicação do kNN, onde o objeto “estrela” é classificado para a Classe A ou Classe B a depender do valor do k utilizado, por exemplo, se o k for igual a 3 o objeto “estrela” pertence à Classe B, porém se o k for igual a 6 o objeto pertence à Classe A.

(32)

Figura 13: Exemplo da vizinhança mais próxima para k = 3 e k = 6.

Fonte: Baseado na Figura original de (DEWILDE, 2012)

Sendo assim, dado um documento de teste t, o kNN, segundo Santos (2009), realiza as seguintes atividades para classificá-lo:

1. Calcula a distância entre o documento t e cada um dos documentos de treino através de alguma métrica de similaridade;

2. Seleciona os k documentos de treino mais similares com o documento t;

3. Classifica o documento t em alguma categoria de acordo com o critério de agrupamento das categorias dos k documentos selecionados anteriormente.

Para o critério de agrupamento pode-se utilizar, segundo Santos (2009), a regra da votação majoritária ou a soma dos pesos da similaridade. Na primeira, cada elemento tem um peso igual, a classe escolhida será aquela que tiver mais representantes entre os k elementos, em caso de empate pode utilizar a soma dos pesos da similaridade para desempatar. Na segunda, entre os k elementos, são atribuídos pesos aos k elementos selecionados, sendo que estes pesos podem ser atribuídos de acordo com um ranking de similaridade (quanto mais similar maior o peso), e são somadas os pesos dos elementos de mesma categoria, o elemento desconhecido será classificado na categoria que obtiver maior valor de peso.

A escolha do parâmetro k é um dos fatores mais importantes no kNN, sendo que sua escolha é normalmente feita empiricamente, ou seja, não há um valor ideal para k.

(33)

2.1.4.2 Naive Bayes

O método Naive Bayes, segundo Baeza-Yates & Ribeiro-Neto (2011), baseia-se na probabilidade condicional de um dado conjunto de palavras representando uma classe estarem presentes em um dado documento. Com isso, calcula-se a probabilidade do documento fazer parte de cada uma das categorias, sendo que a categoria que apresentar uma maior probabilidade será atribuída ao documento avaliado.

A técnica Naive Bayes, de acordo com Camargo (2007), foi obtida através do pressuposto de que os atributos que apontam a presença dos termos são condicionalmente independentes. Com isso, a probabilidade de ocorrência de um conjunto de atributos em um dado exemplo é igual ao produto das probabilidades de ocorrência de cada atributo isoladamente. A Equação 9 abaixo apresenta a fórmula de atribuição da categoria ao documento de teste.

νNB= max[P(νj) ×

i P(ai νj )] (9) Sendo que,

• νNB é a categoria atribuída ao documento; • νj é cada uma das possíveis categorias;

• P(νj)é a probabilidade inicial de cada categoria; • P(ai

νj)é a probabilidade de ocorrência de cada atributo, dada a categoria.

2.1.5 Divisão da Base de Dados

Para se obter uma melhor análise, muitos sistemas de classificação utilizam a técnica denominada de Cross Validation (Validação Cruzada) para fazer a divisão entre os dados que irão compor as bases de testes e a de treinamento. Segundo Baeza-Yates & Ribeiro-Neto (2011), esta técnica pode estimar o erro de um dado modelo, ou pode ser usada para a seleção de um modelo pela escolha de um, entre muitos modelos, qual terá a menor generalização do erro estimado. Entre os diferentes tipos de Cross Validation existentes, é possível destacar os seguintes:

• Holdout: segundo Santos (2009) é a forma mais simples de validação. Ela consiste basicamente em uma divisão aleatória da base de dados do sistema em uma parte de teste e uma parte de treinamento, sendo que geralmente a base de teste corresponde a aproximadamente um terço dos dados. Porém,

(34)

segundo Santos (2009), o resultado da avaliação pode ter uma grande variação a depender da divisão que foi feita para o sistema, por exemplo uma determinada categoria pode estar ausente no conjunto de teste selecionado.

• K-Fold Cross Validation (Validação cruzada com K partições): nesse método de avaliação, de acordo com Santos (2009), os documentos são divididos em K partições diferentes entre si, chamadas de folds, que possuem tamanhos aproximadamente iguais. Então, são realizados K experimentos, onde, em cada experimento, uma partição diferente é escolhida para o teste e as K–1 partições restantes são escolhidas para o treinamento. A vantagem deste método é que todos os documentos são usados tanto para treinamento quanto para teste como na Figura 14.

Figura 14: Exemplo da utilização do método K-Fold Cross Validation.

Fonte: Baseado na figura original de (MIREIA, 2010)

2.1.6 Avaliação de Desempenho dos Classificadores

Para avaliar a eficácia dos classificadores de textos, diversas medidas podem ser aplicadas, dentre elas, sugere-se, segundo Lewis (1991), a adoção de uma medida direta de avaliação representada por uma tabela, denominada tabela de contingência e que pode ser visualizada na Tabela 4.

(35)

Tabela 4: Tabela de Contingência.

.

Fonte: Baseado na figura original de (LEWIS, 1991) Sim é correto Não é correto

Decide Sim a b a+b

Decide Não c d c+d

a+c b+d a+b+c+d=n

Esta tabela de contingência é preenchida para cada categoria e ela parte da premissa que o sistema realiza somente decisões binárias e para cada uma só ocorre uma decisão correta. Nesta tabela, de acordo com Corrêa (2002), a célula ‘a’ corresponde ao total de documentos atribuídos corretamente a uma dada categoria “Sim”. A célula ‘b’ corresponde aos documentos incorretamente atribuídos a esta categoria. A célula ‘c’ corresponde aos elementos incorretamente atribuídos a uma outra categoria “Não” e a célula ‘d’ corresponde aos documentos corretamente atribuídos à categoria “Não”. O ‘n’ corresponde ao número total de documentos da coleção.

Tendo como base a tabela de contingência e possível extrair algumas métricas de avaliação, como Precisão, Revocação, Medida F, Fallout e Acurácia.

2.1.6.1 Precisão

Precisão, de acordo com Corrêa (2002), é dada pela razão entre o número de documentos corretamente classificados pelo número total de documentos classificados em uma categoria. O cálculo da Precisão(p) é feito através da fórmula presente na Equação 10.

p= a

a+ b (10)

2.1.6.2 Revocação (Abrangência)

Revocação corresponde à parcela de documentos relevantes que foram rotulados com corretude para uma determinada categoria, de acordo com Lewis (1991). A Revocação (r) aponta a cobertura dos documentos de uma categoria, conforme a Equação 11.

(36)

r= a

a+ c (11)

2.1.6.3 Medida F

Medida F é obtida a partir da média harmônica entre a Precisão e Revocação (CORRÊA, 2002). Uma medida F elevada indica que a precisão e revocação são elevados. A fórmula de cálculo da medida f é definida na Equação 12 .

F = 2pr

p+ r (12)

2.1.6.4 Fallout

A medida Fallout corresponde, segundo Lewis (1991), à proporção dos documentos que foram rotulados incorretamente. A fórmula do fallout pode ser vista na Equação 13.

Fallout = b

b+ d (13)

2.1.6.5 Acurácia (Grau de Acerto)

Acurácia é a razão entre a quantidade de documentos corretamente classificados e o número total de documentos que foram classificados (CAMARGO, 2007). É obtida a partir da Equação 14.

Acuracia= a+ d

(37)

3 METODOLOGIA

Neste capítulo, serão apresentados os métodos utilizados na construção do Sistema de Mineração e Classificação de Textos utilizado no presente trabalho, sendo que as etapas necessárias para a construção deste sistema podem ser vistas na Figura 15.

Figura 15: Etapas de um Sistema de Mineração e Classificação de Texto.

Fonte: Próprio Autor

A Figura 15 apresenta a etapa de Base de Dados, que consistiu na obtenção de uma base que se adequasse ao trabalho em questão e por isso a mesma deveria vir previamente classificada para a validação do sistema; A etapa Pré-processamento, que consistiu na escolha dos métodos de pré-processamento adotados no trabalho; A etapa de Representação de Dados aborda sobre qual o modelo de representação de dados utilizado no trabalho; E a etapa de Classificação de textos apresenta os classificadores adotados neste trabalho.

Cada etapa apresentada na Figura 15 será abordada nas seções seguintes deste capítulo.

3.1 BASE DE DADOS UTILIZADA

A criação de uma base de dados de tweets é possível através da API Streaming, que permite que desenvolvedores tenham acesso aos dados do Twitter. Esta API, segundo Efron (2001), permite que um desenvolvedor possa colher tweets e suas informações inerentes.

O Twitter 1 disponibiliza em sua página para desenvolvedores, todas as informações inerentes à sua API, porém para que o desenvolvedor possa desenvolver algum programa no Twitter, é preciso fazer um cadastro informando todos os dados inerentes à aplicação a ser desenvolvida. Também é disponibilizado suporte OAuth, que é um protocolo de autenticação através do qual é possível acessar dados do usuário sem a utilização de senha, ou seja, através desse protocolo é possível acessar

(38)

o Twitter com um programa e baixar tweets e outras informações sem a necessidade de estar autenticado no Twitter.

A ideia inicial do projeto foi utilizar a API Streaming para construir uma base de dados própria, com tweets retratando a realidade local da Bahia, porém através desta API não foi possível baixar uma grande quantidade de tweets para formar uma base de dados e com isso foi preciso procurar uma base já pronta para a realização deste projeto.

A base de dados utilizada no desenvolvimento do sistema foi a Sanders-Twitter Sentiment Corpus, sendo esta composta por tweets, em sua maioria, escritos em língua inglesa. A base Sanders-Twitter Sentiment Corpus foi criada em outubro de 2011 por Niek Sanders e pode ser obtida em Sanders (2011)2.

Em Sanders (2011), não é obtida diretamente a base de dados e sim scripts, desenvolvidos na linguagem de programação Python, através dos quais é possível baixar os tweets que irão compor a base de dados, não sendo dispensada a necessidade de fazer o cadastro da aplicação no Twitter para a obtenção da autentificação OAuth para baixar estes dados.

A base Sanders-Twitter Sentiment Corpus é composta por 4272 tweets que citam as empresas (marcas) Twitter, Microsoft, Google e Apple, sendo que sua distribuição pode ser visualizada na Figura 16.

Figura 16: Composição da Base Sanders-Twitter Sentiment Corpus.

Fonte: Próprio Autor

Cada tweet desta base é composto por uma tupla ordenada, como pode ser visto na Figura 17, formada por cinco campos, onde:

(39)

1. Se refere ao assunto do tweet, ou seja, se o tweet cita o Twitter, Microsoft, Google ou Apple;

2. Se refere a classificação do tweet, se o texto se refere a empresa de forma positiva, negativa, neutra ou irrelevante;

3. Se refere ao código de identidade referente ao usuário que postou a mensagem; 4. Se refere a data da postagem do tweet;

5. Se refere a mensagem contida no tweet.

Figura 17: Exemplo de um tweet na base de dados.

Fonte: Próprio Autor

Os tweets presentes na base Sanders-Twitter Sentiment Corpus foram classificados manualmente por pessoas fluentes no idioma inglês (SANDERS, 2011), seguindo os critérios apresentados na Tabela 5.

Tabela 5: Critérios utilizados para classificar a base de dados.

Fonte: Próprio Autor

Classificação Critérios Adotados

Positivo Mensagem positiva em relação ao assunto

Neutro Mensagem nem positiva e nem negativa sobre um assunto Uma mistura de indicadores positivos e negativos na mensagem

Questionamentos sem fortes emoções sobre o tema do tweet Negativo Mensagem negativa em relação a um assunto

Irrelevante Mensagens escritas em uma língua diferente do inglês

Mensagens com assuntos diferentes do tratado nesta base de dados

A seguir, um exemplo de tweets classificados como positivo, neutro, negativo e irrelevante de acordo com os critérios da Tabela 5:

(40)

2. Why is Siri always down @apple -negativo; 3. @apple store NY -neutro;

4. Causando na loja da @apple -irrelevante.

A distribuição da classificação destas mensagens podem ser observada na Figura 18.

Figura 18: Classificações Presentes na Base Sanders-Twitter Sentiment Corpus.

Fonte: Próprio Autor

3.2 PRÉ-PROCESSAMENTO

Em seguida, na etapa de pré-processamento, definiu-se que as técnicas utilizadas neste trabalho seriam a técnica de Eliminação de StopWords e o Stemming, devido, principalmente, ao seu grande usos na literatura no processo de pré-processamento textual.

Antes da aplicação destas técnicas de pré-processamento, foi feito um pré-processamento inicial que consistiu na eliminação dos tweets classificados como irrelevantes, devido ao fato destes tweets estarem escritos em outras línguas e por não acrescentarem nenhuma melhoria ao conjunto de dados do sistema, com isso a nova base passou a ter 2787 tweets e sua nova distribuição pode ser vista na Figura 19. Também foram retirados dos tweets os campos referentes ao seu código de identidade, à sua data e ao seu assunto, visto que estas informações não possuem relevância para o sistema.

(41)

Figura 19: Nova Distribuição das Classificações Presentes na Base de Tweets.

Fonte: Próprio Autor

A Eliminação de StopWords foi feita com base na stoplist presente em Yin & Savio (1996), com isso todas as palavras presentes nos tweets da coleção que estavam presentes nesta stoplist foram eliminadas da coleção. Já a técnica do Stemming foi feita através de uma adaptação do código em Java presente em Tartarus (2000) 3 que implementa o Porter stemmer, sendo este um algoritmo amplamente utilizado para a realização do Stemming em palavras de língua inglesa.

3.3 REPRESENTAÇÃO DOS DADOS

Nesta etapa, definiu-se que o modelo de representação de dados que seria adotado neste trabalho seria o Modelo Vetorial, devido ao fato de ser um modelo amplamente utilizado, simples e que apresenta um bom desempenho no trato de dados textuais (BAEZA-YATES; RIBEIRO-NETO, 2011).

Para transformar os tweets da base de dados em vetores de termos indexados foram seguido os passos descritos na Subseção 2.1.2 do Capítulo 2, sendo que o cálculo TF utilizado no trabalho foi obtido através da Equação ?? e da Equação 3, o IDF foi calculado de acordo com a Equação 4, o DF foi obtido de acordo com a explicação apresentada na Subseção 2.1.3.2 do Capítulo 2 e o cálculo do TF-IDF foi realizado através da fórmula presente na Equação 5.

(42)

3.4 CLASSIFICAÇÃO DE TEXTOS

Na etapa de Classificação de Textos, definiu-se que seriam implementados os classificadores kNN e o Naive Bayes, ambos apresentados no Capítulo 2.

O kNN foi implementado utilizando as três métricas de similaridade apresentadas no Capítulo 2, ou seja, foi feito um kNN com a fórmula contida na Figura 11 (Cosseno), com a Equação 7 (Jaccard ) e com a Equação 8 (Okapi).

Para o critério de agrupamento utilizou-se a regra de votação majoritária juntamente com as somas dos pesos da similaridade, como critério de desempate.

O Naive Bayes foi feito através da fórmula presente na Equação 9, porém com uma pequena alteração: o produto das probabilidades foi trocado pela soma dos logaritmos das probabilidades em virtude de que, segundo Lucca et al. (2013), esta medida evita o underflow de ponto flutuante.

3.5 CONFIGURAÇÕES DOS EXPERIMENTOS

Para a realização dos experimentos, foram adotadas configurações no sistema que podem ser vistas nas Tabelas 6, 7, 8 e 9.

A Tabela 6 apresenta as configurações adotadas no experimento para a métrica de similaridade Cosseno no classificador kNN, a Tabela 7 exibe as configurações do sistema para a métrica Jaccard com o classificador kNN, a Tabela 8 apresenta as configurações do sistema para a métrica Okapi para o mesmo classificador e a Tabela 9 ilustra as configurações adotadas pelo experimento no Classificador Naive Bayes.

Tabela 6: Configurações do Sistema - Similaridade Cosseno - Classificador kNN.

Fonte: Próprio Autor

Pré-Processamento Ponderação dos termos Sem Pré-processamento TF-IDF

Eliminação de StopWords TF-IDF

Stemming TF-IDF

(43)

Tabela 7: Configurações do Sistema - Similaridade Jaccard - Classificador kNN.

Fonte: Próprio Autor

Pré-Processamento Ponderação dos termos

Sem Pré-processamento TF

Eliminação de StopWords TF

Stemming TF

Eli. de StopWords + Stemming TF

Tabela 8: Configurações do Sistema - Similaridade Okapi - Classificador kNN.

Fonte: Próprio Autor

Pré-Processamento Ponderação dos termos Sem Pré-processamento TF e DF

Eliminação de StopWords TF e DF

Stemming TF e DF

Eli. de StopWords + Stemming TF e DF

Tabela 9: Configurações do Sistema - Classificador Naive Bayes.

Fonte: Próprio Autor

Pré-Processamento Representação de Dados

Sem Pré-processamento TF

Eliminação de StopWords TF

Stemming TF

Eli. de StopWords + Stemming TF

Com estas configurações se pretende avaliar qual a influência das técnicas de pré-processamento no desempenho dos Classificadores kNN e Naive Bayes.

3.6 DIVISÃO DA BASE DE DADOS

Em um sistema de classificação de textos é necessário fazer uma divisão na base de dados, surgindo assim uma base para o treinamento do sistema e uma outra base para o teste desse sistema. Para este experimento foi utilizada a técnica de K-Fold Cross Validation.

(44)

O valor do K escolhido foi cinco, com isso a base de dados foi dividida em 5 folds, sendo que cada fold possui, aproximadamente, 2229 tweets para o treinamento e 558 tweets para testes. Em cada fold tentou-se manter a proporcionalidade entre a quantidade de tweets positivos, negativos e neutros, sendo que sua distribuição é apresentada nas Figuras 20 e 21.

Figura 20: Distribuição das Categorias na Base de Treinamento.

Fonte: Próprio Autor

Figura 21: Distribuição das Categorias na Base de Teste.

(45)

4 RESULTADOS

Neste capítulo serão descritas as condições dos experimentos realizados e os resultados obtidos. A avaliação dos resultados obtidos foi feita utilizando somente a métrica de avaliação acurácia, em virtude de que o parâmetro mais importante que se pretende avaliar nesse sistema desenvolvido é a sua capacidade de acertar corretamente a classificação de um dado tweet.

4.1 CLASSIFICADOR KNN

Nesta seção serão mostrados os resultados obtidos pelo classificador kNN, mediante a utilização das métricas de similaridade Cosseno, Jaccard e Okapi, com base nas configurações presentes nas Tabelas 6, 7 e 8. Os valores de k escolhidos foram 1, 5, 10, 15 e 20 e, para o critério de agrupamento, foi utilizada a votação majoritária e, em caso de empate, também utilizou-se a soma dos pesos das similaridades para definir a votação.

Serão mostrados os resultados gerais obtidos pelo classificador, sendo exibido assim o maior, o menor e a média dos valores das acurácias obtidos nos 5 folds, para cada um dos cinco valores de k. Os resultados das medidas de avaliação utilizadas pelo sistema variam entre zero e um.

4.1.1 Métrica Cosseno

Nesta seção serão apresentados os resultados obtidos pelo classificador kNN utilizando a métrica de similaridade Cosseno para cada uma das configurações de pré-processamento.

A Tabela 10 apresenta os resultados obtidos pelo classificador, sem passar por qualquer etapa de pré-processamento.

Tabela 10: Resultado do Classificador kNN - Cosseno (Sem Pré-Processamento).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.800120 0.676840 0.740515

5 0.819270 0.704369 0.768522

10 0.828845 0.719928 0.785518

15 0.845601 0.724716 0.796529

(46)

O grau de acerto (acurácia) ficou, em média, acima de 74%, apresentando uma pequena variação entre os melhores e piores resultados, mantendo o bom desempenho dos valores médios do classificador, sendo que o seu melhor valor foi 0.800359 com o valor de k igual a 20.

A Tabela 11 apresenta os resultados obtidos pelo classificador, utilizando a etapa de pré-processamento de remoção de StopWords.

Tabela 11: Resultado do Classificador kNN - Cosseno (Eliminação de StopWords).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.782166 0.681628 0.735727

5 0.813285 0.721125 0.768761

10 0.833633 0.700778 0.783842

15 0.838420 0.716338 0.791742

20 0.838420 0.701975 0.791742

É possível notar uma queda na acurácia média ao introduzir a remoção de StopWords, em relação aos resultados apresentados na Tabela 10, porém ainda se mantendo alta, acima dos 73%. O maior valor de acurácia obtido foi 0.838420, o pior foi 0.681628 e a melhor média foi obtida com o k igual a 15 e k igual 20 e foi de 0.791742.

A Tabela 12 exibe os resultados obtidos, utilizando-se apenas o Stemming como pré-processamento.

Tabela 12: Resultado do Classificador kNN - Cosseno (Stemming).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.770569 0.675291 0.730125

5 0.805374 0.714267 0.760843

10 0.829240 0.710543 0.779654

15 0.821324 0.710432 0.790075

20 0.836209 0.719065 0.792732

Os resultados obtidos nesse experimento foram semelhantes aos obtidos no experimento apresentado na tabela 11. O maior valor de acurácia obtido foi

(47)

0.8362098, o pior foi 0.675291 e a melhor média foi obtida com o k igual a 20 e foi igual a 0.792732.

A Tabela 13 apresenta os resultados obtidos pelo classificador, aplicando-se as etapas de pré-processamento de Eliminação de StopWords e Stemming.

Tabela 13: Resultado do Classificador kNN - Cosseno (Eliminação de StopWords + Stemming).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.780969 0.681628 0.738839

5 0.815679 0.725913 0.769479

10 0.831239 0.721125 0.784321

15 0.834829 0.719928 0.793896

20 0.843208 0.727110 0.799641

Neste experimento, com a combinação de duas etapas de pré-processamento, houve uma ligeira melhora nos valores de acurácia, em relação aos experimentos em que cada estratégia de pré-processamento foi aplicada individualmente, mas ainda assim, mostrou resultados inferiores aos do experimento sem pré-processamento. O maior valor de acurácia obtido foi 0.843208, o pior foi 0.681628 e a melhor média foi obtida com o k igual a 20 e foi igual a 0.799641.

A Tabela 14 apresenta o resumo dos resultados encontrados ao utilizar-se da métrica do Cosseno. Nela é possível perceber que não há uma grande diferença entre os resultados encontrados, sendo que a maior média de acurácia foi 0.800359, obtida sem a utilização de pré-processamento.

(48)

Tabela 14: Resumo dos resultados obtidos Classificador kNN - Cosseno.

Fonte: Próprio Autor

Pré-processamento Maior Acurácia Menor Acurácia Valor Médio das Acurácias Sem pré-processamento 0.845601 0.676840 0.800359 (k=15) (k=1) (k=20) Eliminação de StopWords 0.838420 0.681628 0.791742 (k=15 e k=20) (k=1) (k=15 e k=20) Stemming 0.836209 0.675291 0.792732 (k=20) (k=1) (k=20) Eliminação de StopWords e 0.843208 0.681628 0.799641 Stemming (k=20) (k=1) (k=20) 4.1.2 Jaccard

Nesta seção serão apresentados os resultados obtidos pelo classificador kNN utilizando a métrica de similaridade Jaccard para cada uma das configurações pré-processamento.

A Tabela 15 apresenta os resultados obtidos pelo classificador, sem a utilização de pré-processamento.

Tabela 15: Resultado do Classificador kNN - Jaccard (Sem Pré-processamento).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.834829 0.563136 0.718492

5 0.837223 0.551167 0.721843

10 0.842011 0.558348 0.734051

15 0.845601 0.588270 0.737881

20 0.832436 0.601436 0.735009

Através desse experimento, é possível notar que os resultados máximos obtidos, ainda continuam bons com relação aos obtidos no Subsecção 4.1.1, porém os seus resultados médios foram piores, em virtude do aumento da diferença entre os melhores e piores resultados. O maior valor de acurácia obtido foi 0.845601, o pior foi 0.551167 e a melhor média foi obtida com o k igual a 15 e foi igual a 0.737881.

(49)

A Tabela 16 apresenta os resultados obtidos pelo classificador, utilizando a etapa de pré-processamento de remoção de StopWords.

Analisando os resultados mostrados na Tabela 16 com os da Tabela 15, é possível notar que os resultados continuam bons, próximos dos resultados do experimento anterior (sem pré-processamento), porém ligeiramente inferiores, na média.

Tabela 16: Resultado do Classificador kNN - Jaccard (Eliminação de StopWords).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.831239 0.542789 0.716338

5 0.826451 0.540395 0.706284

10 0.836026 0.571514 0.724476

15 0.828845 0.567923 0.721843

20 0.838420 0.561939 0.719689

O maior valor de acurácia obtido foi 0.838420, o pior foi 0.540395 e a melhor média foi obtida com o k igual a 10 e foi igual a 0.724476.

A Tabela 17 exibe os resultados obtidos ao se utilizar o pré-processamento Stemming.

Tabela 17: Resultado do Classificador kNN - Jaccard (Stemming).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.820431 0.530151 0.718932

5 0.819982 0.518316 0.705406

10 0.830432 0.569717 0.719045

15 0.829534 0.579324 0.727654

20 0.835215 0.560043 0.720321

Os resultados obtidos na Tabela 17 se assemelham aos obtidos na Tabela 16. O maior valor de acurácia obtido foi 0.835215, o pior foi 0.518316 e a melhor média foi obtida com o k igual a 15 e foi igual a 0.727654.

A Tabela 18 mostra os resultados obtidos no sistema ao se utilizar ambas estratégias de pré-processamento combinadas.

(50)

Tabela 18: Resultado do Classificador kNN - Jaccard (Eliminação de StopWords + Stemming).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.826451 0.539198 0.719689

5 0.826451 0.528426 0.707481

10 0.834829 0.570317 0.724716

15 0.836026 0.582286 0.729503

20 0.837223 0.565530 0.722322

Os resultados das acurácias melhores que os das estratégias de pré-processamento aplicadas de forma individual, porém, mais uma vez, assim como quando foi utilizada a métrica cosseno, os resultados sem pré-processamento superaram os resultados com estas estratégias combinadas. A maior acurácia atingiu 0.837223 com o k igual a 20, o seu menor valor foi 0.528426 com o k igual a 5 e a maior média foi 0.729503 obtido com o k igual a 15.

Ao avaliar o resumo dos resultados encontrados com a métrica Jaccard, ver Tabela 19, percebe-se que não há uma grande diferença entre os resultados obtidos com as variações das técnicas de pré-processamento, sendo que os resultados sem pré-processamento foram superiores aos encontrados com as combinações das técnicas de pré-processamento.

Tabela 19: Resumo dos resultados obtidos Classificador kNN - Jaccard.

Fonte: Próprio Autor

Pré-processamento Maior Acurácia Menor Acurácia Valor Médio das Acurácias Sem pré-processamento 0.845601 0.551167 0.737881 (k=15) (k=5) (k=15) Eliminação de StopWords 0.838420 0.540395 0.724476 (k=20) (k=5) (k=10) Stemming 0.835215 0.518316 0.727654 (k=20) (k=5) (k=15) Eliminação de StopWords e 0.837223 0.528426 0.729503 Stemming (k=20) (k=5) (k=15)

(51)

4.1.3 Okapi

Nesta seção serão apresentados os resultados obtidos pelo classificador kNN utilizando a métrica de similaridade Okapi para cada uma das configurações pré-processamento.

A Tabela 20 apresenta os resultados obtidos pelo classificador, sem pré-processamento.

Tabela 20: Resultado do Classificador kNN - Okapi (Sem Pré-processamento).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.798923 0.678037 0.749132

5 0.840814 0.706762 0.778336

10 0.840814 0.719928 0.784799

15 0.842011 0.711550 0.788869

20 0.845601 0.718731 0.794135

Os resultados das acurácias continuam bons e percebe-se uma melhora no valores médios obtidos nessa métrica de similaridade em relação ao Jaccard, em virtude da diminuição da diferença entre os melhores e piores resultados. A maior acurácia atingiu 0.845601, o menor valor foi de 0.678037 e a maior média foi 0.794135 obtido com o k igual a 20.

A Tabela 21 exibe os resultados das medidas de avaliação Acurácia para o classificador, utilizando a técnica de eliminação de StopWords como pré-processamento. Mediante a comparação da Tabela 21 com a Tabela 20 é possível notar que os resultados são bem próximos, com diminuição da acurácia média.

Tabela 21: Resultado do Classificador kNN - Okapi (Eliminação de StopWords).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.798923 0.680431 0.752005

5 0.833633 0.703172 0.774028

10 0.843208 0.710353 0.785278

15 0.844405 0.713944 0.786236

(52)

O maior valor de acurácia obtido foi 0.844405, o pior foi 0.680431 e a melhor média foi obtida com o k igual a 15 foi de 0.786236.

A Tabela 22 apresenta os resultados obtidos com o pré-processamento Stemming.

Tabela 22: Resultado do Classificador kNN - Okapi (Stemming).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.800091 0.689954 0.755374

5 0.839011 0.705321 0.780010

10 0.852734 0.721324 0.790121

15 0.851087 0.710132 0.792543

20 0.850071 0.704987 0.785213

Os resultados obtidos continuam bons, com alguns valores de acurácia ultrapassando os 85% e a maior média superando 79%, resultado superior ao obtido utilizando-se apenas a remoção de StopWords.

A Tabela 23 mostra os resultados obtidos utilizando-se a combinação de remoção de StopWords e Stemming como pré-processamento.

Tabela 23: Resultado do Classificador kNN - Okapi (Eliminação de StopWords +

Stemming).

Fonte: Próprio Autor

Valor do k Maior Acurácia Menor Acurácia Valor Médio das Acurácias

1 0.800120 0.690006 0.756074

5 0.842011 0.709156 0.780970

10 0.855177 0.729503 0.794375

15 0.851586 0.717534 0.793656

20 0.850389 0.706762 0.788390

Os resultados de acurácia obtidos nesse experimento, assim como nas métricas do Cosseno e Jaccard, continuam bons, com acurácia média superando os 79% com k igual a 10 e a 15.

A Tabela 24 apresenta os resumos dos resultados encontrados com a métrica Okapi, nela percebe-se que os resultados foram próximos. O maior valor médio de

(53)

acurácia foi 0.794375, com a utilização da Eliminação de StopWords juntamente com o Stemming.

Tabela 24: Resumo dos resultados obtidos Classificador kNN - Okapi.

Fonte: Próprio Autor

Pré-processamento Maior Acurácia Menor Acurácia Valor Médio das Acurácias Sem pré-processamento 0.845601 0.678037 0.794135 (k=20) (k=1) (k=20) Eliminação de StopWords 0.844405 0.680431 0.786236 (k=15 e k=20) (k=1) (k=15) Stemming 0.852734 0.689954 0.792543 (k=10) (k=1) (k=15) Eliminação de StopWords e 0.855177 0.690006 0.794375 Stemming (k=10) (k=1) (k=10)

4.2 CLASSIFICADOR NAIVE BAYES

Esta seção apresenta os resultados obtidos no sistema desenvolvido com a utilização do Classificador Naive Bayes. Estes resultados podem ser vistos na Tabela 25, sendo que ela exibe os resultados obtidos com os cinco folds realizados, em virtude da divisão da base pelo Cross Validation, e mostra também os resultados obtidos com a utilização das técnicas de pré-processamento, de acordo com as configurações presentes na Tabela 9.

Tabela 25: Resultado do Classificador Naive Bayes com 5 folds.

Fonte: Próprio Autor

Folds Sem Eliminação Stemming Eliminação de StopWords

Pré-Processamento de StopWords + Stemming

1 0.302867 0.281362 0.301075 0.273119 2 0.632616 0.620072 0.470430 0.300420 3 0.632616 0.247312 0.259857 0.213262 4 0.456093 0.650538 0.652330 0.458781 5 0.642599 0.633574 0.619134 0.527076 Média 0.533358 0.486571 0.460565 0.354531

Referências

Outline

Documentos relacionados

Em cada localidade foram coletados de 26 a 41 indivíduos, que foram separados em sacos plásticos e, no Laboratório de Diversidade Genética na Universidade Estadual

O grafo de ligação do modelo proposto foi obtido através do cálculo dos potenciais característicos relacionados com as variáveis independentes do problema, densidade e velocidade,

Diante desse contexto, este artigo tem por objetivo discutir as práticas formativas de profissionais com atuação no campo da gestão social, tendo como material empírico as

Diante das atuais propostas de criação de uma nova Base Nacional Comum (BNC) é importante discutirmos sobre o Ensino de Astronomia e a sua inserção nos anos finais do

Quem pretender arrematar dito(s) bem(ns) deverá comparecer no local, no dia e na hora mencionados, ou ofertar lances pela Internet através do site

vernáculo. A par do talento incomum, trazia um canto novo, brasileiro pelo menos n os motivos e modos de expressão. Nele se estampa um langor, um contraste violento entre extremos

5.11 Qualquer adaptação ao imóvel, que seja exigida pela legislação aplicada, os custos de projeto e execução ficará a cargo da Concessionária desde que previamente

Aplicações Web e Usabilidade Sistemas de Gestão de Bases de Dados Noções Básicas de Programação Seminário em Desenvolvimento de Sistemas de Informação Informática Aplicada 1