análise de sentimento - parte i

28
Introdução Análise de Sentimento - Parte I Erica Castilho Rodrigues 26 de Março de 2014 1

Upload: tranliem

Post on 07-Jan-2017

230 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Análise de Sentimento - Parte I

Introdução

Análise de Sentimento - Parte I

Erica Castilho Rodrigues

26 de Março de 2014

1

Page 2: Análise de Sentimento - Parte I

Introdução

Introdução

2

Page 3: Análise de Sentimento - Parte I

Introdução

O que será visto nessa aula?I O que é análise de sentimento?I Vale a pena aplicar essa técnica?I Quais são desafios?I De maneira geral, como é feita?

3

Page 4: Análise de Sentimento - Parte I

Introdução

I O que queremos dizer com sentimento aqui?I atitudes;I emoções;I opiniões.

I Impressões subjetivas e não fatos.

4

Page 5: Análise de Sentimento - Parte I

Introdução

I Em geral, assume-se que as opiniões assumem umcaráter binário:

I a favor/ contra;I gosta/ não gosta;I bom/ruim.

I Termos muito usados nessa área:I “Orientação Semântica”;I “Polaridade”.

I Se referem a quão negativa ou positiva uma palavra é.I “ótimo” é muito positiva.I “péssimo” é muito negativa.

5

Page 6: Análise de Sentimento - Parte I

Introdução

Objetivo da Análise de Sentimento:I Usar técnicas de:

I Processamento Natural de Linguagem;I Estatística;I Aprendizagem de Máquina

I para extrair a opinião de um texto.I Também chamada de “Mineração da Opinião”.

6

Page 7: Análise de Sentimento - Parte I

Introdução

Tipos de perguntas que busca responderI A resenha desse produto é positiva ou negativa?I Nesse e-mail o consumidor parece satisfeito ou não?I Usando uma amostra de tweets:

I como as pessoas estão respondendo à campanha desseproduto?

I Como tem mudado a atitude dos blogueiros em relação aopresidente?

7

Page 8: Análise de Sentimento - Parte I

Introdução

Exemplo:I Uma empresa está analisando suas vendas de notebooks.

I Ele tem dados sobre:I vendas, preços,

especificações, etc.I Deseja saber qual opinião

do consumidor sobre oproduto e os serviçosprestados:

I o design é feio?I o serviço prestado ao

consumidor deixa adesejar?

8

Page 9: Análise de Sentimento - Parte I

Introdução

Exemplo:I Verificar se os consumidores não entenderam algum

aspecto sobre os serviços prestados:I acreditam que alguma atualização não está disponível

quando na verdade está.

I É difícil obter informações de consumidores que nãocompraram o produto.

I Podemos aplicar as técnicas de Análise de Sentimentopara:

I procurar opiniões de cliente na internet;I buscar por resenhas deste e outros notebooks em Blogs,

rede sociais, sites de lojas, etc;I resumir toda essa informações e tirar conclusões sobre

opinião das pessoas sobre o produto.

9

Page 10: Análise de Sentimento - Parte I

Introdução

I A Análise de Sentimento também pode ser aplicada emoutras áreas:

I política;I sociologia;I psicologia;I esportes.

I Exemplo: busca de tweets homofóbicos.I Verificar como muda a opinião de um usuário após um

evento.

10

Page 11: Análise de Sentimento - Parte I

Introdução

Aplicações na PolíticaI Analisar tendências.I Identificar viéses ideológicos.I Dar publicidade a mensagens e propagandas.I Avaliação das opiniões públicas/eleitores.I Analisar discussões políticas.

11

Page 12: Análise de Sentimento - Parte I

Introdução

Por que usar a Análise de Sentimentos?I Os seres humanos são criaturas subjetivas.I É muito importante coletar suas opiniões.I Porém é custoso obter essa informação.I Quando não é fornecida de maneira espontânea, nem

sempre condiz com a realidade.

12

Page 13: Análise de Sentimento - Parte I

Introdução

Desafios da Análise de SentimentoI As pessoas expressam opiniões de maneira complexa.I Podem usar ironias, sarcasmo, etc.I Inversão na ordem das frases também dificulta.I Erros de digitação e gírias.I Pessoas mudam de tópico bruscamente.

13

Page 14: Análise de Sentimento - Parte I

Introdução

O que queremos classificar?I Há muitas possibilidades do que nós podemos querer

classificar:I Usuários;I Textos;I Sentenças (parágrafos, pedaços de texto);I Palavras;I tweets.

14

Page 15: Análise de Sentimento - Parte I

Introdução

I Para classificar textos e sentenças, precisamos primeiro:I classificar palavras e expressões.

I Não basta classificar palavras.I “baixo” poderia ser classificada como negativa.I A expressão “preço baixo” é positiva.I Uma forma simples de classificar um texto:

I contar o número de palavras positivas e negativas.

I Problemas com essa abordagem? Claro!I Ironia, sarcasmo, etc.

15

Page 16: Análise de Sentimento - Parte I

Introdução

I Precisamos então de:I uma lista de palavras positivas e negativas .

I Existem listas extensas para o inglês.I Muitos métodos automáticos buscam expandir essas listas

- tópico de pesquisa.I Para o porguês as listas não são tão grandes.I O processamento de linguagem para o português ainda

está sendo desenvolvido.

16

Page 17: Análise de Sentimento - Parte I

Introdução

Emoticons/SmilesI Em textos curtos como tweets a análise de sentimento é

mais complicada.I Existe pouca informação nas mensagens.I Os sentimentos são representados através de

smiles/emoticos.: −) : −/ : −(

I Vejamos algumas ferramentas já disponíveis na internet.

17

Page 18: Análise de Sentimento - Parte I

Introdução

General InquirerI Ferramenta de análise de conteúdo.I Criado em 1966.I Banco de palavras criado manualmente.I Classifica a conotação positiva e negativa das palavras.I Disponível em

http://www.wjh.harvard.edu/~inquirer .

18

Page 19: Análise de Sentimento - Parte I

Introdução

LIWCI Busca linguística e contagem de palavras.I Semelhante ao GI.I Conta palavras pertencentes às categorias positiva e

negativa.I Disponível em http://www.liwc.net/ .

19

Page 20: Análise de Sentimento - Parte I

Introdução

WordnetI Banco de sinônimos de palavras em inglês.I Substantivos, verbos, adjetivos e adjetivos são agrupados

em conjuntos de sinônimos.I Uma rede é criada.I Palavras são ligadas de acordo com relações conceituais

e lexicais.I Não foi desenvolvido especificamente para Análise de

Sentimento.I Tem sido usado para aumentar a lista de palavras

positivas e negativas.I Busca sinônimos de palavras que já estão na lista.I Disponível em http://wordnet.princeton.edu/ .

20

Page 21: Análise de Sentimento - Parte I

Introdução

SentiWordNetI Recurso desenvolvido para mineração da oponião.I Utiliza a base de dados do Wordnet.I A cada sentença se atribui um dos sentimentos:

I positividade, negatividade e objetividade.

I Disponível em http://sentiwordnet.isti.cnr.it/ .

21

Page 22: Análise de Sentimento - Parte I

Introdução

General SentimentI Coletam opiniões dos consumidores na internet.I Sintetizam e extraem informação dos resultados obtidos.I Auxiliam na tomada de decisões.

22

Page 23: Análise de Sentimento - Parte I

Introdução

Exemplo de um Relatório

23

Page 24: Análise de Sentimento - Parte I

Introdução

Exemplo de um Relatório

24

Page 25: Análise de Sentimento - Parte I

Introdução

Exemplo de um Relatório

25

Page 26: Análise de Sentimento - Parte I

Introdução

Sentiment140I Aplicativo desenvolvido para Análise de Sentimento de

dados do Twitter.I Coletam os tweets que mencionam determinado termo.I Contam o número de palavras positivas e negativas em

cada um deles.

26

Page 27: Análise de Sentimento - Parte I

Introdução

Método mais simples...I Tem uma lista de palavras positivas e negativas.I Conta a frequência em cada sentença.I Problemas com essa metodologia:

I não considera níveis de positividade/negatividade diferenteentre as palavras

I bom e ótimo são considerados iguais;I só considera o nível da palavra;I desconsidera o contexto.

27

Page 28: Análise de Sentimento - Parte I

Introdução

Função em R para calcular o sentimento:

score.sentiment = function(sentences, pos.words,neg.words, .progress=’none’){

require(plyr)require(stringr)# recebe como entrada um vetor de sentenças e uma

lista de palavras positivas e negativas# plyr - pacote para aplicar funções em vetores,

listas, matrizes rapidamente# laply - aplica a função em cada sentença e

retorna um vetor correspondente ao score# de cada umascores = laply(sentences, function(sentence,

pos.words, neg.words) {# clean up sentences with R’s regex-driven global

substitute, gsub(): 28