Pós-Graduação em Ciência da Computação “AVALIAÇÃO QUALITATIVA DA AUDIÊNCIA TELEVISÃO BASEADA NA CLASSIFICAÇÃO SENTIMENTO DE USUÁRIOS EM REDES SOCIAIS” Por Artur Vieira Tenorio Dissertação de Mestrado Universidade Federal de Pernambuco [email protected] www.cin.ufpe.br/~posgraduacao RECIFE 2014 DE DE 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 Pernambuco. CIn, Ciência da Computação, 2014. de 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 Artur Vieira Tenório 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. 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 1.2 1.3 1.4 1.5 1.6 1.7 2. JUSTIFICATIVA ................................................................................................................................................... 14 PROBLEMA E QUESTÃO DE PESQUISA..................................................................................................................... 15 PROPOSTA DE SOLUÇÃO ...................................................................................................................................... 15 OBJETIVO GERAL ............................................................................................................................................... 15 OBJETIVOS ESPECÍFICOS ...................................................................................................................................... 16 LIMITAÇÕES ...................................................................................................................................................... 16 ESTRUTURA DA DISSERTAÇÃO............................................................................................................................... 17 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 5.2 5.3 5.4 5.5 6. RESULTADOS OBTIDOS ........................................................................................................................................ 90 CONTRIBUIÇÕES ................................................................................................................................................ 91 LIMITAÇÕES DO ESTUDO ...................................................................................................................................... 92 TRABALHOS FUTUROS ......................................................................................................................................... 92 CONSIDERAÇÕES FINAIS....................................................................................................................................... 93 REFERÊNCIAS ..............................................................................................................................................94 Artur Vieira Tenório 14 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 Artur Vieira Tenório 15 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. Artur Vieira Tenório 16 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. Artur Vieira Tenório 17 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. Artur Vieira Tenório 18 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 Artur Vieira Tenório 19 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/ Artur Vieira Tenório 20 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. Artur Vieira Tenório 21 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 Artur Vieira Tenório 22 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. Artur Vieira Tenório 23 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. Artur Vieira Tenório 24 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 Artur Vieira Tenório 25 (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 Artur Vieira Tenório 26 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. Artur Vieira Tenório 27 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. Artur Vieira Tenório 28 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 Artur Vieira Tenório 29 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 Artur Vieira Tenório 30 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 Facebook, Google+ Instagram, Flickr Youtube, Vimeo, Hulu LinkedIn Twitter, Blogger, Mashable LastFM, Deezer Segmentação Amizades, compartilhamento de momentos. Compartilhamento de fotos Compartilhamento de vídeos Empregos/Negócios Blog/Micro-blogging 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. Artur Vieira Tenório 31 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 Hashtag (#) Tweet Timeline Trending topics Re-Tweet (RT) Seguir Seguidores Descrição Nome dado à uma palavra que é destacada das demais em um texto. Permite dar uma identificação, semelhante às tags. Termo dado aos textos enviados por usuários. É 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. Termo dado ao recurso que permite identificar os assuntos mais falados na rede. Quando um usuário deseja replicar um tweet realizado por outra pessoa. É a ação de adicionar alguma pessoa aos seus contatos. Todos os tweets gerados por quem é seguido aparecem na timeline do seguidor. 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 Artur Vieira Tenório 32 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/ Artur Vieira Tenório 33 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 Artur Vieira Tenório 34 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: -1 (não negativo) até -5 (extremamente negativo) 1 (não positivo) até 5 (extremamente positivo) 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. Artur Vieira Tenório 35 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. Artur Vieira Tenório 36 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. Artur Vieira Tenório 37 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. Artur Vieira Tenório 38 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 Artur Vieira Tenório 39 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 Artur Vieira Tenório 40 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 Artur Vieira Tenório 41 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 Seleção aleatória de casas Qualquer pessoa Quantidade de domicílios Pessoas Audiência Participantes pagos Voluntários Percepção Consciente Nenhuma ou inconsciente Baseado em dia Quase em tempo real Local No domicílio Em qualquer lugar Custo Os participantes são pagos Quase zero Estatística Análise de dados gerados Participação Unidade Período Metodologia pelos participantes Pontos Bem estabelecido Amostragem maciça positivos Estatísticas claras em Geolocalização relação à idade e sexo. Pontos negativos Pequena taxa de Opinião e sentimento Imprecisão das amostragem características de Pouca diversidade audiência Não considera opinião e sentimento Possibilidade de ruído e dados inconstantes Artur Vieira Tenório 42 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 Artur Vieira Tenório 43 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. Artur Vieira Tenório 44 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) Artur Vieira Tenório 45 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 Artur Vieira Tenório 46 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. Artur Vieira Tenório 47 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 Artur Vieira Tenório 48 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. Artur Vieira Tenório 49 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 Receptor USB Leadership: http://www.leadership.com.br/Receptor-TV-DigitalFullHD.html?codproduto=90 8 Artur Vieira Tenório 50 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 Artur Vieira Tenório 51 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 138181, 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 11 Disponível em: http://hibernate.org/ O banco de dados PostgreSQL é gratuito, e está disponível em: http://www.postgresql.org/ Artur Vieira Tenório 52 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. Artur Vieira Tenório 53 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 Artur Vieira Tenório 54 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 Artur Vieira Tenório 55 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 Artur Vieira Tenório 56 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ções 14, 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. Artur Vieira Tenório 57 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. Artur Vieira Tenório 58 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 Artur Vieira Tenório 59 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 16 https://developers.google.com/maps/documentation/javascript/ https://code.google.com/p/geopy/ Artur Vieira Tenório 60 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 Bing 17 (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 Artur Vieira Tenório 61 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 Artur Vieira Tenório 62 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 Artur Vieira Tenório 63 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. Artur Vieira Tenório 64 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 Recife – PE Fuso horário UTC -03:00 Rio de Janeiro - RJ UTC -02:00 (Horário de verão) Sorocaba - SP Característica Localizada no nordeste do país. Grande quantidade de programas locais. Segunda maior cidade do país, cidade sede da principal emissora pesquisada: Globo. 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. Artur Vieira Tenório 65 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 Amor & Sexo Festival de Sucessos – A Força em Alerta Globo Notícia RJ TV – 1ª Edição Globo Recife Amor e Sexo Festival de Sucessos Globo Notícia NETV – 1a. Edição Globo Sorocaba AMOR E SEXO FESTIVAL DE SUCESSOS GLOBO NOTICIAS 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. Artur Vieira Tenório 66 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. Artur Vieira Tenório 67 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: java -jar EPGReader.jar Recife Sorocaba “Rio de Janeiro” A leitura destes argumentos pela função main pode ser visualizada na implementação abaixo: 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."); } } 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. <Pasta com os TS>\<Nome da cidade>\<Emissora>\<nome do arquivo>.ts 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. Artur Vieira Tenório 68 Figura 16: Diagrama de classes EPG Reader Artur Vieira Tenório 69 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: Artur Vieira Tenório 70 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); } } } 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 Artur Vieira Tenório 71 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 Artur Vieira Tenório 72 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: 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 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: 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 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. Artur Vieira Tenório 73 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: Obtido: “Amuu muito #encontroFatima” 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. 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)) 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 Artur Vieira Tenório 74 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/ Artur Vieira Tenório 75 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 Artur Vieira Tenório 76 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. Artur Vieira Tenório 77 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() 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. Artur Vieira Tenório 78 TWEETS ELIMINADOS POR TEMPO 1904ral% Tweets Válidos Eliminados por data 81% 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. Artur Vieira Tenório 79 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. Não Português Português Comparativo Idiomas Não Português; Big Português; Big Brother; 1904ral Brother; 1910ral Não Português; Chaves; 1904ral Português; Chaves; 1908ral Não Português; Português; Encontro; Encontro; 1904ral 1904ral Não Português; Média Geral; 1914ral Português; Média Geral; 1906ral Não Português Português Média Geral 1914ral Encontro 1904ral Chaves 1904ral Big Brother 1910ral 1906ral 1904ral 1908ral 1904ral 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. Artur Vieira Tenório 80 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 Artur Vieira Tenório 81 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. def getTimeLine(self): tweet_list = self.twitter.get_home_timeline(count='100') return tweet_list 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. Artur Vieira Tenório 82 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. Stream (Durante programa); 00:47; 1907ral Stream (Durante programa); 00:46; Stream (Durante 1906ral programa); 00:45; Stream (Durante 1906ral programa); 00:44; Stream (Durante 1905ral programa); 00:43; Stream (Durante 1905ral REST programa); 00:42; REST (Durante (Durante REST (Durante REST (Durante REST (Durante REST (Durante Programa); 1904ral 00:46; 00:45; 00:44; 00:47; 00:43;Programa); Stream (Durante Programa); 00:42; Programa); Programa); 00:41; Programa); REST (Na semana 1904ral REST (Na semana REST (Na semana REST (Na semana REST (Na(Na semana REST Stream Stream REST (Na (Durante (Na (Durante Stream semana semana Stream semana (Na Stream semana (Na Stream semana Stream (Na semana (Na semana 1904ral 1904ral 1904ral programa); 00:41; 1904ral 1904ral seguinte); 00:47; 00:46; 00:45; 00:44; 00:43; 00:42; seguinte); 00:41; programa); Programa); seguinte); seguinte); 00:40; seguinte); 00:40; seguinte); seguinte); 00:41; seguinte); seguinte); 00:42; seguinte); seguinte); 00:43;seguinte); 00:44;00:47; 00:45; 00:46; 00:41 00:42 1904ral 00:43 00:44 00:45 00:46 1904ral 00:47 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral 1904ral COMPARATIVO APIS 00:40 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 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 Artur Vieira Tenório 83 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. Artur Vieira Tenório 84 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. . Artur Vieira Tenório 85 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". Artur Vieira Tenório 86 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: Obtido: “#encontroFatima fas 2 meses q to longe do meu amor” Traduzido: "#encontroFatima fas 2 months q to away from my love” 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. @alana: que pena acabo malhação , agora é a novela mais chata que passa na glodo 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. @ Paloma e Bruno: ZzzzzzzzZzzZzzzzzz... melhor sonífero. #AmorAVida 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, Artur Vieira Tenório 87 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 73 274 25 Relacionados ao tema (verificação manual) 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 Artur Vieira Tenório 88 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. RT @Eltonex: #TheVoice ??? O Negocio é a #NFLnaESPN @everaldomarques !!!! 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. Artur Vieira Tenório 89 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. Artur Vieira Tenório 90 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. Acreditase 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: Artur Vieira Tenório 91 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 Artur Vieira Tenório 92 (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 Artur Vieira Tenório 93 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). Artur Vieira Tenório 94 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 terrestreCodificação de vídeo, áudio e multiplexação, v. 3, 2008. ABNT NBR 15603-1. 15603-1, Norma Brasileira. Televisão digital terrestreMultiplexaçã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-redessociais-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.]. Artur Vieira Tenório 95 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=dom icilios-particulares-permanentes-televisao>. Acesso em: 14 nov. 2013. IBOPE. IBOPE-TV. Disponível em: <http://www.ibope.com.br/ptbr/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. Artur Vieira Tenório 96 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-withoverall-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-demerchandising-do-bbb-12/>. Acesso em: 17 jul. 2013. Artur Vieira Tenório 97 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-deaudiencia-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. Artur Vieira Tenório 98 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-pioraudiencia-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. Artur Vieira Tenório