Post on 04-Dec-2018
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