Tarefa de Extracção de Sentimentos no Twitter O trabalho consiste

Propaganda
Tarefa de Extracção de Sentimentos no Twitter
O trabalho consiste na análise do fluxo de mensagens Twitter, com o objectivo de detectar
mensagens que exprimam sentimentos pessoais (e.g. “hj estou super contente! ☺….”).
O projecto deve ser construído em duas fases, de complexidade crescente. Numa primeira fase
os alunos partirão de uma lista de palavras associadas a sentimentos positivos e outra
associada a sentimentos negativos e deverão construir manualmente algumas regras de
identificação de mensagens fazendo uso da tecnologia de expressões regulares fornecida em
várias linguagens de programação (nomeadamente Perl). Desta forma, será possível construir
sistemas que identifiquem mensagens com uma estrutura relativamente simples (e.g. “sintome feliz”, “ando deprimido”, “estou contente”). Devem nesta fase ser tidas em conta também
as partículas que introduzam negação (e.g. ”não ando nada fixe….”). Sempre que possível,
deve ser feito uso da informação contida nos “emoticons” (e.g. “:p” ou “:(”) eventualmente
presentes na mensagem.
O resultado do processamento deverá ser colocado numa tabela para acesso simples de
sistemas de visualização (a serem realizados por outros colegas). A tabela resultado deverá
conter informação relativa a:
•
•
•
Mensagem Twitter original (texto, emissor e data)
Polaridade do sentimento encontrado (positivo, neutro ou negativo)
Palavra ou expressão descritiva do sentimento (e.g. “feliz”, “muito contente”)
Esta tabela deverá se actualizada de hora a hora, através da instalação do sistema de extracção
num servidor dedicado para este efeito.
Numa segunda fase, os alunos deverão generalizar o sistema construído para fazer uso de
algoritmos de classificação automática. Para isso deverão começar por construir manualmente
um corpus de treino (podem fazer uso da base de regras compilada anteriormente para
acelerar o processo), que usarão para treinar o classificador. O classificador a usar deverá ser
baseado em Support Vector Machines. Depois de treinado, o classificador deverá ser usado
para fazer uma filtragem de mensagens dividindo-as em mensagens de sentimento positivo ou
sentimento negativo (poderá ser necessário treinar um classificador prévio que separa
mensagens em “neutras” ou “com algum sentimento”). O resultado deverá ser armazenado
numa tabela semelhante à anterior.
Linguagem de programação aconselhada: Perl (ou Python).
Contacto para acesso a dados Twitter: Gustavo Laboreiro ([email protected])
Contacto para acesso a listas de palavras de sentimento: Jorge Teixiera ([email protected])
Tarefa de Visualização de Sentimentos no Twitter
O trabalho consiste no desenvolvimento de sistemas de visualização de dados relacionados
com o Twitter. Os dados que estarão disponíveis incluirão:
•
•
•
Mensagem Twitter original (texto, emissor e data)
Polaridade do sentimento encontrado (positivo, neutro ou negativo)
Palavra ou expressão descritiva do sentimento (e.g. “feliz”, “muito contente”)
O acesso aos dados será feito através de tabelas várias que se encontrão disponíveis numa
base de dados. A arquitectura deste sistema de visualização terá dois módulos principais:
•
Módulo de Back-End: módulo responsável por aceder aos dados na tabelas, por obter
amostra de dados a visualizar e por os exportar em formatos apropriado para a
aplicação de visualização.
•
Módulos de Front-End: módulos que fazem interface com o utilizador (que pode
introduzir parâmetros) e, recebendo os dados fornecidos pelo módulo de back-end
gera as visualizações correspondentes.
Relativamente aos módulos de front-end espera-se que sejam desenvolvidos vários módulos
em esquema “widget” para instalação em plataformas de Blogging (e.g. WordPress) ou para
aplicação simples em sites autorizados (e.g. via inclusão de um pequeno snippet de JavaScript).
Estes widgets deverão permitir visualizar:
•
Temperatura emocional da Twittersfera (actual e ao longo o tempo)
•
Nuvens de palavras de sentimentos
•
Timelines com mensagens que exprimam sentimentos
•
Outras visualizações que os alunos proponham
Espera-se criatividade (ver http://www.visualcomplexity.com) na implementação de soluções
de visualização, mas também realismo.
Linguagens de programação aconselhadas:
•
Perl ou PHP para o Back-End
•
JavaScript (ProtoViz) + HTML
Contacto para acesso a dados Twitter: Gustavo Laboreiro ([email protected])
Download