Pós-Graduação em Ciência da Computação
“AVALIAÇÃO QUALITATIVA DA AUDIÊNCIA DE
TELEVISÃO BASEADA NA CLASSIFICAÇÃO DE
SENTIMENTO DE USUÁRIOS EM REDES SOCIAIS”
Por
Artur Vieira Tenorio
Dissertação de Mestrado
Universidade Federal de Pernambuco
www.cin.ufpe.br/~posgraduacao
RECIFE 2014
Artur Vieira Tenório
Universidade Federal de Pernambuco
CENTRO DE INFORMÁTICA
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Artur Vieira Tenorio
“AVALIAÇÃO QUALITATIVA DA AUDIÊNCIA DE TELEVISÃO BASEADA NA CLASSIFICAÇÃO DE SENTIMENTO DE USUÁRIOS EM REDES
SOCIAIS."
Este trabalho foi apresentado à PÓs-Graduação em Ciência da COMPUTAÇÃO do Centro de INFORMáTICA DA Universidade Federal de Pernambuco como requisito parcial para obtenção do grau de MESTRE EM Ciência da Computação.
ORIENTADOR(A): CARLOS ANDRÉ GUIMARÃES FERRAZ
RECIFE 2014
Artur Vieira Tenório
Catalogação na fonte Bibliotecária Jane Souto Maior, CRB4-571
Tenório, Artur Vieira Avaliação qualitativa da audiência de televisão baseada na classificação de sentimento de usuários em redes sociais / Artur Vieira Tenório. - Recife: O Autor, 2014. 98 f., fig., tab. Orientador: Carlos André Guimarães Ferraz.
Dissertação (mestrado) - Universidade Federal de Pernambuco. CIn, Ciência da Computação, 2014. Inclui referências e apêndice. 1. Sistemas Distribuídos. 2. TV digital. 3. Sensibilidade a contexto. I. Ferraz, Carlos André Guimarães (orientador). I. Título. 004.36 CDD (23. ed.) MEI2014 – 124
Artur Vieira Tenório
Dissertação de Mestrado apresentada por Artur Vieira Tenorio à Pós-Graduação em
Ciência da Computação do Centro de Informática da Universidade Federal de
Pernambuco, sob o título “Avaliação de Audiência Qualitativa de Televisão Baseadas
na Classificação de Sentimento de Usuários em Redes Sociais” orientada pelo Prof.
Carlos André Guimarães Ferraz e aprovada pela Banca Examinadora formada pelos
professores:
______________________________________________
Prof. Kiev Santos da Gama Centro de Informática / UFPE ______________________________________________ Profa. Yvana Carla Fechine de Brito Departamento de Comunicação Social / UFPE _______________________________________________ Prof. Carlos André Guimarães Ferraz
Centro de Informática / UFPE Visto e permitida a impressão. Recife, 28 de fevereiro de 2014. ___________________________________________________ Profa. Edna Natividade da Silva Barros Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.
Artur Vieira Tenório
Dedicado aos aos meus pais, fundamentais na
minha vida
Artur Vieira Tenório
Agradecimentos
Agradeço primeiramente aos meus pais, pois sem o esforço e dedicação deles eu
não teria as oportunidades que tive. Os constantes conselhos e incentivos e ajudas
dados pelo meu pai, Agenor Tenorio e minha mãe Solange Tenório foram fundamentais
para que eu tivesse atingido este objetivo. Aos meus irmãos, Fábio e Vitor, que mesmo
indiretamente estiveram presentes durante toda a elaboração deste trabalho.
Agradeço também à minha namorada e futura companheira para toda a vida, Adriana
Lemos, onde encontrei apoio e compreensão nas fases mais complicadas. Espero não
precisar compartilhar mais dias tão stressantes com você.
Ao meu orientador Prof. Dr. Carlos Ferraz pela compreensão, paciência e longas
conversas sempre proveitosas durante as reuniões que resultaram na elaboração deste
trabalho.
Ao CESAR (Centro de Estudos e Sistemas Avançados do Recife), onde adquiri
conhecimento e experiência na área de televisão digital dentre outras tecnologias.
Aos meus amigos mais próximos, que por vezes confundidos como irmãos, que
direta ou indiretamente me ajudaram bastante durante todo o período deste projeto. Em
especial Cirdes Borges, onde pude tirar dúvidas relacionadas ao desenvolvimento deste
projeto utilizando tecnologias que eu tinha pouco domínio. Cleano, Felipe “Lapeta”,
Renata, Romero “Mafra”, verdadeiros companheiros para todos os momentos bons e
ruins.
Artur Vieira Tenório
“A ciência nunca resolve um problema sem criar pelo menos
outros dez.”
George Bernard Shaw
Resumo
O televisor é o aparelho eletrônico mais popular no Brasil, sendo considerado uma
ferramenta com grande poder de influência e formação de opinião pública devido à sua
facilidade de acesso, abrangência e popularidade. A crescente inclusão digital vista no
Brasil, juntamente com o acesso às redes sociais, permitiu que telespectadores
pudessem expressar opinião a respeito de programas televisivos, não somente entre os
seus próximos, mas entre milhões de outros telespectadores durante um programa
através de notebooks, celulares e tablets, conhecidos também como a “segunda tela”.
Dentre as redes sociais com grande acesso, destaca-se o Twitter quando se deseja ler
estes dados. Utilizando técnicas de Análise de Sentimentos (AS), diversas ferramentas
surgiram para determinar a polaridade das opiniões, sendo positiva, negativa ou neutra.
Automatizar o processo de captura de dados, levando em consideração a relevância
destes sobre um programa televisivo, e identificar o sentimento empregado pelo
telespectador, é uma forma de qualificar a audiência. Esta é uma informação útil para
produtores de conteúdo quando se deseja tomar uma decisão ou verificar se alguma
parte do conteúdo não agrada o público. Entretanto, estas informações estão dispersas,
ocasionando um eventual processo manual de verificação. Visando identificar todas as
dificuldades existentes neste processo, é proposto um sistema capaz de automatizar
todas as etapas envolvidas. São utilizadas informações contextuais sobre o programa
televisivo e o telespectador para determinar se o conteúdo de uma publicação feita por
este tem relação com o conteúdo do programa em questão. Em seguida e com o apoio
das ferramentas de classificação de sentimentos mais mencionadas em trabalhos
acadêmicos na área de Análise de Sentimentos (SentiWordNet e SentiStrenght),
determinar a polaridade do texto publicado por um telespectador. Os resultados obtidos
mostram que as propostas para seleção de dados relevantes são eficazes, entretanto
existem diversas dificuldades envolvidas quando se deseja classificar o sentimento
empregado. O fato de não existir ferramentas de AS adequadas para a grafia das redes
sociais e que sejam compatíveis com a língua portuguesa, torna-se um fator dificultante.
Além disto, determinar a intenção do telespectador em relação ao programa ou ao tema
abordado neste é um processo e torna-se um desafio que envolve áreas além da ciência
da computação.
Palavras-chave: TV Digital, Classificação de Sentimentos, Redes Sociais.
Artur Vieira Tenório
Abstract
The television is the most popular electronic equipment of Brasil and it is considered
a resource with great power to influence the public opinion due the facility to be reached,
comprisement and popularity.The growing digital inclusion observed in Brasil along with
access to social networks, permited the TV viewers could to express your opinions
regarding TV programs, not only between their neighbors but also among millions of
another TV viewers during the time of one TV program by the use of notebooks, mobiles
and tablets, known also as "second screen". Among the social networks with big access,
we can highlight the Twiter when we wish to read these informations. By the use of
technics of Sentiment Analysis, several tools have emerged to determine the polarity of
opinions, being positive, negative or neutral. Automate the process of capturing data,
considering the relevance of these on a television program, and identify the feeling by the
TV viewer, is a way to qualify the audience. This is a useful information to programs
producers when they want to take a decision or to verify if the public did not like any part
of the contents. However, this information is scattered on the Internet, causing a possible
manual verification. With the objective of to identify all the dificulties in this process, we
propose a system capable of automate all the steps involved. It is used context
information in order to determine a relation between the TV program and the social
network text provided by the TV viewers. Then, with the support of the tools that classify
sentiment mentioned in academic works in the area of Sentiment Analysis (SentiWordNet
and SentiStrenght), to determine the polarity of the text published by a TV viewer. The
results shows that the proposals for the selection of relevant data are effective, however
there are several difficulties involved when we want to classify the feeling used. The fact
of not exist appropriate feeling analysis tools for social networks and that be compatible
with the Portuguese language, becomes a difficult factor. Moreover, determine the intent
of the TV viewer regarding to the TV program or the topic covered in this process
becomes a challenge that involves areas beyond computer science field.
Keywords: Digital Television, Sentiment Analysis, Social Networks
Artur Vieira Tenório
Lista de Figuras FIGURA 1: TRANSMISSÃO DE SINAL DIGITAL. FONTE:(FERRAZ; SQUIRRA; FECHINE, 2009) ....................................................... 20 FIGURA 2: MULTIPLEXAÇÃO DE UM TS; FONTE: (ARIB B-31, 2005) ........................................................................................ 21 FIGURA 3: PACOTE DE DADOS EM UM TS; FONTE: (ISO/IEC 13818-1, 1995) ........................................................................... 22 FIGURA 4: ATIVIDADES TÍPICAS DE USUÁRIOS DE INTERNET MÓVEL E TV. .................................................................................... 28 FIGURA 5: EXEMPLO SENTISTRENGTH. ................................................................................................................................. 35 FIGURA 6: EXEMPLO SWN PALAVRA LOVE; ........................................................................................................................... 36 FIGURA 7: VISÃO GERAL DO TV AUDIENCE ANALYZER. ............................................................................................................ 44 FIGURA 8: REQUISITOS DO SISTEMA. FONTE: PRÓPRIO AUTOR .................................................................................................. 48 FIGURA 9: TRANSMISSÃO TS. FONTE: (ABNT NBR 15601, 2008) .......................................................................................... 49 FIGURA 10: CAPTURA IMAGEM VLC. FONTE: PRÓPRIO AUTOR ................................................................................................. 50 FIGURA 11: FUNCIONAMENTO DA REST API. FONTE: TWITTER ................................................................................................ 53 FIGURA 12: COMUNICAÇÃO STREAM API TWITTER. FONTE: (TWITTER, 2013B) ..................................................................... 54 FIGURA 13: TWEETS GERADOS POR CONTAS DE EMISSORAS. FONTE: TWITTER ............................................................................. 57 FIGURA 14: EXEMPLO HASHTAG RELACIONADA AO PROGRAMA. FONTE: TWITTER MOBILE ............................................................. 58 FIGURA 15: ARQUITETURA TV AUDIENCE ANALYZER .............................................................................................................. 62 FIGURA 16: DIAGRAMA DE CLASSES EPG READER .................................................................................................................. 68 FIGURA 17: PACOTE MPEG2-TS. ...................................................................................................................................... 69 FIGURA 18: FLUXO EPG READER ........................................................................................................................................ 70 FIGURA 19: DIAGRAMA ER TV AUDIENCE ANALYZER .............................................................................................................. 71 FIGURA 20: FLUXO TWITTER COLLECTOR .............................................................................................................................. 71 FIGURA 21: EXEMPLO ORDENAÇÃO ARQUIVOS TWITTER COLLETCTOR. ....................................................................................... 74 FIGURA 22: EXEMPLO DE CAPTURA DE TWEETS. STRING DE BUSCA: #ENCONTROFATIMA ................................................................ 74 FIGURA 23: DIAGRAMA DE CLASSES SENTIMENT DETECTOR ...................................................................................................... 75 FIGURA 24: TWEETS ELIMINADOS POR DATA ......................................................................................................................... 78 FIGURA 25: COMPARATIVO DE IDIOMAS ............................................................................................................................... 79 FIGURA 26: COMPARATIVO DE APIS .................................................................................................................................... 82 FIGURA 27: EXEMPLO DE ERROS STREAM API. .................................................................................................................... 84
Artur Vieira Tenório
Lista de Tabelas TABELA 1: CLASSIFICAÇÃO REDES SOCIAIS; FONTE: AUTORIA PRÓPRIA. ....................................................................................... 30 TABELA 2: TERMOS UTILIZADOS TWITTER; FONTE: AUTORIA PRÓPRIA ........................................................................................ 31 TABELA 3: POLARIDADE SWN ............................................................................................................................................ 37 TABELA 4: COMPARATIVO NIELSEN E TWITTER....................................................................................................................... 41 TABELA 5: DADOS DE EVENTOS. FONTE: PRÓPRIA AUTORIA ...................................................................................................... 52 TABELA 6: RELAÇÃO DE CIDADES EM QUE FORAM COLETADOS TSS. ............................................................................................ 64 TABELA 7: NOMENCLATURA ADOTADA PARA PROGRAMAS PELAS EMISSORAS ANALISADAS .............................................................. 65 TABELA 8: RESULTADOS OBTIDOS ........................................................................................................................................ 66 TABELA 9: RESULTADOS PROGRAMA ENCONTRO COM FÁTIMA BERNARDES ................................................................................. 80 TABELA 10: TERMOS NORMALIZADOS .................................................................................................................................. 85 TABELA 11: RESULTADOS ENCONTRO COM FÁTIMA BERNARDES ............................................................................................... 87 TABELA 12: RESULTADOS THE VOICE BRASIL ......................................................................................................................... 87
Artur Vieira Tenório
LISTA DE ABREVIATURAS E SIGLAS
TV – Televisão
SI – Service Information
EIT - Event Information Table
EIT-H – Relacionada ao segmento de HDTV.
EIT-M – Relacionada ao segmento de SDTV.
EIT-L – Relacionada ao segmento de LDTV.
IBOPE – Instituto Brasileiro de Opinião Pública e Estatística
EPG – Eletronic Program Guide
SBTVD – Sistema Brasileiro de Televisão Digital.
API – Application Programming Interface
TS – Transport Stream
LDTV – Low Definition Television (320x240)
SDTV – Standard Definition Television (720x480)
HDTV – High Definition Television (1280x720 e 1920x1080)
RT – Re Tweet (Repetir Tweet)
SWN – Senti World NET
MPEG – Moving Picture Experts Group
Artur Vieira Tenório
Sumário 1. INTRODUÇÃO .............................................................................................................................................. 14
1.1 JUSTIFICATIVA ................................................................................................................................................... 14 1.2 PROBLEMA E QUESTÃO DE PESQUISA ..................................................................................................................... 15 1.3 PROPOSTA DE SOLUÇÃO ...................................................................................................................................... 15 1.4 OBJETIVO GERAL ............................................................................................................................................... 15 1.5 OBJETIVOS ESPECÍFICOS ...................................................................................................................................... 16 1.6 LIMITAÇÕES ...................................................................................................................................................... 16 1.7 ESTRUTURA DA DISSERTAÇÃO ............................................................................................................................... 17
2. FUNDAMENTAÇÃO TEÓRICA ....................................................................................................................... 18
2.1 TELEVISÃO DIGITAL ............................................................................................................................................ 18 2.1.1 Sistema Brasileiro de Televisão Digital ................................................................................................ 19 2.1.2 Tabelas de SI ........................................................................................................................................ 21 2.1.3 A audiência .......................................................................................................................................... 23 2.1.4 Engajamento do telespectador ........................................................................................................... 25 2.1.5 Segunda tela ........................................................................................................................................ 27
2.2 REDES SOCIAIS .................................................................................................................................................. 29 2.2.1 Análise de opinião ............................................................................................................................... 31 2.2.2 Integração por Software (API) ............................................................................................................. 32
2.3 CLASSIFICAÇÃO DE SENTIMENTOS.......................................................................................................................... 32 2.3.1 SentiStrength ....................................................................................................................................... 34 2.3.2 Senti World Net (SWN) ........................................................................................................................ 35 2.3.3 Os sentimentos de um telespectador .................................................................................................. 37
2.4 CONTEXTO COMPUTACIONAL ............................................................................................................................... 37 2.5 TRABALHOS RELACIONADOS ................................................................................................................................. 39
2.5.1 Sistemas comerciais de análise de audiência usando o Twitter .......................................................... 39 2.5.2 Trabalhos acadêmicos que relacionam Twitter e TV ........................................................................... 40 2.5.3 Trabalhos acadêmicos que relacionam classificação de sentimentos em redes sociais ..................... 42
2.6 CONSIDERAÇÕES FINAIS ...................................................................................................................................... 43
3. TV AUDIENCE ANALYZER ............................................................................................................................. 44
3.1 VISÃO GERAL DO SISTEMA PROPOSTO .................................................................................................................... 44 3.2 LEVANTAMENTO DE REQUISITOS FUNCIONAIS (RF) ................................................................................................... 45
3.2.1 Visão geral dos requisitos .................................................................................................................... 48 3.3 REQUISITOS NÃO FUNCIONAIS (RNF) .................................................................................................................... 48 3.4 COLETA DE TS ................................................................................................................................................... 49 3.5 EPG READER .................................................................................................................................................... 51 3.6 TWITTER COLLECTOR .......................................................................................................................................... 52
3.6.1 Acesso aos dados do Twitter ............................................................................................................... 53 3.6.2 Definição das strings de busca ............................................................................................................ 56 3.6.3 Informações Contextuais ..................................................................................................................... 58 3.6.4 Preparação de dados ........................................................................................................................... 59 3.6.5 Tradução para o Inglês ........................................................................................................................ 60
3.7 SENTIMENT DETECTOR ........................................................................................................................................ 61 3.8 ARQUITETURA ................................................................................................................................................... 61 3.9 CONSIDERAÇÕES FINAIS ....................................................................................................................................... 63
4. IMPLEMENTAÇÃO DO SISTEMA................................................................................................................... 64
4.1 DESCRIÇÃO DO AMBIENTE ................................................................................................................................... 64 4.2 DESCRIÇÃO DE UM CENÁRIO DE USO ...................................................................................................................... 65 4.3 IMPLEMENTAÇÃO DOS MÓDULOS .......................................................................................................................... 66
4.3.1 EPG READER ........................................................................................................................................ 67 4.3.2 Twitter Collector .................................................................................................................................. 71 4.3.3 Sentiment Detector ............................................................................................................................. 75
4.4 VALIDAÇÃO DE REQUISITOS .................................................................................................................................. 76
Artur Vieira Tenório
4.4.1 A Assertividade de tweets relacionados obtida................................................................................... 76 4.4.2 Contexto Temporal .............................................................................................................................. 77 4.4.3 Contexto geográfico ............................................................................................................................ 78 4.4.4 Contexto de Atividade ......................................................................................................................... 80 4.4.5 String de busca utilizadas .................................................................................................................... 80 4.4.6 Considerações...................................................................................................................................... 81
4.5 COMPARATIVO DE APIS DO TWITTER ..................................................................................................................... 81 4.6 COMPREENSÃO DO TEXTO ................................................................................................................................... 85 4.7 RESULTADOS CLASSIFICAÇÃO DE SENTIMENTOS ........................................................................................................ 86 4.8 CONSIDERAÇÕES FINAIS ....................................................................................................................................... 89
5. CONCLUSÕES .............................................................................................................................................. 90
5.1 RESULTADOS OBTIDOS ........................................................................................................................................ 90 5.2 CONTRIBUIÇÕES ................................................................................................................................................ 91 5.3 LIMITAÇÕES DO ESTUDO ...................................................................................................................................... 92 5.4 TRABALHOS FUTUROS ......................................................................................................................................... 92 5.5 CONSIDERAÇÕES FINAIS ....................................................................................................................................... 93
6. REFERÊNCIAS .............................................................................................................................................. 94
14
Artur Vieira Tenório
1. Introdução
Pesquisas periódicas divulgadas pelo IBGE apontam a aproximação de 100% dos
domicílios que possuem televisores no Brasil. A mais recente pesquisa aponta 94,8% da
população (IBGE, 2013) o que comprova que este ainda é o principal veículo de notícias
e entretenimento para a população. A audiência televisiva no Brasil tem como principal
aferidor o (IBOPE, 2013). Este utiliza técnicas consolidadas para aferição, como as
pesquisas de rua e caixas coletoras de dados instaladas nos lares, que analisam o canal
e o horário que um programa é visto. Tais dados refletem quantitativamente a preferência
de conteúdo de grande parte da população.
Há também pesquisas que apontam o crescente uso de Internet por parte dos
brasileiros. Mais de 21% da população com mais de 10 anos de idade teve algum contato
com a Internet em 2011 (IBGE, 2011). O crescente acesso à Internet, associado à TV
impulsionou o uso da segunda tela (CESAR; BULTERMAN; JANSEN, 2008),
denominação para dispositivos dotados de tela e acesso à Internet que são utilizados
durante um programa televisivo. Segundo relatórios gerados pelo ConsumerLab
(ERICSSON CONSUMERLAB, 2012) o habito dos telespectadores de assistir televisão
tem mudado com o uso de outras plataformas para percepção de conteúdo. Foi visto que
69% dos entrevistados consideram que a Internet e a TV são partes naturais do consumo
de conteúdo televisivo. As interações são em geral são: consumo de conteúdo
complementar, procura por horários de programas e expressão de opinião sobre um
programa, que em geral é realizada através de redes sociais.
A opinião do telespectador torna-se então uma informação computacionalmente
possível de ser determinada, o que permite à criadores de conteúdo e empresas na área
de publicidade terem informações complementares sobre a audiência.
1.1 Justificativa
Com a tendência crescente de acesso às redes sociais durante um programa
televisivo, gerando o desvio de atenção temporário do telespectador, é comum que
sejam compartilhados dados relacionados ao que está passando na TV. Entre estes
dados, estão expressões de sentimentos, como felicidade, irritação, angústia. São
informações geradas em tempo real, por uma quantidade considerável de pessoas.
Surge então a oportunidade de interpretar estes dados em favor dos produtores de
15
Artur Vieira Tenório
conteúdo. Dando-lhes uma nova fonte de audiência, menos invasiva do que a feita por
institutos como o IBOPE, pois o telespectador não precisa ter qualquer aparelho em sua
residência para aferir estes dados, bastando-lhe apenas manter seu habito de comentar
em redes sociais.
1.2 Problema e Questão de Pesquisa
Entende-se hoje que há forma mais eficaz para identificação de postagens
relacionadas a um programa e a detecção de sentimento empregado na mesma é feita
por profissionais focados em ler e interpretar o que foi dito. Por ser manual, a quantidade
de dados processados é limitada. Outro fator redutor de eficácia neste processo é a
limitação visual de dados expostos ao acessar estes dados via usuário comum,
diretamente pelo site de uma rede social.
1.3 Proposta de solução
O presente projeto propõe um sistema denominado TV Audience Analyzer, capaz de
aferir qualitativamente a audiência televisiva, levando em consideração a manifestação
de sentimento do telespectador em redes sociais. Desta forma, há a possibilidade de ter
dados complementares sobre a audiência de programas televisivos, dando ao produtor
do conteúdo uma informação relacionada à satisfação do telespectador, sem uso de
decodificadores in loco (como o IBOPE) e de forma natural, utilizando técnicas de
identificação de sentimentos através de termos e contexto computacional.
O sistema deve ser capaz de integrar dados de redes sociais e grade de
programação televisiva. Este deve fazer uma análise semântica nos comentários
gerados em redes sociais a fim de identificar o humor empregado naquela postagem. Só
serão analisados textos relacionados com a programação vigente. A grade de
programação será utilizada para auxiliar na identificação de relação entre um texto e um
programa de TV.
1.4 Objetivo Geral
Este trabalho tem por objetivo propor e implementar um sistema capaz de detectar
o sentimento empregado em publicações feitas por usuários nas redes sociais, levando
em consideração o que está sendo transmitido no momento pelas emissoras televisivas.
16
Artur Vieira Tenório
O sistema proposto é modelado exclusivamente para o padrão brasileiro de televisão
digital.
1.5 Objetivos Específicos
Uso de ferramentas de classificação de sentimentos para classificar o sentimento
empregado em um comentário.
Identificar os programas televisivos de acordo com o horário, utilizando a grande
de programação enviada pelas emissoras.
Determinação de informações contextuais para identificação de comentários
relacionados com os programas televisivos.
Fornecer estatísticas do sentimento empregado nos comentários de acordo com
o programa televisivo.
1.6 Limitações
O TV Audience Analyzer é uma ferramenta voltada à identificação de textos
relacionados à programação televisiva e em seguida a classificação de sentimento dos
mesmos.
As ferramentas de classificação de sentimentos utilizadas neste projeto foram
elaboradas para a língua inglesa. Por este motivo, são feitas as seguintes ressalvas:
Todos os textos foram traduzidos para o idioma inglês através de uma
ferramenta gratuita.
Foram utilizadas técnicas desenvolvidas pelo autor da pesquisa para a
normalização de textos provindos de redes sociais (com grande índice de
jargões, abreviações e erros ortográficos). Estas foram desenvolvidas
apenas para que a pesquisa pudesse ser realizada, sem apoio em trabalhos
acadêmicos ou estudo aprofundado, visto que isto foge dos objetivos
propostos.
A intenção do telespectador em falar sobre o programa de TV ou algum
assunto que o mesmo abordava não foi tratada nesta pesquisa, pois foge dos
objetivos propostos.
17
Artur Vieira Tenório
1.7 Estrutura da Dissertação
Este trabalho está estruturado da seguinte maneira:
Capítulo 1 – Introdução: Neste capítulo é apresentada a motivação,
justificativa, objetivos e as contribuições do trabalho.
Capítulo 2 – Fundamentação Teórica: Onde será revisada toda a literatura
relacionada ao tema do projeto.
Capítulo 3 – TV Audience Analyzer: É apresentada a ferramenta proposta,
seus requisitos e descrito seu funcionamento.
Capítulo 4 – Implementação do Sistema: Neste capítulo é apresentada a
forma como o sistema foi implementada e os resultados obtidos são expostos.
Capítulo 5 – Análise dos Resultados: Neste capítulo são analisados os
resultados obtidos pela ferramenta, as conclusões, contribuições e trabalhos
futuros.
18
Artur Vieira Tenório
2. Fundamentação Teórica
Neste capítulo será apresentado todo o referencial teórico envolvido nesta
dissertação, contemplando as tecnologias e tópicos envolvidos. Inicialmente
serão abordadas informações sobre a TV Digital e o Sistema Brasileiro de TV
Digital (SBTVD). Em seguida, serão vistas as características relacionadas aos
telespectadores, descrevendo conceitos de audiência, a sua forma de aferição,
e as características deste tipo de usuário.
No tópico seguinte serão tratadas as definições, características e
possibilidades de uso em Redes Sociais. A seguir serão vistos os conceitos de
contexto computacional e como pode ser aplicado à audiência televisiva. Em
seguida, conceitos relacionados à área de Análise de Sentimentos serão vistos,
e como é aplicada por pesquisadores em diversas áreas, dentre elas a televisão.
No fim deste capitulo será possível verificar trabalhos relacionados ao desta
pesquisa.
2.1 Televisão Digital
O termo TV Digital é abrangente e pode compreender diversas tecnologias
e definições, de acordo com a perspectiva de análise. O mesmo pode-se dizer
da TV aberta, transmitida por radiodifusão terrestre, TVs por assinatura, antenas
parabólicas e em alguns casos, via Internet; nestes casos é intrínseco que há
digitalização de conteúdo via transmissão de binários (BECKER, 2011). Devidas
às estas possibilidades, é importante ressaltar que todas as menções
relacionadas à TV aberta neste trabalho é relacionada às emissoras que
transmitem de forma gratuita seu sinal via broadcast terrestre. As menções de
TV digital são relacionadas à tecnologia de transmissão e recepção de sinal
televisivo utilizando o padrão ISDB-Tb.
Conceitua-se TV digital, como o termo designado para a forma de
transmissão de TV utilizando sinal digital, no lugar do tradicional analógico. O
processo de digitalização está em um estágio avançado no Brasil, com cobertura
nas principais cidades do país, incluindo todas as capitais(SBTVD, 2014). O
19
Artur Vieira Tenório
início das transmissões no Brasil foi em Dezembro de 2007, na cidade de São
Paulo pela Rede Globo de Televisão. Até o ano de 2018 o sinal analógico deverá
ser descontinuado, sendo uma obrigação das emissoras que em janeiro de
2015 seja iniciado o cronograma de desligamento (NACIONAL, 2013).
Dentre as vantagens obtidas com a adoção do modelo nacional, destaca-se
a melhoria na qualidade de imagem e som, da resolução padrão (720x480 pixels
por polegada) para a alta definição (1980x1080); permitindo ao telespectador
acesso à um conteúdo rico em detalhes.
2.1.1 Sistema Brasileiro de Televisão Digital
O Sistema Brasileiro de Televisão Digital (SBTVD) é um fórum responsável
por conduzir a implantação da TV digital no Brasil. É composto por diversos
veículos radio difusores, indústria de transmissão e recepção, setor acadêmico
e algumas empresas de software1. Este se define (FORUM SBTVD, 2008):
“É uma entidade sem fins lucrativos, criada
para estimular o desenvolvimento e
implementação das melhores práticas para TV
Digital”.
As discursões e projetos desenvolvidos pelo SBTVD tiveram enfoque
técnico, visando desenvolver a infraestrutura da TV digital. Não houve
preocupação com audiência durante a elaboração das normas técnicas que
definiam a padronização de transmissão nacional. Áreas como recepção de
conteúdo e interatividade foram estudadas sob a ótica da engenharia e da
computação, com pouco apoio dos geradores de conteúdo(BECKER, 2011).
Foram analisadas as principais tecnologias de transmissão digital existentes
no mundo. Os sistemas Europeu e Japonês tornaram-se as melhores opções
devida à melhor compatibilidade com o cenário nacional, onde antenas internas
para recepção compunham mais de 40% dos domicílios, além de complexidades
geográficas, como áreas rurais e áreas altamente populosas, como as favelas.
1 Mais informações em: http://forumsbtvd.org.br/associados/
20
Artur Vieira Tenório
Foi escolhido o padrão japonês por conta da capacidade de recepção por
dispositivos moveis, compatibilidade com multiprogramação2 em uma única
faixa, robustez de seu desempenho em relação ao sistema DVB (europeu)
devido ao padrão de modulação Orthogonal Frequency Division Multiplex
(OFDM) e a capacidade de segmentação de banda em treze partes,
flexibilizando o espectro(ARIB B-31, 2005; BECKER, 2011).
O processo entre a criação do conteúdo, o que inclui a etapa de filmagens,
até que o sinal chegue a um domicilio é descrito na Figura 1:
Figura 1: Transmissão de sinal digital. Fonte:(FERRAZ; SQUIRRA; FECHINE, 2009)
O sinal codificado no padrão ISDB-Tb permite a transmissão de um ou
mais Transport Streams, definidos pelo padrão MPEG2 Transport-Stream
(MPEG-2 TS) Systems, sendo então remultiplexados formando um único
TS(ARIB B-31, 2005).
A definição da codificação de dados utilizando o padrão MPEG2-TS
(ISO/IEC 13818-1, 1995) pode ser feita de duas formas: Transport Stream (TS)
2 No Brasil a multiprogramação ainda não está em uso.
21
Artur Vieira Tenório
e Program Stream (PS). Cada um destes é otimizado para um uso específico. O
TS é direcionado para fluxos contínuos, provindos de fontes transmissoras como
antenas e satélites. O PS é direcionado para transmissão de dados provindos de
mídias físicas, como DVDs e discos rígidos. Ambos os formatos são
encapsuladores de mídias, e sua codificação é orientada à pacotes. No padrão
de transmissão escolhido no Brasil, há uma ou mais mídias de vídeo no padrão
H.264 e uma ou mais mídias de áudio no padrão AAC.
Neste streams estão contidos todas as informações geradas por emissoras
e que são necessárias para um televisor no padrão DTV seja capaz de
transformar em conteúdo audiovisual. Na Figura 2 é possível identificar o
processo definido pela norma japonesa, ARIB.
Figura 2: Multiplexação de um TS; Fonte: (ARIB B-31, 2005)
Três camadas definidas compõem todos os dados inclusos em um TS:
vídeo, áudio e dados. O conteúdo gerado por estúdios de gravação e edição em
emissoras preenche as duas primeiras camadas, e todos os dados relacionados
à informações complementares e como estes se integram ficam localizados na
camada de dados. Também é nesta camada que são encontradas as tabelas de
informação, denominadas Service Information(SI).
2.1.2 Tabelas de SI
A norma brasileira 15603-1 (ABNT NBR 15603-1, 2008) define as tabelas SI
como um conjunto hierarquicamente associado de tabelas que compõem o
22
Artur Vieira Tenório
MPEG-2/PSI3. Com os dados transmitidos por estas torna-se possível, através
de um receptor digital de televisão terrestre a seleção de canais existentes.
Diferentemente do sinal analógico, o sinal digital possui identificações que
permitem a visualização do nome do canal, nome do programa e descrição do
evento, todas disponíveis para o telespectador. Estas tabelas também permitem
que o receptor configure de forma automatizada os serviços presentes naquele
TS. Também através destas tabelas é possível que seja visualizada a guia de
programação, comumente conhecida como Eletronic Guide Program (EPG).
Para que seja possível ler os dados de uma tabela, diferenciando pacotes
de áudio e vídeo, é necessário identificar o Program Identifier (PID)
correspondente à tabela, localizado no cabeçalho de cada pacote lido em um
TS. Na Figura 3 é possível identificar a estrutura de um pacote de dados em um
sistema MPEG2-TS.
Figura 3: Pacote de dados em um TS; Fonte: (ISO/IEC 13818-1, 1995)
3 MPEG-2/PSI é a nomenclatura utilizada para as tabelas Program Specific Information.
23
Artur Vieira Tenório
Para este trabalho, a identificação e leitura destas tabelas é fundamental,
visto que se faz necessário obter informações contextuais relacionadas à
programação de uma emissora de forma algorítmica e automatizada.
2.1.3 A audiência
No livro “Audience Analysis” (MCQUAIL, 1997, p. 1), seu autor define
audiência como: “termo coletivo designado para ‘receptores’ em modelo simples
e sequencial em um processo de comunicação em massa”4. Esta definição
envolve mídias impressas, ouvintes de rádio e telespectadores. Ou seja, engloba
o público que apenas consome algo enviado via broadcast de forma que não há
interação direta. Não importando a classe social ou localização geográfica.
Existe uma visão (DEFLEUR; BALL-ROCKEACH, 1971) voltada para a época
da primeira guerra mundial, onde o fenômeno da comunicação em massa era o
principal recurso midiático, alimentado pelas grandes guerras mundiais. Neste
período, as formas de massificação de informação em geral eram cartazes,
livros, fotos, filmes e discos. A audiência tinha papel passivo.
Com a modernidade, televisores e rádios tornaram-se os principais meios de
comunicação em massa. A Rede Globo, a maior emissora de televisão no Brasil
(REDE GLOBO, [s.d.]), define de forma simplória como o conjunto de pessoas
que estão assistindo a determinado programa de TV.
Direta ou indiretamente é a audiência que mantém redes de televisão, rádio
e atualmente portais de notícias e entretenimento na Internet. Diretamente,
através de ingressos ou mensalidade é possível obter um conteúdo de qualidade
sem a necessidade de que propaganda publicitárias sejam vistas, sendo este o
conteúdo pago. Indiretamente, quando o conteúdo é propagado de forma
gratuita, entretanto empresas pagam quantias altas para que seus nomes e
propagandas sejam divulgados, sendo esta então a forma indireta. No segundo
caso, o fator crucial para determinação do quanto custará esta publicidade é a
quantidade de pessoas que compõem a audiência que determinado meio de
4 Tradução própria.
24
Artur Vieira Tenório
comunicação possui. Por não ser pago, e distribuído via broadcast - logo não há
qualquer contato ou identificação com o consumidor - torna-se um desafio
mensurar este valor, principalmente em locais com população elevada, como é
o caso de diversas capitais do Brasil.
Histórico
A origem da audiência remete ao público em espetáculos teatrais e musicais,
ou jogos esportivos. A noção de métrica era relacionada com à presença física,
o que permitia além da contabilização exata, também a compreensão/satisfação
daqueles presentes. As aferições mais antigas provavelmente vem de cidades
romanas ou gregas (MCQUAIL, 1997, p. 03). Com o surgimento da comunicação
em massa – inicialmente via rádio e jornais, em seguida com televisores – onde
um emissor envia o conteúdo para um número ilimitado de receptores, novas
percepções de audiência surgiram. Os novos meios diferiam na escala e em
operação. O alcance era maior; a forma de gerar conteúdo era diferente. O
produtor não tinha mais a mesma noção visual de sua audiência.
A falta de contato entre o receptor e o produtor de conteúdo gerou uma
separação entre ambos, onde a figura do emissor é feita por poucos e a do
receptor por aqueles que tem acesso. A televisão tornou-se o meio de maior
destaque, sendo assim a principal tecnologia do mercado de medição de
audiência (BECKER, 2011).
A primeira ideia de dispositivo para aferição foi através de uma patente
desenvolvida em 1929 por um estudante da Universidade de Columbia,
denominada audímetro. Esta previa um dispositivo que registrava quando um
rádio estava ligado e qual era a frequência sintonizada. Anos mais tarde, em
1934, o Massachusetts Institute of Technology (MIT) desenvolveu o primeiro
protótipo baseado nesta patente.
Atualmente
A principal empresa responsável por aferir a audiência no Brasil é Instituto
Brasileiro de Opinião Pública e Estatística (IBOPE). O seu legado nesta área de
tão vasto tornou o nome da empresa como sinônimo de aferição de audiência
pela população e pelos próprios canais, permitindo que expressões como: “O
IBOPE do Jornal Nacional bateu 30 pontos”; sejam utilizadas. Segundo Becker
25
Artur Vieira Tenório
(BECKER, 2011) citando autor Bailén, apenas uma empresa pode medir
audiência no mesmo mercado, evitando conflito de dados. Caso empresas
concorrentes utilizem as mesmas metodologias, obterão resultados
semelhantes. Caso contrário, não haverá consenso sobre qual é o melhor e mais
adequado. E é sob esta ótica que o IBOPE se mantem como única fonte de
referência para estes dados. Apesar de constantes questionamentos, a
aceitação do mercado publicitário é vital, guiando investimentos destas
empresas.
As metodologias utilizadas por este instituto sofreram poucas melhorias com
os anos, e se derivam das desenvolvidas pelo Nielsen Research Institute (NRI),
instituição que faz as métricas nos Estados Unidos, maior referência em medição
de audiência no mundo. Abaixo são descritos os principais métodos utilizados
pelo NRI e pelo IBOPE (IBOPE, 2013; NIELSEN - FAQ, 2013; NIELSEN, 2013):
People Meter: Consiste de um caixa (decodificador) que é instalado
em domicílios previamente selecionadas, através de um contrato de
12 meses. O dispositivo é ligado ao televisor e registra cada canal
sintonizado. Cada morador deve se identificar antes de utilizar. Até
quatro aparelhos são instalados em cada domicilio. No Brasil o IBOPE
desenvolveu o aparelho, nomeado DIB.
Viewer Diary: São diários escritos por telespectadores, descrevendo
os programas assistidos em um período de uma semana.
Questionários: É feito um estudo preliminar sobre o tema de estudo
através de um levantamento completo de informações referentes ao
assunto. Após esta etapa, são elaboradas questões neutras e
insentas para que a avaliação possa ser criteriosa por parte do
formulador. As questões não podem induzir o entrevistado à alguma
resposta.
2.1.4 Engajamento do telespectador
É constante não somente no Brasil, mas em outros países, como os Estados
Unidos, a redução de índices de audiência em programas tradicionais como o
Big Brother Brasil (BBB), jogos de futebol e programas dominicais, como é
lembrado por Becker (2011). Paradoxalmente, os anúncios feitos nestes
26
Artur Vieira Tenório
mesmos programas batem recordes de arrecadação anualmente (OUTRO
CANAL, 2013; TELEVISÃO UOL, 2013; ZAPPING, 2013). Este comportamento
está ligado à forma como o conteúdo é consumido por uma população. O uso de
outros meios de comunicação para obter o conteúdo transmitido, principalmente
a Internet, faz com que a audiência momentânea de um programa não seja igual
à quantidade de pessoas que ela atinge.
Entretanto, a redução dos níveis de audiência real não significa
necessariamente que a TV perde importância para a sociedade, nem o poder
exercido pelas maiores emissoras do país é menor. Fechine (FECHINE, 2004)
pontua a capacidade destes veículos midiáticos:
“A programação da TV pauta nossas conversas
e nossos momentos de lazer, determina certas
atividades domésticas e compromissos, rege
nossos horários e embala inclusive nosso
sono.”
Conceitualmente, o telespectador, no papel de consumidor da mídia
televisiva, assimila o conteúdo transmitido visualmente e auditivamente. A forma
como ocorre a percepção do que é televisionado pode ser classificado em duas
formas de absorção, como define Fechine: O regime do “olhar” e o da “olhadela”.
O primeiro tipo, caracteriza-se pelo foco do telespectador, fixo,
contemplando e absorvendo o conteúdo. Este é o comportamento ideal para os
produtores de conteúdo e anunciantes publicitários, pois a atenção está voltada
para o programa televisivo, e o telespectador tente à assistir aos comerciais para
não correr o risco de perder algum trecho do programa. Para a emissora, há uma
dedução que aquilo que está passando é interessante, logo deve ser mantido na
grade de programação. Para o anunciante é ideal pois sua propaganda
publicitaria e em paralelo a marca atrelada é vista pelo telespectador.
O segundo é o olhar vago, espiadela. Neste regime o espectador
“acompanha” a televisão, e em muitos casos realiza outras atividades em
paralelo, reduzindo a atenção dada à TV. Este pode inclusive estar “zapeando”
os canais, ou seja, procurando o que ver, mas sem atenção à uma programação.
Dentre as atividades, quando há o uso de dispositivos eletrônicos como
smartphones, tablets ou laptops, para fins não relacionados com o conteúdo
transmitido.
27
Artur Vieira Tenório
Quando, durante o primeiro regime, há acesso à Internet por algum
dispositivo móvel, como celulares, tablets ou notebooks, e o conteúdo visto é
relacionado com o conteúdo da programação, é evidenciado o uso da “segunda
tela”. Através dela os consumidores podem se tornar replicadores, propagando
informações relacionadas com um conteúdo assistido para outros consumidores
que não compunham a audiência real naquele momento. Em geral é
compartilhado algum trecho do programa ou algum destaque, como
personagem, mas há casos de compartilhamento de propagandas, quando estas
causam uma sensação positiva ao consumidor. Uma definição da “segunda tela”
pode ser vista na sessão à seguir.
2.1.5 Segunda tela
O termo “Segunda Tela” define o uso de alguma tecnologia que reproduza
imagens, sendo possível que ocorra uma interação entre o usuário e o meio
podendo se estender para outras pessoas através da Internet. O trabalho
apresentado por Cesar, Bulterman e Jansen (2008) define duas áreas de
pesquisa que tiram proveito deste uso: conhecimento interativo e seleção de
conteúdo.
O aprimoramento do conhecimento pode ser provido em diversos cenários,
como por exemplo no auxílio à compreensão de novas culturas e línguas. O
dispositivo neste cenário serve como uma fonte de consulta em que o usuário
determina o que deseja saber sobre algo que está assistindo, aprimorando o
conhecimento adquirido sobre determinado assunto. A seleção de conteúdo
permite que o acesso ao tipo de conteúdo de um programa seja facilitado. O uso
de formas de personalizar um guia de programação eletrônico, indicando mais
dados sobre um determinado filme ou documentário que iniciará em instantes
pode ser fundamental para a escolha do que será assistido por um telespectador.
De acordo com o relatório sobre o comportamento dos usuários de Internet
através de algum dispositivo móvel – celulares, notebooks e tablets – realizado
pelos institutos Nielsen e Yahoo (ALI et al., 2011), mais de 85% dos usuários
declararam que quando estavam em casa, geralmente viam TV enquanto
utilizavam um dispositivo. Na Figura 4, é possível identificar que tipo de atividade
é exercida enquanto os telespectadores estão em regime de “olhadela”,
acessando a Internet.
28
Artur Vieira Tenório
Figura 4: Atividades típicas de usuários de Internet Móvel e TV. Fonte: Autoria própria, baseada em (ALI et al., 2011)
Através do gráfico é possível identificar que apenas 24% dos usuários estão
procurando por termos relacionados à programação. Provavelmente os
resultados obtidos por Nielsen/Yahoo são em termos gerais, o que acredita-se
varia bastante de acordo com o tipo de programa que está sendo transmitido.
Com a crescente popularidade e quantidade de reality shows, aliado à
facilidade de acesso à Internet e redes sociais, permite que a segunda tela ganhe
mais uma possibilidade, a TV Social. Esta é a denominação para as interações
entre telespectadores utilizando o controle remoto, em ambiente fechado,
controlado por uma emissora ou provedor de TV à cabo (HARBOE; MASSEY;
METCALF, 2007), que iam além da troca de canais e volume. Os
telespectadores enviam informações para as emissoras através de programas,
como perguntas à audiência e votações em tempo real. Este termo acabou
sendo modernizado com a adicação da segunda tela e as redes sociais, devido
às novas possibilidades de envio de dados e maior largura de banda, bem como
a popularização das redes sociais.
Destaca-se o Twitter dentre as redes sociais como o mais utilizado na
interação entre emissor de conteúdo e o consumidor. Os tópicos de um programa
podem ser moldados de acordo com o que os telespectadores compartilham
nestas redes, usando termos específicos que identificam o desejo de assimilação
29
Artur Vieira Tenório
de conteúdo. Em sua pesquisa, Lochrie e Coulton (LOCHRIE; COULTON,
2012a) analisam este comportamento, comprovando o crescimento deste
comportamento através de análises de dados gerados pelo Twitter durante
determinados programas. Os comentários realizados por usuários durante o
programa The X Factor UK (um reality show realizado em um auditório)
apareceram durante a transmissão, dando origem ao que eles denominam
“audiência invisível”.
Dados de uma pesquisa realizada pelo IBOPE (2011) mostram que no Brasil,
27% da população consome simultaneamente TV e Internet. E dos que acessam
Internet por smartphone, cerca de 50% consomem TV em paralelo. Devida à
inclusão digital e o crescimento de redes sociais com o passar dos anos,
provavelmente estes valores estão maiores nos dias atuais.
O presente projeto busca identificar e classificar a opinião deste tipo de
audiência, desta forma, é de fundamental importância o estudo e compreensão
do comportamento destes telespectadores.
2.2 Redes Sociais
As redes sociais, também conhecidas por mídias sociais, são sites que, em
geral, estão associados ao uso maciço por parte de seus usuários. Nos últimos
anos o crescimento em acesso tanto por computadores, quanto por dispositivos
móveis foi exponencial. Não por acaso, são assunto recorrente em pesquisas
acadêmicas, não somente na área da tecnologia, mas também em marketing,
comunicação e psicologia. Existem diversas definições, dentre as quais, na
visão da psicologia, Mislove (2009) procurou definir redes sociais como: um
sistema onde (a) usuários fazem parte de uma classe primária de entidades com
perfis semi-públicos, (b) usuários podem criar vínculos com outros usuários ou
algum tipo de conteúdo, e (c) usuários podem navegar pelas redes social através
de links e perfis de outros usuários. Na visão da computacional, Golbeck (2005)
define de uma forma simplista, como sendo repositórios de dados que
armazenam informações sobre seus usuários, sendo este alimentado pelos
mesmos.
Existem diversas opções de sites, que procuram se diferenciar em algum
aspecto para atrair usuários. Este comportamento permitiu que diversas
variantes surgissem, podendo ser classificadas de acordo com a sua finalidade
30
Artur Vieira Tenório
principal, como é demonstrado na tabela abaixo, onde as principais de cada
categoria são demonstradas:
Tabela 1: Classificação redes sociais; Fonte: Autoria própria.
Nome Segmentação
Facebook, Google+ Amizades, compartilhamento de momentos.
Instagram, Flickr Compartilhamento de fotos
Youtube, Vimeo, Hulu Compartilhamento de vídeos
LinkedIn Empregos/Negócios
Twitter, Blogger, Mashable Blog/Micro-blogging
LastFM, Deezer Música e artistas
Dentre as várias opções existentes, destacam-se três sites, por estarem no
mercado a um certo tempo e lideram seus segmentos: Facebook, Youtube e
Twitter.
O Facebook, criado em 2004, atualmente é a rede social mais popular, com
mais de 1,19 bilhões de usuários ativos, sendo apenas 20% dos usuários
residentes nos Estados Unidos e Canadá (FACEBOOK, 2014). Seu foco está em
compartilhamento momentos com outros contatos, em geral ilustrados por fotos,
vídeos ou eventos. Não há limitação formal de caracteres em cada postagem.
O YouTube é uma rede social criada em 2007, sendo comprada pela Google
anos depois. Seu foco é exclusivamente vídeos, onde é possível assistir e
compartilhar de forma ilimitada. Atualmente tem um público de aproximadamente
1 bilhão de usuários por mês. Cerca de 6 bilhões de horas em vídeos são vistas
a cada mês. Por volta de 80% do tráfego de dados é provindo de países fora do
eixo Estados Unidos Canadá (YOUTUBE, 2014). Recentemente o serviço
ganhou maior integração com a rede social Google+, pertencente ao Google.
O Twitter é uma rede social criada em 2006 que se auto denomina uma rede
de informação em tempo real. Através desta é possível ler e criar postagens
relacionadas à diversos assuntos, produzidas por usuários comuns e empresas.
As postagens são denominadas tweets e possuem limitação de 140 caracteres;
esta restrição juntamente com a dinâmica de interação usuário categoriza esta
rede social como microblogging. Atualmente (primeiro semestre de 2014) tem
uma base de usuários ativos em torno de 241 milhões e apriximadamente 500
milhões de tweets enviados por dia. Aproximadamente 77% dos usuários estão
fora dos Estados Unidos(TWITTER, 2014). Além das pesquisas simples por
assuntos, é possível identificar os termos que se destacam no mundo em tempo
real, através do recurso: trending topics.
31
Artur Vieira Tenório
Na Tabela 2, é possível identificar as principais nomenclaturas utilizadas no
Twitter e os seus significados.
Tabela 2: Termos utilizados Twitter; Fonte: Autoria própria
Termo Descrição
Hashtag (#) Nome dado à uma palavra que é destacada das
demais em um texto. Permite dar uma identificação, semelhante às tags.
Tweet Termo dado aos textos enviados por usuários.
Timeline É o nome dado aos tweets que compõem o histórico de um usuário. É possível visualizar o dia hora e em
alguns casos o local.
Trending topics Termo dado ao recurso que permite identificar os
assuntos mais falados na rede.
Re-Tweet (RT) Quando um usuário deseja replicar um tweet
realizado por outra pessoa.
Seguir É a ação de adicionar alguma pessoa aos seus contatos. Todos os tweets gerados por quem é
seguido aparecem na timeline do seguidor.
Seguidores Denominação para as pessoas que adicionaram uma outra e recebem em suas timeline todos os
tweets gerados por aquele usuário.
2.2.1 Análise de opinião
As redes sociais cada vez mais são mais vistas como ricas fontes de dados
sobre a opinião de internautas (PAK; PAROUBEK, 2010), sendo o Twitter a que
tem maior destaque neste campo. Apesar do Facebook ser mais popular
(DUGGAN; SMITH, 2013) dentre as redes sociais, ainda não é a mais utilizada
para pesquisas de opinião através de analise de publicações. Dentre os fatores
que favorecem o Twitter, dois se destacam. O primeiro é a sua quantidade
limitada de caracteres, fazendo com que um usuário seja obrigado a gerar textos
mais precisos e expressivos em relação à outros tipos de redes sociais.
Publicações no Facebook, por exemplo, podem ser textos que dificilmente
permitem uma qualificação de opinião via software.
O segundo fator, este de forma mais limitante é o acesso aos dado. O
Facebook restringe o acesso às publicações apenas à empresas selecionadas.
Mais detalhes podem ser vistos na seção 2.2.2.
A importância do Twitter para análise de opinião pode ser vista durante
eventos marcantes ao redor do mundo, como protestos políticos no Egito e na
32
Artur Vieira Tenório
Turquia (KRAVETS, 2011) (REYNOLDS, 2014). Em assuntos voltados a TV, sua
relevância pode ser comprovada com a criação de uma nova metodologia de
aferição em conjunto com o principal institudo nesta finalidade o Nielsen
(NIELSEN; TWITTER, 2014a) que entrou em funcionamento no ano de 2014.
Por conta das características acima citadas, este trabalho usará o Twitter
como fonte de dados relacionados à métrica qualitativa de audiência. Na sessão
2.5, serão vistas algumas pesquisas que utilizam o Twitter como base de dados.
2.2.2 Integração por Software (API)
Para que os dados gerados por usuários de redes sociais sejam acessíveis
computacionalmente, as principais redes sociais disponibilizam uma Application
Programming Interface (API). Cada rede social determina quais informações
podem ser acessadas, de acordo com o tráfego de dados envolvido nas
solicitações e o tipo de dado que se deseja obter. O Twitter, rede social escolhida
para compor a base de dados do TV Audience Analyzer, disponibiliza duas
formas de acesso aos seus dados, através das APIs: REST API e Stream API.
Ambas possuem á obrigatoriamente de acesso via autenticação de usuário
utilizando o padrão OAUTH5 para acesso de grande quantidade de dados e
funcionalidades mais específicas. Para a obtenção de credenciais neste padrão,
é necessária uma conta de usuário com credenciais de desenvolvedor. Desta
forma, são geradas as chaves necessárias por este protocolo.
Kwak et al. (2010) demonstrou a capacidade de obtenção de dados desta
API fazendo analises dos milhares de dados minerados nesta rede. Mais de 106
milhões de tweets foram coletados através das APIs de comunicação desta rede
social.
2.3 Classificação de Sentimentos
A classificação de sentimentos, mais conhecido como Sentiment Analysis
(SA) é um ramo da informática que cresce ao longo dos anos, motivado
principalmente pelas redes sociais, consideradas uma fonte de opinião e
5 Um protocolo de autenticação aberto, utilizado pela maioria das redes sociais e e-mails. Este framework permite que aplicações terceiras obtenham acesso limitado à um serviço HTTP. Mais informações em: http://oauth.net/
33
Artur Vieira Tenório
sentimentos sobre eventos e temas variados. Institutos de renome como o Pew
Research Center (MITCHELL; HITLIN, 2013), costumam desenvolver relatórios
periódicos informando o comportamento de usuários de mídias sociais e o
sentimento/opinião acerca de algum assunto.
O Twitter em especial é a principal fonte de dados, devido à característica
dos comentários gerados nesta rede: textos curtos (140 caracteres); é possível
inferir emoção de forma menos custosa, como é comprovado por (LI; LI, 2013),
onde é feito um estudo voltado para a área de marketing e opinião pública.
O método mais utilizado para determinar a classificação de sentimento em
um texto ou frase é através do cálculo da polaridade. Este cálculo é feito baseado
em análise léxica de palavras e a determinação de pontuação de acordo com o
sentido identificado em cada palavra. A polaridade pode ser ampliada de acordo
com o critério adotado pelo algoritmo de classificação. Alguns exemplos de
somadores de polaridade (para negativo ou positivo) são os advérbios de
intensidade, como “muito”, “assaz”; e uso de exclamação “!!!”.
A determinação de polaridade baseada em palavras mostra-se complexa
quando os textos são provindos de redes sociais, onde jargões e abreviações
são comuns, o que impede que a simples comparação entre a palavra e a sua
polaridade seja eficaz. Uma solução alternativa para este cenário envolve
metodologias relacionadas a aprendizagem de máquina, como é feito por
(PANG; LEE, 2008). Na abordagem proposta por Pang, um classificador de
sentimentos pode ser treinado para distinguir termos positivos, negativos e
neutros em um texto.
Além da abordagem de Pang, existem diversos estudos relacionados à esta
área, onde inclusive são disponibilizadas diversas ferramentas com finalidades
acadêmicas e profissionais, que visam classificar textos e frases. Araújo
(ARAÚJO et al., 2013) alerta para o fato de existir um desconhecimento em
relação ao funcionamento destas ferramentas no contexto das redes sociais. Em
especial levando em consideração o fato de que a maioria dos experimentos
divulgados no meio acadêmico tem desempenho testado em sentenças longas.
Quando o cenário muda para redes sociais, os resultados podem ser diversos,
como aponta o estudo comparativo realizado por Araújo (ARAÚJO et al., 2013).
Desta pesquisa, o resultado final destaca duas ferramentas por serem as
mais difundidas no meio acadêmico, tendo inclusive diversos trabalhos
34
Artur Vieira Tenório
acadêmicos relacionados. O Sentistrength e o Senti Word Net obtiveram
resultados melhores do que as demais ferramentas analisadas e por isto foram
escolhidas para compor o módulo de classificação de sentimentos do TV
Audience Analyzer.
2.3.1 SentiStrength
O SentiStrength (SENTISTRENGTH, 2012) e um projeto desenvolvido pela
University of Wolverhampton no Reino Unido. É descrita como uma ferramenta
que estima a polaridade, se positiva, negativa ou neutra em pequenos textos, e
até mesmo utilizando linguagem informal. Foi otimizada para ter uma precisão
semelhante a um humano para textos pequenos gerados em redes sociais,
exceto textos políticos. Sua polaridade varia entre:
Seu idioma de origem é o inglês, entretanto possui implementações que
permitem classificação em outros idiomas, mas sem o nível de precisão existente
na língua inglesa.
Esta ferramenta utiliza métodos baseados em aprendizado de máquina. Seu
dicionário de termos é uma versão otimizada para redes sociais do Linguistic
Inquiry and Word Count (LIWC) proposto por Tauscik (TAUSCZIK;
PENNEBAKER, 2009). O estudo que originou o projeto LIWC é baseado em
análise de textos, onde é feita a contagem de palavras relacionando seu
significado de forma psicológica. O resultado da classificação de um texto curto
é visualizado abaixo na Figura 5, onde a frase: “I love you but hate current
political climate” gerou o resultado ilustrado.
-1 (não negativo) até -5 (extremamente negativo) 1 (não positivo) até 5 (extremamente positivo)
35
Artur Vieira Tenório
Figura 5: Exemplo SentiStrength. Fonte: Imagem copiada do site oficial da ferramenta (SENTISTRENGTH, 2012)
A polaridade obtida pela ferramenta resultou no valor -1. O que pode ser
traduzido como não negativo, ou neutro. Para o TV Audience Analyzer, foi
considerado positivo quando o somatório foi maior do que 2, negativo quando o
somatório for menor que -2 e demais valores, considerados neutro.
2.3.2 Senti World Net (SWN)
O Senti World Net (SWN) é uma ferramenta resultante de um estudo
realizado e mantido pelo Istituto di Scienza e Tecnologie dell’Informazione “A.
Faedo”; pertencente ao Conselho Nacional de Pesquisa na Itália(ESULI;
SEBASTIANI; MORUZZI, 2006; SENTI WORLD NET, 2010).
Sua finalidade é a mineração de opinião utilizando o dicionário WordNet
(MILLER, 1995) como fonte de dados. WordNet é um grande banco de dados
lexical da língua inglesa. São agrupados substantivos, verbos, adjetivos e
advérbios em conjunto com seus sinônimos cognitivos, cada um expressando
um conceito distinto, denominado synset. O dicionário WordNet é gratuito e está
disponível através do site da Princeton University para fins acadêmicos.
A relação do WordNet com SentiWordNet é feita através da associação de
cada synset com três valores de pontuação que indicam o sentimento de um
texto: positivo, negativo e neutro. Cada palavra identificada e recebe uma
pontuação, variando de 0 a 1.
36
Artur Vieira Tenório
Para exemplificar o comportamento desta ferramenta, a palavra “love” foi
classificada. Quando identificada como um substantivo, pode ser avaliada como
um intensificador de emoção positiva. Em outro contexto, pode ser identificada
como atividade sexual entre duas pessoas, neste caso a polaridade é 0
indicando neutralidade. Quando identificada como um verbo, usualmente é
atrelada à sentimentos positivos. Quando sua relação na frase é traduzível em
português para “gostar” remete à positividade moderada. Quando a sua tradução
de acordo com o contexto é realmente amar, relacionado à alguma atividade,
remete à grande intensidade de positividade.
Na Figura 6, abaixo, é possível visualizar os possíveis synset para a palavra
“love”.
Figura 6: Exemplo SWN palavra love; Fonte: Autoria própria, imagens do retiradas do site (SENTI WORLD NET, 2010).
Quando identificada como um substantivo, de acordo com o contexto
identificado, pode ter pontuação positiva: 0.625; negativa: 0; neutra: 0.375;
quando identificada por verbo, a pontuação positiva é:0.5; negativa: 0; neutra:
0.5.
37
Artur Vieira Tenório
Os critérios de determinação de polaridade desta ferramenta seguem a
pontuação detalhados abaixo, na Tabela 3:
Tabela 3: Polaridade SWN
Resultado Pontuação
Positivo Acima de 0.25
Neutro Entre 0.25 e -0.25
Negativo Abaixo de -0.25
2.3.3 Os sentimentos de um telespectador
Becker (BECKER, 2011) busca explicar o tipo de sentimento envolvido na
atividade de assistir à um programa de televisão. Este é relacionado diretamente
com o conteúdo que envolve este processo. A capacidade de despertar
sensações através de imagens e sons, remete ao estabelecimento de uma
conexão entre o telespectador e o objeto, mas a TV como forma tecnológica é
incapaz de despertar possibilidades emotivas. Este papel é daqueles que
produzem o conteúdo, sendo traduzidos para um domicilio através deste meio
eletrônico.
Estas sensações podem variar de acordo a afinidade entre telespectador e
o programa de TV. Transmissões de futebol costumeiramente geram por parte
dos torcedores sentimentos opostos em intervalos curtos de tempo, sempre
ligados à emoção, como a raiva, empatia, angústia e medo, em um extremo, e
felicidade, alívio e realização, no outro extremo. No caso de novelas e reality
shows, estes sentimentos podem se prolongar por semanas ou meses.
2.4 Contexto Computacional
A primeira definição de contexto computacional, sob nome de context-aware
computing foi introduzida em 1994 por Schilit et al (1994). Para ele, três aspectos
eram fundamentais se tratando de informações contextuais: onde o usuário está,
com quem ele está e quais são os recursos disponíveis ao redor. Um sistema
capaz de identifica-los era capaz de examinar um ambiente de forma
computacional e reagir às possíveis mudanças neste.
38
Artur Vieira Tenório
As definições nesta área com o tempo ganharam novas visões, levando em
consideração os avanços tecnológicos ao longo dos anos. A definição de
contexto para Dey (2001) é:
“Contexto é qualquer informação que possa
ser utilizada para caracterizar uma situação de
determinada entidade. Esta entidade pode ser
uma pessoa, lugar ou objeto que é considerada
relevante para a interação entre usuário e
aplicação, incluindo os próprios usuário e
aplicação.”6
Dentre as diversas outras definições existentes, é visto que a maioria dos
autores utiliza exemplos para chegar à alguma definição, como afirma
Zimmermann (ZIMMERMANN; LORENZ; OPPERMANN, 2007). Para ele, as
informações contextuais, como qualquer informação, são utilizada para
caracterizar a situação de uma entidade. É possível dividir em cinco categorias,
as informações contextuais de uma entidade: Individualidade, Tempo,
Localização, Atividade e Relações.
A individualidade diz respeito à qualquer coisa relacionada diretamente à
entidade, sendo possível caracterizar como ativo, passivo, real ou virtual, em
relação ao ambiente que está inserida. O tempo pode considerar o fuso horário,
hora atual, hora virtual, ou datas, relacionados à entidade. A localização está
relacionada à posição geográfica da entidade, podendo ser verificada por GPS
no caso de um local real. A atividade como informação contextual diz à respeito
de um objetivo ou intenção de ação da entidade. Por fim, as relações entre as
entidades, que podem envolver qualquer tipo e interação ou troca de dados, de
forma à identificar comportamentos distintos.
Para o presente projeto, as informações contextuais do telespectador e de
um programa televisivo são fundamentais para que seja possível determinar uma
ligação entre comentários gerados por estes e assuntos contidos em programas
de TV.
6 Tradução própria
39
Artur Vieira Tenório
2.5 Trabalhos Relacionados
Existem diversos trabalhos comerciais e na literatura que envolvem temas
relacionados com o objetivo proposto neste projeto. Não foram encontrados
trabalhos que realizem precisamente análise qualitativa de audiência no Brasil,
logo, nesta seção serão vistos trabalhos que envolvem análise de sentimentos
no Twitter, e análises de dados relacionados à TV. Inicialmente serão vistos os
trabalhos comerciais e em seguida os acadêmicos.
2.5.1 Sistemas comerciais de análise de audiência usando o Twitter
Por ser um tema em evidência, explorar as possibilidades em relacionar
dados de redes sociais e televisão criou a possibilidade de sites comerciais
abordarem este assunto.
Qual Canal TV
Esta startup (QUAL CANAL TV, 2013) surgiu em 2005. Se consideram os
pioneiros neste assunto no Brasil. Esta empresa tem por objetivo monitorar
comentários gerados em mídias sociais sobre programas de TV brasileiros. Esta
empresa possui apoio do IBOPE e do Twitter para desenvolver métricas e
ferramentas que auxiliam seus clientes, em geral emissoras e empresas de
publicidade. Não é informado quais são os métodos utilizados para obtenção de
resultados, nem as redes sociais que compõem a base de dados.
TTV
Esta empresa (TTV, 2012) foi criada em 2010 por engenheiros e
pesquisadores com visão em computação natural. O foco é monitorar redes
sociais, de forma quantitativa e qualitativa. Seu público alvo, assim como o Qual
Canal TV, são emissoras e empresas na área de publicidade. A metodologia
utilizada para obtenção de resultados não é divulgada, nem as redes sociais que
são base de dados.
Social Guide
No fim de 2013, foi lançado o Social Guide (NIELSEN; TWITTER, 2014b),
empresa resultante da parceria entre o Instituto Nielsen e a rede social Twitter.
Este serviço permite analisar a audiência televisiva em tempo real. Atua apenas
nos Estados Unidos. Por ser resultado da junção das maiores empresas na área
40
Artur Vieira Tenório
de aferição de audiência e microblogging, há potencial para serem os maiores
no mundo também na área de análise de dados para TV.
2.5.2 Trabalhos acadêmicos que relacionam Twitter e TV
Nesta sessão serão vistos trabalhos que contemplam a análise de dados do
Twitter relacionados com TV.
Sharing the View Throught Second Screens
Nesta pesquisa (LOCHRIE; COULTON, 2012a) os autores propõem uma
investigação sobre o papel emergente dos celulares (no papel de segunda tela)
como facilitadores de conteúdos de TV. O objeto de estudo do referente trabalho
é um reality show realizado no Reino Unido, denominado “The X Factor”. Esta
pesquisa levou em consideração o comportamento previamente estudado
(LOCHRIE; COULTON, 2012b), que sugere uma prévia combinação por parte
das emissoras sobre quais elementos do Twitter serão explorados durante a
exibição do programa para estimular a interação dos telespectadores.
Para o TV Audience Analyzer, este estudo é relevante pois faz uma análise
de um programa em que costumeiramente há muita interação através da
segunda tela. Neste tipo de programa – reality show – costumeiramente há
sentimentos intensos por parte dos telespectadores, demonstrando aflição,
alegria e surpresa durante a exibição de cada episódio. A metodologia optada
pelos autores foi o filtro e quantificação de tweets contendo a hashtag “#xfactor”
durante a exibição do programa.
Entretanto, por ser uma pesquisa focada em avaliação da quantidade de
comentários gerados por uma plataforma móvel, e apenas um programa de TV
foi avaliado, foi verificado que não existiu uma preocupação em determinar quais
tweets eram considerados SPAM nem as repetições intencionais ou não de
comentários feitos por um mesmo autor em um curto intervalo de tempo.
Towards better TV viewing rates: exploiting crowd's media life logs
over Twitter for TV rating
O estudo realizado no Japão (WAKAMIYA; LEE; SUMIYA, 2011),
confrontou os resultados de audiência publicados pelo Nielsen Institute e os
possíveis valores reais. Com a justificativa de que o instituto Nielsen apenas
41
Artur Vieira Tenório
afere a recepção de conteúdo em televisores, desconsiderando outras formas
de recepção como Internet e dispositivos móveis. Wakamiya utilizou o Twitter
como fonte de dados visando quantificar a audiência de programas de TV
populares nas redes sociais.
Foi visto que em 2011, época da pesquisa, a segunda tela tinha relevância
no Japão, o que permitia que a interação emissora e telespectador pudesse ser
estimulada com a participação destes em redes sociais. Os dados gerados eram
analisados pelo referido trabalho visando identificar quando mencionavam algo
relacionado à um programa de TV.
Para comprovar a relevância desta pesquisa, Wakamiya desenvolveu um
comparativo, descrito na Tabela 4, entre o que é aferido pelo Nielsen e o que
poderia ser feito com o Twitter.
Tabela 4: Comparativo Nielsen e Twitter. Fonte: (WAKAMIYA; LEE; SUMIYA, 2011)
Dados do Nielsen TV Dados do Twitter
Participação Seleção aleatória de casas Qualquer pessoa
Unidade Quantidade de domicílios Pessoas
Audiência Participantes pagos Voluntários
Percepção Consciente Nenhuma ou inconsciente
Período Baseado em dia Quase em tempo real
Local No domicílio Em qualquer lugar
Custo Os participantes são pagos Quase zero
Metodologia Estatística Análise de dados gerados
pelos participantes
Pontos
positivos
Bem estabelecido
Estatísticas claras em
relação à idade e sexo.
Amostragem maciça
Geolocalização
Opinião e sentimento
Pontos
negativos
Pequena taxa de
amostragem
Pouca diversidade
Não considera opinião e
sentimento
Imprecisão das
características de
audiência
Possibilidade de ruído e
dados inconstantes
42
Artur Vieira Tenório
O método utilizado para identificação de um tweet como relacionado à um
programa foi feito através de hashtags pré-selecionadas. O TV Audience
Analyzer utilizou o mesmo princípio, entretanto foi implementada uma
automatização no processo de determinação destes dados, através de um
aprendizado de acordo com o que era publicado pelos próprios programas
através das suas contas de Twitter, em suas timelines, comprovando o
comportamento visto por Lochrie e Coulton (2012b).
A identificação de programas foi feita através da leitura de dados provindos
de um site, que disponibilizada o EPG dos canais desejados. Entretanto este
método não é o mais preciso uma vez que este site concentra as informações
de diversos canais, e possíveis alterações na grade de programação podem não
serem refletidas a tempo na base de dados. Há também o fator localidade. No
Brasil é comum canais abertos terem programações locais com nomenclaturas
diferenciadas. Por fim, a qualificação de audiência enumerada como um dos
fatores positivos na utilização do Twitter como fonte de dados, visto na Tabela 4
elaborada do Wakamiya, é contemplada pelo presente trabalho.
2.5.3 Trabalhos acadêmicos que relacionam classificação de sentimentos
em redes sociais
Existem diversos trabalhos na literatura associados à classificação de
sentimentos em redes sociais (alguns serão apresentados a seguir). A temática
envolvida varia de acordo com o direcionamento da pesquisa analisada. Dentre
os trabalhos lidos durante o desenvolvimento deste projeto, diversas evidencias
indicavam que na maioria das vezes em que alguém expressava um sentimento
sobre algo em redes sociais, este era negativo. Uma pesquisa realizada pelo
Instituto Pew Research Center (MITCHELL; HITLIN, 2013) reforçou esta
suspeita, que, nos trabalhos à seguir descritos, também se mantem.
An emotional polarity analysis of consumers’ airline service tweets
Mostafa (2013) realizou uma pesquisa para avaliar as companhias aéreas
do mundo, em especial as asiáticas. Sua pesquisa visou identificar comentários
em redes sociais que tivessem relação com cias aéreas e em seguida buscou
classificar os resultados obtidos entre positivo, negativo e neutro. A ferramenta
43
Artur Vieira Tenório
adotada por este estudo foi a SentiWordNet, por ser voltada à linguagem natural,
sendo esta uma das áreas de pesquisa do trabalho citado.
Apesar de analisar uma área onde a língua inglesa não predomina, neste
trabalho apenas foram considerados textos neste idioma, a fim de eliminar
problemas relacionados à tradução de textos, uma vez que a ferramenta
escolhida suporta nativamente o inglês. A rede social escolhida foi o Twitter, e
os tweets analisados foram oriundos de uma base de dados, sem utilização de
APIs para coleta dos dados.
Sentiment in Twitter Events
Neste trabalho, Thelwall (2011) realiza uma análise de comentários gerados
no Twitter, utilizando a língua inglesa, visando identificar que tipo de sentimento
foi empregado em cada texto. Os dados utilizados são originados da companhia
Spinn3r, empresa que tem por finalidade disponibilizar grandes quantiadades de
dados provenientes de redes sociais para que possam ser analizados por
empresas e trabalhos acadêmicos. A ferramenta utilizada foi a SentiStrength
(SENTISTRENGTH, 2012) devida à sua característica de ser otimizada para
textos curtos, com abreviações, como os encontrados no Twitter.
Na abordagem proposta não houve tratamento de repetições de comentários
por um mesmo autor, intencionais ou não, nem preocupação com SPAM. Através
dos resultados obtidos, Thelwall conclui que há forte evidencia de que eventos
populares geralmente remetem aos comentários negativos, e há evidencias de
que no auge de interesse em alguns eventos há positividade. Dentre os eventos
selecionados durante a análise de dados, boa parte deles eram relacionados à
televisão, como o Oscar e escândalo sexual do golfista Tiger Woods.
2.6 Considerações Finais
Ao término deste capítulo foi possível apresentar todo o referencial teórico
envolvido nesta pesquisa. A seguir será apresentada a proposta deste trabalho,
denominada TV Audience Analyzer. Esta busca demonstrar todos as etapas e
complexidades envolvidas na classificação qualitativa de comentários gerados
em redes sociais voltados à programação televisiva, em tempo real e utilizando
a língua portuguesa.
44
Artur Vieira Tenório
3. TV Audience Analyzer
Após a análise dos conceitos relacionados ao presente trabalho, é apresentada a
proposta de solução, denominada: TV Audience Analyzer. Este sistema deverá ser
capaz de identificar qualitativamente a audiência de determinado programa de TV. Neste
capítulo será vista uma visão geral do sistema, os requisitos, detalhamento de cada
módulo que compõe o sistema proposto e um cenário de uso explicando cada etapa
envolvida.
3.1 Visão geral do Sistema proposto
O TV Audience Analyzer é um sistema capaz de integrar dados provindos do EPG
(Eletronic Guide Program, ou guia de programação) emitido por uma emissora de TV
que transmite seu sinal no padrão digital (SBTVD, 2014) e os gerados pelos
telespectadores utilizando uma rede social (Twitter), classificando o sentimento e
expressado em seus comentários sobre determinado programa, de forma automatizada.
O resultado é uma aferição qualitativa da audiência de determinado programa de TV em
um poucos minutos. Desta forma é possível entregar ao produtor do conteúdo dados que
auxiliam no processo de tomada de decisão, tanto em tempo real quanto para decisões
futuras. A Figura 7 ilustra um cenário de uso.
Figura 7: Visão geral do TV Audience Analyzer. Fonte: Adaptado de (WAKAMIYA; LEE; SUMIYA, 2011)
45
Artur Vieira Tenório
O processo se dá inicialmente com a transmissão de TV por parte das emissoras de
conteúdo (item 1). A recepção do sinal é feita por televisores compatíveis com o padrão,
no caso digital, ISDB-Tb. Os receptores, denominados telespectadores, absorvem o
conteúdo visual e auditivo emitido resultante da transmissão. O módulo EPG Reader
procura na camada de dados a grade de programação. Todos os eventos de uma
emissora são identificados e guardados em um banco de dados, de forma que sejam
acessíveis futuramente pelos demais módulos do TV Audience Analyzer.
Telespectadores que sejam usuários de um dispositivo capaz de acessar a Internet,
por sua vez, comentam sobre a programação em redes sociais (item 2). Este
comportamento é cada vez mais comum, como foi visto em pesquisas como: “As
hashtags (#) da TV” (IBOPE; NIELSEN, 2011).
O Audience Analyzer (item 3) através de seu módulo Twitter Collector procura por
tweets, relacionando as informações obtidas pelo EPG Reader sobre a programação. Os
dados obtidos são preparados para que possam ser classificados (item 4) e devolvidos
em forma de resultados para o criador do conteúdo.
3.2 Levantamento de requisitos funcionais (RF)
Os requisitos que compõem o TV Audience Analyzer serão divididos em quatro
grupos, contemplando os módulos do sistema e a obtenção de TS.
Coleta de TS
A seguir serão vistos os requisitos que envolvem a etapa de captura de arquivo TS.
RF-CT.001: Padrão de transmissão de TV
Informações: A transmissão a ser capturada deve ser feita no padrão ISDB-Tb de
transmissão digital. Contemplando as normas ABNT NBR definidas pelo SBTVD.
Relacionado: N/A.
RF-CT.002: Captura de Sinal
Informações: O sinal de transmissão deve ser capturado por um dispositivo de
captura, capaz de interpretar dados da camada Full Seg.
Relacionado: RF-CT.001
RF-CT.003: Software de captura do sinal
46
Artur Vieira Tenório
Informações: Deve ser utilizado um software para criação de um arquivo no padrão
MPEG2-TS a partir de um sinal de TV..
Relacionado: RF-CT.002
EPG Reader
A seguir serão vistos os requisitos do primeiro módulo do TV Audience Analyzer,
responsável por ler os TSs gerados pelo processo de coleta de TS.
RF-EC.001: Ler arquivos do tipo TS
Informações: Será possível ler arquivos no formado MPEG2-TS, seguindo o padrão
ISDB-Tb, adotado pelo Brasil. O arquivo deverá ter o tamanho de pacote de dados entre
188, 192 e 204 bytes.
Relacionado: RF-CT.002 e RF-CT.003
RF-EC.002: Identificação de tabelas SI
Informações: Identificar as tabelas de informação que se localizam na camada de
dados de um arquivo TS. Nestas estão as tabelas que descrevem um EPG.
Relacionado: RF-EC.001
RF-EC.003: Identificação de informações contextuais
Informações: Todas as informações relacionadas à um programa de TV devem ser
identificadas. Dentre elas estão: nome do programa, data e hora de exibição, idioma,
localização geográfica.
Relacionado: RF-EC.002
RF-EC.004: Gravar dados no Banco de Dados
Informações: Todas as informações sobre a grade de programação obtidas devem
ser salvas em um banco de dados.
Relacionado: RF-EC.002 e RF-EC.003
Twitter Collector A seguir, serão vistos os requisitos do segundo módulo do TV Audience Analyzer,
responsável por coletar tweets via Internet e salvá-los para que possam ser lidos pelo
Sentiment Detector.
47
Artur Vieira Tenório
RF-TA.001: Acesso à API do Twitter
Informações: O uso de uma API disponibilizada pela rede social para obtenção de
dados do Twitter.
Relacionado: N/A
RF-TA.002: Pesquisar Tweets
Informações: Através da API, serão realizadas buscas por tweets para obtenção de
dados à ser classificados. As buscas são feitas utilizando informações contextuais de um
programa.
Relacionado: RF-EC002, RF-EC003, RF-TA.001.
RF-TA.003: Gravar em arquivo os tweets
Informações: Os tweets obtidos devem ser gravados em arquivos, identificando o
dia e o programa relacionado.
Relacionado: RF-TA.002, RF-TA.005
RF-TA.004: Normalização de textos
Informações: Os tweets devem ser normalizados para que a classificação seja feita.
Estão inclusos processo de remoção de duplicidade, spam, e ajustes gramaticais e
ortográficos e remoção de tweets não relacionados com o programa televisivo.
Relacionado: RF-TA.003
RF-TA.005: Tradução para o Inglês
Informações: Os textos coletados e normalizados devem ser traduzidos para a
língua inglesa, de forma que possam ser lidos pelos classificadores de sentimentos.
Relacionado: RF-TA.004
Sentiment Detector
A seguir serão apresentados os requisitos que contemplam o último módulo do TV
Audience Analyzer.
RF-SD.001: Leitura de arquivos
Informações: Serão lidos os arquivos em que estão salvos os tweets normalizados
e traduzidos.
Relacionado: RF-TA 003, RF-TA.004
48
Artur Vieira Tenório
RF-SD.002: Classificação de Tweets
Informações: Os textos obtidos pela leitura de arquivos devem ser enviados para
uma ferramenta que classifique o sentimento empregado.
Relacionado: RF-SD.001
RF-SD.003: Resultados
Informações: Os resultados obtidos pela classificação de sentimentos devem ser
compilados e demonstrados.
Relacionado: RF-SD.002
3.2.1 Visão geral dos requisitos
Através da Figura 8 é possível visualizar cada requisito do sistema, de acordo com
seu grupo:
Figura 8: Requisitos do sistema. Fonte: Próprio autor
3.3 Requisitos Não Funcionais (RNF)
Abaixo serão listados os requisitos não funcionais (RNF) que foram considerados na
elaboração da solução descrita no presente projeto.
49
Artur Vieira Tenório
RNF.1: Localização.
O sistema deve rodar exclusivamente no ambiente (composto de transmissão e
programas) nacional. Devem ser consideradas a norma e o padrão de transmissão
especificado pelo SBTVD7.
RNF.2: Relevância.
O sistema deve utilizar informações contextuais do programa televisivo para
determinar se um tweet deve ser considerado relevante.
RNF.3: Disponibilidade.
O sistema deve estar disponível, desde que o Twitter e a conexão com a Internet
estejam também disponíveis.
3.4 Coleta de TS
Para que a leitura do EPG fornecido pelas emissoras aconteça, é necessário um
sistema capaz de ler o sinal transmitido por antenas seguindo o padrão ISDB-Tb – o
padrão adotado no Brasil – e identificar a tabela responsável por conter estes valores,
que está contida na camada de dados.
Uma transmissão começa com as camadas de vídeo/áudio, que são multiplexadas
com os dados referentes ao conteúdo. Através deste processo é obtido um stream no
padrão MPEG2-TS. Estes são modulados e amplificados, seguindo para a antena de
transmissão (ABNT NBR 15601, 2008). Este processo é visto na Figura 9, abaixo.
Figura 9: Transmissão TS. Fonte: (ABNT NBR 15601, 2008)
A leitura deste sinal é feita através de receptores capazes de transformar o sinal
modularizado em um TS. Neste projeto, foi utilizado um receptor de TV digital Full Seg8
7 Sistema Brasileiro de Televisao Digital 8 Receptor USB Leadership: http://www.leadership.com.br/Receptor-TV-Digital-FullHD.html?codproduto=90
50
Artur Vieira Tenório
para recepção de sinal. Este produto em específico possui um sistema para visualização
da transmissão, entretanto o sistema não é capaz de realizar gravações. Para a captura
de sinal seguindo o padrão MPEG2-TS, foi utilizado o aplicativo reprodutor de mídias e
streams VLC.
O projeto VideoLanClient (VLC)9 surgiu em 1996 na França resultante de um trabalho
acadêmico voltado ao desenvolvimento de um tocador de mídias. Dentre as suas
principais características estão a capacidade de tocar qualquer mídia graças à sua vasta
quantidade de codecs embutidos.
O VLC possui a opção de receber dados provindos de um dispositivo de captura,
bem como gravá-los. Para isto é necessário utilizar a opção correspondente, usando
como parâmetro a frequência do canal digital desejado.
Em Recife, por exemplo, a Rede Globo está no canal 35 UHF sob frequência 599142
kHz. No exemplo da visto na Figura 10, foi feita uma captura do programa Sai de Baixo,
na TV TEM (Sorocaba – SP) canal UHF 26, frequência 545143 khz.
Figura 10: Captura imagem VLC. Fonte: Próprio autor
9 Mais informações em: http://www.videolan.org/vlc/index.html
51
Artur Vieira Tenório
3.5 EPG Reader
A linguagem de programação JAVA foi utilizada para a leitura de arquivos TS e o
framework Hibernate10 para leitura e escrita de dados no banco de dados. O Hibernate
é um framework utilizado para mapeamento dos objetos Java e as tabelas de um banco
de dados. No presente projeto, o PostgreSQL11 foi escolhido como ferramenta de
gerenciamento de banco de dados.
O EPG Reader é o módulo responsável por ler os arquivos do tipo TS coletados para
a identificação dos dados sobre a programação televisiva. Este módulo foi elaborado
especificamente para o padrão brasileiro de TV Digital, o ISDB-Tb (ABNT NBR 15603-1,
2008). Através das especificações relacionadas ao padrão MPEG2-TS (ISO/IEC 13818-
1, 1995) e tabelas SI, vistas na seção 2.1.2 da fundamentação teórica, é possível
construir um sistema capaz de ler as tabelas contidas na camada de dados de um TS,
sendo o áudio e o vídeo ignorados pois não fazem parte do escopo proposto.
Cabe à este módulo contemplar os requisitos relacionados à leitura de TS,
identificação de eventos que compõem um EPG, programas de TV e ordenação de
acordo com a data e horário de realização. A descrição de cada evento é atrelada ao dia
e horário, pois pode ocorrer variação, como ocorre em eventos esportivos e filmes. Esta
ordenação permite que sejam acessíveis via banco de dados os dados relacionados a
um programa de acordo com o horário e data desejada.
Para garantir que qualquer tipo de arquivo MPEG2-TS seja lido, desde que de acordo
com o padrão estabelecido, é necessário detectar o tamanho de cada pacote de dados
que compõem o TS. Estes variam entre 188, 192 e 204 bits por unidade. A variação é
devida a inserção ou não e do tipo do Digital Storage Media Command and Control
(DSMCC) que é o carrossel de dados em que uma aplicação interativa se
encontra(ISO/IEC 13818-6, 2000).
Todos os pacotes de dados que compõem um TS devem ter uma identificação de
início feita pelo byte de sincronia (ISO/IEC 13818-1, 1995) cujo valor é: 0x48. Este fica
localizado no cabeçalho do pacote, onde também está localizado o Packet Identifier PID,
que identifica qual é o conteúdo contido no corpo do pacote. Podem ser divididos em três
grupos, pacotes de áudio, vídeo e dados, como pode ser visto na Figura 9 (página 49).
Estes grupos estão contidos em todos as segmentações de uma transmissão ISDB-Tb,
10 Disponível em: http://hibernate.org/ 11 O banco de dados PostgreSQL é gratuito, e está disponível em: http://www.postgresql.org/
52
Artur Vieira Tenório
denominadas camadas. A camada A é voltada para a transmissão em High Definition TV
(HDTV), a alta definição ou resolução, sendo a principal camada de transmissão digital
e seu identificador é o valor 0x12. A camada B é voltada para a transmissão Standard
Definition TV (SDTV), a definição padrão, a mesma dos televisores analógicos e seu
identificador é o valor 0x26. Por fim, a camada C, voltada para a transmissão One-Seg
ou Lower Definition TV (LDTV), sendo esta a camada de transmissão para dispositivos
móveis, como celulares e alguns tablets. Seu identificador é o valor 0x27.
Apenas os pacotes de dados relacionados à camada A foram lidos para identificação
das tabelas Event Information Table (EIT) identificadas pelo PID 0x12 (coincidentemente
o mesmo valor identificador da camada A), que contém os dados de eventos da grade
de programação (ABNT NBR 15603-1, 2008). Nesta tabela devem conter
obrigatoriamente as informações cronológicas relativas aos eventos. Cada tabela EIT é
segmentada em event_information_sections, onde é possível verificar quando um evento
inicia e a sua duração. Cada programa é identificado pelo descritor de serviço curto.
As informações obtidas de cada evento e programa descritas na Tabela 5,
juntamente com um exemplo de dado capturado.
Tabela 5: Dados de eventos. Fonte: Própria autoria
Nome Exemplo
Start Date “11/10/2013”
Start Time “07:35:00
Duration “00:45:00”
Country Availability (País) “Brasil”
Short Event Programa jornalístico matinal.
Event Name Bom dia Brasil
Para evitar redundância de dados, é necessário que cada programa identificado seja
verificado no banco de dados. Isto impede que mesmo em casos de variação na escrita
do título, um mesmo programa tenha mais de uma ocorrência.
3.6 Twitter Collector
O módulo do sistema responsável por coletar dados de redes sociais e prepara-los
para que sejam classificados por ferramentas específicas, é responsável por lidar com
textos e dados provindos da Internet.
53
Artur Vieira Tenório
Foi escolhida a linguagem Python para implementação do sistema, devido à
facilidade na manipulação de dados textuais e por possuir diversas bibliotecas que
facilitam o acesso às APIs do Twitter e demais serviços Web necessários para atender
aos requisitos deste sistema.
3.6.1 Acesso aos dados do Twitter
Existem duas APIs de acesso aos dados do Twitter, a REST API e a STREAM API,
previamente citadas na fundamentação teórica deste trabalho. Nesta seção serão vistas
as principais características e as formas de uso de cada uma destas formas de acesso.
REST API
A REST API utiliza a a arquitetura Representional State of Transfer (REST),
estabelecendo uma comunicação entre o aplicativo e o servidor, permitindo que sejam
feitas solicitações em uma sessão. As requisições são feitas via HTTP, o servidor HTTP
acessa os dados internos do Twitter e os entrega serializados no padrão JSON. Uma
aplicação pode realizar até 180 pesquisas em um intervalo de 15 minutos12.
A Figura 11 abaixo ilustra o processo de solicitação de dados através desta API.
Figura 11: Funcionamento da REST API. Fonte: Twitter
São disponibilizados comandos do tipo get e set, sendo possível acessar os dados
da conta do usuário atrelado às chaves OAUTH (TWITTER, 2013). É possível acessar a
12 https://dev.twitter.com/docs/rate-limiting/1.1
54
Artur Vieira Tenório
timeline, enviar tweets, fazer pesquisas por termos, dentre diversas outras
funcionalidades que não são relevantes para este trabalho. As pesquisas por tweets
retornam até 200 resultados por requisição, onde a palavra utilizada como termo consta
no texto gerado por um usuário. Mesmo que naquele momento mais de 200 tweets
tenham sido gerados, sendo responsabilidade do Twitter escolher quais serão os textos
retornados, visando sempre resultados com qualidade em conteúdo, ou seja, baixa taxa
de SPAM. É possível visualizar tweets gerados até uma semana antes da requisição.
Cada tweet retornado possui dados relacionados ao usuário que gerou, localização e
idioma. Possui uma latência elevada devido à geração de um arquivo como resposta, e
a realização de filtros mais elaborados de SPAM.
STREAM API
Através desta interface de comunicação é estabelecida uma conexão que não
permite envio de comandos, sendo possível exclusivamente receber dados via stream.
A pesquisa por tweets retorna dados em tempo real, a partir do momento da solicitação
de forma ilimitada, com baixa latência. Uma vez solicitada um filtro por tweets, todas as
postagens geradas a partir daquele momento que possuem a palavra indicada são
enviadas para a aplicação solicitante(TWITTER, 2013). O processo é ilustrado na Figura
12, abaixo.
Figura 12: Comunicação STREAM API Twitter. Fonte: (TWITTER, 2013)
Twython
55
Artur Vieira Tenório
Dentre as diversas bibliotecas Python que facilitam acesso às APIs de redes sociais,
dentre elas o Twitter, foi escolhido o Twython13. Esta biblioteca cria uma interface de
comunicação entre a rede social e o código Python, sendo possível acessar ambas as
APIs do Twitter através de métodos get e set. Dentre as funcionalidades permitidas,
destacam acesso à timeline e busca por termos pela REST API e filtragem de strings
utilizando a STREAM API.
Considerações
A API REST foi escolhida como a principal para as finalidades do presente projeto.
Os principais fatores que motivaram esta escolha são destacados abaixo:
Possiblidade de leitura de dados em uma timeline, inclusive a do usuário que
foi utilizado para acesso à API.
Capacidade receber dados anteriores à data da pesquisa. Sendo assim foi
possível analisar programas mesmo após o seu início, o que corriqueiramente
aconteceu durante a implementação do sistema, principalmente durante o
período do horário de verão, onde um programa iniciava em um determinado
horário e o mesmo iniciava uma hora após em alguns estados do Brasil.
Limitação de palavras que possam ser traduzidas pelo Bing Tradutor (será
detalhado na seção 3.6.5)
Melhor filtro de SPAM e repetições em relação ao Stream API, desta forma foi
possível reduzir o ruído encontrado nos dados relacionados ao programa
aferido.
Segundo a documentação das APIs do Twitter (TWITTER DEVELOPERS,
2013), quando há foco em relevância, a REST API é a mais indicada, o que é
fator vital para o TV Audience Analyzer.
É importante destacar que para a avaliação de desempenho de um programa de TV,
a API STREAM consegue obter dados em tempo real e em maior quantidade, como será
demonstrado (seção 4.5, página 81). Foram feitos testes utilizando esta API para
demonstração da sua capacidade.
13 Biblioteca gratuita, disponível no GitHub através do link: https://github.com/ryanmcgrath/twython
56
Artur Vieira Tenório
A forma padrão de coleta de tweets é a utilização da função search da REST API
recebe os argumentos abaixo:
• Query: O termo de pesquisa – Hashtag ou palavra relacionada;
• Count: A quantidade máxima de resultados;
• Lang: O idioma que se deseja procurar;
• Until: Limita os resultados até a data utilizada.
O termo de pesquisa é o principal argumento utilizado nesta função pois é ele quem
define o que é procurado naquele momento. Todos os tweets que retornados pela busca
possuem esta palavra contida. A sua determinação é fundamental para captar os tweets
relacionados com um programa de TV.
3.6.2 Definição das strings de busca
A definição do string de busca é essencial para garantir a eficácia de textos
relacionados a audiência de um programa televisivo. O processo é semelhante a uma
pesquisa em um site de buscas. Quanto mais relevante for a string pesquisada, maiores
as chance de respostas relacionadas com o assunto desejado. A problemática nesta
etapa é a definição do que procurar em relação à um programa, ou seja, quais termos
são relevantes para uma busca voltada aos comentários de programas televisivos.
Estudos realizados no Reino Unido (LOCHRIE; COULTON, 2012b) sugerem que é
cada vez mais comum que produtores de conteúdo combinem em tempo real elementos
de interação que deem ser utilizados no Twitter para que seja possível realizar uma
interação entre telespectador e emissora. Dentre eles, são vistas menções14, hashtags
ou sugestões de contas que devem ser seguidas. Cremonesi et al. (2013) provou a
eficácia desta abordagem ao detectar direcionamento de tweets à programas televisivos
através de hashtags.
No Brasil, foi constatado que a maioria dos programas de grande audiência e as
principais emissoras possuem contas oficiais no Twitter. São sugeridas hashtags que,
ao serem utilizadas, podem fazer com que aquele tweet seja visto ao vivo para todos os
telespectadores. Para este projeto, foram priorizadas as hashtags promovidas pelas
emissoras e as mais promovidas pelos programas.
14 Termo utilizado no Twitter quando um usuário cria um tweet direcionado a um usuário.
57
Artur Vieira Tenório
Abaixo, na Figura 13, há um exemplo deste comportamento. No domingo à noite, a
conta @rede_globo (conta oficial da emissora) tweetou uma informação seguida de uma
hashtag “#SaideBaixo” que é relacionada ao programa que iria ao ar logo após o
programa que estava em exibição, Fantástico. A conta @showdavida (conta oficial do
programa Fantástico) instantes depois tweetou um assunto relacionando ao programa,
promovendo a hashtag #Fantástico.
Figura 13: Tweets gerados por contas de emissoras. Fonte: Twitter
Entretanto, apenas um exemplo de busca não atendia à expectativa deste projeto.
Há casos em que os usuários se referem a um programa sem usar a hashtag especifica
do programa, mas alguma relacionada à um conteúdo de uma das atrações do mesmo.
Casos como o programa Caldeirão do Huck possuem quadros que de tão populares
tomam vários minutos do programa, causando uma impressão de serem um programa à
parte.
No exemplo visto na Figura 14, onde a hashtag “#seeufossevoce” foi promovida pela
conta oficial do programa, levando diversas pessoas à comentarem usando ela no texto.
Este termo referencia um quadro dos principais quadros do programa, “Se eu fosse
você”; na tarde em que foi ao ar, o convidado era o ator Caio Castro. Por coincidência,
no mesmo dia, algumas horas antes do quadro ir ao ar, um filme de mesmo nome passou
em outra emissora, a FOX. É possível verificar que apesar de ser uma forma alternativa
de capturar termos relacionados à um programa, que não seja o próprio nome, pode
retornar textos publicados com referncia à outro programa.
58
Artur Vieira Tenório
Figura 14: Exemplo hashtag relacionada ao programa. Fonte: Twitter Mobile
3.6.3 Informações Contextuais
O uso de informações contextuais para pesquisas de tweets visa eliminar o ruído de
dados que pode surgir ao realizar a busca por um termo. Procurar por um programa,
como o dominical Fantástico (Rede Globo) pode retornar resultados relacionados a um
filme que tenha sua reprodução no mesmo dia (ex.: Quarteto Fantástico). Restringir os
tweets obtidos de acordo com informações fornecidas pelo EPG que diferenciem o
programa do filme torna-se uma forma de evitar que dados inconsistentes sejam
atrelados ao programa de TV a ser analisado.
Qualquer informação que possa ser utilizada para caracterizar uma determinada
entidade (DEY, 2001) é definida como informação contextual. Este trabalho se propõe à
utilizar as informações disponíveis na grade de programação, coletadas pelo EPG
Reader para determinação de dados que auxiliem a determinação de relação entre tweet
e assunto relacionado, onde este pode ou não ser o programa televisivo em questão.
Visando adaptar algumas das categorias de informações contextuais definidas por
Zimmerman (2007) à realidade encontrada no projeto apresentado, são extraídas as
59
Artur Vieira Tenório
seguintes características de cada programa: Nome do programa, idioma, data/hora
início, duração e país.
A adequação dos dados fornecidos por um TS se faz necessária para que sejam
compatíveis com os valores que as APIs do Twitter esperam. O idioma enviado pelas
emissoras é denominado “PORT”, que é então ajustado para “pt” (formado esperado pela
rede social). A localização geográfica fornecida pelo EPG é apenas o nome do país, no
caso Brasil. Entretanto, em cada tweet são encontrados valores de latitude e longitude
do emissor de conteúdo. Para solucionar este problema, é utilizada a API Google Maps
V315, fornecida pela Google e acessada via Python pela biblioteca geopy16. Esta
implementação permite que seja possível verificar se a latitude e longitude de um tweet
está contida no país atrelado ao programa, permitindo a exclusão de tweets não
relacionados.
3.6.4 Preparação de dados
Após o refinamento dos resultados retornados de uma pesquisa, reduzindo a
quantidade de tweets com conteúdo não relacionado ao visto no programa televisivo, se
faz necessário preparar os tweets com intuito de aprimorar a eficácia das ferramentas de
classificação de sentimentos.
Filtragem de Tweets
É comum encontrar tweets repetitivos gerados por um mesmo autor no Twitter, o que
acarreta em dados redundantes que podem ser computados no TV Audience Analyzer.
Visando reduzir o esforço dos processos subsequentes, todas as repetições de conteúdo
são eliminadas do sistema. Em muitos casos, há uma tentativa de promover hashtags
com propósitos geralmente relacionados à SPAM (LOCHRIE; COULTON, 2012a).
A remoção destes dados permite que os resultados de uma análise quantitativa
sejam contaminados pelos comentários de alguns indivíduos mal intencionados.
Normalização de textos
15 https://developers.google.com/maps/documentation/javascript/ 16 https://code.google.com/p/geopy/
60
Artur Vieira Tenório
As palavras contidas em um comentário enviado a uma rede social costumeiramente
possuem jargões, gírias e expressões não usuais, sendo comum os casos de erros
gramaticais e ortográficos. As diversidades linguísticas presentes no idioma português
crescem quando o ambiente em questão são as redes sociais. Casos como “muiiiiitooo
booooooomm” ou “kkkkkkkk” são vistos constantemente nestes ambientes e em especial
no Twitter, sendo necessária uma normalização prévia destes termos, como a descrita
por Han (HAN; BALDWIN, 2011). Desta forma, estes textos podem ser identificados
corretamente por sistemas classificadores de sentimento, que usualmente esperam as
palavras contidas em banco de dados provindos de textos e dicionários.
A abordagem mais comum para esta problemática é a utilização de algoritmos
voltados ao aprendizado de máquina juntamente com diversos textos à serem
aprendidos (THELWALL, 2011).
Estas abordagens fogem dos objetivos propostos no TV Audience Analyzer visto que
a língua portuguesa não possui tantos trabalhos relacionados quanto a inglesa.
Uma implementação simples para normalização da maioria dos jargões identificados
foi utilizada no Twitter Collector visando melhorar o desempenho dos classificadores de
sentimento, entretanto não foram feitos estudos avançados nesta área. Nesta etapa,
cabe ao sistema substituir os termos identificados por palavras que tenham o mesmo
sentido, mas também façam parte da gramática.
3.6.5 Tradução para o Inglês
Como será visto na seção 3.7, é necessário traduzir do português para o inglês os
textos coletados para classificação de sentimentos. A solução identificada para o
desenvolvimento desta etapa foi a utilização do tradutor de textos Bing17 (Microsoft),
Através deste serviço é possível enviar até 2 milhões de caracteres por mês de forma
gratuita, o que permite traduzir até 14285 tweets por mês, totalizando aproximadamente
476 tweets por dia.
Esta limitação ressalta a importância da remoção de tweets repetitivos, spams e de
termos ou jargões como os vistos na etapa de normalização, que no geral não são
traduzidas pelo Bing, mas são contabilizadas na cota mensal. Devida à opção pela REST
17 Disponível em: http://www.microsoft.com/web/post/using-the-free-bing-translation-apis
61
Artur Vieira Tenório
API (seção 3.6.2) neste projeto, o valor médio de tweets por dia que podem ser
traduzidos é a quantidade suficiente para os objetivos estabelecidos.
3.7 Sentiment Detector
O objetivo deste módulo é demonstrar uma abordagem para qualificação de
audiência relacionada a um programa televisivo. Não é objetivo principal elaborar
especificamente um algoritmo que analise textos e efetue a classificação em relação ao
sentimento empregado. A determinação de quais ferramentas seriam utilizadas para este
módulo foi feita após uma análise de viabilidade de uso. A existência de APIs que
facilitem o uso em um sistema computacional e a liberdade de uso para fins acadêmicos
foram fatores primordiais a seleção de ferramentas candidatas. Os resultados obtidos
em um comparativo de classificadores de sentimentos (ARAÚJO et al., 2013) apontou
para as ferramentas SentiStrength e SentiWorldNet (SWN) como as mais adequadas
para o propósito desejado, além de possuírem um melhor desempenho.
A classificação de sentimentos de acordo com a hashtag utilizada (RODRIGUES
BARBOSA et al., 2012) já foi objeto de estudo, sendo uma abordagem alternativa e que
não está atrelada a ferramentas de classificação. Demonstra ser bastante eficaz, mas
não pode ser utilizada para o objetivo proposto neste trabalho. O público que se deseja
atingir difere do abordado por Rodrigues Barbosa et al., uma vez que a busca é feita por
um tema em questão, e no caso do estudo realizado, visava eleições. O TV Audience
Analyzer, através do Sentiment Detector visa classificar textos com diversos assuntos,
mas que estão ligados à um programa televisivo, que caracterizam-se por ter temas que
iniciam e terminam durante a transmissão, não permitindo que seja constante a utilização
de hashtags indicadoras de sentimentos.
Não foram encontradas ferramentas de classificação que contemplem a língua
portuguesa, sendo necessário então que a tradução (seção 3.6.5) para o idioma inglês
dos textos obtidos. Este módulo limita-se à enviar os comentários obtidos pelo Twitter
Collector e classificar através das APIs de integração dos classificadores de sentimento
escolhidos. Foi utilizada a linguagem de programação JAVA para este propósito, visando
a compatibilidade com as ferramentas (SENTI WORLD NET, 2010; SENTISTRENGTH,
2012).
3.8 Arquitetura
A arquitetura adotada para o TV Audience Analyzer é dividida em três camadas:
Interface, Negócios e Dados. Através da camada de interface é possível selecionar os
62
Artur Vieira Tenório
TS que devem ter suas EPGs lidas e salvas no banco de dados da aplicação. Também
através desta camada é possível adicionar manualmente hashtags relacionadas ao
programa televisivo em que se deseja pesquisar. Por fim, nela são apresentados os
resultados. Na camada de negócios estão todas as funcionalidades necessárias para
verificação de relevância de tweets, preparação dos dados e classificação de
sentimentos. Por fim, na camada de dados estão os arquivos TXT gerados e os dados
armazenados no banco de dados do sistema.
Com o intuito de ilustrar a arquitetura geral do sistema, de forma unificada, podendo
ser vista a integração dos três projetos em uma visão única, é apresentada a Figura 15.
Figura 15: Arquitetura TV Audience Analyzer
63
Artur Vieira Tenório
3.9 Considerações finais
O TV Audience Analyzer é uma solução capaz de aferir qualitativamente a audiência
de determinados programas de TV, entregando para os produtores de conteúdo uma
ferramenta automatizada. Neste capítulo, foi possível detalhar a especificação da
solução proposta, sendo explanadas as funcionalidades e etapas necessárias para a
coleta a obtenção dos resultados desejados.
A opção de uma estrutura composta de três módulos, formando uma arquitetura em
três camadas (interface, negócios e dados), viabiliza a possibilidade de uso em paralelo
e em locais distintos, desde que interligados pelo acesso aos artefatos gerados e ao
banco de dados. Esta abordagem é válida, visto que o processo de captura e leitura de
TS envolve um ambiente fisicamente localizado em um uma área com cobertura do sinal
de TV da emissora desejada.
A implementação do EPG Reader pode ser utilizada como referência para outros
projetos focados em leitura de dados de TS, pois são identificadas todas as tabelas de
dados descritas na norma de TV digital (FORUM SBTVD, 2008) tendo a grade de
programação como foco. Foi automatizada a solução encontrada por emissores de
conteúdo para obter termos de pesquisas, utilizados pelo Twitter Collector. Foram
apresentadas soluções que visam melhorar a capacidade de qualificação de textos
enviados por telespectadores através das redes sociais, tendo o objetivo de demonstrar
uma solução computacional capaz de identificar textos relacionados à um programa de
TV e adaptá-los para que possam ser compreendidos por sistemas classificadores de
sentimentos, eximindo a preocupação em classificar termos específicos de redes sociais.
O sistema responsável por identificar o sentimento empregado foi uma
implementação com fins de prova de conceito, uma vez que a tradução para inglês, a fim
de utilizar as soluções apresentadas tornou-se um fator redutor de eficácia por um motivo
além dos propostos aqui. O uso de um sistema classificador de sentimentos o português
provavelmente traria resultados melhores, mas as complexidades envolvidas nesta
construção extrapolariam o escopo deste trabalho.
64
Artur Vieira Tenório
4. Implementação do Sistema
Após a apresentação da arquitetura e funcionalidades do TV Audience Analyzer,
será apresentada a implementação dos requisitos propostos, juntamente com os
resultados obtidos. Cada etapa descrita na visão geral do sistema será ilustrada com os
trechos correspondentes de código para cada módulo do sistema. Os cenários de uso
elaborado visam comprovar a relevância de cada requisito proposto. Como forma de
obtenção de uma referência, alguns resultados foram comparados com os obtidos por
um ser humano.
4.1 Descrição do Ambiente
Para a utilização do sistema foi utilizada um notebook dotado do sistema operacional
Windows 7 64bits, com o Java Software Development Kit 7, Python 2.7 e PostgreeSQL
9.3 instalados; acesso à Internet e um receptor de TV Digital Full Seg via porta USB do
fabricante Leadership.
Foi viabilizada a realização das análises em três cidades distintas, com
características que puderam dar uma perspectiva melhor das especificidades que podem
ser encontradas no país, como: diversidade de conteúdo, fuso horário e a não
padronização na nomenclatura de programas; Estas são algumas das inconsistências
encontradas nestas cidades, descritas na Tabela 6.
Tabela 6: Relação de cidades em que foram coletados TSs.
Cidade Fuso horário Característica
Recife – PE UTC -03:00 Localizada no nordeste do país.
Grande quantidade de programas locais.
Rio de Janeiro - RJ
UTC -02:00 (Horário de verão)
Segunda maior cidade do país, cidade sede da principal emissora
pesquisada: Globo.
Sorocaba - SP Cidade do interior de São Paulo,
pouco conteúdo local.
A diferença de horário encontrado nestas cidades durante o período do horário de
verão gerou a necessidade de alteração no algoritmo de coleta de tweets, sendo o
horário de coleta de dados ampliado para um tempo próximo à duração do programa
antes ou após a hora da coleta, de acordo com o lugar. Desta forma foi possível captar
tweets de usuários que viam o programa em horários distintos.
65
Artur Vieira Tenório
A falta de padrão na nomenclatura de programas utilizado por estas cidades e entre
as emissoras demonstrou ser um fator dificultador para o EPG Reader, visto que o seu
RF-EC.002 prevê que os programas sejam salvos no banco de dados de acordo com o
nome, a fim de permitir que a busca por palavras chave (hashtags) atreladas a este seja
feita para o evento do horário corrente. É possível visualizar alguns casos encontrados
de acordo com a emissora e localidade, na Tabela 7.
O Rio de Janeiro, cidade onde está a sede da Rede Globo, tende à utilizar a
nomenclatura correta, em Recife não é visto o uso de caracteres especiais (ex.: “&” e “ª”)
no título dos programas. Já em Sorocaba, é frequente o uso de caixa alta, além da
ausência de caracteres especiais. Por fim, os programas jornalísticos regionais, com
nomenclatura especifica, exigem adaptações no sistema para que a verificação de
localização seja mais especifica, sendo a cidade e não o país um fator determinante.
Tabela 7: Nomenclatura adotada para programas pelas emissoras analisadas
Globo Rio de Janeiro Globo Recife Globo Sorocaba
Amor & Sexo Amor e Sexo AMOR E SEXO
Festival de Sucessos – A Força em Alerta
Festival de Sucessos FESTIVAL DE SUCESSOS
Globo Notícia Globo Notícia GLOBO NOTICIAS
RJ TV – 1ª Edição NETV – 1a. Edição TEM NOTÍCIAS
4.2 Descrição de um cenário de uso
Com o intuito de demonstrar o funcionamento pleno da ferramenta, é apresentado
um caso de uso, onde é possível descrever todas as etapas compreendidas na análise
qualitativa de sentimentos. Foram utilizados dados hipotéticos baseados em uma
transmissão real.
“A emissora Rede Globo deseja avaliar o desempenho do programa semanal
apresentado por Luciano Huck, intitulado Caldeirão do Huck. O TV Audience Analyzer é
utilizado para aferir qualitativamente a audiência durante o decorrer do programa. Um
arquivo de TS é gerado resultante da transmissão feita na cidade escolhida dois dias
antes da transmissão do programa.
O arquivo gerado é lido pelo EPG Reader. Todos os eventos identificados no TS
são salvos no banco de dados (BD) da aplicação. Os programas que ainda não estavam
cadastrados no BD são automaticamente inseridos. No sábado, durante um intervalo do
programa, após a apresentação do cantor Luan Santana, o Twitter Collector (TC) é
acionado para preencher a base de dados com tweets relacionados.
66
Artur Vieira Tenório
O TC verifica na conta oficial do programa @caldeiraodohulk e na conta oficial do
apresentador @LucianoHuck quais foram as hashtags enviadas nos comentários cerca
de 30 minutos antes do início do programa até o presente momento. Foram encontrados:
#seeufossevoce, #luansantananocaldeirao e #caldeirao; Estes valores são utilizados
como query (03 buscas) na procura por tweets relacionados.
São retornadas 215 ocorrências na somatória das três buscas iniciais utilizando a
API REST do Twitter. São descartados 05 tweets pois eles foram realizados em um
horário superior à 30 minutos antes do programa – neste momento passava um filme
chamado “Se eu fosse você” em outra emissora – e 01 tweet com a hashtag #caldeirao
tinha a localização fora do Brasil (a latitude e longitude indicavam Portugal). O filtro de
redundância é utilizado e detecta 40 Tweets que podem ser descartados pois são
idênticos (provável SPAM). O segundo filtro é aplicado e outros 14 tweets compostos
apenas de uma palavra são removidos (nestes casos é impossível classificar algum
sentimento ou relacionar ao programa de TV).
Do total, 155 tweets são considerados válidos. Estes passam pelo normalizador de
textos, corrigindo as palavras: “adooooorooo” por “adoro” e “kkkkkkkk” por risos. O
resultado dos filtros é traduzido para inglês usando o BING Translator API. O Sentiment
Analyzer é acionado para classificar os textos finais. Os resultados são apresentados na
Tabela 8:
Tabela 8: Resultados obtidos
Programa Positivo Negativo Neutro
SentiStrength 35% 15% 50%
SentiworldNET 34% 6% 60%
Avaliação Humana 29% 11% 60%
Através dos resultados parciais, é possível identificar que o programa não está
causando impacto negativo considerável na audiência.”
4.3 Implementação dos módulos
Nesta sessão será possível identificar as principais funções implementadas neste
projeto, bem como diagramas de sequência e de classes ilustram a interação entre as
classes de cada módulo.
67
Artur Vieira Tenório
4.3.1 EPG READER
A aplicação possui uma classe Main responsável por iniciar o processo de leitura de
um TS, localizado na classe TSChecker. Os parâmetros que a aplicação recebe,
identificados por argumentos são as cidades desejadas para leitura de TSs capturados.
A inicialização padrão pode ser exemplificada da seguinte forma:
A leitura destes argumentos pela função main pode ser visualizada na
implementação abaixo:
Para o funcionamento correto, é necessário que a estrutura de pastas siga o padrão
determinado, ilustrado abaixo, desta forma é possível identificar algoritmicamente a
cidade e a emissora relacionados com o TS a ser lido.
O arquivo do tipo TS é lido, e cada um dos seus pacotes interpretado pela classe
TSParser, responsável por preencher objetos do tipo Packet para que possam ser lidos
pelo sistema. Após a identificação, cada pacote é enviado para o objeto estático
ParsePacket, que faz a leitura de todos os valores contido em um pacote, preenchendo
uma estrutura definida com todos os dados das tabelas SI.
Todos os dados relacionados aos eventos que compõem um EPG são salvos em
uma lista de objetos do tipo EPGValues, para seguir a estrutura estabelecida no banco
de dados. Através da classe EPGConstructor, estes dados são espelhados com banco
de dados através de uma classe DataBaseFacade. O diagrama de classes na Figura 16
(página 68) ilustra as principais classes e a sua integração.
java -jar EPGReader.jar Recife Sorocaba “Rio de Janeiro”
public static void main(String[] argumentos) { System.out.println("Iniciando EPG READER"); if (args.length > 0) { String places[] = args; fillData(places); listProgramsByBroadCaster(); } else { System.out.println("É preciso inserir as cidades em que se deseja ler os TSs."); } }
<Pasta com os TS>\<Nome da cidade>\<Emissora>\<nome do arquivo>.ts
68
Artur Vieira Tenório
Figura 16: Diagrama de classes EPG Reader
69
Artur Vieira Tenório
A leitura de arquivos do tipo TS no padrão especificado pelo SBTVD realizada pelo
EPG Reader é feita utilizando uma função de leitura de arquivos, com o tamanho do
buffer detectado de acordo com o tamanho padrão dos pacotes de dados que compõem
o arquivo através do byte de sincronia identificado por 0x47 (ABNT NBR 15602-3, 2008).
Através deste dado é possível ler as informações relacionadas ao tipo de pacote no seu
cabeçalho e o conteúdo no corpo do pacote. Na Figura 17 é possível visualizar a
estrutura de um pacote de dados que compõe um arquivo do tipo MPEG2-TS.
Figura 17: Pacote MPEG2-TS.
Fonte: http://erg.abdn.ac.uk/research/future-net/digital-video/mpeg2-trans.html
Cada pacote lido é enviado para a classe ParsePacket, responsável por identificar o
Program Identified Descriptor (PID) contido no cabeçalho, em seguida construir a tabela
correspondente ao identificador. A tabela EIT-H (Event Information Table HDTV)
identificada pelo PID 0x12, possui os dados necessários para a construção do EPG. Esta
é composta por vários eventos contendo dados relacionados ao programa, descrição, e
data/horário de início e fim. Um ou mais pacotes de dados podem conter as informações
necessárias para a criação da tabela, um bit de identificação determina se determinado
pacote é o último ou não em uma sequência.
A função utilizada para filtrar cada tipo de tabela EIT além de calcular as informações
relacionadas à data de início, duração, idioma, país, descrição e título está localizado
também na classe ParsePacket e é descrito abaixo:
70
Artur Vieira Tenório
Trecho Código 1: Código para leitura de tabela EIT e um TS
Uma vez que todos os eventos são identificados e inseridos em uma estrutura do
tipo HashSet, é utilizado o framework hibernate para realizar a gravação dos dados em
um banco de dados PostgreSQL, localizados na classe EPGConstructor. Na Figura 18,
abaixo, é possível visualizar o fluxo principal da aplicação.
Figura 18: Fluxo EPG Reader
Todos os eventos identificados, juntamente com os programas de TV, são salvos no
banco de dados (BD) da aplicação. É realizada uma verificação de redundância de dados
de forma que seja possível eliminar a duplicidade de programas de TV na tabela
private void parseEIT(PSITable table) {
int transportStreamID = ((table.fullTable[table.i++] & 0xff) << 8)
| (table.fullTable[table.i++] & 0xff);
int originalNetworkID = ((table.fullTable[table.i++] & 0xff) << 8)
| (table.fullTable[table.i++] & 0xff);
table.i++; /* segment_last_section_number */
table.i++; /* last_table_id */
while (table.i < table.sectionEnd) {
int event_id = ((table.fullTable[table.i++] & 0xff) << 8) |
(table.fullTable[table.i++] & 0xff);
EPGValues epgTemp = new EPGValues(event_id, transportStreamID,
originalNetworkID);
epgTemp.setStartDate(convertMJDtoDate(table.fullTable,
table.i));
table.i+=2;
epgTemp.setStartTime(getTime(table.fullTable, table.i));
table.i+=3;
epgTemp.setDurationTime(getTime(table.fullTable, table.i));
table.i+=3;
int running_status = ((table.fullTable[table.i] >> 5) & 0x7);//
epgTemp.setRunningStatus(running_status);
addEPGToList(epgTemp); // ADDS THE EVENT TO THE EPG
int descriptorsLoopLength = ((table.fullTable[table.i++] << 8)
& 0xf00) | (table.fullTable[table.i++] & 0xff);
int descriptorsLoopEnd = table.i + descriptorsLoopLength;
while (table.i < descriptorsLoopEnd) {
table.i += parseDescriptor(table.pid,event_id,
table.fullTable, table.i);
}
}
}
71
Artur Vieira Tenório
respectiva. O diagrama de entidades e relacionamentos apresentado na Figura 19
identifica todas as tabelas que compõem o BD do Audience Analyzer.
Figura 19: Diagrama ER TV Audience Analyzer
4.3.2 Twitter Collector
A implementação deste módulo foi feita utilizando a linguagem Python devido à sua
facilidade de manipulação com dados textuais e a diversidade de frameworks/plug-ins
para acesso à serviços Web que cobrem os requisitos descritos neste projeto. Foi
implementada na camada de negócios uma classe com acesso aos dados do Twitter
através da biblioteca denominada Twython. O ciclo completo de uso é descrito abaixo na
Figura 20.
Figura 20: Fluxo Twitter Collector
72
Artur Vieira Tenório
O processo começa com a função getProgramByChannelAndDate na classe
__init__.py, localizada no pacote core. Esta função gera um código SQL que é utilizado
para retornar a tupla18 com todos os dados do programa que está passando naquele
horário. Abaixo é possível verificar um exemplo do de SQL gerado por esta função:
Trecho Código 2: SQL para consulta de programa televisivo e emissora.
Estes dados são provenientes do banco de dados populado pelo módulo leitor de
TS. Com estas informações, são feitas as pesquisas no Twitter via a biblioteca de acesso
às APIs da rede social: Twython. O código utilizado para que seja feita a busca por tweets
leva em consideração a codificação da língua portuguesa, que não é padrão para a
linguagem Python nem para o Twitter, sendo utilizada a codificação UTF-8. São dados
como argumentos o termo de busca, a quantidade máxima de resultados desejada, o
idioma escrito (de acordo com o especificado pelo usuário que criou o texto) e o período
desejado. Abaixo a implementação:
Trecho Código 3: Procura por tweets usando idioma e data como informações contextuais
O argumento language é provindo do Country Code encontrado no evento unitário
de uma EPG, lido pelo EPG Reader. O argumento quantidade possui o valor máximo. A
18 Tupla é uma lista de valores do tipo String acessíveis também via um valor.
SELECT epg_event.startdate, epg_event.starttime, epg_event.durationtime, broadcaster.name, program.name, epg_event.descriptor FROM public.epg_event, public.program, public.broadcaster WHERE program.program_id = epg_event.program AND broadcaster.id = program.broadcaster AND broadcaster.name = 'Globo' AND epg_event.startdate = '21/10/2013' ORDER BY epg_event.starttime
def seachByLangAndDate(self, language, date, qnt, query):
search_result = self.twitter.search(q=query.decode('utf-8'),
count=qnt, lang=language, until=date)
tweets_result = search_result['statuses']
return tweets_result
73
Artur Vieira Tenório
consulta é de acordo com a detectada com o horário. O resultado desta pesquisa é um
arquivo do tipo JSON, que é lido e interpretado pelo Twython, sendo gerado uma tupla
com todos os tweets e os dados relacionados.
Os textos, data de criação e nome de usuário são salvos em um arquivo do tipo TXT,
onde ficam todos os tweets coletados na primeira busca. Cada arquivo contém o termo
utilizado na busca. O processo seguinte é preparar os dados para que sejam
classificados. Todos os textos com menos de duas palavras são removidos, pois na
maioria dos casos não é possível identificar o sentimento empregado. A partir deste valor
existem diversas ocorrências, como:
Na etapa seguinte, a biblioteca geopy é utilizada como interface de acesso aos
métodos da API Google Maps v3, sendo possível determinar a latitude e longitude de um
local. Através da função geocode(cityName), localizada abaixo, é possível identificar a
latitude e longitude de uma cidade ou país, atendendo ao requisito RF-TC.012.
Trecho Código 4: Pesquisa por cidade usando latitude e longitude
O resultado da função, para o argumento “Brasil” é: -14.23500, -51.92528; São
filtrados apenas os tweets que possuem o valor de geolocalização ativo. Este dado não
é obrigatório19.
A classe TextHandler foi desenvolvida para realizar todos os tratamentos
necessários relacionados ao conteúdo do texto. É uma implementação que serve apenas
como referência, pois não contempla todos os cenários, entretanto atende às
necessidades básicas do requisito RF-TC.015. Os artefatos gerados por este processo
são descritos a seguir.
Artefatos gerados
Este módulo gera arquivos no formato TXT, ordenados por nome do programa de
TV, dia e hora, string de busca utilizada. Os arquivos são lidos pelo Sentiment Detector
19 Detalhes em: https://dev.twitter.com/docs/api/1.1/get/search/tweets
Obtido: “Amuu muito #encontroFatima”
from geopy import geocoders
def geocode(cityName):
g = geocoders.GoogleV3()
place, (lat, lng) = g.geocode(cityName,exactly_one=True)
print ("%s: %.5f, %.5f" % (place, lat, lng))
74
Artur Vieira Tenório
para que possam ser classificados. Na Figura 21 é possível visualizar um exemplo de
arquivos gerados durante o programa “Encontro com Fátima Bernardes”.
Figura 21: Exemplo ordenação arquivos Twitter Colletctor.
O conteúdo de cada TXT segue o formato adotado por este projeto. Em cada tweet
identificado há a data/hora de criação, auto e o comentário criado. Na Figura 22 é
possível visualizar os tweets salvos em um arquivo TXT.
Figura 22: Exemplo de captura de tweets. String de busca: #encontrofatima
Após a criação dos arquivos TXT, os mesmos textos são traduzidos para o inglês
seja feita através da implementação da classe translator. Foi implementada a solução
proposta por Denis Papathanasiou20 para enviar e receber os dados via Python. A API é
20 Disponível em: http://denis.papathanasiou.org/2012/05/07/using-microsofts-translator-api-with-python/
75
Artur Vieira Tenório
acessada através de um ID fornecido pela Microsoft, que identifica a aplicação que fará
as requisições, neste caso Twitter Collector. O envio é feito utilizando o protocolo HTTP,
sendo a resposta um arquivo do tipo JSON com a tradução solicitada. Os textos obtidos
são gravados em arquivos TXT em uma pasta especifica, indicando que são traduzidos.
4.3.3 Sentiment Detector
Este é o módulo mais simples do sistema, sua atribuição é ler os arquivos TXT
gerados pelo Twitter Collector, e classificar cada tweet de acordo com o especificado na
documentação de cada ferramenta de classificação. As classes que compreendem este
projeto estão listadas no diagrama da Figura 23.
Figura 23: Diagrama de classes Sentiment Detector
O processo é iniciado na classe main, após a leitura do arquivo TXT com os tweets,
estes são salvos em uma lista de strings. Esta lista é enviada para a classe
SWNManager, e é feito o acesso à este sistema, via linha de comando, onde cada
palavra é comparada com a base de dados do sistema previamente instalada e
configurada no sistema operacional. Cada comparação gera um valor, positivo ou
76
Artur Vieira Tenório
negativo, que somados geram um resultado final. Este resultado pode ser de 1, 0.75,
0.25 ou 0 para determinar a positividade e os valores abaixo de zero para determinar a
negatividade. Após a classificação feita pelo SWN, o SentiStrength é acionado, sendo
utilizada a classe SentiStrenghtManager para gerenciar os dados e acessar a API
fornecida pelo sistema através de um arquivo do tipo JAR. A determinação da polaridade
varia entre superior à 1 (positivo), 0 (neutro) e inferior a -1 (negativo).
Como a primeira ferramenta possui mais definições foi decidido que os valores entre
0.25 e -0.25 eram neutros, juntamente com 0. Acima ou abaixo, indicam a polaridade.
Desta forma existem apenas três variações de resultados. Os resultados de forma
consolidada e indicando os valores de cada ferramenta são visualizados via console,
sendo possível salvá-los em um arquivo TXT.
4.4 Validação de requisitos
Abaixo serão apresentados cenários diversos com resultados visando validar os
principais requisitos relacionados com uso de informações contextuais para melhoria na
assertividade de tweets relacionados com a programação selecionada para a execução
do sistema. Cada requisito foi validado com cenários distintos.
4.4.1 A Assertividade de tweets relacionados obtida
O uso de informações contextuais no processo de eliminação de tweets não
relacionados com o programa visa aumentar o nível de assertividade de tweets
relacionados à programação da televisão. Durante os testes, foi possível identificar a
eficácia de cada dado contextual utilizado, sendo possível gerar um comparativo entre
alguns deles. Foram consideradas três informações contextuais definidas por
Zimmermann et al. (2007):
Tempo (dia/hora);
Localização (país e idioma);
Atividade.
Através da função getEPGEvent, descrita abaixo, localizada na classe
database_access.py, é possível acessar o banco de dados do sistema e recuperar todas
as informações contextuais de um dado evento, através de um canal, data e hora. Para
cada canal desejado, a função foi chamada uma vez.
77
Artur Vieira Tenório
Com a tupla resultante desta função as informações contextuais obtidas pelo EPG
Reader e salvas no banco de dados. Manualmente foi adicionado o país Brasil, visto que
o country_code não estava presente em alguns TS avaliados.
4.4.2 Contexto Temporal
A eliminação por data detecta quando um termo buscado não está de acordo com o
horário do programa obtido pelo EPG. Nestes casos aquele termo pode ter sido usado
para comentários não relacionados com o programa. A determinação de tempo é feita
algoritmicamente, com uma comparação entre a data que o tweet foi gerado e a data do
início de programa, sendo considerados válidos os tweets que se encontravam eu um
período compreendido de 30 min antes do início do programa e 30 minutos após o fim.
Desta forma é possível agregar tweets gerados uma hora antes ou após, devido ao
horário de verão e possível diferença de fuso horário de acordo com a região analisada.
Após análises durante o período da manhã, instantes após o início do programa
“Encontro com Fátima Bernardes” e horas após o fim do programa, considerando os
horários do mesmo, a taxa média de tweets eliminados foi de 19% como é demonstrado
pelo gráfico abaixo. Por existir relação direta com tempo, foi utilizada a API REST para
esta análise.
def getEPGEvent(self, channel_name, date, time): query = """
SELECT
epg_event.startdate, epg_event.starttime, epg_event.durationtime,
broadcaster.name,
broadcaster.language, program.name
FROM
public.epg_event,
public.program,
public.broadcaster
WHERE
program.program_id = epg_event.program AND broadcaster.id =
program.broadcaster AND
broadcaster.name = '%s' AND
epg_event.startdate = '%s' AND
epg_event.starttime = '%s'
ORDER BY
epg_event.starttime
""" %(channel_name, date,time)
self.cursor.execute(query) return self.cursor.fetchall()
78
Artur Vieira Tenório
Figura 24: Tweets eliminados por data
4.4.3 Contexto geográfico
Após a eliminação por tempo, é feita a eliminação considerando a localização e o
idioma do usuário. Desta forma é possível eliminar tweets realizados por pessoas que
não estejam se referenciando ao programa televisivo em questão, mas utilizam o mesmo
termo. Nos testes realizados, foi possível identificar que o uso de palavras em português
obtiveram baixo índice de tweets eliminados.
Para a comprovação deste fato, foram feitas quatro análises, sendo uma utilizando
uma palavra que estava entre os trending topics do Twitter, para servir de comparação
mundial. Em seguida, três termos encontrados na grade de programação foram
pesquisados:
Big Brother: Programa originalmente holandês, mas que possui exibição
em diversos outros países, sob o mesmo formato. Exibido no Brasil pela
Rede Globo. Hashtag utilizada: #BigBrother;
Chaves: Programa originalmente Mexicano, exibido no Brasil pelo SBT,
mas possui exibição em outros países. Também é atrelado a outros
assuntos. Hashtag utilizada: #chaves;
Encontro com Fátima Bernardes: Principal string de busca relacionada ao
programa Encontro com Fátima Bernardes, exibido pela Rede Globo
(exclusivamente). Hashtag utilizada: #encontro.
Dentre os dados analisados, foi constatado que em todos os tweets existia a
indicação de idioma, mas na minoria existia a localização geográfica. Por este motivo,
apenas o idioma foi contabilizado nesta análise.
81%
1904ral%TWEETS ELIMINADOS POR TEMPO
Tweets Válidos
Eliminados por data
79
Artur Vieira Tenório
Na Figura 25, é possível visualizar o resultado das comparações, as coletas foram
realizadas em horários aleatórios, não necessariamente durante a transmissão do
programa. Por não existir uma dependência de tempo, nem a necessidade de tradução
para a língua inglesa, foi utilizada a API STREAM para coleta de tweets.
Figura 25: Comparativo de idiomas
De acordo com os dados obtidos, tweets gerados com o idioma português
representavam aproximadamente 25% da média mundial nos horários em que as
medições foram feitas. É possível identificar que a pesquisa por Big Brother retornou 40x
mais tweets em idiomas estrangeiros. A maioria dos resultados foram gerados em inglês
e quando existia localização geográfica a Inglaterra teve maior índice, indicando a
possível transmissão do programa naquele país.
As palavras Chaves e Encontro constavam em textos no português em mais de 7x
em relação a outras línguas. Este resultado tem relação direta com os programas
televisivos de mesmo nome que são transmitidos durante a tarde por emissoras
nacionais. Uma análise humana foi realizada em todos os valores relacionados a palavra
Encontro e foi detectado que esta abordagem nem sempre é precisa. Foram
contabilizados 6 textos como língua estrangeira, entretanto todos estavam em português.
Este comportamento pode ser justificado pelo costume de alguns usuários configurarem
seu Twitter em um idioma estrangeiro, mas serem brasileiros. Mesmo com este
resultado, esta abordagem é considerada válida, principalmente quando a string utilizada
é uma palavra popular mundialmente, como o Big Brother.
Português; Média Geral; 1906ral
Português; Encontro; 1904ral
Português; Chaves; 1908ral
Português; Big Brother; 1904ral
Não Português; Média Geral; 1914ral
Não Português; Encontro; 1904ral
Não Português; Chaves; 1904ral
Não Português; Big Brother; 1910ral
Média Geral Encontro Chaves Big Brother
Não Português 1914ral 1904ral 1904ral 1910ral
Português 1906ral 1904ral 1908ral 1904ral
Comparativo IdiomasNão Português Português
80
Artur Vieira Tenório
4.4.4 Contexto de Atividade
Apesar dos filtros baseados em informações contextuais que foram utilizados no
sistema para reduzirem o ruído de tweets não relacionados à programação, ainda assim
foi possível identificar oscilações na relevância dos termos procuradas pelo Twitter
Collector. Uma análise humana verificou que diversos tweets com conteúdo não
relacionado ao programa ou repetitivos não tinham sido eliminados. A intenção destes
usuários não condizia com alguém que deseja expor sua opinião sobre um programa.
Foi identificado que os termos não relacionados eram do tipo spam, sendo
necessário implementações mais complexas para eliminá-los. Para as repetições, foi
implementada de forma paliativa uma função que elimina repetições de textos.
Entretanto, este tipo de dado deve utilizar formas mais eficazes para obtenção de
resultados melhores visto que podem existir repetições de tweets com uma pequena
alteração de caractere. Para a verificação deste aspecto, foi feita uma análise simples
durante o programa: “Encontro com Fátima Bernardes” entre os dias 20 e 21 de outubro,
além do dia 09 de janeiro. A tabela abaixo ilustra os resultados obtidos.
Tabela 9: Resultados programa Encontro com Fátima Bernardes
Dia/Hora Total Obtido Relacionados SPAM/Repetições
20/11/2013 214 98% 2%
22/11/2013 161 79% 21%
09/01/2013 872 96% 4%
É importante salientar que a quantidade de spam pode variar de acordo com a
capacidade do Twitter de eliminai-los previamente. A rede social possui algoritmos de
proteção e consegue fazer um filtro melhor de conteúdo deste tipo através da sua API
REST21, entretanto a coleta do dia 09/01 foi realizado utilizando a STREAM API, que
normalmente possui menos pré-processamento.
4.4.5 String de busca utilizadas
A determinação de strings de busca foi obtida de duas formas: Inclusão manual e
automatizada, através da verificação de timeline da emissora ou programa escolhido.
Para que fosse possível determinar automaticamente as hashtags mais relevantes de
um programa e utilizá-la como termo de pesquisa de tweets foi criada uma conta de
21 Mais detalhes em: https://dev.twitter.com/docs/faq
81
Artur Vieira Tenório
Twitter e os principais programas e emissoras que possuíam contas oficiais no Twitter
foram adicionados como contatos. Desta forma, todos os tweets gerados por estes
estariam acessíveis na timeline da conta gerada. A função getTimeLine pertencente à
classe twitter_rest é utilizada para leitura destes dados.
Os tweets obtidos são todos os que foram realizados pelos contatos ligados à conta
criada. O passo seguinte é identificar quais tweets pertencem à conta do programa
televisivo escolhido e à emissora. Todos os que foram gerados no intervalo de tempo
compreendido pelo evento determinado pela EPG são selecionados, sendo feita uma
procura por hashtags (#). O resultado obtido é somado às hashtags inseridas
manualmente no banco de dados.
4.4.6 Considerações
A abordagem utilizada para eliminação de textos não realizados na língua
portuguesa e no Brasil necessita de mais estudos, visto que houve perda de dados
constatados como válidos por um humano.
Durante as análises relacionadas ao tipo de atividade dos usuários da rede social, é
possível identificar que diversos usuários repetiram seus tweets alterando apenas a
hashtag indicativa. Em alguns casos é uma tentativa de aparecer no programa, em outros
é apenas uma correção porque o usuário acreditou estar usando o termo errado, quando
desejava realizar uma relação. Estes casos geram inconsistência nos dados, pois podem
fazer um usuário opinar mais de uma vez, mas evitar que o mesmo tenha mais de um
texto classificado não é um comportamento esperado pelo sistema. É compreensível que
este pode também enviar um texto no início do programa, demonstrando sua expectativa
sobre o que virá, e em seguida, num tempo posterior, a sua percepção sobre o que foi
televisionado.
4.5 Comparativo de APIs do Twitter
A escolha de uma API para utilização é determinante para a quantidade de qualidade
dos dados que serão gerados pelo Twitter. A seguir serão mostradas características de
ambas e um comparativo visando explicar a opção utilizada neste projeto.
def getTimeLine(self):
tweet_list = self.twitter.get_home_timeline(count='100')
return tweet_list
82
Artur Vieira Tenório
A hora em que uma solicitação é feita, utilizando ambas as APIs (STREAM e REST)
é determinante para a obtenção de dados, quer seja por quantidade, quer seja por
relevância. Para comprovação, foi feita uma análise de dados durante o programa “Amor
e Sexo”, em que a audiência de internautas é considerada elevada devida ao forte
estímulo desta emissora através de votações e interação entre os telespectadores e os
participantes.
Figura 26: Comparativo de APIs
Através dos resultados demonstrados na Figura 26 é claramente perceptível que a
STREAM API (SA) é capaz de coletar mais tweets do que a REST API (RA). A cada
minuto, o crescimento de dados foi exponencial, na SA em relação à RA, que teve seu
crescimento estabelecido. Em um cenário ideal, não restaria dúvidas de que a SA é a
mais indicada para a qualificação de audiência devida a velocidade e quantidade de
dados obtidos. Contudo, existem três fatores que indicam a RA como a ideal para o
presente projeto.
O primeiro fator existente é a limitação de caracteres existente no sistema tradutor
utilizado, Bing. Caso o gráfico apresentado tenha uma taxa média de 135 tweets lidos
por minuto, em um programa com 50 minutos, estima-se que sejam coletados cerca de
6750 tweets. Com a limitação de 140 caracteres em cada texto do Twitter, atinge-se um
total máximo possível de caracteres em aproximadamente 945 mil um único programa.
A limitação mensal do Bing (tradutor utilizado nesta pesquisa) é de 2 milhões de
caracteres, o que inviabilizaria o uso da STREAM API para este projeto por se tratar de
uma pesquisa acadêmica. Ainda que este problema seja sanado, existe um segundo
00:40 00:41 00:42 00:43 00:44 00:45 00:46 00:47
Stream (Durante programa) 1904ral 1904ral 1904ral 1905ral 1905ral 1906ral 1906ral 1907ral
REST (Durante Programa) 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral
Stream (Na semana seguinte) 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral
REST (Na semana seguinte) 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral
Stream (Durante programa); 00:40;
1904ral
Stream (Durante programa); 00:41;
1904ral
Stream (Durante programa); 00:42;
1904ral
Stream (Durante programa); 00:43;
1905ral
Stream (Durante programa); 00:44;
1905ral
Stream (Durante programa); 00:45;
1906ral
Stream (Durante programa); 00:46;
1906ral
Stream (Durante programa); 00:47;
1907ral
REST (Durante Programa); 00:40;
1904ral
REST (Durante Programa); 00:41;
1904ral
REST (Durante Programa); 00:42;
1904ral
REST (Durante Programa); 00:43;
1904ral
REST (Durante Programa); 00:44;
1904ral
REST (Durante Programa); 00:45;
1904ral
REST (Durante Programa); 00:46;
1904ral
REST (Durante Programa); 00:47;
1904ralStream (Na semana seguinte); 00:40;
1904ral
Stream (Na semana seguinte); 00:41;
1904ral
Stream (Na semana seguinte); 00:42;
1904ral
Stream (Na semana seguinte); 00:43;
1904ral
Stream (Na semana seguinte); 00:44;
1904ral
Stream (Na semana seguinte); 00:45;
1904ral
Stream (Na semana seguinte); 00:46;
1904ral
Stream (Na semana seguinte); 00:47;
1904ral
REST (Na semana seguinte); 00:40;
1904ral
REST (Na semana seguinte); 00:41;
1904ral
REST (Na semana seguinte); 00:42;
1904ral
REST (Na semana seguinte); 00:43;
1904ral
REST (Na semana seguinte); 00:44;
1904ral
REST (Na semana seguinte); 00:45;
1904ral
REST (Na semana seguinte); 00:46;
1904ral
REST (Na semana seguinte); 00:47;
1904ral
COMPARATIVO APIS
83
Artur Vieira Tenório
ponto, a latência. Cada tradução demora em média 2 segundos para ser concluída.
Sendo necessário aproximadamente 270 segundos para traduzir os tweets lidos em 1
minuto. O resultado final da qualificação da audiência poderia demorar horas para ser
gerado.
O segundo fator é o tempo. Durante a pesquisa, nem sempre foi possível analisar
um programa exatamente durante a sua realização. A RA permite que sejam acessados
dados até uma semana após a realização do tweet. Como é visto na Figura 27, a
pesquisa pela string de busca do programa em questão pôde obter dados gerados na
semana anterior (o programa em questão é semanal). A SA por sua vez só retorna dados
gerados após o início do processo de pesquisa.
Por fim, o último fator que pesa favoravelmente para a RA é a qualidade dos dados
obtidos. Segundo o Twitter (TWITTER DEVELOPERS, 2013), quando o objetivo é
qualidade em relação a quantidade, é preferível optar pela RA pois existem filtros de
spam mais eficazes que são utilizados. Também existem processos de filtragem
envolvidos, reduzindo erros no dados disponibilizados.
Em uma pesquisa realizada durante a novela Além do Horizonte, foi possível
identificar manualmente dados inconstantes retornados pela SA. Na Figura 27 (página
84), há um exemplo em que a string procurada não consta no texto retornado, como visto
nas linhas 2, 4, 6, 9, 14, 19, 20 e 21.
84
Artur Vieira Tenório
Figura 27: Exemplo de erros STREAM API. Realizado no dia 8 de janeiro de 2014 em Sorocaba - SP, minutos após o fim da novela. Os dados retornados foram gerados provavelmente nas cidades
em que o horário de verão não estava vigente, logo, nestes lugares a novela ainda estava sendo transmitida.
.
85
Artur Vieira Tenório
4.6 Compreensão do texto
Por se tratar de um ambiente informal, não há preocupação em respeitar
ortograficamente e gramaticalmente o idioma respectivo em redes sociais. Os
internautas tem o intuito de elaborar um texto que reflita o pensamento em um curto limite
de caracteres e em geral via celular, onde é demandada velocidade. O resultado são
termos que dificultam a eficácia de sistemas que fazem a classificação de textos. A
técnica descrita por Jiang et al. (2011) na etapa de pré-processamento de seu sistema
foi parcialmente implementada, sendo feitas trocas de palavras que expressavam algum
sentimento mas não estavam de acordo com a gramática pelo seu significado. Esta
implementação visou melhorar o desempenho dos classificadores de sentimento,
atendendo ao RF015. Por não ser o foco deste projeto, apenas alguns termos foram
analisados, sendo os mais repetidos durante as análises. A Tabela 10 evidencia estes
casos e as trocas feitas pelo Twitter Collector para que estes termos pudessem ser
traduzidos para os valores correspondentes em inglês. Foram utilizadas expressões
regulares (regex) para substituição das palavras.
Tabela 10: Termos normalizados
Termo encontrado Termo substituído Termo traduzido
“kkkkkkkkk” / “hahahahhaha” Risos laughter
hj Hoje today
“amuuu” / ”amoooo” Amo love
“q” Que that
“bunito” / “bunitu” Bonito Beautiful/handsome
“td” / ”tdu” / “tudu” Tudo all
No caso da tradução de “risos” e “amo”, os textos foram detectados como positivos,
devido à positividade encontrada nestas palavras, mesmo que a tradução para o inglês
torne o conteúdo com uma leitura não natural, a classificação de sentimentos procura
pelos termos chave para determinar a polaridade. É perceptível que alguns casos são
complexos para a interpretação pelos classificadores, principalmente quando se trata da
língua portuguesa, em que o entendimento de uma frase pode não ser trivial para um
computador ou mesmo os erros de português impedem a classificação correta.
O caso abaixo serve como exemplo:
Obtido: Sou muito anciosa, quero td na hora #encontrofatima
Traduzido: "I'm very anxious, I want everything on time #encontrofatima".
86
Artur Vieira Tenório
Neste cenário, felizmente o tradutor BING da Microsoft fez a correção de “anciosa”
para “ansiosa”, e o sistema de preparo dos textos para tradução realizado no projeto
Twitter Detector corrigiu o termo “td” para “tudo”. Este comportamento não é requisito de
sistemas tradutores, podendo ocasionar um erro de interpretação.
No caso seguinte, nem o presente projeto nem o Bing Tradutor foram capazes de
fazer as correções necessárias para que a classificação fosse feita corretamente:
A complexidade compreendida em textos deste tipo é elevada, sendo necessário
utilizar técnicas especificas, como a normalização léxica proposta por Bo Han & Baldwin
(2011).
Além do processo de correções gramaticais e léxicas, há mais um fator que pode
gerar resultados não confiáveis: o sentido da frase. Nos dois exemplos abaixo,
capturados durante as novelas Malhação e Amor à Vida. No primeiro, é possível
identificar que a autora gosta do programa, pois está triste com o seu fim e expressa que
gostaria de ver ainda mais, quando fala que a próxima atração é chata. A polaridade
deste texto é negativa, quando na verdade deveria ser positiva, pois há a clara intenção
do telespectador.
No segundo exemplo, a polaridade foi considerada entre neutra e positiva. Entretanto, a intenção real é demonstrar que o programa dá sono, concluindo um desejo negativo de expressão.
Tais resultados demonstram a complexidade envolvida neste processo, e a
incompatibilidade entre a língua portuguesa utilizada em um ambiente informal, com as
atuais ferramentas de classificação disponíveis academicamente.
4.7 Resultados classificação de sentimentos
Nesta sessão serão descritos os resultados obtidos e o cenário utilizado para
obtenção dos resultados, sendo utilizados todos os requisitos planejados pelo projeto.
Cenário 01: Programa Encontro com Fátima Bernardes - Rede Globo. Dias: 19 até
22 de novembro de 2013. Palavras chave utilizadas: encontro,
Obtido: “#encontroFatima fas 2 meses q to longe do meu amor”
Traduzido: "#encontroFatima fas 2 months q to away from my love”
@alana: que pena acabo malhação , agora é a novela mais chata que passa na glodo
@ Paloma e Bruno: ZzzzzzzzZzzZzzzzzz... melhor sonífero. #AmorAVida
87
Artur Vieira Tenório
encontrocomfatimabernardes e fatimabernardes. Os resultados obtidos estão na Tabela
11, identificando o resultado do somatório dos três dias.
Tabela 11: Resultados Encontro com Fátima Bernardes
Positivo Neutro Negativo
MANUAL 61 388 28
SENTISTRENGTH 146 208 23
SWN 135 282 60
Considerações: Neste programa foi possível detectar que a maioria dos tweets
coletados tinham relação com um dos três principais tópicos do programa: A banda
Natiruts, o tema ansiedade e alguns convidados do programa The Voice Brasil. De um
total de 51 tweets relacionados ao programa, 87,27% foram relacionados aos temas do
programa, onde os a classificação de sentimentos pode ser duplamente interpretada. É
visto que muitos usuários gostam de uma atração, mas não necessariamente do
programa, sendo o inverso também verdadeiro.
A maioria dos tweets considerados neutros foram criados por telespectadores que
queriam expressar sua opinião em relação à questão debatida no momento ou
comentavam algo relacionado à banda que iria tocar.
Cenário 02: Programa The Voice Brasil – Rede Globo. Dia: 12 de Dezembro de
2013. Palavras chave utilizadas: TheVoice. TheVoiceBrasil, VBR.
Tabela 12: Resultados The Voice Brasil
Positivo Neutro Negativo
MANUAL 33 322 17
SENTISTRENGTH 71 284 17
SWN 75 288 9
Relacionados ao tema (verificação
manual) 73 274 25
Considerações: O programa The Voice Brasil é um reality show onde há uma
competição entre times. Foi visto que a participação dos telespectadores em redes
sociais foi com foco em falar sobre os participantes, elevando a diferença de polaridade
obtida nos resultados. Por este motivo, foi feita uma análise manual também levando em
consideração se o que era falado tinha relação com o programa ou com os participantes.
Todos os casos em que um telespectador se referenciava com torcendo para um
88
Artur Vieira Tenório
candidato foi contabilizada como neutra, e apenas os casos em que foi demonstrada
alguma positividade ou negatividade foram considerados na análise manual. Neste
programa há o apelo passional e menos de 4% dos usuários expressaram negatividade
em relação ao programa. Os dados obtidos pelas ferramentas de classificação se
aproximam mais da verificação manual em relação ao tema do que em relação ao
programa.
A forma como uma pessoa se expressa na língua portuguesa, ou em qualquer
linguagem natural, pode ter significado negativo, mesmo que não esteja explícito. No
exemplo abaixo, um telespectador tentou mostrar que prefere ver outro evento ao
programa em questão. Algoritmicamente achar uma forma de compreender este sentido
é um desafio.
Cenário 03: Programa do Ratinho – SBT. Dias 29 e 30 de outubro de 2013. Palavras
chave utilizadas: ratinho, programadoratinho, botecodoratinho.
Positivo Neutro Negativo
MANUAL 14 206 20
SENTISTRENGTH 46 182 12
SWN 33 196 11
Relacionados ao tema 29 207 4
Considerações: O requisito de tradução de textos de português para inglês
demonstrou mais resultados que pudessem gerar polaridade não intencional, com
traduções de nomes artísticos. Foram os casos do nome do apresentador, traduzido de
Ratinho para “little mouse”, e de um dos convidados, Xororó (da dupla Chitãozinho e
Xororó) para “Crying”. Na segunda tradução errônea, dependendo do contexto linguístico
da frase, um classificador pode interpretar como polaridade negativa.
O tipo de grafia verificada na maioria dos textos relacionados com este programa
possuía muitos erros ortográficos e gramaticais. O processo manual de verificação
demonstrou ser mais complexo visto que para um ser humano identificar o sentido de
alguns textos não era tão trivial como foi visto nas outras análises.
RT @Eltonex: #TheVoice ??? O Negocio é a #NFLnaESPN @everaldomarques !!!!
89
Artur Vieira Tenório
4.8 Considerações finais
Neste capítulo foram demonstrados trechos da implementação dos módulos que
constituem o TV Audience Analyzer. Foi possível verificar como os dados são gerados
inicialmente pelo EPG Reader, e em seguida pelo Twitter Collector, sendo por fim
analisados pelo Sentiment Detector.
Os requisitos previstos pelo principal módulo deste projeto (Twitter Collector) foram
validados através de análises dos dados gerados pelo sistemas e comparações com
resultados de verificações manuais, feitas por humanos. Foi possível demonstrar todas
as etapas e peculiaridades que compreendem o processo de determinação de tweets
relacionados à um programa televisivo e a sua classificação em relação ao sentimento
empregado.
90
Artur Vieira Tenório
5. Conclusões
A aferição qualitativa da audiência televisiva utilizando redes sociais como fonte de
dados é uma forma elevar a compreensão da consumidor por parte das emissoras,
visando não somente valores quantitativos. Desta forma, produtores de conteúdos
podem identificar pontos positivos e negativos na sua grade de programação e procurar
melhorar a experiência do telespectador em relação ao conteúdo consumido.
Foi apresentado o TV Audience Analyzer, um sistema capaz de utilizar informações
contextuais relacionadas a um programa televiso para buscar comentários gerados por
telespectadores em uma rede social, em seguida preparar o conteúdo para ser
classificado por ferramentas analisadoras de sentimento. O TV Audience Analyzer
demonstrou ser eficaz no processo de determinação de tweets relacionados à
programação de TV, contudo foi comprovado que é necessário um aprofundamento de
estudo em relação ao comportamento do usuário das redes socais no Brasil, em especial
o Twitter. A falta de ferramentas e estudos voltados à gramática empregada em redes
sociais utilizando a língua portuguesa é um fator que contribui para reduzir a eficácia das
classificações de sentimentos.
5.1 Resultados Obtidos
A automatização da identificação de tweets relacionados à programação de televisão
demonstrou ser eficaz, na maioria das análises foi constatado 100% de acerto. Acredita-
se que este valor pode decair quando for realizada uma aferição de filmes ou reality
shows que estejam passando em outros países no mesmo horário do programa
selecionado para a classificação.
Foi possível constatar que as ferramentas atuais de classificação de sentimentos
ainda não são capazes de verificar de forma segura a polaridade de um texto gerado em
redes sociais utilizando a língua portuguesa. Durante a análise de dados, foi verificada a
complexidade envolvida na identificação do direcionamento de um texto, quando um
autor se refere diretamente ao programa de TV ou ao conteúdo de algum trecho do
programa. A não preocupação com este fator pode gerar resultados errôneos em relação
ao sentimento da audiência. Foram identificados dois grupos de programas que
exemplificam esta problemática:
91
Artur Vieira Tenório
Programas de auditório: possuem em muitos casos comentários
relacionados aos convidados ou à algum tema. As ferramentas que
pretendem classificar estes casos, devem levar em consideração as atrações
e possíveis comentários que a princípio são negativos, mas podem indicar o
oposto. É o caso de comentários relacionados à temas que geram discursão
e envolvem opiniões contrarias, mas não necessariamente aquilo está
gerando uma emoção negativa por parte do telespectador.
Reality Shows: possuem a maioria dos comentários diretamente ligados aos
participantes, e ocasionalmente gera sentimento de insatisfação devido à
alguma eliminação ou ação por parte daqueles que compõem o show. Mais
uma vez, nestes casos, comentários negativos não podem ser ligados à
negatividade do programa sem uma prévia análise em relação ao contexto
envolvido naquele texto, como por exemplo um evento que ocorreu naquele
instante.
A identificação destes dois grupos foi possível graças a uma comparação e análise feita
pelo autor desta pesquisa, classificando cada programa por grupos e verificando as
semelhanças encontradas.
5.2 Contribuições
Este trabalho teve como principal contribuição a definição de uma arquitetura capaz
de integrar de forma computacional e automatizada os dados gerados por emissoras de
televisão aberta (através da leitura de arquivos TS) e redes sociais para a qualificação
da audiência consumidora do conteúdo. O TV Audience Analyzer define um conjunto de
informações capazes de determinar as palavras chaves utilizadas como string de busca
para obtenção de comentários relevantes gerados em redes sociais voltados à
programação televisiva.
Após a obtenção dos dados, são descritos os passos necessários para a
normalização dos textos obtidos de forma que possam ser analisados por ferramentas
classificadoras de sentimentos, uma vez que a maioria destas ferramentas espera textos
dentro das regras gramaticais e léxicas do idioma em questão.
Esta pesquisa segue a tendência dos usuários de redes sociais, que costumam
expressar sentimentos em seus comentários (ARAÚJO et al., 2013; MOSTAFA, 2013;
PANG; LEE, 2008; THELWALL, 2011) aliando ao crescente uso da segunda tela
92
Artur Vieira Tenório
(CESAR; BULTERMAN; JANSEN, 2008) por telespectadores visando obter algum tipo
de interação ou conteúdo relacionado à programação, como é lembrado por Silva (2012).
Adicionalmente foram feitas análises manuais das traduções automatizadas
realizadas por uma ferramenta popular e gratuita (Bing) do português para o inglês.
Através desta foi possível identificar as limitações deste tipo de abordagem, como
quantidade de dados que podem ser traduzidos e o tempo necessário para esta tarefa.
Por fim, foram feitas análises das APIs de acesso aos dados do Twitter,
demonstrando as possibilidades de uso, características principais e a mais adequada
para o uso proposto, a qualificação de audiência televisiva.
5.3 Limitações do estudo
Não foram encontradas soluções para classificação de sentimentos no idioma
português, sendo então necessário o uso de um tradutor para a conclusão dos
experimentos. Esta abordagem limitou a quantidade de dados analisados e alterou o
sentido de alguns textos, podendo comprometer a polaridade resultante.
Estudos na área comportamental são necessários para a compreensão do sentido
de um texto relacionado à um programa. Foram vistos diversos casos em que o autor do
tweet se referia à um tema abordado ou à um convidado, e não necessariamente ao
programa televisivo. Sem a determinação da intenção do autor os resultados obtidos
podem ser errôneos. Estudos na área cognitiva e emocional relacionados ao
comportamento do telespectador devem ser analisados sob uma ótica psicológica e
linguística. Apenas estudos computacionais não são suficientes para determinar a
intenção de um texto, uma vez que há cargas emocionais envolvidas.
5.4 Trabalhos Futuros
A arquitetura proposta pelo TV Audience Analyzer permite que sejam adicionados
ou alterados requisitos ligados à classificação de sentimentos. A falta de ferramentas
para o idioma português foi um obstáculo que precisou ser contornado através da
tradução para o inglês. Este processo ocasionou em perdas significativas na precisão da
determinação da polaridade de um texto. O desenvolvimento de uma pesquisa nesta é
um indicativo de trabalho futuro.
A determinação do sentido de um texto, quer seja em relação a um conteúdo do
programa analisado ou diretamente o programa é outra problemática encontrada e não
93
Artur Vieira Tenório
solucionada neste trabalho, sendo uma possibilidade de trabalho futuro interligando
áreas como psicologia, linguística e computacional.
Também nesta linha de raciocínio, após análises das hashtags utilizadas como
termos de busca, pode-se observar o sugimento de termos relacionados com o
programa, mas que foram criados pela própria audiência, sem intervenção da emissora,
como sugere Lochrie (2012a). Durante a novela transmitida pela Rede Globo, “Avenida
Brasil” durante o ano de 2012, diversos termos surgiram, remetendo ações de algum
personagem ou características, destacando-se: “#CarminhaVirouCrente”,
“#OiOiOiFinal”, “#Nina e Carminha”(CANDIDO, 2012). Um estudo visando identificar e
analisar a relação destes termos com os programas televisivos torna-se um desafio
computacional.
Por fim a interpretação humana de uma amostragem dos textos classificados
automaticamente por ferramentas de classificação de sentimentos a fim de comprovar a
eficácia destas é um possível trabalho futuro.
5.5 Considerações finais
A área de classificação de sentimento possui diversas pesquisas como pode ser
constatado na fundamentação teórica desta pesquisa. Apesar das dificuldades
encontradas para a obtenção dos resultados, foi possível verificar que o comportamento
dos usuários de redes sociais muda quando estes falam sobre televisão. Alguns
trabalhos indicavam a maior incidência de negatividade (MITCHELL; HITLIN, 2013;
MOSTAFA, 2013) nos tweets de usuários que desejavam falar sobre algum tema. Em
todas as análises realizadas pelo TV Audience Analyzer, a negatividade deve valores
bem abaixo da positividade, mesmo quando era analisado um Reality Show, que
remetem à emoções mais fortes (BECKER, 2011).
94
Artur Vieira Tenório
6. Referências
ABNT NBR 15601. 15601, Norma Brasileira. Televisão digital terrestre—Sistema de Transmissão, v. 7, 2008.
ABNT NBR 15602-3. 15602-3, Norma Brasileira. Televisão digital terrestre-Codificação de vídeo, áudio e multiplexação, v. 3, 2008.
ABNT NBR 15603-1. 15603-1, Norma Brasileira. Televisão digital terrestre-Multiplexação e serviços de informação (SI)-Parte 1., v. 1, 2008.
ALI, A. et al. The Mobile Shopping Framework Study : The Role of Mobile Devices in the Shopping Process Contents. [s.l: s.n.].
ARAÚJO, M. et al. Métodos para Análise de Sentimentos no TwitterWebMedia ’13 Proceedings of the 19th Brazilian symposium on Multimedia and the web. Anais...: WebMedia ’13.New York, NY, USA: ACM, 2013Disponível em: <http://doi.acm.org/10.1145/2526188.2526196>
ARIB B-31. TRANSMISSION SYSTEM FOR DIGITAL TERRESTRIAL TELEVISION BROADCASTING. ARIB STANDARD, v. B31 Versio, 2005.
BECKER, V. Ambiente de medição da audiência para TV digital. [s.l.] Universidade de São Paulo - USP, 2011.
CANDIDO, F. Final de Avenida Brasil domina redes sociais. Disponível em: <http://info.abril.com.br/noticias/internet/final-de-avenida-brasil-faz-sucesso-nas-redes-sociais-19102012-46.shl>. Acesso em: 6 mar. 2014.
CESAR, P.; BULTERMAN, D.; JANSEN, A. Usages of the secondary screen in an interactive television environment: control, enrich, share, and transfer television content. Changing television environments, p. 168–177, 2008.
CREMONESI, P. et al. TV Program Detection in Tweets Categories and Subject Descriptors. In: EuroITV. New York, New York, USA: ACM New York, 2013. p. 45–53.
DEFLEUR, M.; BALL-ROCKEACH, S. Teorias da comunicação de massa. New York, New York, USA: Zahar, 1971. p. 179 e 180
DEY, A. K. Understanding and Using Context. Personal and Ubiquitous Computing, v. 5, n. 1, p. 4–7, 28 fev. 2001.
DUGGAN, M.; SMITH, A. Social Media Update 2013. [s.l: s.n.]. Disponível em: <http://www.pewinternet.org/2013/12/30/social-media-update-2013/>.
ERICSSON CONSUMERLAB. TV AND VIDEO: An analysis of evolving consumer habits. [s.l: s.n.].
95
Artur Vieira Tenório
ESULI, A.; SEBASTIANI, F.; MORUZZI, V. G. SENTIWORDNET: A publicly available lexical resource for opinion miningIn Proceedings of the 5th Conference on Language Resources and Evaluation (LREC´06). Anais...2006Disponível em: <http://gandalf.aksis.uib.no/lrec2006/pdf/384_pdf.pdf>
FACEBOOK. Key-Facts - Facebook’s latest news, announcements and media resources. Disponível em: <http://newsroom.fb.com/Key-Facts>. Acesso em: 29 jan. 2014.
FECHINE, Y. PROGRAMAÇÃO DIRETA DA TV: SENTIDO E HÁBITO (DIRECT PROGRAMMING OF THE TV: SENSE AND HABIT). Revista Brasileira de Semiótica, N.22, p. 41–57, 2004.
FERRAZ, C.; SQUIRRA, S.; FECHINE, Y. Análise e perspectivas da interatividade na TV Digital. Porto Alegre: Editora Sulina, 2009. p. 15–43
FORUM SBTVD. Sobre o Fórum | Fórum SBTVD. Disponível em: <http://forumsbtvd.org.br/sobre-o-forum/>. Acesso em: 11 jun. 2013.
GOLBECK, J. A. Computing and Applying Trust in Web-based Social Networks. College Park, MD, USA: University of Maryland at College Park, 2005.
HAN, B.; BALDWIN, T. Lexical Normalisation of Short Text Messages : Makn Sens a # twitter. Computational Linguistics, ACL-HLT ’11. v. V, n. 212, p. 368–378, 2011.
HARBOE, G.; MASSEY, N.; METCALF, C. Perceptions of value: The uses of social television. Interactive TV: a Shared …, 2007.
IBGE. Acesso à Internet e posse de telefone móvel celular para uso pessoal 2011. Brasilia, Brasil: [s.n.]. Disponível em: <http://www.ibge.gov.br/home/estatistica/populacao/acessoainternet2011/default.shtm>.
IBGE. IBGE. Disponível em: <http://seriesestatisticas.ibge.gov.br/series.aspx?no=1&op=1&vcodigo=FED214&t=domicilios-particulares-permanentes-televisao>. Acesso em: 14 nov. 2013.
IBOPE. IBOPE-TV. Disponível em: <http://www.ibope.com.br/pt-br/relacionamento/duvidas-frequentes/Paginas/Audiencia-de-televisao.aspx>. Acesso em: 12 jul. 2013.
IBOPE; NIELSEN. As #hashtags da TV. [s.l: s.n.]. Disponível em: <http://www4.ibope.com.br/download/socialtv_2011_versaopublica.pdf>.
ISO/IEC 13818-1. International Organization for Standardization and International Electrotechnical Commission and others. Information Technology-Generic Coding of Moving Pictures and Associated Audio Information, v. 1, 1995.
ISO/IEC 13818-6. IEC 13818-6: Information Technology—Generic coding of Moving Pictures a nd Associated Audio Inf ormation. Internacional Standard, v. 2000, 2000.
96
Artur Vieira Tenório
JIANG, L. et al. Target-dependent Twitter Sentiment Classification. ACL, p. 151–160, 2011.
KRAVETS, D. Twitter blocked in Egypt amid street protests. CNN International, p. 01, 2011.
LI, Y.-M.; LI, T.-Y. Deriving market intelligence from microblogs. Decision Support Systems, v. 55, n. 1, p. 206–217, 2013.
LOCHRIE, M.; COULTON, P. Sharing the viewing experience through second screens. EuroiTV ’12 Proceedings of the 10th European conference on Interactive tv and video, p. 199–202, 2012a.
LOCHRIE, M.; COULTON, P. Tweeting with the telly on!Consumer Communications and Networking Conference (CCNC), 2012 IEEE. Anais...jan. 2012b
MCQUAIL, D. Audience analysis. illustrate ed. [s.l.] SAGE, 1997, 1997.
MILLER, G. A. WordNet: a lexical database for English. Communications of the ACM, v. 38, n. 11, p. 39–41, 1995.
MISLOVE, A. Online social networks: measurement, analysis, and applications to distributed information systems. [s.l.] RICE UNIVERSITY - Houston, Texas, 2009.
MITCHELL, A.; HITLIN, P. Twitter Reaction to Events Often at Odds with Overall Public OpinionPew Research Center. Washington, DC, USA: [s.n.]. Disponível em: <http://www.pewresearch.org/2013/03/04/twitter-reaction-to-events-often-at-odds-with-overall-public-opinion/>.
MOSTAFA, M. M. An emotional polarity analysis of consumers’ airline service tweets. Social Network Analysis and Mining, v. 3, n. 3, p. 635–649, 4 abr. 2013.
NACIONAL, I. Diário Oficial da União No 145. Brasília, v. 145, p. 1, 2013.
NIELSEN. Social Media Strategy. Disponível em: <http://www.nielsen.com/us/en/nielsen-solutions/social-media-strategy.html>. Acesso em: 4 ago. 2013.
NIELSEN - FAQ. FAQ TV Diary. Disponível em: <http://www.nielsen.com/content/panel/tvdiary7_en_us/faq.html>. Acesso em: 05 jan. 2014.
NIELSEN; TWITTER. Social Guide.
NIELSEN; TWITTER. Social Guide. Disponível em: <http://www.socialguide.com/>. Acesso em: 5 jan. 2014b.
OUTRO CANAL. “BBB 13” tem o triplo de merchandising do “BBB 12.”Disponível em: <http://outrocanal.blogfolha.uol.com.br/2013/02/06/bbb-13-tem-o-triplo-de-merchandising-do-bbb-12/>. Acesso em: 17 jul. 2013.
97
Artur Vieira Tenório
PAK, A.; PAROUBEK, P. Twitter as a Corpus for Sentiment Analysis and Opinion Mining. LREC, p. 1320–1326, 2010.
PANG, B.; LEE, L. Opinion Mining and Sentiment Analysis. Found. Trends Inf. Retr., v. 2, n. 1-2, p. 1–135, 2008.
QUAL CANAL TV. Qual Canal TV - Sobre Nós. Disponível em: <http://www.qualcanal.tv/sobre_nos.html>. Acesso em: 12 dez. 2013.
REDE GLOBO. Manual Básico de Mídia - Audiência de TV. Disponível em: <http://comercial.redeglobo.com.br/informacoes_comerciais_manual_basico_de_midia/manual_basico_audiencia.php>. Acesso em: 11 mar. 2014.
REYNOLDS, J. Twitter website “blocked” in Turkey. BBC News Europe, p. 01, 2014.
RODRIGUES BARBOSA, G. A. et al. Characterizing the effectiveness of twitter hashtags to detect and track online population sentiment. Proceedings of the 2012 ACM annual conference extended abstracts on Human Factors in Computing Systems Extended Abstracts - CHI EA ’12, p. 2621, 2012.
SBTVD. Cidades com cobertura - DTV. Disponível em: <http://www.dtv.org.br/cidades-onde-a-tv-digital-esta-no-ar/>. Acesso em: 11 nov. 2013.
SCHILIT, B. et al. Context-Aware Computing ApplicationsProceedings of the 1994 First Workshop on Mobile Computing Systems and Applications. Anais...: WMCSA ’94.Washington, DC, USA: IEEE Computer Society, 1994Disponível em: <http://dx.doi.org/10.1109/WMCSA.1994.16>
SENTI WORLD NET. Senti World Net. Disponível em: <http://sentiwordnet.isti.cnr.it/>. Acesso em: 27 jul. 2013.
SENTISTRENGTH. SentiStrength. Disponível em: <http://sentistrength.wlv.ac.uk/>. Acesso em: 21 jul. 2012.
SILVA, J. S. DA. Connected-Ginga : Um Modelo de TV Híbrida para Acesso a Conteúdo Web Sensível à Programação de TV ". [s.l.] Universidade Federal de Pernambuco - UFPE, 2012.
TAUSCZIK, Y. R.; PENNEBAKER, J. W. The Psychological Meaning of Words: LIWC and Computerized Text Analysis Methods. Journal of Language and Social Psychology, v. 29, n. 1, p. 24–54, 8 dez. 2009.
TELEVISÃO UOL. Média de audiência do “BBB13” empata com “BBB11” na pior marca do reality show. Disponível em: <http://televisao.uol.com.br/bbb/bbb13/noticias/redacao/2013/03/27/media-de-audiencia-do-bbb13-empata-com-bbb11-na-pior-marca-do-reality-show.htm>. Acesso em: 17 jul. 2013.
THELWALL, M. Sentiment in Twitter events. Journal of the American …, v. 62, n. 2, p. 406–418, 2011.
98
Artur Vieira Tenório
TTV. TTV. Disponível em: <http://ttv.tuilux.com.br/?page_id=29>. Acesso em: 5 jan. 2014.
TWITTER. The Streaming APIs. Disponível em: <https://dev.twitter.com/docs/api/streaming>. Acesso em: 11 nov. 2012.
TWITTER. About Twitter, Inc. Disponível em: <https://about.twitter.com/company>.
TWITTER DEVELOPERS. Using the Twitter Search API. Disponível em: <https://dev.twitter.com/docs/using-search>. Acesso em: 5 jan. 2014.
WAKAMIYA, S.; LEE, R.; SUMIYA, K. Towards better TV viewing rates: exploiting crowd’s media life logs over Twitter for TV rating. Proceedings of the 5th International Conference on Ubiquitous Information Management and Communication, 2011.
YOUTUBE. Statistics - YouTube. Disponível em: <http://www.youtube.com/yt/press/>. Acesso em: 29 jan. 2014.
ZAPPING. “BBB 13” deve ter a pior audiência de todas as edições. Disponível em: <http://f5.folha.uol.com.br/colunistas/zapping/1251595-bbb-13-deve-ter-a-pior-audiencia-de-todas-as-edicoes.shtml>. Acesso em: 29 jan. 2014.
ZIMMERMANN, A.; LORENZ, A.; OPPERMANN, R. An operational definition of context. In: Modeling and using context; Lecture notes in computer science. [s.l.] Springer Berlin Heidelberg, 2007. v. 4635p. 558–571.
Top Related