análise de sentimentos no twitter utilizando sentiwordnetcin.ufpe.br/~tg/2011-1/lvs.pdf · nesse...

29
Julho de 2011 Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática 2011.1 Análise de sentimentos no Twitter utilizando SentiWordNet Trabalho de Graduação Aluno: Lucas Ventura de Souza Orientador: Ricardo Bastos Cavalcante Prudêncio

Upload: lamduong

Post on 04-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Julho de 2011

Universidade Federal de Pernambuco

Graduação em Ciência da Computação

Centro de Informática

2 0 1 1 . 1

Análise de sentimentos no Twitter

utilizando SentiWordNet

Trabalho de Graduação

Aluno: Lucas Ventura de Souza

Orientador: Ricardo Bastos Cavalcante Prudêncio

Julho de 2011

Universidade Federal de Pernambuco

Graduação em Ciência da Computação

Centro de Informática

2 0 1 1 . 1

Análise de sentimentos no Twitter

utilizando SentiWordNet

Trabalho de Graduação

Monografia apresentada ao Centro de Informática

da Universidade Federal de Pernambuco, como

requisito para obtenção do grau em bacharel em

Ciência da Computação.

Aluno: Lucas Ventura de Souza

Orientador: Ricardo Bastos Cavalcante Prudêncio

Julho de 2011

Dedicatória

Dedico esse trabalho aos

meus pais, Pedro Souza e Fátima

Ventura, pela educação, apoio e

investimento.

Julho de 2011

Agradecimentos

Agradeço aos meus familiares por todo o apoio e confiança que me deram para

que eu concluísse o curso de ciência da computação.

Agradeço ao professor Ricardo Prudêncio pela sua orientação, que sempre me

atendeu da melhor forma possível e me orientou durante este trabalho.

Agradeço ao Centro de Informática que me proporcionou uma formação de

qualidade e excelência.

Por fim, agradeço a alguns amigos que fiz ao longo do curso, que tornaram esses

quatro anos e meio de graduação ainda mais legais e proveitosos. Agradeço a Luís

Gomes, Leandro Silva, Hélio Vicente, Igor Oliveira, Estácio Ferraz, Murilo Machado,

Bruno Monteiro e todos os outros grandes amigos que fiz e contribuíram para a minha

formação.

Julho de 2011

Resumo

Saber a opinião das pessoas sempre foi um constante tema de pesquisa nas mais

diversas áreas. A mineração por dados que reflitam o pensamento das pessoas é de suma

importância para os mais diversos estudos. Empresas investem muito dinheiro para

coletar esses dados importantes sobre as pessoas de forma a elaborar estratégias de

marketing e vendas de forma eficiente. Sites de relacionamento tem tido um

crescimento significativo de usuários. As pessoas estão cada vez mais conectadas a

essas redes e expressando suas opiniões, gostos, preferências, relacionamentos. Redes

como Facebook, Twitter e Ning estão sendo utilizadas por milhões de pessoas em todo

o mundo. A análise de sentimentos tem por fim classificar a opinião das pessoas sobre

determinado tema, como positiva, negativa ou neutra. Esse trabalho tem como objetivo

utilizar a ferramenta SentiWordNet para classificar opiniões de usuários no Twitter.

Nesse trabalho será feita uma coleta de dados através da pesquisa por assuntos no

Twitter e uma classificação desses dados determinando a polaridade do conteúdo em

positiva, negativa ou neutra.

Palavras-chave: Análise de sentimentos, Twitter, SentiWordNet, Mineração de

opinião.

Julho de 2011

Abstract

Know people opinion has always been a constant topic of research in several

areas. Mining for data that reflect the thinking of people is very important for several

studies. Companies invest a lot of money to collect important data about people in order

to develop marketing and sales strategies efficiently. Social-networking sites has been a

significant growth of users. People are increasingly connected to those networks and

expressing their opinions, tastes, preferences, relationships. Social networks like

Facebook, Twitter and Ning are being used by millions of people around the world. The

sentiment analysis aims to classify people's opinion about a given subject as positive,

negative or neutral. This study aims to use the tool SentiWordNet to classify user

opinions on Twitter. This work will make a data collection by searching for topics on

Twitter and a classification of these data to determine the polarity of the content in

positive, negative or neutral

Keywords: Sentiment analysis, Twitter, SentiWordNet, Opinion Mining.

Julho de 2011

Índice 1. Introdução ..................................................................................................................... 8

2. Mineração de opinião ................................................................................................... 9

3. Análise de sentimentos ............................................................................................... 10

3.1 Entendendo o problema .......................................................................................... 11

3.2 Fases do processo e técnicas utilizadas .................................................................. 13

3.3 Dificuldades encontradas ........................................................................................ 15

4. Twitter ........................................................................................................................ 16

5. SentiWordNet ............................................................................................................. 18

6. Classificação de opiniões............................................................................................ 24

7. Conclusão ................................................................................................................... 28

8. Referências bibliográficas .......................................................................................... 29

Julho de 2011

1. Introdução

Saber a opinião das pessoas sempre foi um constante tema de pesquisa nas mais

diversas áreas. A mineração por dados que reflitam o pensamento das pessoas é de suma

importância para os mais diversos estudos. Empresas investem muito dinheiro para

coletar esses dados importantes sobre as pessoas de forma a elaborar estratégias de

marketing e vendas de forma eficiente.

Sites de relacionamento tem tido um crescimento significativo de usuários. As

pessoas estão cada vez mais conectadas a essas redes e expressando suas opiniões,

gostos, preferências, relacionamentos. Redes como Facebook, Twitter e Ning estão

sendo utilizadas por milhões de pessoas em todo o mundo.

A análise de sentimentos tem por fim classificar a opinião das pessoas sobre

determinado tema, como positiva, negativa ou neutra.

Esse trabalho tem como objetivo utilizar a ferramenta SentiWordNet para

classificar opiniões de usuários no Twitter. Primeiramente falaremos sobre a mineração

de opiniões e a análise de sentimentos. Em seguida será falado sobre o Twitter e

posteriormente será abordada a ferramenta SentiWordNet. Por fim, será feita uma

explanação sobre a implementação desse trabalho.

Julho de 2011

2. Mineração de opinião

A internet vem aumentando o seu conteúdo de forma muito rápida, inclusive no

tocante a informações sobre usuários, bens e serviços. O aumento do número de redes

sociais, o número de pessoas que se relacionam através delas e as informações que

podem ser extraídas delas são muito grandes.

A mineração de opinião é uma área de grande crescimento, pois as empresas

estão cada vez mais interessadas em reunir informações importantes a respeito de seus

produtos, serviços, reputação e clientes. Alem das empresas, os usuários também se

interessam em saber informações relevantes sobre produtos que possam vir a consumir,

ou até mesmo pessoas que queiram saber o que está sendo falado sobre elas, como por

exemplo, um presidente que quer saber se seus eleitores estão falando bem ou mal dele.

O fato de os usuários estarem produzindo muito conteúdo, diferentemente de como era

antigamente, gera grandes atenções por parte do mercado.

Entretanto, como a maioria da internet se baseia em documentos não-

estruturados, a mineração de opinião tem que trabalhar com a difícil tarefa de analise

em linguagem natural. Segundo [1], a mineração de opinião visa extrair características

e componentes a respeito do que foi dito em documentos e obter informações relevantes

desses dados.

A mineração de opinião pode e vem sendo utilizadas de diversas maneiras, por

exemplo, em pesquisas de marketing para saber o que o público está achando de uma

determinada marca. Uma empresa que constate que em determinada página da web

estejam falando bem de seus produtos, pode utilizar essa informação para oferecer seus

produtos e serviços para um público que é favorável a consumir esse produto. Ainda

nesse exemplo, caso a empresa constate que falam mal de seu produto, poderia ver quais

são os motivos dessa opinião desfavorável e estudar as possíveis soluções cabíveis.

Julho de 2011

3. Análise de sentimentos

A análise de sentimentos é um subproblema da mineração de opiniões de que

consiste identificar o sentimento que os usuários apresentam sobre alguma entidade de

interesse (um produto específico, uma empresa, uma pessoa, dentre outros) baseado nos

conteúdos publicados na internet. O objetivo principal é permitir que um usuário

obtenha um relatório contendo o que as pessoas andam dizendo sobre algum item sem

precisar encontrar e ler todas as opiniões e notícias a respeito.

Segundo Liu [3], análise de sentimentos ou de mineração opinião é o estudo

computacional da opinião das pessoas, avaliações, e emoções em relação a entidades,

eventos e seus atributos. Nos últimos anos, vem atraindo uma grande quantidade de

atenções da indústria e da academia por ter muitos problemas de pesquisa desafiadores e

uma grande variedade de aplicações.

Opiniões são muito importantes quando precisamos tomar uma decisão, pois

levamos em consideração as opiniões dos outros. Isso é verdade tanto para indivíduos

como também para as organizações. Antigamente, quando alguém ia tomar uma

decisão, recorria a opiniões de amigos e familiares. Quando uma organização queria

saber sobre o seu público alvo, recorria a pesquisas de mercado. Hoje em dia, com as

novas tendências sociais, a expansão da internet, as mudanças de comportamento na

web, essas pesquisas de opinião estão sendo mudadas. As pessoas podem ter avaliações

de produtos e serviços em sites especializados, ou até mesmo em redes sociais, fóruns e

blogs. Podem expressar suas opiniões sobre os mais diversos temas para que outras

pessoas leiam e compartilhem experiências. Por exemplo, quando um indivíduo vai

comprar um produto não precisa necessariamente recorrer a amigos e familiares,

podendo olhar na internet sobre avaliações sobre esse produto. Da mesma forma, uma

empresa não precisa recorrer a pesquisas de campo para recolher informações sobre

seus consumidores, opiniões sobre seus produtos ou sobre seus concorrentes, porque a

uma grande quantidade de informações publicamente disponíveis na internet.

Entretanto, encontrar sites de opiniões e monitorá-los na internet é uma tarefa

complexa, levando em conta o grande número de informações de sites diferentes, o

grande volume de texto opinativo e a forma como essas opiniões se encontram. A

internet utiliza uma forma, em sua maioria, não-estruturada, o que dificulta esse

trabalho.

Julho de 2011

Resumidamente, podemos definir análise de sentimentos como:

O estudo de opiniões, emoções e sentimentos expressos em textos e a sua

classificação em positivos, negativos ou neutros.

Informação textual pode ser classificada em dois tipos principais: Fatos e

opiniões. Os fatos são expressões objetivas sobre entidades, eventos e suas

propriedades. As opiniões são geralmente expressões subjetivas que descrevem os

sentimentos das pessoas, avaliações ou sentimentos em relação a entidades, eventos e

suas propriedades.

Boa parte das pesquisas existentes sobre processamento de informação textual

tem sido focada na mineração e recuperação de informações sobre fatos. Por exemplo, a

busca na web, o agrupamento de textos, classificação de textos, e outros tipos de

trabalho que trabalham com processamento de linguagem natural.

Até pouco tempo atrás, pouco trabalho tinha sendo feito sobre a análise de

opiniões. Entretanto, opiniões são tão importantes que sempre que precisamos tomar

decisões, queremos ouvir as opiniões dos outros. Isso é verdade tanto para as pessoas

comuns quanto para as organizações. Segundo Liu [2], uma das principais razões para a

falta de estudo sobre opiniões é o fato de que havia pouco texto opinativo disponível

antes da Word Wide Web.

3.1 Entendendo o problema

Como em qualquer problema científico, antes de resolvê-lo, precisamos definir

ou formalizar o problema. A formulação apresentará as definições básicas,

subproblemas, conceitos fundamentais e questões e objetivos a serem atingidos. Do

ponto de vista da aplicação, ele diz que as principais tarefas são suas entradas e saídas,

bem como os resultados que podem ser usados na prática. A seguir temos algumas áreas

de pesquisa da análise de sentimentos:

1. Classificação de sentimentos e subjetividade:

Essa é a área mais pesquisada na academia em geral. Ela trata a análise de

sentimentos como um problema de classificação de texto. Dois subproblemas são

pertinentes aqui:

Julho de 2011

1) A classificação de um texto opinativo como positivo ou negativo. Esse

problema também é conhecido como classificação de sentimento e tem por objetivo

encontrar o sentimento geral do autor do texto opinativo. Por exemplo, uma avaliação

de um produto seria classificada como positiva ou negativa.

2) Classificar uma frase ou palavra como objetiva ou subjetiva(essa etapa

também chamada de classificação de subjetividade) e, nessa última, classificá-la como

uma opinião positiva, negativa ou neutra.

2. Análise de sentimentos baseadas no objeto:

Primeiramente, é preciso descobrir o alvo da frase a que as opiniões se referem,

e então se determina se essas opiniões são positivas, negativas ou neutras.

Os alvos são objetos, e seus componentes, atributos e características. Um objeto

pode ser um produto, serviço, organização, evento, etc. Por exemplo, em uma avaliação

sobre um produto, primeiramente o produto e suas características que estão sendo

comentadas e posteriormente identificando se esses comentários foram positivos ou

negativos. Por exemplo, na frase: “o display do celular é ruim” o comentário é sobre o

display do objeto celular e sua classificação é negativa.

Diversas aplicações reais precisam desse tipo de análise para que possam ser

identificados os problemas e propostas soluções. Essas informações não são descobertas

na classificação de sentimentos e subjetividade, citada anteriormente.

3. Análise de sentimentos de sentenças comparativas:

A avaliação de um objeto pode ser feita de duas formas principais: Avaliação

direta e comparação. A avaliação direta, também chamada de opinião direta, da uma

opinião positiva ou negativa sobre o objeto, sem fazer menção quaisquer outros objetos

semelhantes. Por exemplo, “A imagem dessa TV é ruim” expressa uma opinião direta,

enquanto “A imagem dessa TV não é ao boa quanto a TV-y” exprime uma comparação.

Isso é bastante útil, principalmente se pensarmos em comparações de mercado, onde

uma empresa quer obter opiniões de seus produtos em relação a seus concorrentes.

Julho de 2011

4. Pesquisa e recuperação de opiniões:

As pesquisas na internet vêm se mostrado bastante efetivas em muitos aspectos,

porém não é difícil de imaginar o quão útil seriam pesquisas de opiniões. Por exemplo,

ao pesquisar “Aborto” seriam retornadas da busca opiniões positivas e negativas sobre a

prática do aborto. Essa pesquisa poderia ser interpretada como uma combinação de

recuperação de informações (recuperação de documentos relevantes para a consulta) e

análise de sentimentos (identificação e classificação desses documentos recuperados).

5. Classificação de spam e utilidade das opiniões:

As opiniões na internet são importantes para muitas aplicações e por isso, muitas

pessoas maliciosas disseminam mensagens de conteúdo duvidoso ou falso. A

classificação de spam é um problema pertinente nessa área para identificar que

mensagens emitem opiniões falsas, podendo ser falsas opiniões positivas (para

promover) ou falsas opiniões negativas (para prejudicar). Esses spams visam enganar os

leitores e sistemas automatizados.

A utilidade de opiniões se refere à qualidade das opiniões. A atribuição

automática de valores que expressem o quão útil é aquela opinião pode ser utilizada

para criar um ranking com base nesses valores. Esse ranking serviria para os leitores

olharem para as opiniões mais úteis.

3.2 Fases do processo e técnicas utilizadas

Basicamente, as fases envolvidas no processo de análise de sentimentos são:

1) Coleta de dados: Fase onde são coletados os dados sobre um determinado

objeto de pesquisa. Ainda nessa fase são descartados alguns conteúdos que

representam meramente fatos sem relevância para a análise.

2) Classificação: Fase onde são atribuídos os valores de polaridade são

atribuídos. Em geral, esses valores são positivo, negativo ou neutro.

3) Sumarização dos resultados: Os resultados das classificações são

sumarizados para um melhor entendimento do usuário.

Julho de 2011

Serão apresentadas algumas técnicas utilizadas no processo da análise de

sentimentos:

1) A técnica da análise sintática é feita no conteúdo do texto, identificando os

adjetivos e advérbios que possam apontar a opinião contida no texto. Essa

técnica é tem a vantagem de não ser necessário classificar anteriormente um

conjunto de textos. Entretanto, um analisador sintático eficiente é necessário,

assim como que as sentenças estejam sintaticamente corretas.

2) A técnica de aprendizagem de máquina requer uma classificação prévia de

um conjunto de conteúdos para ser utilizado como base de treinamento do

modelo. A partir desse conjunto de treinamento, novos conteúdos são

classificados. Essa técnica já é bastante utilizada e consolidada no ramo da

inteligência artificial, o que constitui uma vantagem. Entretanto, a

necessidade de diferentes conjuntos de treinamento para diferentes temas

constitui uma desvantagem.

3) A técnica da seleção de palavras faz uso de uma lista de palavras

previamente selecionadas e com valores atribuídos a elas para classificar as

palavras compreendidas no texto que está sendo analisado. Essa abordagem

pode classificar o conteúdo do texto em positivo, negativo ou neutro. Entre

suas vantagens está a simplicidade do processo e não ter que utilizar um

conjunto de treinamento. Entretanto, como desvantagem podemos apontar o

fato de ter que constituir previamente uma base de palavras associadas a

valores.

Essa última abordagem será utilizada nesse projeto, onde utilizaremos a base de

palavras SentiWordNet [4]. Essa base de dados será detalhada mais na frente.

Julho de 2011

3.3 Dificuldades encontradas

Existem várias dificuldades envolvidas no processo de análise de sentimentos,

como:

1) Distinguir se um texto é uma opinião ou um fato.

2) Identificar se num fato existe opiniões embutidas.

3) Detectar sarcasmos e ironias para evitar resultados contrários aos que

realmente eram o que os autores queriam expressar.

4) Identificar, dentro de um mesmo texto, a que objetos cada opinião se refere.

5) Quando pronomes são usados para referenciar os objetos do texto podem

dificultar a identificação deles.

6) Quando o texto é escrito com ortografia ou sintaxe errada dificulta bastante a

interpretação. Esse caso é comum em redes sociais e em blogs.

7) Quando pessoas ganham dinheiro e fazem críticas e propagandas contrárias

ao que elas realmente pensam do produto. Nesses casos é muito difícil

identificar que a opinião não reflete a realidade.

Podemos perceber que a análise de sentimentos é uma tarefa mais complexa do

que aparenta, pois diversos problemas, como os que foram citados anteriormente, são

inerentes a essa área.

Julho de 2011

4. Twitter

O Twitter é uma rede social gratuita onde os usuários enviam e recebem

pequenos textos. Cada usuário tem uma lista de seus seguidores e outra lista de usuários

que ele segue. Mensagens de texto de até 140 caracteres (os “tweets”) são escritos e

enviados (ou “twitados”) para que todas as pessoas que seguem o usuário recebam essa

mensagem. Concomitantemente, o usuário está constantemente sendo atualizado pelas

mensagens que os usuários que ele segue enviam.

Diversos aplicativos foram desenvolvidos para interagir com o Twitter, entre

eles complementos para navegadores de internet, softwares embarcados em celulares, e

até integração com jogos de videogame. O usuário também pode utilizar um simples

SMS para “twittar”, entretanto esse seviço poderá ser cobrado pela operadora telefônica.

A explicação para o limite de 140 caracteres do Twitter vem justamente do fato de que

uma mensagem SMS contém no máximo esse número de caracteres e o Twitter foi

inicialmente desenvolvido com essa idéia.

Uma das principais funcionalidades do Twitter só foi incorporada depois. Os

Trending Topics listam os assuntos mais comentados no mundo em um determinado

momento. Essa funcionalidade lista as palavras marcadas com # (hashtag) e nomes

próprios. É possível filtrar esses assuntos mais comentados por áreas, como países e

cidades. Por exemplo, é possível filtrar os assuntos mais comentados na cidade de

Miami, os EUA.

Atualmente, o Twitter ainda não utilizou propagandas ou anúncios no site, o que

poderia ser uma tendência natural de um site gratuito e com tantos usuários. Entretanto,

existem empresas que patrocinam pessoas influentes (com muitos seguidores) para

“twitarem” mensagens em favor dessas empresas e de seus produtos.

O Twitter vem inovando com novas atualizações e novidades, como as listas de

amigos e filtros de Trending Topics por países e cidades. Segundo [6], o serviço possui

uma grande quantidade de usuários que são usuários assíduos e postam varias

mensagens por dia. O Twitter troca cerca de três milhões de mensagens por dia. Em

maio de 2011, o Twitter alcançou 300 milhões de usuários e esse número vem

crescendo, embora seja em ritmo menor ao alcançado em 2009, quando ocorreu a maior

taxa de crescimento.

Julho de 2011

Figura 1 – Taxa de crescimento do twitter 2006-2009

Embora cresça a uma taxa menor, o Twitter ainda cresce e conta com uma base

de usuários bastante significativa. São esses usuários que contribuíram para esse

trabalho, onde foram utilizadas pesquisas sobre as hashtags do twitter para colher

informações e classifica-las.

Julho de 2011

5. SentiWordNet

SentiWordNet é uma ferramenta léxica para a mineração de opinião. Essa

ferramenta usa como base de dados o WordNet, um banco de dados que contém

palavras da língua inglesa. O WordNet contém substantivos, verbos, adjetivos e

advérbios agrupados em conjuntos de sinônimos cognitivos, os chamados synset, cada

um expressando um conceito distinto. Os synsets estão interligados por meio de

relações conceituais-semânticas e léxicas. SentiWordNet atribui a cada synset da

WordNet três classificações a respeito de sentimento: negatividade, positividade,

objectividade.

Cada synset “s” está associado a três valores numéricos Pos(s), Neg(s) e Obj(s)

que indicam o quanto positivo, negativo ou objetivo (ou neutro) os termos contidos em s

são. Um mesmo termo pode apresentar diferentes sentidos e, portanto assumir valores

diferentes de positivo, negativo e neutro. Por exemplo, a palavra “estimable” pode ter o

significado como adjetivo (obtendo um valor objetivo = 1, positivo = 0, negativo = 0)

correspondendo ao significado “pode ser computado ou estimado” ou ainda ter o

sentido “merecimento de respeito ou grande consideração” ( nesse sentido assumindo

valores de objetivo = 0.25, positivo = 0.75 e negativo = 0).

Cada valor está dentro do intervalo [0.0, 1.0] e a soma dos três valores

associados é necessariamente 1. Isso significa que cada synset tem valor diferente de

zero em pelo menos uma das categorias.

Segundo[4], o SentiWordNet ja teve quatro versões:

SentiWordNet 1.0 (2006), apresentada e publicada para fins de pesquisa.

SentiWordNet 1.1 (2007), um aprimoramento técnico que nunca chegou a ser

publicado.

SentiWordNet 2.0 (2008), apenas presente em uma tese de PhD.

SentiWordNet 3.0 (2010), versão atual.

A versão 3.0 do SentiWordNet utiliza o WordNet 3.0 enquanto as versões

anteriores utilizavam a versão WordNet 2.0.

Julho de 2011

O método utilizado para desenvolver SentiWordNet é uma adaptação dos

métodos de classificação para synsets de polaridade Positiva-Negativa e Subjetiva-

Objetiva de termos. O método depende da formação de um conjunto de três

classificadores ternários, cada um deles decidindo se um synset é positivo, negativo ou

objetivo. Cada classificador ternário difere dos outros no conjunto de treinamento e no

instrumento de aprendizado usado para treiná-los, produzindo diferentes classificações

dos synsets do WordNet. Os scores relacionados a opiniões de cada synset são

determinados pela proporção dos classificadores ternários que tenham dado o

correspondente rótulo a ele. Se todos os classificadores ternários derem o mesmo rótulo

a um synset, esse terá o maior score, caso contrário, cada rótulo terá um score

proporcional aos classificadores.

São criados três conjuntos de synsets, Lp (positivo), Ln (negativo) e Lo

(objetivo). No início é criado manualmente os Lp e Ln com um número pequeno de

synsets e com semânticas fundamentalmente positivas e negativas, por exemplo, “nice”

e “nasty”.

Utilizando as relações do WordNet, por exemplo, antonímia, similaridade e

derivação, os Lp e Ln são expandidos através de K iterações. Lo é o conjunto de synsets

que não estão em Lp ou Ln.

Baixos valores de K produzem pequenos conjuntos de treinamento para positivo

e negativo, assim produzem classificadores binários com baixa memória e alta precisão

para essas categorias. Se K aumentar, os conjuntos aumentam e a memória também

aumenta, entretanto, surgem “ruídos” que diminuem a precisão.

Para produzir os scores finais do SentiWordNet foram utilizados diferentes

configurações de conjuntos de treinamento e algoritmos de aprendizado.

Especificamente, foram definidos quatro conjuntos de treinamentos diferentes, pela

escolha de quatro valores para K (0, 2, 4, 6) e utilizados alternadamente dois algoritmos

de aprendizado (Rocchio e SVM). Portanto, no total foram feitos oito classificadores

ternários. Com K=0 e o algoritmo SVM foram obtidos classificadores binários bastante

“conservadores” com uma memória baixa e alta precisão. Para K=6 e SVM foram

produzidos classificadores binários “liberais” que classificaram muitos synsets como

positivo ou negativo, mesmo com uma pequena presença de subjetividade. Para o

algoritmo Rocchio ouve um comportamento similar.

Julho de 2011

Por fim, os scores de SentiWordNet são obtidos combinando, para cada synset,

os scores produzidos nos oito classificadores ternários e normalizando eles para 1.0.

Exemplos da utilização do SentiWordNet utilizando a ferramenta

disponível no próprio site http://sentiwordnet.isti.cnr.it/:

1) Ao pesquisar a palavra “excellent” obtivemos o seguinte resultado:

Podemos perceber que a palavra “excellent” foi classificada como Positivo = 1,

enquanto Negativo = 0 e Objetivo = 0. Podemos atribuir esses valores graças a

definição da própria palavra, que significa algo muito bom, de grande qualidade.

Podemos ainda observar que, na verdade, a pesquisa retornou o synset que contém a

palavra “excellent” e esses valores de positivo, negativo e neutro são do synset e não da

palavra, como dito anteriormente. Nesse conjunto de sinônimos podemos observar as

palavras “splendid” e “fantabulous” que são sinônimos, nesse significado expresso

abaixo das palavras, de “excellent”.

Julho de 2011

2) Ao pesquisar a palavra “uggly” observamos os seguintes resultados:

Nesse primeiro resultado, a palavra “ugly” aparece num synset onde contém a

própria palavra, e com um significado de feio, aquilo que desagrada os padrões. Nesse

sentido assume valores de Positivo = 0, Negativo = 0.375 e Objetivo = 0.625.

Nesse segundo resultado, temos um significado diferente do primeiro, onde

significa algo relacionado a sentimentos ruins. Nesse significado, os valores mudaram

para Positivo = 0, Negativo = 0.75 e Objetivo = 0.25.

Abaixo temos os outros dois resultados obtidos na pesquisa, onde a palavra

“ugly” se apresenta em synsets diferentes, com significados e valores diferentes.

Julho de 2011

3) Ao pesquisar a palavra “house” obtivemos resultados interessantes.

Mostraremos apenas alguns.

Nesse primeiro resultado, a palavra “house” é um nome com o significado mais

óbvio da palavra: uma habitação que serve de alojamento para uma ou mais famílias.

Recebe os valores de Positivo = 0, Negativo = 0 e Objetivo = 1.

A palavra “house” ainda recebe outros 11 significados como nome, mas todos

semelhantes ao primeiro e obtendo sempre valores idênticos.

Julho de 2011

Nesse contexto, a palavra é um verbo e assume o significado: conter ou dar

cobertura. Recebe os valores de Positivo = 0, Negativo = 0 e Objetivo = 1.

Ainda como verbo, recebe outro significado onde seu significado é proporcionar

habitação. Também recebe valores de Positivo = 0, Negativo = 0 e Objetivo = 1.

Como podemos observar, as palavras podem receber várias classificações e

significados diferentes, com valores de Positivo, Negativo e Objetivo diferentes. Vale

observar que as palavras vêm no formato Palavra#Número, onde o #Número serve para

diferenciar as palavras em significados diferentes. Por exemplo, a ugly#1 ≠ ugly#2 ≠

ugly#3 ≠ ugly#4.

Julho de 2011

6. Classificação de opiniões

Resumidamente, a análise de sentimentos que foi implementada nesse trabalho

consiste em três fases:

1. Coleta de dados: Será feita através da pesquisa por assuntos no Twitter.

2. Classificação: A polaridade do conteúdo resultante será classificada em positiva,

negativa ou neutra. Para isso será utilizada a ferramenta SentiWordNet.

3. Sumarização dos resultados: Será feito um relatório mostrando os resultados

obtidos.

Esse trabalho foi desenvolvido utilizando a linguagem Java para a escrita do

código, onde foi utilizada a API Twitter4j 2.1.7 para utilizar as funções relativas a

pesquisa no Twitter. Também foi utilizada a ferramenta SentiWordNet 3.0 para fornecer

os dados necessários para a classificação das palavras.

Primeiramente, é necessário coletar os dados que vão ser analisados e para isso

foi utilizada funções de pesquisa da API Twitter4j onde é passada uma palavra-chave e

é retornado um número x (parâmetro) de tweets que contenham a palavra-chave. Esse

resultado foi reunido em um arquivo de texto que reúne diversas pesquisas e resultados

sobre vários temas.

Para classificar esse conteúdo foi utilizado um arquivo de texto que é a base de

dados do SentiWordNet 3.0. Esse arquivo contém as seguintes informações:

1) Na primeira coluna existe uma letra que indica a classe gramatical a que um

determinado grupo de sinônimos corresponde. As letras são „a‟ para adjetivo,

„n‟ para substantivo, „r‟ para advérbio e „v‟ para verbo.

2) A segunda coluna contém um número de identificação da linha

3) A terceira coluna contém o valor positivo (valor entre 0 e 1) associado ao

determinado conjunto de sinônimos correspondente.

4) A quarta coluna contém o valor negativo (valor entre 0 e 1) associado ao

determinado conjunto de sinônimos correspondente.

5) A quinta coluna corresponde ao conjunto de sinônimos ao qual a linha do

arquivo se refere. Cada palavra está associada a „#‟+ “número” (que

corresponde a ocorrências distintas de palavras iguais)

Julho de 2011

6) A sexta e última coluna corresponde ao significado daquele conjunto de

sinônimos.

A seguir temos exemplos de linhas do arquivo:

n 04849241 0.875 0 goodness#2 good#2 moral excellence or admirableness;

"there is much good to be found in people"

a 00523364 0.625 0 good#9 thorough; "had a good workout"; "gave the house a

good cleaning"

Em ambos os casos mostramos valores e significados para a palavra “good”.

Podemos perceber que no primeiro caso ela aparece como um substantivo e valor

positivo = 0.875 e no segundo caso um adjetivo com valor positivo = 0.625.

Para classificar os textos extraídos do Twitter utilizamos o seguinte algoritmo:

Score =

, onde Si é o score individual de cada significado de

uma palavra e t é o tamanho do conjunto que contém os scores individuais.

Sum =

, onde i e t tem o mesmo significado anterior.

Score final =

A partir desse valor, classificamos as palavras da seguinte maneira:

1) Para Score final >= 0,75, a palavra é “Muito positiva”.

2) Para 0,25 <= Score final < 0,75, a palavra é “Positiva”.

3) Para 0 < Score final < 0,25, a palavra é “Fracamente positiva”.

4) Para Score final = 0, a palavra é “Neutra”.

5) Para 0 > Score final > -0,25, a palavra é “Fracamente negativa”.

6) Para 0,25 >= Score final > -0,75, a palavra é “Negativa”.

7) Para Score final <= -0,75, a palavra é “Muito negativa”.

Em seguida, para classificar o texto aplicamos o seguinte algoritmo: Para cada

palavra contida no texto, soma-se o valor de seu score associado (conforme calculado

anteriomente) ao score total do texto. Se esse valor for positivo, indica que o texto fala

algo bom. Entretanto, se o valor for negativo, indica que o texto fala algo ruim.

Julho de 2011

A seguir mostraremos alguns resultados obtidos com o programa:

Palavra consultada: obama

Tweet: obama is a very good president

Score: 2.131094839532888

Palavra consultada: obama

Tweet: obama is a good president

Score: 1.5894281728662214

Palavra consultada: obama

Tweet: obama is a bad president

Score: -1.4316045137295812

Palavra consultada: Brazil

Tweet: Brazil is a very pretty country

Score: 0.6053467385926441

Palavra consultada: Brazil

Tweet: Brazil is a pretty country

Score: 0.06368007192597745

Palavra consultada: wallmart

Tweet: at wallmart and there is a girl with bright pink neon hair :o

it looks awesome

Score: 1.0538625952221223

Palavra consultada: Osama

Tweet: you should take osama's mangled head and put it on a stake out

on the white house lawn. that'll frighten them towelheads

Score: -0.7643628561311395

Palavra consultada: Osama

Tweet: Osama bin Laden corpse photo is fake

Score: -1.0237226277372262

Palavra consultada: Beatles

Tweet: Its mad how we got from The Beatles, Johnny Cash, The Kinks

etc, to Black eyed peas, Justin Bieber and Lady Gaga. Depressing world

now

Score: -0.4893517138599106

Palavra consultada: Barcelona

Tweet: Barcelona have never won the champions league when Anderson

has scored twice in the semi final

Score: -1.0888377964297806

Palavra consultada: Walmart

Tweet: where is this Walmart event?

Score: 0.0

Palavra consultada: Walmart

Tweet: Walmart is a good supermarket

Score: 1.5894281728662214

Julho de 2011

Foi feita uma pesquisa pela palavra Obama para obter 100 tweets e analisar os

resultados. No geral, foram 38 opiniões negativas, 24 opiniões positivas e 38 tweets

neutros. O programa obteve uma taxa de acerto de 54%. Sendo o problema principal

para justificar essa taxa o fato de os tweets não serem, muitas vezes, escritos por uma

linguagem formal. Ou seja, erros de sintaxe e de morfologia, abreviações e o uso de

gírias geram resultados indevidos. O fato de muitos tweets terem opiniões irônicas

também contribui para um resultado de classificação indevido.

Através dessa análise, ficou claro que trabalhar com o Twitter é complicado. É

necessário fazer um tratamento na linguagem de forma a evitar os tweets escritos em

linguagem coloquial. Para aprimorar ainda mais seria importante fazer uma detecção de

ironias para evitar que algo “aparentemente positivo” conte como positivo, quando na

realidade o seu significado é negativo.

Julho de 2011

7. Conclusão

Esse trabalho abordou a análise de sentimentos no Twitter, mostrando uma das

formas de como a técnica da mineração de opiniões pode ser útil na classificação de

conteúdo de usuários na internet. A análise de sentimentos é uma área com diversos

desafios e problemas a serem resolvidos.

Foi abortada a técnica da classificação de textos utilizando scores, com a ajuda

da ferramenta SentiWordNet 3.0, onde conseguimos obter bons resultados de

classificação.

Entretanto, ainda existem diversos problemas a serem resolvidos, como detecção

de ironias, correção de textos escritos incorretamente, opiniões falsas e identificações de

objetos referenciados por pronomes.

Pesquisas e aplicações nessa área tendem a evoluir tanto no tocante a análise de

sentimentos como em aplicações que utilize o Twitter e o SentiWordNet. Novos

algoritmos de classificação e tratamento dos textos devem aperfeiçoar os resultados.

Julho de 2011

8. Referências bibliográficas

1. Pang, B. and Lee, L. “Opinion Mining and Sentiment Analysis”, Foundations and

Trends in Information Retrieval, 2008.

2. Liu, B. “Handbook of Natural Language Processing – Sentiment Analysis and

Subjectivity”. Department of Computer Science, University of Illinois at Chicago,

2010.

3. Liu, B. “Sentiment Analysis: A Multi-Faceted Problem”. Department of Computer

Science, University of Illinois at Chicago, 2010.

4. Baccianella S., Esuli A., Sebastiani F. “SENTIWORDNET 3.0: An Enhanced

Lexical Resource for Sentiment Analysis and Opinion Mining”. Istituto di Scienza e

Tecnologie dell‟Informazione, Consiglio Nazionale delle Ricerche.

5. Esuli A. and Sebastiani F. “SENTIWORDNET: A Publicly Available Lexical

Resource for Opinion Mining”. Istituto di Scienza e Tecnologie dell‟Informazione,

Consiglio Nazionale delle Ricerche. Dipartimento di Matematica Pura e Applicata,

Universit`a di Padova.

6. Cheng, A., Evans M., Singh H. “Inside Twitter: A In-Depth Look Inside the

Twitter World”. Disponível em: http://www.sysomos.com/insidetwitter Acesso em :

Junho 2011.

7. Java, A. et al. “Why We Twitter: Understanding Microblogging Usage and

Communites”. University of Maryland, Baltimore County. 2007