SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
UNIVERSIDADE FEDERAL DE SÃO CARLOS
      CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA
PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO




                        Relatório Técnico
   Aplicando Filtragem Baseada em Conteúdo aos dados de TV
                  fornecidos pelo IBOPE




                     ALUNA: Elaine Cecília Gatto
             ORIENTADOR: Prof. Dr. Sergio Donizetti Zorzo




                            São Carlos-SP
                              Julho/2010
AGRADECIMENTOS

     Agradeço a Paulo Muniz Ávila e a Adriano Lucas pelo auxílio prestado durante a
realização deste trabalho, especificamente na parte de organização dos dados. Agradeço
também ao IBOPE por ter fornecido os dados de visualização necessários para os testes.




                                                                                         i
RESUMO

     Este relatório técnico apresenta o resultado dos estudos realizados com os dados de
visualização de TV fornecidos pelo Ibope em um cenário específico. Simulou-se e avaliou-se
o comportamento de alguns domicílios que interagem em um sistema de recomendação que
utiliza Filtragem Baseada em Conteúdo para TV Digital Portátil Interativa. Os detalhes da
simulação, desde a preparação e a organização dos dados, a geração dos perfis e das
recomendações, o cálculo da porcentagem de acerto, além dos gráficos, análises e conclusões,
são apresentados neste documento.



    Palavras-Chave: Sistemas de Recomendação, Filtragem de Informação, Filtragem
Baseada em Conteúdo, Televisão Digital, Cosseno, Apriori.




                                                                                          ii
LISTA DE FIGURAS

Figura 1 – Contexto do estudo de caso ....................................................................................... 7
Figura 2 – Amostra dos arquivos TXT ..................................................................................... 10
Figura 3 – Tabela com os descritores de gêneros ..................................................................... 12
Figura 4 – Tabela com os descritores de subgênero ................................................................. 12
Figura 5 – Tabela com os descritores de gênero/subgênero ..................................................... 12
Figura 6 – Tabela com os códigos originais das emissoras ...................................................... 13
Figura 7 – Tabela com os códigos das emissoras ..................................................................... 13
Figura 8 – Tabela com os programas........................................................................................ 13
Figura 9 – Tabela com as informações da programação de TV ............................................... 13
Figura 10 – Tabela matrixepg no MySQL................................................................................ 15
Figura 11 – Amostra das planilhas de sintonia ......................................................................... 16
Figura 12 – Planilhas após organização ................................................................................... 17
Figura 13 – Tabela para armazenamento .................................................................................. 17
Figura 14 – Tabela que resulta da listagem 1 ........................................................................... 17
Figura 15 – Tabela que contém a mescla do EPG com o histórico do usuário ........................ 20
Figura 16 – Tabela com os novos campos início e fim da sintonia .......................................... 20
Figura 17 – Tabela com o resultado de Subtime().................................................................... 20
Figura 18 – Tabela com o campo duração ................................................................................ 22
Figura 19 – Tabela com o campo dia da semana. ..................................................................... 22
Figura 20 – Tabela com o campo ............................................................................................. 22
Figura 21 – Tabela com a versão final dos dados..................................................................... 22
Figura 22 – Configurações Apriori. .......................................................................................... 23
Figura 23 – Tabela profile ........................................................................................................ 25
Figura 24 – Tabela recomenda ................................................................................................. 25
Figura 25 – % de acerto Apriori Domicílio 1 ........................................................................... 31
Figura 26 – % de acerto Apriori Domicílio 2 ........................................................................... 32
Figura 27 – % de acerto Apriori Domicílio 3 ........................................................................... 32
Figura 28 – % de acerto Apriori Domicílio 4 ........................................................................... 33
Figura 29 – % de acertoApriori Domicílio 5 ............................................................................ 33

                                                                                                                                   iii
Figura 30 – % de acertoApriori Domicílio 6 ............................................................................ 34
Figura 31 - % de acerto Apriori todos os domicílios ................................................................ 34
Figura 32 – % de acerto Cosseno domicílio 1 .......................................................................... 35
Figura 33 – % de acerto Cosseno domicílio 2 .......................................................................... 36
Figura 34 – % de acerto Cosseno domicílio 3 .......................................................................... 36
Figura 35 – % de acerto Cosseno domicílio 4 .......................................................................... 37
Figura 36 – % de acerto Cosseno domicílio 5 .......................................................................... 37
Figura 37 – % de acerto Cosseno domicílio 6 .......................................................................... 38
Figura 38 – % de acerto Cosseno todos os domicílios ............................................................. 38
Figura 39 – Comparação entre Apriori e Cosseno domicílio 1 ................................................ 40
Figura 40 – Comparação entre Apriori e Cosseno domicílio 2 ................................................ 40
Figura 41 – Comparação entre Apriori e Cosseno domicílio 3 ................................................ 41
Figura 42 – Comparação entre Apriori e Cosseno domicílio 4 ................................................ 41
Figura 43 – Comparação entre Apriori e Cosseno domicílio 5 ................................................ 42
Figura 44 – Comparação entre Apriori e Cosseno domicílio 6 ................................................ 42
Figura 45 – Comparação entre Apriori e Cosseno todos os domicílios ................................... 43




                                                                                                                        iv
LISTA DE TABELAS

Tabela 1 – Características dos domicílios .................................................................................. 8
Tabela 2 – Características socioeconômicas dos domicílios ...................................................... 9
Tabela 3 – Identificação dos campos nos arquivos TXT.......................................................... 11
Tabela 4 – Layout dos arquivos TXT ....................................................................................... 11
Tabela 5 – Relação quantidade de programas/gênero .............................................................. 12
Tabela 6 – Resultados do Apriori ............................................................................................. 31
Tabela 7 – Resultados do Cosseno ........................................................................................... 35
Tabela 8 - Comparação entre Apriori e Cosseno domicílios 1-3. ............................................ 39
Tabela 9 – Comparação entre Apriori e Cosseno domicílios 4-6. ............................................ 39




                                                                                                                               v
LISTA DE EQUAÇÕES

Equação 1 – Cálculo do perfil .................................................................................................. 25
Equação 2 – Cálculo da norma do perfil .................................................................................. 26
Equação 3 – Cálculo da norma da tabela matrizepg ................................................................. 27
Equação 4 – Cálculo de dot ...................................................................................................... 27
Equação 5 – Cálculo do Cosseno ............................................................................................. 28
Equação 6 – Fórmula que calcula a porcentagem de acerto de acordo com o número de
recomendações geradas ............................................................................................................ 30
Equação 7 – Fórmula que calcula a média da porcentagem de acerto de acordo com o número
de dias monitorados .................................................................................................................. 30




                                                                                                                                      vi
LISTAGENS

Listagem 1 – Consulta SQL para descobrir qual emissora o usuário está assistindo. ............. 17
Listagem 2 – Consulta SQL para mesclar as informações do EPG com as do usuário........... 18
Listagem 3 – Cálculo do horário de início e de fim da sintonia. ............................................. 18
Listagem 4 – Cálculo do tempo de visualização. .................................................................... 19
Listagem 5 – Cálculo da conversão do tempo do formato hora para inteiro. .......................... 19
Listagem 6 – Cálculo do dia da semana. ................................................................................. 20
Listagem 7 – Cálculo do período do dia. ................................................................................. 21
Listagem 8 – Inserindo e apagando os dados para a correta avaliação ................................... 25
Listagem 9 – Cálculo do perfil ................................................................................................ 26
Listagem 10 – Configuração da variável mycprofilenorm ...................................................... 26
Listagem 11 – Cálculo da norma da matrizepg ....................................................................... 27
Listagem 12 – Cálculo da norma e dot ................................................................................... 27
Listagem 13 – Cálculo do Cosseno ......................................................................................... 28
Listagem 14 – Inserção do resultado na tabela recomenda ..................................................... 29
Listagem 15 – Comparação entre as tabelas recomenda e d1_vf ............................................ 29




                                                                                                                                vii
SUMÁRIO

1. INTRODUÇÃO ............................................................................................................... 1
2. SISTEMAS DE RECOMENDAÇÃO ............................................................................. 3
     2.1. Filtragem e Informação ............................................................................................ 3
          2.1.1. Filtragem Baseada em Conteúdo ...................................................................4
          2.1.2. Filtragem Colaborativa....................................................................................5
          2.1.3. Filtragem Híbrida............................................................................................5
3. ESTUDO DE CASO ...................................................................................................... 7
     3.1. Conhecendo e Preparando os Dados ....................................................................... 8
          3.1.1. EPG ................................................................................................................9
          3.1.2. Histórico dos Usuários .................................................................................15
     3.2. Metodologia e Simulação ....................................................................................... 23
4. RESULTADOS ............................................................................................................ 30
5. CONCLUSÃO .............................................................................................................. 44
6. REFERÊNCIAS ........................................................................................................... 46




                                                                                                                                         viii
1                                                                INTRODUÇÃO
        Sistemas de recomendação fornecem recomendações com base em informações sobre
as preferências dos usuários. A Filtragem de Informação é utilizada pelos sistemas de
recomendação para o processamento e sugestão das informações aos usuários.

        A Filtragem Colaborativa é uma abordagem de Filtragem de Informação muito
utilizada em sistemas de recomendação, que tenta prever a utilidade de itens para um
determinado usuário com base nos itens previamente avaliados por outros usuários, sugerindo
itens relevantes e descartando os irrelevantes. Muito utilizados na Internet, os sistemas de
recomendação têm sido empregados no contexto de TVD (TV Digital), como por exemplo,
(Ávila, 2010), (Lucas, 2009), (Uribe, 2009), (Solla et al, 2008), (Bar et al, 2008), (Einarsson,
2007), (Chorianopoulus, 2007), (Choi, Koh and Lee, 2007), (Yu et al, 2006), (Silva, 2005),
(Bozios et al, 2001), (Gutta et al, 2000), (Das and Horst, 1998), entre outros.

        Da mesma forma que ocorre na Internet, os sistemas de recomendação poderão ser
utilizados na TVD para a recomendação de programas de TV, publicidade e propaganda e
também para comércio eletrônico. Em sistemas de recomendação item é tudo aquilo que pode
ser visualizado ou avaliado pelo usuário. Em uma loja virtual, por exemplo, os itens são os
produtos que são vendidos, em uma biblioteca, livros, em uma locadora de DVDs, os filmes, e
assim por diante. Assim, os itens no contexto de TVD podem ser os programas, a propaganda
e os produtos a serem vendidos.

        Este relatório técnico apresenta os estudos realizados com a Filtragem Baseada em
Conteúdo (FBC) aplicada aos dados de TVD fornecidos pelo IBOPE 1 e está estruturado da
seguinte forma: o Capítulo 1 introduz o trabalho, o Capítulo 2 contém uma breve revisão
bibliográfica sobre sistemas de recomendação, o Capítulo 3 apresenta o estudo de caso, o
Capítulo 4, os resultados obtidos e o Capítulo 5, as conclusões. Os estudos visaram observar e


1
  Multinacional brasileira de capital privado, o IBOPE é uma das maiores empresas de pesquisa de mercado da
América Latina. Há 67 anos fornece um amplo conjunto de informações e estudos sobre mídia, opinião pública,
intenção de voto, consumo, marca comportamento e mercado. (www.ibope.com.br)
                                                                                                              1
avaliar como a Filtragem Colaborativa pode ser utilizada em sistemas de recomendação no
contexto da TVD.

     Em um sistema de recomendação típico, os usuários fornecem as recomendações como
entradas e essas são, então, agregadas e dirigidas aos destinatários adequados (RESNICK,
1997).




                                                                                       2
2            SISTEMAS DE RECOMENDAÇÃO
      Os sistemas de recomendação envolvem várias tecnologias como: a ciência cognitiva, a
teoria da aproximação, a recuperação de informação, a filtragem de informação, teorias de
previsão, entre outras, e podem ser aplicados a diversos domínios.

     Essas técnicas fundamentam o funcionamento dos sistemas de recomendação e as mais
aplicadas são as de Filtragem de Informação, as quais são basicamente divididas em Filtragem
Colaborativa e Filtragem Baseada em Conteúdo.

     Um sistema de recomendação pode utilizar uma única técnica de Filtragem de
Informação ou as duas em conjunto, tornando-se, assim, um sistema híbrido. Essas técnicas
também possuem algoritmos desenvolvidos particularmente para o seu tipo (TORRES, 2004;
REATEGUI, 2005).

     As subseções a seguir contêm mais detalhes sobre os dois principais tipos de Filtragem
de Informação.



2.1 Filtragem de Informação



     Uma das primeiras formas de Filtragem de Informação é proveniente do trabalho
Disseminação Seletiva da Informação (SDI), concebido como uma forma automática para que
cientistas se mantivessem informados sobre novos documentos publicados em suas áreas de
especialização. O cientista podia criar e modificar um perfil de usuário de palavras-chave que
descrevessem os seus interesses. A SDI foi implementado em larga escala, entretanto,
utilizou-se muito menos que o previsto. (FOLTZ, 1992)

     Filtragem da Informação é o nome usado para descrever uma variedade de processos
que envolvem a prestação de informações a pessoas que delas necessitam. Sistemas de
Filtragem de Informação são projetados para a filtragem de dados não estruturados ou semi-

                                                                                            3
estruturados, em oposição às aplicações de banco de dados, que utilizam dados bem
estruturados. Os sistemas tratam, principalmente, informações textuais, mas também podem
tratar imagens, voz, vídeo ou outros tipos de dados que fazem parte dos sistemas de
informação multimídia.

     A Filtragem também pode ser baseada em descrições de preferências individuais ou de
grupo, chamadas de perfis, os quais geralmente representam interesses de longo prazo. Além
disso, também tem sido usada para descrever o processo de acesso e recuperação de
informações de bancos de dados remotos, caso em que os dados de entrada são os resultado
das pesquisas nos bancos de dados (BELKIN, 1992).



2.1.1 Filtragem Baseada em Conteúdo



       O objetivo da Filtragem Baseada em Conteúdo é gerar descrições dos conteúdos dos
itens automaticamente e compará-las com a descrição do interesse do usuário, verificando,
dessa forma, se o item é ou não relevante para o mesmo baseando-se na análise do conteúdo
do item e no perfil do usuário (MARCHI, 2008; TORRES, 2004).

       Podem ser aplicadas técnicas, entre elas, índices de busca booleana, filtragem
probabilística e modelos vetoriais. Nos índices de busca booleana, a consulta é formada por
um conjunto de palavras-chave unidas por operadores booleanos, ao passo que, na filtragem
probabilística, aplica-se o raciocínio probabilístico para determinar a probabilidade que um
documento apresenta para atender as necessidades de informações de um usuário. (FOLTZ,
1992; MARCHI, 2008; REATEGUI, 2005; TORRES, 2004)

       O modelo vetorial é o mais aplicado e a técnica TF-IDF (Term Frequency - Inverse-
Document Frequency) é baseada nesse modelo. Essa técnica considera o peso que uma
palavra possui dentro da coleção de documentos e indica que a frequência das palavras
comuns em dois textos evidencia a semelhança entre eles. Por último, o tamanho de um
documento também é analisado, pois um texto longo tem maior possibilidade de semelhança
que um texto curto, visto que esse possui menos palavras que o outro (MARCHI, 2008;
TORRES, 2004).



                                                                                           4
2.1.2 Filtragem Colaborativa



         A Filtragem Colaborativa remete a situações em que certas pessoas pedem a outras
opiniões ou recomendações sobre determinado assunto, como por exemplo, que filme assistir,
que livro ler, etc. Essa técnica é assim chamada, pois existe um processo de seleção no
momento de geração das recomendações e, para isso, as pessoas colaboram entre si,
utilizando algumas estratégias de recomendação como, por exemplo, a avaliação de um
produto.

         Tecnicamente, a Filtragem Colaborativa ocorre em três passos: no armazenamento das
opiniões das pessoas, no agrupamento de pessoas com perfis semelhantes (vizinhos) e, por
fim, na recomendação propriamente dita de algo que foi altamente avaliado pelos vizinhos.
Essa técnica é muito utilizada em lojas virtuais como Submarino, Americanas, Amazon, entre
outras. (TORRES, 2004)

         O Coeficiente de Pearson e o Cosseno são duas formas matemáticas muito utilizadas
para medir a similaridade em Filtragem Colaborativa. O Coeficiente de Correlação de Pearson
mede a força da relação entre duas variáveis e o valor zero indica que não existe nenhuma
relação entre as mesmas. Isso ocorre quando duas variáveis são absolutamente independentes
entre si. O valor máximo de + 1,00 ocorre quando a associação for positiva e a mais forte
possível. O valor máximo de -1,00 ocorre quando a associação for negativa e a menos forte
possível. Já o Cosseno é uma métrica para medir o cosseno do ângulo entre dois vetores num
espaço vetorial, sendo que esses representam os usuários, e retorna valores entre 0 e 1. Quanto
mais próximo de 1 for o valor, mais similares são os dois vetores (SILVA, 2008; MAIA,
2008).



2.1.3 Filtragem Híbrida



         A Filtragem Híbrida mistura a Filtragem Baseada em Conteúdo e a Filtragem
Colaborativa em um único sistema, melhorando as recomendações oferecidas aos usuários e,
dessa forma, procura resolver alguns dos problemas introduzidos por ambas as técnicas.


                                                                                              5
Assim, os métodos de recomendação nessa categoria podem se combinar de diversas
formas: a) Filtragem Colaborativa processada sequencialmente após a Filtragem Baseada em
Conteúdo; b) Filtragem Baseada em Conteúdo processada sequencialmente após a Filtragem
Colaborativa e; c) Filtragem Baseada em Conteúdo processada paralelamente com a Filtragem
Colaborativa (ADOMAVICIUS, 2005; EINARSSON, 2007).




                                                                                        6
3                                             ESTUDO DE CASO
       Este estudo de caso teve como objetivo avaliar o processo e as implicações que
algumas técnicas de Filtragem Baseada em Conteúdo geram ao serem utilizadas no contexto
da TVD Portátil. Nas seções deste capítulo constam os detalhes de como o estudo de caso foi
realizado.

    A Figura 1 apresenta o contexto de utilização do sistema simulado descrito neste relatório
técnico. Os receptores fixos e móveis recebem áudio, vídeo e dados, sendo o middleware, no
caso o middleware Ginga-NCL, o responsável pela separação dos mesmos. O dispositivo deve
ser capaz de receber a transmissão de TVD com o auxílio de uma antena, interna ou externa,
compatível com o padrão de transmissão adotado no Brasil.




                             Figura 1 – Contexto do estudo de caso


                                                                                            7
O usuário interage com a TV no celular e todos os canais assistidos durante o período de
utilização são armazenados. A partir desses dados, o processo de identificação do perfil do
usuário tem início e, com base no horário e no canal assistido, é possível encontrar o gênero
do programa com o auxílio das informações contidas no EPG (Guia Eletrônico de
Programação) (ABNT NBR 15603-2).

    O processamento tem início quando o usuário solicita a recomendação. Os dados do
histórico de visualização do usuário coletados até então passam por uma técnica de filtragem
de informação que permite encontrar o perfil do usuário, que é armazenado em uma base de
dados. Com o perfil do usuário atualizado, procuram-se os programas de TV compatíveis no
guia eletrônico de programação e gera-se uma lista com tais programas.



3.1 Conhecendo e Preparando os Dados



    Os dados fornecidos pelo IBOPE continham as informações do EPG, o histórico de
visualização do usuário (o que o telespectador assistiu) e também as informações
socioeconômicas dos domicílios. Todos esse conjunto de dados do IBOPE foram separados e
armazenados no banco de dados MySQL. Os dados correspondiam a 15 dias de programação
e monitoramento de 6 domicílios brasileiros com a programação da TV Aberta. Esses
domicílios foram monitorados minuto a minuto, assim como cada indivíduo foi monitorado
separadamente. A Tabela 1 indica a quantidade de indivíduos e de TVs por domicílio e a
Tabela 2 apresenta as informações socioeconômicas dos domicílios.

                              Tabela 1 – Características dos domicílios
                 Quantidade de domicílios Quantidade de TVs Quantidade de indivíduos
                            1                     1                    2
                            2                     1                    3
                            3                     2                    3
                            4                     2                    2
                            5                     1                    2
                            6                     2                    3
                         Total                    9                   15




                                                                                            8
Tabela 2 – Características socioeconômicas dos domicílios

  Domicílio          1             2             3             4             5           6


 Classe Social      DE             C             C            AB             C           AB

   Idade da
   dona-de-         44             45            39            32            60          36
     casa
   Grau de
 instrução do     Primário       Ginasial      Ginasial     Colegial       Colegial   Colegial
   chefe-de-     incompleto    incompleto    incompleto     completo     incompleto   completo
     casa
   Sexo do
                  Feminino      Feminino      Feminino      Feminino      Feminino    Feminino
 indivíduo 1

  Idade do
                    44             45            39            32            60          36
 indivíduo 1

   Sexo do
                  Feminino     Masculino     Masculino     Masculino     Masculino    Masculino
 Indivíduo 2

  Idade do
                     8             48            40            30            77          38
 indivíduo 2

   Sexo do
                                Feminino      Feminino                                Masculino
 indivíduo 3

  Idade do
 indivíduo 3




3.1.1 EPG



         O EPG fornecido pelo IBOPE é composto por 15 arquivos TXT, denominados
arquivos de programação, sendo um para cada dia (de 05/03/2008 à 19/03/2008) com a grade
de 10 emissoras de TV Aberta, com início às 00:00:00 e término às 05:59:00. A Figura 2
ilustra uma amostra do layout inicial desses arquivos e a Tabela 3 apresenta como esse layout
foi organizado.




                                                                                                  9
Figura 2 – Amostra dos arquivos TXT


       Tomando-se como exemplo a primeira linha da Figura 2, identificam-se os campos,
conforme indicados na Tabela 3. Após o entendimento dos arquivos que compõem o EPG, os
dados foram copiados dos arquivos de programação para uma planilha do BrOffice com o
auxílio do recurso colar especial. Esse recurso permitiu que os dados fossem exportados
exatamente como foram construídos no layout, separando os campos em colunas. No
momento da exportação, os dados numéricos perderam seu formato e foram, então,
reformatados de acordo com a Tabela 4. Após a exportação, foi feita a limpeza dos dados
desnecessários.



                                                                                     10
Tabela 3 – Identificação dos campos nos arquivos TXT
     Coluna                      Conteúdo                                   Identificação
                                                                     005                Código da emissora
       1.ª               005100PNREXXXXX
                                                                100PNREXXXXX                Descartado
                                                                   002645            Código do programa
       2.ª             002645RELIGIOSO MAT
                                                                RELIGIOSO MAT           Nome do programa
       3.ª                         000000                                    Descartado
       4.ª                         0000                                      Descartado
                                                                   060000            Início do programa
                                                                                           Fim do
       5.ª               060000080000DIA_05                        080000
                                                                                          programa
                                                                                            Dia do
                                                                   DIA_05
                                                                                          programa
       6.ª          111111100000000000000003XX                               Descartado



                                    Tabela 4 – Layout dos arquivos TXT
                  Descrição                        Tipo                      Posição Inicial
              Código da emissora               Numérico (03)                        1
              Código do programa               Numérico (06)                       24
              Nome do programa                 Caractere (30)                      30
              Início do programa               Numérico (06)                       160
               Fim do programa                 Numérico (06)                       166



       Em seguida, perceberam-se algumas inconsistências de horários, que foram
imediatamente corrigidas para que a análise futura não gerasse resultados errôneos. O
processo acima descrito se repetiu para cada um dos 15 arquivos de programação e os dados
foram agrupados em uma única planilha que continha o EPG dos 15 dias.
       O comportamento do usuário é composto por várias planilhas, denominadas planilhas
de sintonia, que possuem muito mais informação que o EPG. As planilhas de sintonia e o
EPG contêm códigos que identificam as emissoras da TV Aberta. Foi necessário padronizar
esses códigos, pois o número de identificação foi registrado diferentemente nesses arquivos.
Para evitar a inconsistência de dados, foi adicionada uma coluna ao EPG com o nome da
emissora e, em seguida, os códigos das emissoras de TV Aberta foram padronizados, pois
havia conflitos de códigos entre as emissoras Bandeirantes, Record, Rede TV! e TV Cultura.
       Também foram adicionados ao EPG o dia da semana e a duração do programa. O
EPG, nessa etapa, ainda não estava completo, pois faltavam o gênero e o subgênero de cada
programa. Para isso, procurou-se, nos sites oficiais de cada emissora, o gênero dos programas
transmitidos e, em seguida, foram identificados de acordo com a norma brasileira ABNT
NBR 15603-2 e constam do Anexo C - “Descritor de gênero no descritor de conteúdo”.

                                                                                                             11
Para facilitar essa identificação, foi utilizado o recurso de filtro para classificar o EPG
de acordo com o nome do programa. Caso esse se repetisse nos 15 dias do intervalo
considerado, não era necessário procurar novamente no site da emissora. Ressalta-se que a
planilha do EPG totalizou cerca de 4.500 linhas, com a identificação de aproximadamente 800
programas diferentes. A Tabela 5 ilustra a relação quantidade de programas/gênero
encontrada no EPG. No MySQL também foram criadas tabelas para guardar as informações
do EPG. As Figuras de 3 a 9 apresentam essas tabelas do banco de dados.


                        Tabela 5 – Relação quantidade de programas/gênero
                                        Gênero                     Quantidade
                                      Minissérie                       0
                                        Erótico                        1
                                        Novela                         15
                                     Reality Show                      15
                                         Filme                         24
                                     Humorístico                       25
                                      Informação                       32
                                       Educativo                       33
                                        Esporte                        40
                             Sorteio, televendas, premiação            42
                                   Debate/Entrevista                   52
                                     Série/Seriado                     56
                                        Outros                         62
                                        Infantil                       63
                                      Jornalismo                      146
                                       Variedade                      203
                                       TOTAL                          812




  Figura 3 – Tabela com os
   descritores de gêneros
                                        Figura 4 – Tabela com os
                                        descritores de subgênero


                                                                               Figura 5 – Tabela com os
                                                                            descritores de gênero/subgênero




                                                                                                         12
Figura 7 – Tabela com os códigos
   Figura 6 – Tabela com os
                                            das emissoras
códigos originais das emissoras
                                                                       Figura 8 – Tabela com os
                                                                              programas




                     Figura 9 – Tabela com as informações da programação de TV



       O EPG precisou ainda de mais uma modificação para poder ser utilizado com a FBC.
Uma nova tabela foi criada, idêntica à tabela do EPG, mas acrescida de campos com os nomes
dos gêneros. Esses campos foram populados com 0 ou 1, conforme o programa se encaixava
ou não naquele gênero, transformando-se em uma matriz. Os gêneros receberam siglas, as
quais são listadas abaixo. Isso se fez necessário, pois nas seções de metodologia e de
simulação esses campos aparecerão em diversas consultas SQL. A Figura 10 ilustra a Tabela
criada no MySQL para a matriz do EPG.


       Sigla ............ Gênero/Subgênero
       DED ............ Debate Entrevista/Debate
       DEE ............ Debate Entrevista/Entrevista
       EDED ......... Educativo/Educativo
                                                                                                  13
ERER .......... Erótico/Erótico
ESES ........... Esporte/Esporte
FF ................ Filme/Filme
FO ............... Filme/Outros
HH .............. Humorístico/Humorístico
II ................. Infantil/Infantil
IC ................ Informação/Culinária
IM ............... Informação/Moda
IO ................ Informação/Outros
IR ................ Informação/Rural
INS .............. Informação/Saúde
IT ................ Informação/Turismo
JD ................ Jornalismo/Documentário
JO ................ Jornalismo/Outros
JR ................ Jornalismo/Reportagem
JT ................ Jornalismo/Telejornais
NN .............. Novela/Novela
ODA ........... Outros/Desenho Adulto
OI ................ Outros/Interativo
OO .............. Outros/Outros
OP ............... Outros/Político
OUR ............ Outros/Religioso
RSRS .......... Reality Show/Reality Show
SSS ............. Série, Seriado/Série
STPO .......... Sorteio, Televendas, Premiação/Outros
STPS ........... Sorteio, Televendas, Premiação/Sorteio
STPT ........... Sorteio, Televendas, Premiação/Televendas
STPP ........... Sorteio, Televendas, Premiação/Premiação
VA .............. Variedade/Auditório
VF ............... Variedade/Feminino
VGS ............ Variedade/Game Show
VMO ........... Variedade/Making Of
VM .............. Variedade/Musical
                                                             14
VO .............. Variedade/Outros
       VS ............... Variedade/Show




                              Figura 10 – Tabela matrixepg no MySQL




3.1.2 Histórico dos Usuários



       As planilhas de sintonia enviadas pelo IBOPE contêm os dados dos usuários e foram
modificadas, de forma que técnicas de Filtragem Baseada em Conteúdo pudessem ser
aplicadas. A Figura 11 apresenta uma captura de tela de como as planilhas de sintonia estão
organizadas. DOMIC_0x indica o número do domicílio (X é o número do domicílio). DIA_0x
indica o dia do monitoramento. Inds indica o número do indivíduo (usuário). Tvs indica o
número da TV. 06:00 em diante indica o horário do monitoramento. Assim, a planilha foi
preenchida com o número do canal que aquele indivíduo estava assistindo naquela TV,
naquele horário, naquele dia e naquele domicílio.




                                                                                         15
Figura 11 – Amostra das planilhas de sintonia


       Os dados foram, então, separados por domicílios e, apesar de alguns possuírem mais
de uma TV, percebeu-se que não havia registros de monitoramento para mais de uma TV ao
mesmo tempo e, portanto, considerou-se apenas uma TV por domicílio. A Figura 12 apresenta
o modo como os dados foram organizados no momento da separação. A coluna Domicílio
indica o domicílio ao qual pertence aquele indivíduo. A coluna Dia indica o dia da
visualização do programa. A coluna Horário indica a hora de visualização. A coluna
Indivíduo indica qual é o usuário que está assistindo aquele programa. A coluna TV indica o
canal que o usuário está assistindo. Observa-se que os dados também foram formatados: data
no formato AAAA-mm-dd, hora no formato HH:mm:ss e TV no formato 00X. As planilhas
resultantes foram convertidas em arquivos CSV, os quais, em seguida, foram inseridos no
MySQL. Para tanto, criou-se uma tabela para cada domicílio, chamada dx_cru (Cru por conter
os dados originais), que armazena essas informações, conforme ilustra a Figura 13.




                                                                                         16
Figura 13 – Tabela para
                                                                       armazenamento




                                                              Figura 14 – Tabela que resulta da
                                                                          listagem 1



      Figura 12 – Planilhas após organização


       A partir do campo codigoEmissora, foi possível buscar na tabela codigos_emissoras
qual emissora o usuário estava assistindo. A consulta SQL da Listagem 1 fez essa mescla e,
então, inseriu o resultado em outra tabela, chamada dx_v2, na qual x indica o número do
domicílio. A consulta seleciona os campos da tabela dx_cru quando o código da emissora
nessa tabela for igual ao da tabela codigos_emissoras, ordenando pelo código da emissora da
tabela dx_cru. A Figura 14 apresenta os campos da tabela criada no MySQl.


     INSERT INTO d1_v2
     SELECT d.id_d1, d.domicilio, d.dia, d.horario, d.id_users, d.codigoEmissora, d.nomeEmissora
     FROM d1_cru d, codigos_emissoras c
     WHERE d.codigoEmissora = c.codigo_p
     ORDER BY d.codigoEmissora;

          Listagem 1 – Consulta SQL para descobrir qual emissora o usuário está assistindo.


       No passo seguinte, fez-se a mescla com o EPG, obtendo todas as informações
referentes ao programa visualizado. A Listagem 2 apresenta a consulta SQL utilizada para
fazer a mescla. O resultado da consulta também foi armazenado em outra tabela, chamada

                                                                                                   17
dx_v3. A Figura 15 apresenta os campos dessa tabela. A consulta seleciona alguns campos da
tabela dx_cru e da tabela EPG quando o dia e o código da emissora são iguais em ambas e
quando o horário da tabela dx_cru é maior ou igual à hora do início do programa e menor ou
igual à hora do fim do programa. Sem informar essas condições, o resultado gerado estará
incorreto. Novamente, isso é repetido para todos os domicílios.

     INSERT INTO d1_v3
     SELECT d.domicilio, d.id_d1, d.id_users, e.id_epg, d.dia as ddia, e.dia as edia, d.horario,
     e.horaInicio, e.horaFim, e.inicioPrograma, e.fimPrograma, e.duracaoPrograma,
     e.codigoPrograma, e.nomePrograma, d.codigoEmissora as dce, e.codigoEmissora as ece,
     e.nomeEmissora, e.genero, e.descritorGenero, e.subgenero, e.descritorSubgenero,
     e.generoSubgenero, e.descritorGeneroSubgenero
     FROM d1_cru d, matrixepg e
     WHERE ((d.dia=e.dia) and (d.codigoEmissora = e.codigoEmissora)
     and (d.horario > = e.horaInício) and (d.horario <= e.horaFim))
     ORDER BY d.id_users,d.dia,d.horario;

         Listagem 2 – Consulta SQL para mesclar as informações do EPG com as do usuário.


       O passo seguinte consistiu em encontrar os horários de início e de fim da sintonização
do usuário naqueles canais. Para tanto, usou-se uma consulta SQL, como ilustra a Listagem 3,
que usa os comandos MIN() e MAX() que retorna o valor mínimo ou máximo, e o campo
horário da tabela dx_v3 como base. A Figura 16 apresenta a tabela criada para armazenar o
resultado dessa consulta.

     INSERT INTO d1_v4
     SELECT d.domicilio, d.id_d1, d.id_users, d.id_epg, d.dia, d.horario, min(d.horario) AS
     inicioSintonia, max(d.horario) AS fimSintonia, d.horaInício, d.horaFim, d.inicioPrograma,
     d.fimPrograma, d.duracaoPrograma, d.codigoPrograma, d.nomePrograma, d.dce as
     codigoEmissora, d.nomeEmissora, d.genero, d.descritorGenero, d.subgenero,
     d.descritorSubgenero, d.generoSubgenero, d.descritorGS
     FROM d1_v3 d
     GROUP BY d.id_users, d.nomePrograma, d.dia
     HAVING (d.horario=min(d.horario))
     ORDER BY d.id_users, d.dia, d.horario;

                     Listagem 3 – Cálculo do horário de início e de fim da sintonia.


       Em seguida, calculou-se o tempo em que o usuário permaneceu sintonizado nos
canais. A Listagem 4 demonstra a consulta SQL utilizada. O comando SUBTIME(), que
                                                                                                   18
retorna a subtração entre as datas, foi utilizado para fazer o cálculo de subtração entre os
campos início e fim de sintonia. A Figura 17 apresenta a tabela criada para armazenar o
resultado dessa consulta.

      INSERT INTO d1_v5
      SELECT d.domicilio, d.id_d1, d.id_users, d.id_epg, d.dia, d.horario, d.inicioSintonia,
      d.fimSintonia, subtime(d.fimSintonia, d.inícioSintonia) as duracaoSintonia, d.horaInicio,
      d.horaFim, d.inicioPrograma, d.fimPrograma, d.duracaoPrograma, d.codigoPrograma,
      d.nomePrograma, d.codigoEmissora, d. nomeEmissora,d.genero, d.descritorGenero, d.subgenero,
      d.descritorSubgenero, d.generoSubgenero, d.descritorGS
      FROM d1_v4 d;

                                Listagem 4 – Cálculo do tempo de visualização.


        Após calcular o tempo de visualização, foi necessário converter esse tempo em
número inteiro, para a posterior utilização nos cálculos da Filtragem Colaborativa. A
Listagem 5 apresenta a consulta SQL utilizada. Utilizaram-se os comandos HOUR(), que
retorna a hora do tempo sendo o valor de retorno entre 0 a 23 e MINUTE(), que retorna o
minuto da hora, na faixa de 0 a 59, para realizar o seguinte cálculo:


                                   duracao em inteiro = (hora * 60 ) + minuto
duracao em inteiro = ( hora ( fim sintonia – inicio sintonia ) * 60 ) + ( minuto ( fim sintonia – inicio sintonia ) )


          A Figura 18 apresenta a tabela criada no MySQL para armazenar o resultado.

      INSERT INTO d1_v6
      SELECT d.domicilio, d.id_dx, d.id_users, d.id_epg, d.dia, d.horario, d.inicioSintonia,
      d.fimSintonia, d.duracaoSintonia, ((hour (subtime (d.fimSintonia,d.inícioSintonia)) * 60) +
      minute(subtime(d.fimSintonia,d.inícioSintonia))) as duracaoS2, d.horaInício,d.horaFim,
      d.inícioPrograma, d.fimPrograma, d.duracaoPrograma, d.codigoPrograma, d.nomePrograma,
      d.codigoEmissora, d.nomeEmissora, d.genero, d.descritorGenero, d.subgenero,
      d.descritorSubgenero, d.generoSubgenero, d.descritorGS
      FROM d1_v5 d;

                Listagem 5 – Cálculo da conversão do tempo do formato hora para inteiro.


        Ainda faltavam algumas informações que podem ser úteis no momento de geração das
recomendações, o dia da semana e o período do dia. A Listagem 6 ilustra a consulta SQL
utilizada para encontrar o dia da semana e a Listagem 7 a consulta para o período. As Figuras

                                                                                                                   19
19 e 20 apresentam as tabelas criadas no banco de dados para armazenar os resultados dessas
consultas.


     INSERT INTO d1_v7

     SELECT d.domicilio, d.id_dx, d.id_users, d.id_epg, d.dia, d.horario, d.inicioSintonia,
     d.fimSintonia, d.duracaoSintonia, duracaoS2, DAYNAME(dia) as diaSemana, d.horaInicio,
     d.horaFim, d.inicioPrograma, d.fimPrograma, d.duracaoPrograma, d.codigoPrograma,
     d.nomePrograma, d.codigoEmissora as codigoEmissora,d.nomeEmissora, d.genero,
     d.descritorGenero, d.subgenero, d.descritorSubgenero, d.generoSubgenero, d.descritorGS

     FROM d1_v6 d;

                                  Listagem 6 – Cálculo do dia da semana.




Figura 15 – Tabela que contém a      Figura 16 – Tabela com os novos           Figura 17 – Tabela com o
 mescla do EPG com o histórico        campos início e fim da sintonia           resultado de Subtime()
           do usuário




                                                                                                          20
O dia da semana é descoberto passando-se o campo dia para o comando
DAYNAME() do MySQL, que retorna o nome do dia da semana para a data. Faixas de
horário foram definidas para identificar o período do dia. Quando a faixa varia entre 06:00:00
e 11:59:00, usa-se a variável manha, criando o campo período. Quando a faixa varia entre
12:00:00 e 17:59:00, usa-se a variável tarde, entre 18:00:00 e 23:59:00 usa-se a variável noite
e entre 00:00:00 e 05:59:00, madrugada. Os dados são inseridos em outra tabela. Assim,
finaliza-se a organização dos dados.


     set @manha='manha';
     set @tarde='tarde';
     set @noite='noite';
     set @madrugada='madrugada';


     INSERT INTO d1_v8
     SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inícioSintonia, d.fimSintonia,
     d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @manha as periodo,
     d.nomePrograma, d.nomeEmissora, d.descritorGS FROM d1_v7 d
     WHERE (inícioSintonia>='06:00:00' and fimSintonia<='11:59:00');


     INSERT INTO d1_v8
     SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inícioSintonia, d.fimSintonia,
     d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @tarde as periodo,
     d.nomePrograma, d.nomeEmissora, d.descritorGS FROM dx_v7 d
     WHERE (inícioSintonia>='12:00:00' and fimSintonia<='17:59:00');


     INSERT INTO d1_v8
     SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inícioSintonia, d.fimSintonia,
     d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @noite as periodo,
     d.nomePrograma, d.nomeEmissora, d.descritorGS FROM dx_v7 d
     WHERE (inícioSintonia>='18:00:00' and fimSintonia<='23:59:00');


     INSERT INTO d1_v8
     SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inícioSintonia, d.fimSintonia,
     d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @madrugada as periodo,
     d.nomePrograma, d.nomeEmissora, d.descritorGS FROM dx_v7 d
     WHERE (inícioSintonia>='00:00:00' and fimSintonia<='06:59:00');

                                 Listagem 7 – Cálculo do período do dia.
                                                                                                  21
Figura 18 – Tabela com o campo
              duração




                                   Figura 19 – Tabela com o campo dia
                                               da semana.




  Figura 20 – Tabela com o campo    Figura 21 – Tabela com a versão
          período do dia.                   final dos dados.


    Em seguida, os dados de cada dia, para cada domicílio, foram salvos em planilhas
CSV para serem utilizados no software Weka (Witten, 2005). Foi necessário salvar os
dados separadamente devido ao processo iterativo que é utilizado na simulação do Weka,
conforme detalhado a seguir.

                                                                                    22
3.2 Metodologia e Simulação



    Simulou-se a Filtragem Baseada em Conteúdo com duas técnicas diferentes, Apriori e
Cosseno, ambas usando como atributo alvo o gênero. No caso do Apriori, as
configurações apresentadas na Figura 21 foram aplicadas:




                            Figura 22 – Configurações Apriori.



    Em seguida, começou-se a simulação para o Apriori. Para cada domicílio, o processo
foi o mesmo. Ao fim do primeiro dia, geravam-se recomendações para o segundo dia; no
segundo dia, com base no que foi visto no dia anterior e no dia atual, geravam-se

                                                                                    23
recomendações para o terceiro dia e, assim, consecutivamente. Os seguintes passos foram
executados:


      1.      Abrir arquivo CSV;
      2.      Converter alguns atributos de String para Nominal e outros de Numeric para
      Nominal (aplicando-se os filtros);
      3.      Configurar o Apriori;
      4.      Executar o Apriori;
      5.      Salvar a saída.


    Com os dados salvos, foi possível avaliar se, no dia seguinte àquele, alguém do
domicílio assistiu a algum dos gêneros encontrados pelo Apriori. Para o Cosseno, vários
passos foram necessários, pois esse foi simulado no MySQL. Além das tabelas já
existentes, foi necessário criar mais tabelas para armazenar os resultados gerados pelas
consultas. A tabela recomenda armazena as recomendações geradas, a tabela profile
armazena o perfil gerado e a tabela domicilio_teste, os dados do dia seguinte para a
comparação. Para garantir que os resultados não estivessem errados, sempre ao iniciar o
processo, os dados dessas tabelas eram apagados e, então, inseridos apenas os dados
necessários para aquele dia em particular (Listagem 8). As Figuras 23 e 24 apresentam as
tabelas criadas no MySQL. Os passos abaixo relacionados foram seguidos para a
simulação do Cosseno:


      1.      Encontrar e salvar o perfil na tabela profile;
      2.      Calcular a distância;
      3.      Calcular a norma;
      4.      Calcular o Cosseno;
      5.      Verificar se acertou.


    O processo também é iterativo, sendo realizado para cada dia e para cada domicílio.
As consultas SQL utilizadas no processo, as quais simulam a geração das recomendações
para um domicílio também são apresentadas a seguir.


                                                                                      24
Figura 23 – Tabela profile                             Figura 24 – Tabela recomenda




INSERT INTO domicilio_teste SELECT * FROM d1_vf WHERE dia='2008-03-05';
SELECT * FROM domicilio_teste;
DELETE FROM profile;
DELETE FROM recomenda;
                   Listagem 8 – Inserindo e apagando os dados para a correta avaliação

      A Listagem 10 ilustra a consulta SQL utilizada para calcular o perfil do usuário –
 gêneros preferidos – a partir dos dados do domicílio e do EPG, quando os descritores são
 iguais em ambas as tabelas. São selecionados os gêneros do domicílio e faz-se o seguinte
 cálculo:
                     CAMPOS DAS TABELAS: media (genero) = duracao * genero matrixepg
                       TABELAS: tabela profile = tabela domicilio_teste * tabela matrixepg

                                       Equação 1 – Cálculo do perfil



INSERT INTO PROFILE

SELECT
   avg(ded1), avg(dee1), avg(ed), avg(er),avg(es),avg(f),avg(fo1),avg(h),avg(i),avg(ic1),avg(im1),avg(io1),
   avg(ir1), avg(ins1),avg(it1),avg(jd1),avg(jo1),avg(jr1),avg(jt1),avg(n),avg(oda1),avg(oi1),avg(oo1),
   avg(op1),avg(our1),avg(rs), avg(sss1),avg(stpo1),avg(stpp1),avg(stps1),avg(stpt1),avg(va1),avg(vf1),
                                                                                                          25
avg(vgs1),avg(vmo1),avg(vm1),avg(vo1),avg(vs1)

FROM
   (SELECT d.descritorGS,

    duracao * DED AS ded1, duracao * DEE AS dee1, duracao * EDED AS ed, duracao * ERER AS er,
    duracao * ESES AS es, duracao * FF AS f, duracao * FO AS fo1, duracao * HH AS h,
    duracao * II AS i, duracao * IC AS ic1, duracao * IM AS im1, duracao * IO AS io1, duracao * IR AS ir1,
    duracao * INS AS ins1, duracao * IT AS it1, duracao * JD AS jd1, duracao * JO AS jo1,
    duracao * JR AS jr1, duracao * JT AS jt1, duracao * NN AS n, duracao * ODA AS oda1,
    duracao * OI AS oi1, duracao * OO AS oo1, duracao * OP AS op1, duracao * OUR AS our1,
    duracao * RSRS AS rs, duracao * SSS AS sss1, duracao * STPO AS stpo1, duracao * STPP AS stpp1,
    duracao * STPS AS stps1, duracao * STPT AS stpt1, duracao * VA AS va1, duracao * VF AS vf1,
    duracao * VGS AS vgs1, duracao * VMO AS vmo1, duracao * VM AS vm1, duracao * VO AS vo1,
    duracao * VS AS vs1

    FROM domicílio_teste d, matrixepg m
    WHERE d.descritorGS=m.descritorGeneroSubgenero
    ORDER BY duracao DESC) AS result;
                                      Listagem 9 – Cálculo do perfil



      Em seguida, na Listagem 10, uma variável é criada e configurada a partir dos dados
 da tabela profile. O seguinte cálculo é realizado para a norma do perfil:




                                 Equação 2 – Cálculo da norma do perfil



      Em que mycprofilenorm corresponde ao cálculo da norma do perfil e gênero
 corresponde ao campo da tabela profile que contém o valor calculado na consulta anterior
 e indica o gênero do programa (jornalismo, documentário, etc.).

SET @mycprofilenorm = ( SELECT SQRT ( ded1*ded1 + dee1*dee1 + ed*ed + er*er + es*es + f*f +
fo1*fo1 + h*h + i*i + ic1*ic1 + im1*im1 + io1*io1 + ir1*ir1 + ins1*ins1 + it1*it1 + jd1*jd1 + jo1*jo1 +
jr1*jr1 + jt1*jt1 + n*n + oda1*oda1 + oi1*oi1 + oo1*oo1 + op1*op1 + our1*our1 + rs*rs + sss1*sss1 +
stpo1*stpo1 + stpp1*stpp1 + stps1*stps1 + stpt1*stpt1 + va1*va1 + vf1*vf1 + vgs1*vgs1 + vmo1*vmo1 +
vm1*vm1 + vo1*vo1 + vs1*vs1 )
FROM profile ) ;
                        Listagem 10 – Configuração da variável mycprofilenorm



        O passo seguinte calculou a norma da tabela matriz do EPG para cada gênero. A
consulta da Listagem 11 corresponde a seguinte equação:



                                                                                                          26
Equação 3 – Cálculo da norma da tabela matrizepg


SELECT descritorGeneroSubgenero,

SQRT ( DED*DED + DEE*DEE + EDED*EDED + ERER*ERER + ESES*ESES + FF*FF + FO*FO +
HH*HH + II*II + IC*IC + IM*IM + IO*IO + IR*IR + INS*INS + IT*IT + JD*JD + JO*JO + JR*JR +
JT*JT + NN*NN + ODA*ODA + OI*OI + OO*OO + OP*OP + OUR*OUR + RSRS*RSRS + SSS*SSS +
STPO*STPO + STPP*STPP + STPS*STPS + STPT*STPT + VA*VA + VF*VF + VGS*VGS + VMO*VMO +
VM*VM + VO*VO + VS*VS) AS norm

FROM matrixepg
GROUP BY descritorGeneroSubgenero
ORDER BY descritorGeneroSubgenero;
                           Listagem 11 – Cálculo da norma da matrizepg


       A Listagem 12 apresenta a consulta SQL da Listagem 11, acrescida do cálculo de dot
e a equação 4 apresenta o cálculo:




                                     Equação 4 – Cálculo de dot


SELECT descritorGeneroSubgenero,

SQRT ( DED*DED + DEE*DEE + EDED*EDED + ERER*ERER + ESES*ESES + FF*FF + FO*FO +
HH*HH + II*II + IC*IC + IM*IM + IO*IO + IR*IR + INS*INS + IT*IT + JD*JD + JO*JO + JR*JR +
JT*JT + NN*NN + ODA*ODA + OI*OI + OO*OO + OP*OP + OUR*OUR + RSRS*RSRS + SSS*SSS +
STPO*STPO + STP*STPP + STPS*STPS + STPT*STPT + VA*VA + VF*VF + VGS*VGS + VMO*VMO +
VM*VM + VO*VO + VS*VS ) AS norm,

( DED*ded1 + DEE*dee1 + EDED*Ed + ERER*er + ESES*es + FF*f + FO*fo1 + HH*h + II*i + IC*ic1 +
IM*im1 + IO*io1 + IR*ir1+ INS*ins1 + IT*it1 + JD*jd1 + JO*jo1 + JR*jr1 + JT*jt1 + NN*n + ODA*oda1
+ OI*oi1 + OO*oo1 + OP*op1 + OUR*our1 + RSRS*rs + SSS*sss1 + STPO*stpo1 + STPP*stpp1 +
STPS*stps1 + STPT*stpt1 + VA*va1 + VF*vf1 + VGS*vgs1 + VMO*vmo1 + VM*vm1 + VO*vo1 +
VS*vs1) AS dot

FROM matrixepg, profile
GROUP BY descritorGeneroSubgenero
ORDER BY dot DESC;
                               Listagem 12 – Cálculo da norma e dot



       A Listagem 13 reúne os cálculos acima, selecionando os nomes dos campos e
calculando o Cosseno:
                                                                                               27
Equação 5 – Cálculo do Cosseno



SELECT descritorGeneroSubgenero, dot/(@mycprofilenorm*norm) AS cos,

DED, DEE, EDED, ERER, ESES, FF, FO, HH, II, IC, IM, IO, IR, INS, IT, JD, JO, JR, JT, NN, ODA, OI, OO,
OP, OUR, RSRS, SSS, STPO, STPP, STPS, STPT,VA, VF, VGS, VMO, VM, VO, VS

FROM

( SELECT descritorGeneroSubgenero, SQRT ( DED*DED + DEE*DEE + EDED*EDED + ERER*ERER +
ESES*ESES + FF*FF + FO*FO + HH*HH + II*II + IC*IC + IM*IM + IO*IO + IR*IR + INS*INS + IT*IT
+ JD*JD + JO*JO + JR*JR + JT*JT + NN*NN + ODA*ODA + OI*OI + OO*OO + OP*OP + OUR*OUR
+ RSRS*RSRS + SSS*SSS + STPO*STPO + STPP*STPP + STPS*STPS + STPT*STPT + VA*VA + VF*VF
+ VGS*VGS + VMO*VMO + VM*VM + VO*VO + VS*VS) AS norm,

(DED*ded1+DEE*dee1+EDED*ed+ERER*er+ESES*es+FF*f+FO*fo1+HH*h+II*i+IC*ic1+IM*im1+IO*
io1+IR*ir1+INS*ins1+IT*it1+JD*jd1+JO*jo1+JR*jr1+JT*jt1+NN*n+ODA*oda1+OI*oi1+OO*oo1+OP*
op1+OUR*our1+RSRS*rs+SSS*sss1+STPO*stpo1+STPP*stpp1+STPS*stps1+STPT*stpt1+VA*va1+VF*vf
1+VGS*vgs1 +VMO*vmo1+VM*vm1+VO*vo1+VS*vs1) AS dot,

DED, DEE, EDED, ERER, ESES, FF, FO, HH, II, IC, IM, IO, IR, INS, IT, JD, JO, JR, JT, NN, ODA, OI, OO,
OP, OUR, RSRS, SSS, STPO, STPP, STPS, STPT, VA, VF, VGS, VMO, VM, VO, VS

FROM matrixepg, profile) AS normdot

GROUP BY descritorGeneroSubgenero
ORDER BY cos DESC;

                                  Listagem 13 – Cálculo do Cosseno



        Na Listagem 14, o resultado da consulta é inserido na tabela recomenda.

INSERT INTO recomenda

SELECT nomeEmissora, descritorGeneroSubgenero AS descritorGS, dia, horaInício,
dot/(@mycprofilenorm*norm) AS cos

FROM

( SELECT nomeEmissora, dia, horaInício, descritorGeneroSubgenero, SQRT ( DED*DED + DEE*DEE +
EDED*EDED + ERER*ERER + ESES*ESES + FF*FF + FO*FO + HH*HH + II*II + IC*IC + IM*IM +
IO*IO + IR*IR + INS*INS + IT*IT + JD*JD + JO*JO + JR*JR + JT*JT + NN*NN + ODA*ODA + OI*OI
+ OO*OO + OP*OP + OUR*OUR + RSRS*RSRS + SSS*SSS + STPO*STPO + STPP*STPP + STPS*STPS
+ STPT*STPT + VA*VA + VF*VF + VGS*VGS + VMO*VMO + VM*VM + VO*VO + VS*VS) as norm,


( DED*ded1 + DEE*dee1 + EDED*Ed + ERER*er + ESES*ES + FF*f + FO*fo1 + HH*h + II*i + IC*ic1
+ IM*im1 + IO*io1 + IR*ir1 + INS*ins1 + IT*it1 + JD*jd1 + JO*jo1 + JR*jr1 + JT*jt1 + NN*n +
                                                                                                   28
ODA*oda1 + OI*oi1 + OO*oo1 + OP*op1 + OUR*our1 + RSRS*rs + SSS*sss1 + STPO*stpo1 +
STPP*stpp1 + STPS*stps1 + STPT*stpt1 + VA*va1 + VF*vf1 + VGS*vgs1 + VMO*vmo1 + VM*vm1 +
VO*vo1 + VS*vs1 ) AS dot,

DED, DEE, EDED, ERER, ESES, FF, FO, HH, II, IC, IM, IO, IR, INS, IT, JD, JO, JR, JT, NN, ODA, OI,
OO, OP, OUR, RSRS,SSS, STPO, STPP, STPS, STPT,VA, VF, VGS, VMO, VM, VO, VS

FROM matrixepg m, profile p) AS normdot

GROUP BY descritorGeneroSubgenero
ORDER BY cos DESC;

                       Listagem 14 – Inserção do resultado na tabela recomenda


        Por fim, a Listagem 15 ilustra a consulta SQL utilizada para fazer a comparação e
descobrir se algum dos cinco gêneros “recomendados” foi assistido no dia seguinte. Se o
gênero existir na tabela recomenda e na tabela domicílio_teste, então, as recomendações
sugeridas pelo Cosseno estão de acordo com o perfil do usuário.

SELECT r.*, dt.descritorGS
FROM recomenda r, d1_vf dt
WHERE dt.descritorGS = r.descritorGS
GROUP BY r.descritorGS
ORDER BY cos DESC;
                    Listagem 15 – Comparação entre as tabelas recomenda e d1_vf




                                                                                                    29
4                                                         RESULTADOS
      Neste capítulo, os resultados obtidos com a aplicação da técnica de Filtragem Baseada
em Conteúdo nos dados de visualização de TV fornecidos pelo IBOPE são apresentados mais
detalhadamente. A porcentagem de acerto de cada domicílio é apresentada em forma de
gráficos e o modo como esses foram gerados também é explicitado.

      Para todos os domicílios, foram feitas planilhas utilizando o Excel que contabilizam
quantos gêneros a consulta SQL de comparação acertou. Como o número de recomendações
geradas foi 5, então, a fórmula base para o cálculo da porcentagem de acerto utilizada foi:




        Equação 6 – Fórmula que calcula a porcentagem de acerto de acordo com o número de
                                     recomendações geradas




      Além disso, também se calculou a média da porcentagem de acerto para o número de
recomendações geradas, utilizando a seguinte fórmula indicada na equação 7:




     Equação 7 – Fórmula que calcula a média da porcentagem de acerto de acordo com o número
                                       de dias monitorados



       As Tabelas 6 e 7 apresentam os resultados obtidos para o Apriori após a aplicação das
equações acima. A sigla A indica acertos, a sigla R, recomendações e a D, domicílio. Os
gráficos de 25 a 30 apresentam a média alcançada para cada um dos domicílios nos 14 (não há
informação para o dia 20/03) dias de simulação e a Figura 31 apresenta a média da

                                                                                               30
porcentagem de acerto de todos os 6 domicílios com o Apriori. Nota-se que a média total de
acertos não chega a 60%.


                                         Tabela 6 – Resultados do Apriori
                      D1                 D2              D3               D4              D5               D6
   Dia    R.    A.          %       A.         %      A.     %      A.          %      A.     %      A.          %
    1      5    1          20%       2        40%     2     40%     2          40%     1     20%      4         80%
    2      5    2          40%       2        40%     0     0%      4          80%     2     40%      4         80%
    3      5    2          40%       2        40%     1     20%     2          40%     2     40%      4         80%
    4      5    2          40%       2        40%     1     20%     2          40%     2     40%      3         60%
    5      5    3          60%       2        40%     2     40%     3          60%     2     40%      3         60%
    6      5    1          20%       0         0%     1     20%     2          40%     0     0%       2         40%
    7      5    2          40%       2        40%     2     40%     4          80%     2     40%      2         40%
    8      5    2          40%       2        40%     3     60%     3          60%     2     40%      2         40%
    9      5    3          60%       2        40%     3     60%     3          60%     2     40%      3         60%
   10      5    4          80%       2        40%     2     40%     2          40%     2     40%      3         60%
   11      5    3          60%       2        40%     3     60%     3          60%     2     40%      3         60%
   12      5    3          60%       2        40%     1     20%     2          40%     2     40%      3         60%
   13      5    0           0%       3        60%     1     20%     3          60%     0     0%       3         60%
   14      5    2          40%       3        60%     2     40%     2          40%     2     40%      0          0%
  soma    70    30           6      28        5,60    24    4,80    37         7,40    23    4,60    39         7,80
  média    5   2,14        43%       2        40%    1,71 34%      2,64        53%    1,64 33%      2,79        56%




                                 Figura 25 – % de acerto Apriori Domicílio 1




                                                                                                                  31
Figura 26 – % de acerto Apriori Domicílio 2




Figura 27 – % de acerto Apriori Domicílio 3



                                              32
Figura 28 – % de acerto Apriori Domicílio 4




Figura 29 – % de acertoApriori Domicílio 5



                                              33
Figura 30 – % de acertoApriori Domicílio 6




Figura 31 - % de acerto Apriori todos os domicílios



                                                      34
A Tabela 7 apresenta os resultados obtidos para o Cosseno pela aplicação das
equações 6 e 7. A sigla A indica acertos, a sigla R, recomendações e a D, domicílio. Os
gráficos de 32 a 37 apresentam a média alcançada para cada um dos domicílios nos 14 dias de
simulação e a Figura 38 apresenta a média da porcentagem de acerto de todos os 6 domicílios
com o Cosseno. Nota-se que a média de acerto aproxima-se de 90%.

                                         Tabela 7 – Resultados do Cosseno
                      D1                 D2              D3               D4              D5                D6
  Dia     R.    A.          %      A.          %      A.      %     A.          R.     A.      %      A.          %
   1      5      1          20     2           40     2       40     3          60     2       4%      5         100
   2      5      2          40     3           60     2       40     3          60     4       80      5         100
   3      5      2          40     4           80     1       20     4          80     2       40      3          60
   4      5      4          80     4           80     4       80     4          80     4       80      4          80
   5      5      3          60     4           80     4       80     2          40     3       60      3          60
   6      5      2          40     2           40     1       20     2          40     1       20      2          40
   7      5      3          60     5          100     4       80     5         100     4       80      5         100
   8      5      1          20     4           80     2       40     5         100     2       40      5         100
   9      5      3          60     5          100     4       80     5         100     4       80      5         100
  10      5      5         100     5          100     3       60     3          60     2       40      5         100
  11      5      4          80     5          100     2       40     5         100     2       40      5         100
  12      5      3          60     4           80     1       20     4          80     2       40      5         100
  13      5      2          40     4           80     1       20     2          40     0        0      2          40
  14      5      5         100     5          100     4       80     4          80     2       40      5         100
 soma     70    40           8     56         11,2    35       7    51         10,2    34      6,8    59         11,8
 média    5    2,86         57    4,00         80    2,50     50   3,64         73    2,43     49    4,21         84




                                 Figura 32 – % de acerto Cosseno domicílio 1

                                                                                                                    35
Figura 33 – % de acerto Cosseno domicílio 2




Figura 34 – % de acerto Cosseno domicílio 3




                                              36
Figura 35 – % de acerto Cosseno domicílio 4




Figura 36 – % de acerto Cosseno domicílio 5




                                              37
Figura 37 – % de acerto Cosseno domicílio 6




Figura 38 – % de acerto Cosseno todos os domicílios


                                                      38
As Tabelas 8 e 9 mostram a comparação entre os dois métodos e as Figuras de 39 a 44
apresentam os gráficos que comparam as porcentagens de acerto de cada um dos métodos
para cada domicílio. A Figura 45 ilustra a comparação das médias atingidas para cada
domicílio. Percebe-se que há uma diferença razoável entre as técnicas. A sigla Ac significa
acertos, a sigla C, cosseno e a sigla Ap, Apriori.


                         Tabela 8 - Comparação entre Apriori e Cosseno domicílios 1-3.
                                    D1                        D2                        D3
        Dia   R        Ac        C     Ac     Ap   Ac       C    Ac       Ap   Ac    C     Ac   Ap
         1     5       1        20%    1     20%    2      40%    2      40%    2   40%    2   40%
         2     5       2        40%    2     40%    3      60%    2      40%    2   40%    0   0%
         3     5       2        40%    2     40%    4      80%    2      40%    1   20%    1   20%
         4     5       4        80%    2     40%    4      80%    2      40%    4   80%    1   20%
         5     5       3        60%    3     60%    4      80%    2      40%    4   80%    2   40%
         6     5       2        40%    1     20%    2      40%    0       0%    1   20%    1   20%
         7     5       3        60%    2     40%    5     100%    2      40%    4   80%    2   40%
         8     5       1        20%    2     40%    4      80%    2      40%    2   40%    3   60%
         9     5       3        60%    3     60%    5     100%    2      40%    4   80%    3   60%
        10     5       5       100%    4     80%    5     100%    2      40%    3   60%    2   40%
        11     5       4        80%    3     60%    5     100%    2      40%    2   40%    3   60%
        12     5       3        60%    3     60%    4      80%    2      40%    1   20%    1   20%
        13     5       2        40%    0      0%    4      80%    3      60%    1   20%    1   20%
        13     5       5       100%    2     40%    5     100%    3      60%    4   80%    2   40%
       Soma   70     40,00      8,00 30,00   6,00 56,00   11,20 28,00    5,60 35,00 7,00 24,00 4,80
       Média 5,00     2,86     57% 2,14      43% 4,00     80% 2,00       40% 2,50 50% 1,71 34%



                     Tabela 9 – Comparação entre Apriori e Cosseno domicílios 4-6.
                                 D4                            D5                             D6
   Dia      R      Ac         C      Ac     Ap     Ac       C      Ac     Ap     Ac        C      Ac     Ap
    1       5      3         60%     2     40%      2     40%      1     20%     5       100%     4     80%
    2       5      3         60%     4     80%      4     80%      2     40%     5       100%     4     80%
    3       5      4         80%     2     40%      2     40%      2     40%     3        60%     4     80%
    4       5      4         80%     2     40%      4     80%      2     40%     4        80%     3     60%
    5       5      2         40%     3     60%      3     60%      2     40%     3        60%     3     60%
    6       5      2         40%     2     40%      1     20%      0      0%     2        40%     2     40%
    7       5      5        100%     4     80%      4     80%      2     40%     5       100%     2     40%
    8       5      5        100%     3     60%      2     40%      2     40%     5       100%     2     40%
    9       5      5        100%     3     60%      4     80%      2     40%     5       100%     3     60%
   10       5      3         60%     2     40%      2     40%      2     40%     5       100%     3     60%
   11       5      5        100%     3     60%      2     40%      2     40%     5       100%     3     60%
   12       5      4         80%     2     40%      2     40%      2     40%     5       100%     3     60%
   13       5      2         40%     3     60%      0      0%      0      0%     2        40%     3     60%
   13       5      4         80%     2     40%      2     40%      2     40%     5       100%     0      0%
  Soma      70     51       10,20    37    7,40    34     6,80     23    4,60    59      11,80    39    7,80
  Média     5     3,64      73%     2,64   53%    2,43    49%     1,64   33%    4,21     84%     2,79   56%




                                                                                                           39
Figura 39 – Comparação entre Apriori e Cosseno domicílio 1




Figura 40 – Comparação entre Apriori e Cosseno domicílio 2




                                                             40
Figura 41 – Comparação entre Apriori e Cosseno domicílio 3




Figura 42 – Comparação entre Apriori e Cosseno domicílio 4




                                                             41
Figura 43 – Comparação entre Apriori e Cosseno domicílio 5




Figura 44 – Comparação entre Apriori e Cosseno domicílio 6




                                                             42
Figura 45 – Comparação entre Apriori e Cosseno todos os domicílios




                                                                     43
5                                                         RESULTADOS
     Durante a execução dos testes, foi possível observar algumas peculiaridades. O sistema
proposto recomenda conteúdos com base nos gêneros dos programas e as análises foram
realizadas de acordo esse parâmetro. Com o algoritmo Apriori, o formato dos dados já é
adequado ao uso. Para o Cosseno, o EPG necessita ser alterado para uma matriz antes de
iniciar o processo de descoberta de perfis e recomendações.

     O Apriori é capaz de minerar apenas o histórico de visualização do usuário, descobrindo
o seu perfil a partir das regras. Para selecionar os programas a serem recomendados, outra
técnica deve ser utilizada. O Cosseno, no entanto, pode fazer as duas coisas. Entretanto, o
Apriori consegue descobrir outras características no histórico do usuário, como, por exemplo:
se o usuário permanece na frente da TV com mais frequência no período noturno, se gosta de
ver filmes e se assiste TV com mais frequência na segunda-feira.

     O Cosseno não permite descobrir essas características, mas consegue atingir o objetivo.
Para descobrir comportamentos parecidos com os indicados pelas regras de associação, é
necessário fazer consultas mais complexas ao banco de dados.

     A saída do Apriori deve ser trabalhada para gerar o perfil correto do usuário, isto é, as
regras devem ser interpretadas, o que em termos de implementação, é algo trabalhoso. A saída
do Cosseno é mais legível; seu resultado ilustra o objetivo pretendido diretamente, permitindo
que a saída seja usada sem a necessidade de um pós-tratamento.

     Já em relação à entrada, para o Apriori, não há necessidade de tratamento, já que os
dados serão usados da forma como são coletados. Para o Cosseno, no entanto, sempre que o
EPG for atualizado, a tabela que contém a matriz do EPG deverá ser modificada de acordo
com o novo EPG, o que demanda trabalho extra.

      O processo de fornecimento e a aceitação de recomendações, calculando a
porcentagem de acerto e gerando gráficos, foram simulados com duas técnicas. Apesar de
ambas cobrirem as necessidades do sistema, o Cosseno é o que pode ser melhor aproveitado.
O perfil relativo ao gênero encontrado por ambos os algoritmos é semelhante.
                                                                                            44
Em um desktop, como foi o caso dos testes realizados, o retorno do cálculo do Cosseno
é mais rápido em relação ao retorno das regras de associação do Apriori. Entretanto, estudos
mais aprofundados a respeito do consumo de processamento desses algoritmos em um celular
com TVDI (Televisão Digital Interativa) ainda não é possível no Brasil, pois. O tempo que
todo o processo de recomendação leva para ser concluído varia de acordo com a técnica de
personalização empregada. Nos testes e nas simulações realizadas, o Cosseno finaliza o
processo antes do Apriori.

     Os estudos realizados mostram que, apesar de ambos os algoritmos atenderem às
necessidades, o Cosseno apresenta melhores resultados para aplicação no sistema de
recomendação para TVDPI (Televisão Digital Portátil Interativa).




                                                                                          45
REFERÊNCIAS BIBLIOGRÁFICAS

ABNT 15603-2. Norma Brasileira. Televisão Digital Terrestre – Multiplexação e
serviços de informação (SI) Parte 2: Estrutura de dados e definições da
informação básica de SI. Versão 3, 21/09/2009, 129 páginas.


ADOMAVICIUS,         G.;   Tuzhilin,   A.    Towards   the    Next   Generation   of
Recommenders Systems: A Survey of the State-of-the-Art and Possible
Extensions. IEEE Transactions on Knowledge and Data Engineering, vol. 17, Issue 6,
p. 734-749, June 2005.


ÁVILA, P. M. Recommender TV: Suporte ao Desenvolvimento de Aplicações de
Recomendação para o Sistema Brasileiro de TV Digital. Dissertação de Mestrado.
90 páginas, 2010.


BÄR, A. et al. A Lightweight Mobile TV Recommender: Towards a One-Click-to-
Watch Experience. In Proceedings 6th European Interactive TV Conference, p.142-
147, Salzburg, Áustria, 03-04/07/2008.


BELKIN, Nicholas J.; CROFT, W. Bruce. Information filtering nad information
retrieval: Two sides of the same coin? In Communications of the ACM, December
1992, vol. 35, Nº 12, p. 29-38.


BOZIOS, T. et al. Advanced Techniques for Personalized Advertising in a Digital
TV Environment: The iMedia System. In Proceedings of the eBusiness and eWork
Conference, p. 1025-1031, IOS press, 2001.




                                                                                       46
CHOI, J. Y.; KOH, D.; LEE, J. Ex-ante simulation of mobile TV market based on
consumers’ preference data. In Proceedings of the Technological Forecasting &
Social Change, p. 1043-1053, 2007.


CHORIANOPOULOS, K. Personalized and mobile digital TV applications. In
Proceedings of the Multimedia Tools and Aplications, p. 1- 10, vol.36, 27 January
2007.


DAS, D. and ter HORST, H. Recommder Systems for TV. In Proceedings of 15 th
AAAI Conference, Madison, Wisconsin, July 1998.


EINARSSON, O. P. Content Personalization for Mobile TV Combining Content-
Based and Collavorative Filtering. Master Thesis. Center for Information and
Communication Technologies. Technical Univesity of Denmark. August 22, 2007.


FOLTZ, W. Peter; Dumais, T. Susan. Personalized Information Delivery: Na
analysis of Information Filtering Methods. In Communications of the ACM,
December 1992, vol. 35, Nº 12, p. 51-60.


GUTTA, S. et al. TV Content Recommender System. In Proceedings of the 17th
National Conference of AAAI, Austin, TX, 2000.


LUCAS, A. Personalização para Televisão Digital utilizando a estratégia de
Sistema de Recomendação para ambientes multiusuário. Dissertação de Mestrado.
103 páginas. 2009.


MAIA, Luiz Cláudio Gomes; SOUZA, Renato Rocha. Medidas de similaridade em
documentos eletrônicos. In Encontro Nacional de Pesquisa em Ciência da
Informação, IX, 28/09-01/10/2008, São Paulo. Anais. USP, 2008. Disponível em:
<http://www.luizmaia.com.br/index2.php?
option=com_docman&task=doc_view&gid=3&Itemid=30>.
Acesso em: 03/10/2008.

                                                                                    47
MARCHI, Késsia Rita de Costa. Sistemas de Recomendação. Uma abordagem
geral. Paraná: UEM/DI/PPG-CC, 2008. 30 p. Seminário. Disponível em:
<http://kessia.blogs.unipar.br/files/2008/07/sistemas-de-recomendacao.pdf.>. Acesso
em: 10/10/2008.


REATEGUI, Eliseo Berni; CAZELLA, Sílvio César. Sistemas de Recomendação. In
25.° Congresso da Sociedade Brasileira de Computação, 22-29/06/2005, Rio Grande
do Sul. Anais do Encontro Nacional de Inteligência Artificial, São Leopoldo:
UNISINOS,              2005.             p.           306-348.            Disponível
em:<http://www.unisinos.br/_diversos/congresso/sbc2005/_dados/anais/
pdf/arq0287.pdf>. Acesso em: 04/10/2008.


RESNICK, P.; VARIAN, H. R. Recommender Systems. Communications of the ACM,
New York, vol. 40, n. 3, p. 77-87, March 1997.


SILVA, F. S. Personalização de Conteúdo na TVDI Através de um Sistema de
Recomendação Personalizada de Programas de TV (SRPTV). In III Fórum de
Oportunidades em Televisão Digital Interativa, Poços de Caldas, Minas Gerais, Brasil,
2005.


SILVA, S. P., Marcelino. Conceitos, Aplicações e Experimentos com Weka. In
ESCOLA REGIONAL DE INFORMÁTICA, IV, 2004, Rio de Janeiro. Livro da
Escola Regional de Informática Rio de Janeiro. Espírito Santo: 2004, 20p. Disponível
em: <www.dpi.inpe.br/~mpss/artigos/
MineracaoDeDados2004.pdf>. Acesso em: 5/10/2008.


SOLLA, A. G. et al. ZapTV: Personalized User-Generated Content for Handheld
Devices in DVB-H Mobile Newtorks. In Proceedings 6th European Interactive TV
Conference, p.193-203, Salzburg, Áustria, 03- 04/07/2008.




                                                                                        48
TORRES, Roberto. Personalização na Internet. São Paulo: Novatec Editora, 2004.
158p.


URIBE, S. et al. Mobile TV Targeted Advertisement and Content Personalization.
In 16th International Workshop Conference on Systems, Signals and Image
Processing, Chalkida, Greece, 18-19/06/2009.


WITTEN, I. H.; FRANK, E. Data Mining: Practical Machine Learning Tools and
Techniques, 2nd Edition, Morgan Kaufmann, 525 pages, June 2005.


YU, Z. et al. TV program recommendation for multiple viewers based on user
profile merging. In Proceedings of the User Model User-Adap Inter, p. 63-82, 2006.




                                                                                     49

Mais conteúdo relacionado

Mais procurados

Excel_2007_Nivel1
Excel_2007_Nivel1Excel_2007_Nivel1
Excel_2007_Nivel1
trusterjb
 
Guia do usuário da indexação do family search (setembro de 2010)
Guia do usuário da indexação do family search (setembro de 2010)Guia do usuário da indexação do family search (setembro de 2010)
Guia do usuário da indexação do family search (setembro de 2010)
chfceilandia
 
Apostila bnb2014 cef_informatica_sergio_spolador
Apostila bnb2014 cef_informatica_sergio_spoladorApostila bnb2014 cef_informatica_sergio_spolador
Apostila bnb2014 cef_informatica_sergio_spolador
Eliene Meira
 
Windows Movie Maker
Windows Movie MakerWindows Movie Maker
Windows Movie Maker
guest7d3e6f
 
Material Delphi diego
Material Delphi diegoMaterial Delphi diego
Material Delphi diego
skiche
 
1008 ProgramaçãO C Completo
1008 ProgramaçãO C Completo1008 ProgramaçãO C Completo
1008 ProgramaçãO C Completo
Fxx
 

Mais procurados (20)

Manual geosis2.3
Manual geosis2.3Manual geosis2.3
Manual geosis2.3
 
Excel basico
Excel basicoExcel basico
Excel basico
 
Excel_2007_Nivel1
Excel_2007_Nivel1Excel_2007_Nivel1
Excel_2007_Nivel1
 
2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracao2014 kira aplicacao_tecnicas_mineracao
2014 kira aplicacao_tecnicas_mineracao
 
Guia do usuário da indexação do family search (setembro de 2010)
Guia do usuário da indexação do family search (setembro de 2010)Guia do usuário da indexação do family search (setembro de 2010)
Guia do usuário da indexação do family search (setembro de 2010)
 
Material LINUX
Material LINUXMaterial LINUX
Material LINUX
 
Ncl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digitalNcl e Lua - desenvolvendo aplicações interativas para tv digital
Ncl e Lua - desenvolvendo aplicações interativas para tv digital
 
Diretrizes básicas para indexação
Diretrizes básicas para indexaçãoDiretrizes básicas para indexação
Diretrizes básicas para indexação
 
Relatório descritivo do curso de Educação a Distância: Construindo um Pro...
Relatório descritivo do curso de Educação a Distância: Construindo um Pro...Relatório descritivo do curso de Educação a Distância: Construindo um Pro...
Relatório descritivo do curso de Educação a Distância: Construindo um Pro...
 
Apostila bnb2014 cef_informatica_sergio_spolador
Apostila bnb2014 cef_informatica_sergio_spoladorApostila bnb2014 cef_informatica_sergio_spolador
Apostila bnb2014 cef_informatica_sergio_spolador
 
Windows Movie Maker
Windows Movie MakerWindows Movie Maker
Windows Movie Maker
 
Material Delphi diego
Material Delphi diegoMaterial Delphi diego
Material Delphi diego
 
Manual de Fotografia 1
Manual de Fotografia 1Manual de Fotografia 1
Manual de Fotografia 1
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
1008 ProgramaçãO C Completo
1008 ProgramaçãO C Completo1008 ProgramaçãO C Completo
1008 ProgramaçãO C Completo
 
A conquista da matematica
A conquista da matematicaA conquista da matematica
A conquista da matematica
 
Moodle
MoodleMoodle
Moodle
 
Apostila tex
Apostila texApostila tex
Apostila tex
 
Anatomia aplicada a educaçao fisica
Anatomia aplicada a educaçao fisicaAnatomia aplicada a educaçao fisica
Anatomia aplicada a educaçao fisica
 
Manual geogebra 3.0
Manual geogebra 3.0Manual geogebra 3.0
Manual geogebra 3.0
 

Destaque

Aula de gestao meio ambiente powe point
Aula de gestao meio ambiente   powe pointAula de gestao meio ambiente   powe point
Aula de gestao meio ambiente powe point
Sonia Macedo
 
Aula 1 apresentação da disciplina 2012-1
Aula 1   apresentação da disciplina 2012-1Aula 1   apresentação da disciplina 2012-1
Aula 1 apresentação da disciplina 2012-1
Elaine Cecília Gatto
 
Pontos Questionáveis da LOA 2012 - UBERLÂNDIA
Pontos Questionáveis da LOA 2012 - UBERLÂNDIA Pontos Questionáveis da LOA 2012 - UBERLÂNDIA
Pontos Questionáveis da LOA 2012 - UBERLÂNDIA
Vereador Delfino Rodrigues
 
Junta inicio pf. 2011 2012 final2a
Junta inicio pf. 2011 2012 final2aJunta inicio pf. 2011 2012 final2a
Junta inicio pf. 2011 2012 final2a
onaitsunevbeuri
 
Presentacion final proyecto smart pack 000
Presentacion final proyecto smart pack 000Presentacion final proyecto smart pack 000
Presentacion final proyecto smart pack 000
DouglasQuinonez
 
Comunicación, educación y tecnología en la sociedad de la información
Comunicación, educación y tecnología en la sociedad de la informaciónComunicación, educación y tecnología en la sociedad de la información
Comunicación, educación y tecnología en la sociedad de la información
Eduardo Reyes
 
Losestudiosculturales
LosestudiosculturalesLosestudiosculturales
Losestudiosculturales
Wilder Ramos
 

Destaque (20)

Socio
SocioSocio
Socio
 
Aula de gestao meio ambiente powe point
Aula de gestao meio ambiente   powe pointAula de gestao meio ambiente   powe point
Aula de gestao meio ambiente powe point
 
Aula 1 apresentação da disciplina 2012-1
Aula 1   apresentação da disciplina 2012-1Aula 1   apresentação da disciplina 2012-1
Aula 1 apresentação da disciplina 2012-1
 
Jovan-Watson
Jovan-WatsonJovan-Watson
Jovan-Watson
 
Asys accounting system presentacion final
Asys accounting system presentacion finalAsys accounting system presentacion final
Asys accounting system presentacion final
 
Inovador e Técnico Física. Abril de 2012.
Inovador e Técnico Física. Abril de 2012.Inovador e Técnico Física. Abril de 2012.
Inovador e Técnico Física. Abril de 2012.
 
10 Mandamentos - Aula 04 - 3º mandamento
10 Mandamentos - Aula 04 - 3º mandamento10 Mandamentos - Aula 04 - 3º mandamento
10 Mandamentos - Aula 04 - 3º mandamento
 
Desenvolvendo Aplicações Interativas para TVD com NCL
Desenvolvendo Aplicações Interativas para TVD com NCLDesenvolvendo Aplicações Interativas para TVD com NCL
Desenvolvendo Aplicações Interativas para TVD com NCL
 
Pontos Questionáveis da LOA 2012 - UBERLÂNDIA
Pontos Questionáveis da LOA 2012 - UBERLÂNDIA Pontos Questionáveis da LOA 2012 - UBERLÂNDIA
Pontos Questionáveis da LOA 2012 - UBERLÂNDIA
 
Curso de docencia universitaria
Curso de docencia universitariaCurso de docencia universitaria
Curso de docencia universitaria
 
Martín carrión crespo
Martín carrión crespoMartín carrión crespo
Martín carrión crespo
 
Mercado eletrônico e contabilidade
Mercado eletrônico e contabilidadeMercado eletrônico e contabilidade
Mercado eletrônico e contabilidade
 
Junta inicio pf. 2011 2012 final2a
Junta inicio pf. 2011 2012 final2aJunta inicio pf. 2011 2012 final2a
Junta inicio pf. 2011 2012 final2a
 
Procedimentos Para Novos Parceiros
Procedimentos Para Novos ParceirosProcedimentos Para Novos Parceiros
Procedimentos Para Novos Parceiros
 
Herramientas para la comprensión lectora.
Herramientas para la comprensión lectora.Herramientas para la comprensión lectora.
Herramientas para la comprensión lectora.
 
Presentacion final proyecto smart pack 000
Presentacion final proyecto smart pack 000Presentacion final proyecto smart pack 000
Presentacion final proyecto smart pack 000
 
Elanillo
ElanilloElanillo
Elanillo
 
Comunicación, educación y tecnología en la sociedad de la información
Comunicación, educación y tecnología en la sociedad de la informaciónComunicación, educación y tecnología en la sociedad de la información
Comunicación, educación y tecnología en la sociedad de la información
 
Losestudiosculturales
LosestudiosculturalesLosestudiosculturales
Losestudiosculturales
 
Guia de Diseño de Apps para iPhone #BarcampSJ
Guia de Diseño de Apps para iPhone #BarcampSJGuia de Diseño de Apps para iPhone #BarcampSJ
Guia de Diseño de Apps para iPhone #BarcampSJ
 

Semelhante a Relatório técnico ii fbc 29-07-10

Estudo de caso sobre business intelligence
Estudo de caso sobre business intelligenceEstudo de caso sobre business intelligence
Estudo de caso sobre business intelligence
Talita Lima
 
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURAESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
Sabrina Mariana
 

Semelhante a Relatório técnico ii fbc 29-07-10 (20)

Relatório técnico i fc 29-07
Relatório técnico i   fc 29-07Relatório técnico i   fc 29-07
Relatório técnico i fc 29-07
 
Clp s7-avancado
Clp s7-avancadoClp s7-avancado
Clp s7-avancado
 
oitivas de crianças
oitivas de criançasoitivas de crianças
oitivas de crianças
 
Manual de instalação do software emae setores público, comercial e servi‡os
Manual de instalação do software emae   setores público, comercial e servi‡osManual de instalação do software emae   setores público, comercial e servi‡os
Manual de instalação do software emae setores público, comercial e servi‡os
 
Estudo de caso sobre business intelligence
Estudo de caso sobre business intelligenceEstudo de caso sobre business intelligence
Estudo de caso sobre business intelligence
 
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURAESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
 
Topografia
TopografiaTopografia
Topografia
 
Corporate Venture Capital: contexto, conceitos e aplicações
Corporate Venture Capital: contexto, conceitos e aplicaçõesCorporate Venture Capital: contexto, conceitos e aplicações
Corporate Venture Capital: contexto, conceitos e aplicações
 
eBook Excel Essencial
eBook Excel EssencialeBook Excel Essencial
eBook Excel Essencial
 
Apostila basica de_cartografia_arc_gis102
Apostila basica de_cartografia_arc_gis102Apostila basica de_cartografia_arc_gis102
Apostila basica de_cartografia_arc_gis102
 
Apostila de Bioestatística
Apostila de BioestatísticaApostila de Bioestatística
Apostila de Bioestatística
 
O impacto da liderança no desempenho das organizações
O impacto da liderança no desempenho das organizaçõesO impacto da liderança no desempenho das organizações
O impacto da liderança no desempenho das organizações
 
Trabalho de redes
Trabalho de redesTrabalho de redes
Trabalho de redes
 
Sql
SqlSql
Sql
 
Automação residencial
Automação residencialAutomação residencial
Automação residencial
 
Apostilha8
Apostilha8Apostilha8
Apostilha8
 
312031296 fi-fm
312031296 fi-fm312031296 fi-fm
312031296 fi-fm
 
Apostila tre.rs2014 informatica_sergio_spolador
Apostila tre.rs2014 informatica_sergio_spoladorApostila tre.rs2014 informatica_sergio_spolador
Apostila tre.rs2014 informatica_sergio_spolador
 
Curso estatistica descritiva no r
Curso   estatistica descritiva no rCurso   estatistica descritiva no r
Curso estatistica descritiva no r
 
Conceitos básicos de Software R
Conceitos básicos de Software RConceitos básicos de Software R
Conceitos básicos de Software R
 

Mais de Elaine Cecília Gatto

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Relatório técnico ii fbc 29-07-10

  • 1. UNIVERSIDADE FEDERAL DE SÃO CARLOS CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Relatório Técnico Aplicando Filtragem Baseada em Conteúdo aos dados de TV fornecidos pelo IBOPE ALUNA: Elaine Cecília Gatto ORIENTADOR: Prof. Dr. Sergio Donizetti Zorzo São Carlos-SP Julho/2010
  • 2. AGRADECIMENTOS Agradeço a Paulo Muniz Ávila e a Adriano Lucas pelo auxílio prestado durante a realização deste trabalho, especificamente na parte de organização dos dados. Agradeço também ao IBOPE por ter fornecido os dados de visualização necessários para os testes. i
  • 3. RESUMO Este relatório técnico apresenta o resultado dos estudos realizados com os dados de visualização de TV fornecidos pelo Ibope em um cenário específico. Simulou-se e avaliou-se o comportamento de alguns domicílios que interagem em um sistema de recomendação que utiliza Filtragem Baseada em Conteúdo para TV Digital Portátil Interativa. Os detalhes da simulação, desde a preparação e a organização dos dados, a geração dos perfis e das recomendações, o cálculo da porcentagem de acerto, além dos gráficos, análises e conclusões, são apresentados neste documento. Palavras-Chave: Sistemas de Recomendação, Filtragem de Informação, Filtragem Baseada em Conteúdo, Televisão Digital, Cosseno, Apriori. ii
  • 4. LISTA DE FIGURAS Figura 1 – Contexto do estudo de caso ....................................................................................... 7 Figura 2 – Amostra dos arquivos TXT ..................................................................................... 10 Figura 3 – Tabela com os descritores de gêneros ..................................................................... 12 Figura 4 – Tabela com os descritores de subgênero ................................................................. 12 Figura 5 – Tabela com os descritores de gênero/subgênero ..................................................... 12 Figura 6 – Tabela com os códigos originais das emissoras ...................................................... 13 Figura 7 – Tabela com os códigos das emissoras ..................................................................... 13 Figura 8 – Tabela com os programas........................................................................................ 13 Figura 9 – Tabela com as informações da programação de TV ............................................... 13 Figura 10 – Tabela matrixepg no MySQL................................................................................ 15 Figura 11 – Amostra das planilhas de sintonia ......................................................................... 16 Figura 12 – Planilhas após organização ................................................................................... 17 Figura 13 – Tabela para armazenamento .................................................................................. 17 Figura 14 – Tabela que resulta da listagem 1 ........................................................................... 17 Figura 15 – Tabela que contém a mescla do EPG com o histórico do usuário ........................ 20 Figura 16 – Tabela com os novos campos início e fim da sintonia .......................................... 20 Figura 17 – Tabela com o resultado de Subtime().................................................................... 20 Figura 18 – Tabela com o campo duração ................................................................................ 22 Figura 19 – Tabela com o campo dia da semana. ..................................................................... 22 Figura 20 – Tabela com o campo ............................................................................................. 22 Figura 21 – Tabela com a versão final dos dados..................................................................... 22 Figura 22 – Configurações Apriori. .......................................................................................... 23 Figura 23 – Tabela profile ........................................................................................................ 25 Figura 24 – Tabela recomenda ................................................................................................. 25 Figura 25 – % de acerto Apriori Domicílio 1 ........................................................................... 31 Figura 26 – % de acerto Apriori Domicílio 2 ........................................................................... 32 Figura 27 – % de acerto Apriori Domicílio 3 ........................................................................... 32 Figura 28 – % de acerto Apriori Domicílio 4 ........................................................................... 33 Figura 29 – % de acertoApriori Domicílio 5 ............................................................................ 33 iii
  • 5. Figura 30 – % de acertoApriori Domicílio 6 ............................................................................ 34 Figura 31 - % de acerto Apriori todos os domicílios ................................................................ 34 Figura 32 – % de acerto Cosseno domicílio 1 .......................................................................... 35 Figura 33 – % de acerto Cosseno domicílio 2 .......................................................................... 36 Figura 34 – % de acerto Cosseno domicílio 3 .......................................................................... 36 Figura 35 – % de acerto Cosseno domicílio 4 .......................................................................... 37 Figura 36 – % de acerto Cosseno domicílio 5 .......................................................................... 37 Figura 37 – % de acerto Cosseno domicílio 6 .......................................................................... 38 Figura 38 – % de acerto Cosseno todos os domicílios ............................................................. 38 Figura 39 – Comparação entre Apriori e Cosseno domicílio 1 ................................................ 40 Figura 40 – Comparação entre Apriori e Cosseno domicílio 2 ................................................ 40 Figura 41 – Comparação entre Apriori e Cosseno domicílio 3 ................................................ 41 Figura 42 – Comparação entre Apriori e Cosseno domicílio 4 ................................................ 41 Figura 43 – Comparação entre Apriori e Cosseno domicílio 5 ................................................ 42 Figura 44 – Comparação entre Apriori e Cosseno domicílio 6 ................................................ 42 Figura 45 – Comparação entre Apriori e Cosseno todos os domicílios ................................... 43 iv
  • 6. LISTA DE TABELAS Tabela 1 – Características dos domicílios .................................................................................. 8 Tabela 2 – Características socioeconômicas dos domicílios ...................................................... 9 Tabela 3 – Identificação dos campos nos arquivos TXT.......................................................... 11 Tabela 4 – Layout dos arquivos TXT ....................................................................................... 11 Tabela 5 – Relação quantidade de programas/gênero .............................................................. 12 Tabela 6 – Resultados do Apriori ............................................................................................. 31 Tabela 7 – Resultados do Cosseno ........................................................................................... 35 Tabela 8 - Comparação entre Apriori e Cosseno domicílios 1-3. ............................................ 39 Tabela 9 – Comparação entre Apriori e Cosseno domicílios 4-6. ............................................ 39 v
  • 7. LISTA DE EQUAÇÕES Equação 1 – Cálculo do perfil .................................................................................................. 25 Equação 2 – Cálculo da norma do perfil .................................................................................. 26 Equação 3 – Cálculo da norma da tabela matrizepg ................................................................. 27 Equação 4 – Cálculo de dot ...................................................................................................... 27 Equação 5 – Cálculo do Cosseno ............................................................................................. 28 Equação 6 – Fórmula que calcula a porcentagem de acerto de acordo com o número de recomendações geradas ............................................................................................................ 30 Equação 7 – Fórmula que calcula a média da porcentagem de acerto de acordo com o número de dias monitorados .................................................................................................................. 30 vi
  • 8. LISTAGENS Listagem 1 – Consulta SQL para descobrir qual emissora o usuário está assistindo. ............. 17 Listagem 2 – Consulta SQL para mesclar as informações do EPG com as do usuário........... 18 Listagem 3 – Cálculo do horário de início e de fim da sintonia. ............................................. 18 Listagem 4 – Cálculo do tempo de visualização. .................................................................... 19 Listagem 5 – Cálculo da conversão do tempo do formato hora para inteiro. .......................... 19 Listagem 6 – Cálculo do dia da semana. ................................................................................. 20 Listagem 7 – Cálculo do período do dia. ................................................................................. 21 Listagem 8 – Inserindo e apagando os dados para a correta avaliação ................................... 25 Listagem 9 – Cálculo do perfil ................................................................................................ 26 Listagem 10 – Configuração da variável mycprofilenorm ...................................................... 26 Listagem 11 – Cálculo da norma da matrizepg ....................................................................... 27 Listagem 12 – Cálculo da norma e dot ................................................................................... 27 Listagem 13 – Cálculo do Cosseno ......................................................................................... 28 Listagem 14 – Inserção do resultado na tabela recomenda ..................................................... 29 Listagem 15 – Comparação entre as tabelas recomenda e d1_vf ............................................ 29 vii
  • 9. SUMÁRIO 1. INTRODUÇÃO ............................................................................................................... 1 2. SISTEMAS DE RECOMENDAÇÃO ............................................................................. 3 2.1. Filtragem e Informação ............................................................................................ 3 2.1.1. Filtragem Baseada em Conteúdo ...................................................................4 2.1.2. Filtragem Colaborativa....................................................................................5 2.1.3. Filtragem Híbrida............................................................................................5 3. ESTUDO DE CASO ...................................................................................................... 7 3.1. Conhecendo e Preparando os Dados ....................................................................... 8 3.1.1. EPG ................................................................................................................9 3.1.2. Histórico dos Usuários .................................................................................15 3.2. Metodologia e Simulação ....................................................................................... 23 4. RESULTADOS ............................................................................................................ 30 5. CONCLUSÃO .............................................................................................................. 44 6. REFERÊNCIAS ........................................................................................................... 46 viii
  • 10. 1 INTRODUÇÃO Sistemas de recomendação fornecem recomendações com base em informações sobre as preferências dos usuários. A Filtragem de Informação é utilizada pelos sistemas de recomendação para o processamento e sugestão das informações aos usuários. A Filtragem Colaborativa é uma abordagem de Filtragem de Informação muito utilizada em sistemas de recomendação, que tenta prever a utilidade de itens para um determinado usuário com base nos itens previamente avaliados por outros usuários, sugerindo itens relevantes e descartando os irrelevantes. Muito utilizados na Internet, os sistemas de recomendação têm sido empregados no contexto de TVD (TV Digital), como por exemplo, (Ávila, 2010), (Lucas, 2009), (Uribe, 2009), (Solla et al, 2008), (Bar et al, 2008), (Einarsson, 2007), (Chorianopoulus, 2007), (Choi, Koh and Lee, 2007), (Yu et al, 2006), (Silva, 2005), (Bozios et al, 2001), (Gutta et al, 2000), (Das and Horst, 1998), entre outros. Da mesma forma que ocorre na Internet, os sistemas de recomendação poderão ser utilizados na TVD para a recomendação de programas de TV, publicidade e propaganda e também para comércio eletrônico. Em sistemas de recomendação item é tudo aquilo que pode ser visualizado ou avaliado pelo usuário. Em uma loja virtual, por exemplo, os itens são os produtos que são vendidos, em uma biblioteca, livros, em uma locadora de DVDs, os filmes, e assim por diante. Assim, os itens no contexto de TVD podem ser os programas, a propaganda e os produtos a serem vendidos. Este relatório técnico apresenta os estudos realizados com a Filtragem Baseada em Conteúdo (FBC) aplicada aos dados de TVD fornecidos pelo IBOPE 1 e está estruturado da seguinte forma: o Capítulo 1 introduz o trabalho, o Capítulo 2 contém uma breve revisão bibliográfica sobre sistemas de recomendação, o Capítulo 3 apresenta o estudo de caso, o Capítulo 4, os resultados obtidos e o Capítulo 5, as conclusões. Os estudos visaram observar e 1 Multinacional brasileira de capital privado, o IBOPE é uma das maiores empresas de pesquisa de mercado da América Latina. Há 67 anos fornece um amplo conjunto de informações e estudos sobre mídia, opinião pública, intenção de voto, consumo, marca comportamento e mercado. (www.ibope.com.br) 1
  • 11. avaliar como a Filtragem Colaborativa pode ser utilizada em sistemas de recomendação no contexto da TVD. Em um sistema de recomendação típico, os usuários fornecem as recomendações como entradas e essas são, então, agregadas e dirigidas aos destinatários adequados (RESNICK, 1997). 2
  • 12. 2 SISTEMAS DE RECOMENDAÇÃO Os sistemas de recomendação envolvem várias tecnologias como: a ciência cognitiva, a teoria da aproximação, a recuperação de informação, a filtragem de informação, teorias de previsão, entre outras, e podem ser aplicados a diversos domínios. Essas técnicas fundamentam o funcionamento dos sistemas de recomendação e as mais aplicadas são as de Filtragem de Informação, as quais são basicamente divididas em Filtragem Colaborativa e Filtragem Baseada em Conteúdo. Um sistema de recomendação pode utilizar uma única técnica de Filtragem de Informação ou as duas em conjunto, tornando-se, assim, um sistema híbrido. Essas técnicas também possuem algoritmos desenvolvidos particularmente para o seu tipo (TORRES, 2004; REATEGUI, 2005). As subseções a seguir contêm mais detalhes sobre os dois principais tipos de Filtragem de Informação. 2.1 Filtragem de Informação Uma das primeiras formas de Filtragem de Informação é proveniente do trabalho Disseminação Seletiva da Informação (SDI), concebido como uma forma automática para que cientistas se mantivessem informados sobre novos documentos publicados em suas áreas de especialização. O cientista podia criar e modificar um perfil de usuário de palavras-chave que descrevessem os seus interesses. A SDI foi implementado em larga escala, entretanto, utilizou-se muito menos que o previsto. (FOLTZ, 1992) Filtragem da Informação é o nome usado para descrever uma variedade de processos que envolvem a prestação de informações a pessoas que delas necessitam. Sistemas de Filtragem de Informação são projetados para a filtragem de dados não estruturados ou semi- 3
  • 13. estruturados, em oposição às aplicações de banco de dados, que utilizam dados bem estruturados. Os sistemas tratam, principalmente, informações textuais, mas também podem tratar imagens, voz, vídeo ou outros tipos de dados que fazem parte dos sistemas de informação multimídia. A Filtragem também pode ser baseada em descrições de preferências individuais ou de grupo, chamadas de perfis, os quais geralmente representam interesses de longo prazo. Além disso, também tem sido usada para descrever o processo de acesso e recuperação de informações de bancos de dados remotos, caso em que os dados de entrada são os resultado das pesquisas nos bancos de dados (BELKIN, 1992). 2.1.1 Filtragem Baseada em Conteúdo O objetivo da Filtragem Baseada em Conteúdo é gerar descrições dos conteúdos dos itens automaticamente e compará-las com a descrição do interesse do usuário, verificando, dessa forma, se o item é ou não relevante para o mesmo baseando-se na análise do conteúdo do item e no perfil do usuário (MARCHI, 2008; TORRES, 2004). Podem ser aplicadas técnicas, entre elas, índices de busca booleana, filtragem probabilística e modelos vetoriais. Nos índices de busca booleana, a consulta é formada por um conjunto de palavras-chave unidas por operadores booleanos, ao passo que, na filtragem probabilística, aplica-se o raciocínio probabilístico para determinar a probabilidade que um documento apresenta para atender as necessidades de informações de um usuário. (FOLTZ, 1992; MARCHI, 2008; REATEGUI, 2005; TORRES, 2004) O modelo vetorial é o mais aplicado e a técnica TF-IDF (Term Frequency - Inverse- Document Frequency) é baseada nesse modelo. Essa técnica considera o peso que uma palavra possui dentro da coleção de documentos e indica que a frequência das palavras comuns em dois textos evidencia a semelhança entre eles. Por último, o tamanho de um documento também é analisado, pois um texto longo tem maior possibilidade de semelhança que um texto curto, visto que esse possui menos palavras que o outro (MARCHI, 2008; TORRES, 2004). 4
  • 14. 2.1.2 Filtragem Colaborativa A Filtragem Colaborativa remete a situações em que certas pessoas pedem a outras opiniões ou recomendações sobre determinado assunto, como por exemplo, que filme assistir, que livro ler, etc. Essa técnica é assim chamada, pois existe um processo de seleção no momento de geração das recomendações e, para isso, as pessoas colaboram entre si, utilizando algumas estratégias de recomendação como, por exemplo, a avaliação de um produto. Tecnicamente, a Filtragem Colaborativa ocorre em três passos: no armazenamento das opiniões das pessoas, no agrupamento de pessoas com perfis semelhantes (vizinhos) e, por fim, na recomendação propriamente dita de algo que foi altamente avaliado pelos vizinhos. Essa técnica é muito utilizada em lojas virtuais como Submarino, Americanas, Amazon, entre outras. (TORRES, 2004) O Coeficiente de Pearson e o Cosseno são duas formas matemáticas muito utilizadas para medir a similaridade em Filtragem Colaborativa. O Coeficiente de Correlação de Pearson mede a força da relação entre duas variáveis e o valor zero indica que não existe nenhuma relação entre as mesmas. Isso ocorre quando duas variáveis são absolutamente independentes entre si. O valor máximo de + 1,00 ocorre quando a associação for positiva e a mais forte possível. O valor máximo de -1,00 ocorre quando a associação for negativa e a menos forte possível. Já o Cosseno é uma métrica para medir o cosseno do ângulo entre dois vetores num espaço vetorial, sendo que esses representam os usuários, e retorna valores entre 0 e 1. Quanto mais próximo de 1 for o valor, mais similares são os dois vetores (SILVA, 2008; MAIA, 2008). 2.1.3 Filtragem Híbrida A Filtragem Híbrida mistura a Filtragem Baseada em Conteúdo e a Filtragem Colaborativa em um único sistema, melhorando as recomendações oferecidas aos usuários e, dessa forma, procura resolver alguns dos problemas introduzidos por ambas as técnicas. 5
  • 15. Assim, os métodos de recomendação nessa categoria podem se combinar de diversas formas: a) Filtragem Colaborativa processada sequencialmente após a Filtragem Baseada em Conteúdo; b) Filtragem Baseada em Conteúdo processada sequencialmente após a Filtragem Colaborativa e; c) Filtragem Baseada em Conteúdo processada paralelamente com a Filtragem Colaborativa (ADOMAVICIUS, 2005; EINARSSON, 2007). 6
  • 16. 3 ESTUDO DE CASO Este estudo de caso teve como objetivo avaliar o processo e as implicações que algumas técnicas de Filtragem Baseada em Conteúdo geram ao serem utilizadas no contexto da TVD Portátil. Nas seções deste capítulo constam os detalhes de como o estudo de caso foi realizado. A Figura 1 apresenta o contexto de utilização do sistema simulado descrito neste relatório técnico. Os receptores fixos e móveis recebem áudio, vídeo e dados, sendo o middleware, no caso o middleware Ginga-NCL, o responsável pela separação dos mesmos. O dispositivo deve ser capaz de receber a transmissão de TVD com o auxílio de uma antena, interna ou externa, compatível com o padrão de transmissão adotado no Brasil. Figura 1 – Contexto do estudo de caso 7
  • 17. O usuário interage com a TV no celular e todos os canais assistidos durante o período de utilização são armazenados. A partir desses dados, o processo de identificação do perfil do usuário tem início e, com base no horário e no canal assistido, é possível encontrar o gênero do programa com o auxílio das informações contidas no EPG (Guia Eletrônico de Programação) (ABNT NBR 15603-2). O processamento tem início quando o usuário solicita a recomendação. Os dados do histórico de visualização do usuário coletados até então passam por uma técnica de filtragem de informação que permite encontrar o perfil do usuário, que é armazenado em uma base de dados. Com o perfil do usuário atualizado, procuram-se os programas de TV compatíveis no guia eletrônico de programação e gera-se uma lista com tais programas. 3.1 Conhecendo e Preparando os Dados Os dados fornecidos pelo IBOPE continham as informações do EPG, o histórico de visualização do usuário (o que o telespectador assistiu) e também as informações socioeconômicas dos domicílios. Todos esse conjunto de dados do IBOPE foram separados e armazenados no banco de dados MySQL. Os dados correspondiam a 15 dias de programação e monitoramento de 6 domicílios brasileiros com a programação da TV Aberta. Esses domicílios foram monitorados minuto a minuto, assim como cada indivíduo foi monitorado separadamente. A Tabela 1 indica a quantidade de indivíduos e de TVs por domicílio e a Tabela 2 apresenta as informações socioeconômicas dos domicílios. Tabela 1 – Características dos domicílios Quantidade de domicílios Quantidade de TVs Quantidade de indivíduos 1 1 2 2 1 3 3 2 3 4 2 2 5 1 2 6 2 3 Total 9 15 8
  • 18. Tabela 2 – Características socioeconômicas dos domicílios Domicílio 1 2 3 4 5 6 Classe Social DE C C AB C AB Idade da dona-de- 44 45 39 32 60 36 casa Grau de instrução do Primário Ginasial Ginasial Colegial Colegial Colegial chefe-de- incompleto incompleto incompleto completo incompleto completo casa Sexo do Feminino Feminino Feminino Feminino Feminino Feminino indivíduo 1 Idade do 44 45 39 32 60 36 indivíduo 1 Sexo do Feminino Masculino Masculino Masculino Masculino Masculino Indivíduo 2 Idade do 8 48 40 30 77 38 indivíduo 2 Sexo do Feminino Feminino Masculino indivíduo 3 Idade do indivíduo 3 3.1.1 EPG O EPG fornecido pelo IBOPE é composto por 15 arquivos TXT, denominados arquivos de programação, sendo um para cada dia (de 05/03/2008 à 19/03/2008) com a grade de 10 emissoras de TV Aberta, com início às 00:00:00 e término às 05:59:00. A Figura 2 ilustra uma amostra do layout inicial desses arquivos e a Tabela 3 apresenta como esse layout foi organizado. 9
  • 19. Figura 2 – Amostra dos arquivos TXT Tomando-se como exemplo a primeira linha da Figura 2, identificam-se os campos, conforme indicados na Tabela 3. Após o entendimento dos arquivos que compõem o EPG, os dados foram copiados dos arquivos de programação para uma planilha do BrOffice com o auxílio do recurso colar especial. Esse recurso permitiu que os dados fossem exportados exatamente como foram construídos no layout, separando os campos em colunas. No momento da exportação, os dados numéricos perderam seu formato e foram, então, reformatados de acordo com a Tabela 4. Após a exportação, foi feita a limpeza dos dados desnecessários. 10
  • 20. Tabela 3 – Identificação dos campos nos arquivos TXT Coluna Conteúdo Identificação 005 Código da emissora 1.ª 005100PNREXXXXX 100PNREXXXXX Descartado 002645 Código do programa 2.ª 002645RELIGIOSO MAT RELIGIOSO MAT Nome do programa 3.ª 000000 Descartado 4.ª 0000 Descartado 060000 Início do programa Fim do 5.ª 060000080000DIA_05 080000 programa Dia do DIA_05 programa 6.ª 111111100000000000000003XX Descartado Tabela 4 – Layout dos arquivos TXT Descrição Tipo Posição Inicial Código da emissora Numérico (03) 1 Código do programa Numérico (06) 24 Nome do programa Caractere (30) 30 Início do programa Numérico (06) 160 Fim do programa Numérico (06) 166 Em seguida, perceberam-se algumas inconsistências de horários, que foram imediatamente corrigidas para que a análise futura não gerasse resultados errôneos. O processo acima descrito se repetiu para cada um dos 15 arquivos de programação e os dados foram agrupados em uma única planilha que continha o EPG dos 15 dias. O comportamento do usuário é composto por várias planilhas, denominadas planilhas de sintonia, que possuem muito mais informação que o EPG. As planilhas de sintonia e o EPG contêm códigos que identificam as emissoras da TV Aberta. Foi necessário padronizar esses códigos, pois o número de identificação foi registrado diferentemente nesses arquivos. Para evitar a inconsistência de dados, foi adicionada uma coluna ao EPG com o nome da emissora e, em seguida, os códigos das emissoras de TV Aberta foram padronizados, pois havia conflitos de códigos entre as emissoras Bandeirantes, Record, Rede TV! e TV Cultura. Também foram adicionados ao EPG o dia da semana e a duração do programa. O EPG, nessa etapa, ainda não estava completo, pois faltavam o gênero e o subgênero de cada programa. Para isso, procurou-se, nos sites oficiais de cada emissora, o gênero dos programas transmitidos e, em seguida, foram identificados de acordo com a norma brasileira ABNT NBR 15603-2 e constam do Anexo C - “Descritor de gênero no descritor de conteúdo”. 11
  • 21. Para facilitar essa identificação, foi utilizado o recurso de filtro para classificar o EPG de acordo com o nome do programa. Caso esse se repetisse nos 15 dias do intervalo considerado, não era necessário procurar novamente no site da emissora. Ressalta-se que a planilha do EPG totalizou cerca de 4.500 linhas, com a identificação de aproximadamente 800 programas diferentes. A Tabela 5 ilustra a relação quantidade de programas/gênero encontrada no EPG. No MySQL também foram criadas tabelas para guardar as informações do EPG. As Figuras de 3 a 9 apresentam essas tabelas do banco de dados. Tabela 5 – Relação quantidade de programas/gênero Gênero Quantidade Minissérie 0 Erótico 1 Novela 15 Reality Show 15 Filme 24 Humorístico 25 Informação 32 Educativo 33 Esporte 40 Sorteio, televendas, premiação 42 Debate/Entrevista 52 Série/Seriado 56 Outros 62 Infantil 63 Jornalismo 146 Variedade 203 TOTAL 812 Figura 3 – Tabela com os descritores de gêneros Figura 4 – Tabela com os descritores de subgênero Figura 5 – Tabela com os descritores de gênero/subgênero 12
  • 22. Figura 7 – Tabela com os códigos Figura 6 – Tabela com os das emissoras códigos originais das emissoras Figura 8 – Tabela com os programas Figura 9 – Tabela com as informações da programação de TV O EPG precisou ainda de mais uma modificação para poder ser utilizado com a FBC. Uma nova tabela foi criada, idêntica à tabela do EPG, mas acrescida de campos com os nomes dos gêneros. Esses campos foram populados com 0 ou 1, conforme o programa se encaixava ou não naquele gênero, transformando-se em uma matriz. Os gêneros receberam siglas, as quais são listadas abaixo. Isso se fez necessário, pois nas seções de metodologia e de simulação esses campos aparecerão em diversas consultas SQL. A Figura 10 ilustra a Tabela criada no MySQL para a matriz do EPG. Sigla ............ Gênero/Subgênero DED ............ Debate Entrevista/Debate DEE ............ Debate Entrevista/Entrevista EDED ......... Educativo/Educativo 13
  • 23. ERER .......... Erótico/Erótico ESES ........... Esporte/Esporte FF ................ Filme/Filme FO ............... Filme/Outros HH .............. Humorístico/Humorístico II ................. Infantil/Infantil IC ................ Informação/Culinária IM ............... Informação/Moda IO ................ Informação/Outros IR ................ Informação/Rural INS .............. Informação/Saúde IT ................ Informação/Turismo JD ................ Jornalismo/Documentário JO ................ Jornalismo/Outros JR ................ Jornalismo/Reportagem JT ................ Jornalismo/Telejornais NN .............. Novela/Novela ODA ........... Outros/Desenho Adulto OI ................ Outros/Interativo OO .............. Outros/Outros OP ............... Outros/Político OUR ............ Outros/Religioso RSRS .......... Reality Show/Reality Show SSS ............. Série, Seriado/Série STPO .......... Sorteio, Televendas, Premiação/Outros STPS ........... Sorteio, Televendas, Premiação/Sorteio STPT ........... Sorteio, Televendas, Premiação/Televendas STPP ........... Sorteio, Televendas, Premiação/Premiação VA .............. Variedade/Auditório VF ............... Variedade/Feminino VGS ............ Variedade/Game Show VMO ........... Variedade/Making Of VM .............. Variedade/Musical 14
  • 24. VO .............. Variedade/Outros VS ............... Variedade/Show Figura 10 – Tabela matrixepg no MySQL 3.1.2 Histórico dos Usuários As planilhas de sintonia enviadas pelo IBOPE contêm os dados dos usuários e foram modificadas, de forma que técnicas de Filtragem Baseada em Conteúdo pudessem ser aplicadas. A Figura 11 apresenta uma captura de tela de como as planilhas de sintonia estão organizadas. DOMIC_0x indica o número do domicílio (X é o número do domicílio). DIA_0x indica o dia do monitoramento. Inds indica o número do indivíduo (usuário). Tvs indica o número da TV. 06:00 em diante indica o horário do monitoramento. Assim, a planilha foi preenchida com o número do canal que aquele indivíduo estava assistindo naquela TV, naquele horário, naquele dia e naquele domicílio. 15
  • 25. Figura 11 – Amostra das planilhas de sintonia Os dados foram, então, separados por domicílios e, apesar de alguns possuírem mais de uma TV, percebeu-se que não havia registros de monitoramento para mais de uma TV ao mesmo tempo e, portanto, considerou-se apenas uma TV por domicílio. A Figura 12 apresenta o modo como os dados foram organizados no momento da separação. A coluna Domicílio indica o domicílio ao qual pertence aquele indivíduo. A coluna Dia indica o dia da visualização do programa. A coluna Horário indica a hora de visualização. A coluna Indivíduo indica qual é o usuário que está assistindo aquele programa. A coluna TV indica o canal que o usuário está assistindo. Observa-se que os dados também foram formatados: data no formato AAAA-mm-dd, hora no formato HH:mm:ss e TV no formato 00X. As planilhas resultantes foram convertidas em arquivos CSV, os quais, em seguida, foram inseridos no MySQL. Para tanto, criou-se uma tabela para cada domicílio, chamada dx_cru (Cru por conter os dados originais), que armazena essas informações, conforme ilustra a Figura 13. 16
  • 26. Figura 13 – Tabela para armazenamento Figura 14 – Tabela que resulta da listagem 1 Figura 12 – Planilhas após organização A partir do campo codigoEmissora, foi possível buscar na tabela codigos_emissoras qual emissora o usuário estava assistindo. A consulta SQL da Listagem 1 fez essa mescla e, então, inseriu o resultado em outra tabela, chamada dx_v2, na qual x indica o número do domicílio. A consulta seleciona os campos da tabela dx_cru quando o código da emissora nessa tabela for igual ao da tabela codigos_emissoras, ordenando pelo código da emissora da tabela dx_cru. A Figura 14 apresenta os campos da tabela criada no MySQl. INSERT INTO d1_v2 SELECT d.id_d1, d.domicilio, d.dia, d.horario, d.id_users, d.codigoEmissora, d.nomeEmissora FROM d1_cru d, codigos_emissoras c WHERE d.codigoEmissora = c.codigo_p ORDER BY d.codigoEmissora; Listagem 1 – Consulta SQL para descobrir qual emissora o usuário está assistindo. No passo seguinte, fez-se a mescla com o EPG, obtendo todas as informações referentes ao programa visualizado. A Listagem 2 apresenta a consulta SQL utilizada para fazer a mescla. O resultado da consulta também foi armazenado em outra tabela, chamada 17
  • 27. dx_v3. A Figura 15 apresenta os campos dessa tabela. A consulta seleciona alguns campos da tabela dx_cru e da tabela EPG quando o dia e o código da emissora são iguais em ambas e quando o horário da tabela dx_cru é maior ou igual à hora do início do programa e menor ou igual à hora do fim do programa. Sem informar essas condições, o resultado gerado estará incorreto. Novamente, isso é repetido para todos os domicílios. INSERT INTO d1_v3 SELECT d.domicilio, d.id_d1, d.id_users, e.id_epg, d.dia as ddia, e.dia as edia, d.horario, e.horaInicio, e.horaFim, e.inicioPrograma, e.fimPrograma, e.duracaoPrograma, e.codigoPrograma, e.nomePrograma, d.codigoEmissora as dce, e.codigoEmissora as ece, e.nomeEmissora, e.genero, e.descritorGenero, e.subgenero, e.descritorSubgenero, e.generoSubgenero, e.descritorGeneroSubgenero FROM d1_cru d, matrixepg e WHERE ((d.dia=e.dia) and (d.codigoEmissora = e.codigoEmissora) and (d.horario > = e.horaInício) and (d.horario <= e.horaFim)) ORDER BY d.id_users,d.dia,d.horario; Listagem 2 – Consulta SQL para mesclar as informações do EPG com as do usuário. O passo seguinte consistiu em encontrar os horários de início e de fim da sintonização do usuário naqueles canais. Para tanto, usou-se uma consulta SQL, como ilustra a Listagem 3, que usa os comandos MIN() e MAX() que retorna o valor mínimo ou máximo, e o campo horário da tabela dx_v3 como base. A Figura 16 apresenta a tabela criada para armazenar o resultado dessa consulta. INSERT INTO d1_v4 SELECT d.domicilio, d.id_d1, d.id_users, d.id_epg, d.dia, d.horario, min(d.horario) AS inicioSintonia, max(d.horario) AS fimSintonia, d.horaInício, d.horaFim, d.inicioPrograma, d.fimPrograma, d.duracaoPrograma, d.codigoPrograma, d.nomePrograma, d.dce as codigoEmissora, d.nomeEmissora, d.genero, d.descritorGenero, d.subgenero, d.descritorSubgenero, d.generoSubgenero, d.descritorGS FROM d1_v3 d GROUP BY d.id_users, d.nomePrograma, d.dia HAVING (d.horario=min(d.horario)) ORDER BY d.id_users, d.dia, d.horario; Listagem 3 – Cálculo do horário de início e de fim da sintonia. Em seguida, calculou-se o tempo em que o usuário permaneceu sintonizado nos canais. A Listagem 4 demonstra a consulta SQL utilizada. O comando SUBTIME(), que 18
  • 28. retorna a subtração entre as datas, foi utilizado para fazer o cálculo de subtração entre os campos início e fim de sintonia. A Figura 17 apresenta a tabela criada para armazenar o resultado dessa consulta. INSERT INTO d1_v5 SELECT d.domicilio, d.id_d1, d.id_users, d.id_epg, d.dia, d.horario, d.inicioSintonia, d.fimSintonia, subtime(d.fimSintonia, d.inícioSintonia) as duracaoSintonia, d.horaInicio, d.horaFim, d.inicioPrograma, d.fimPrograma, d.duracaoPrograma, d.codigoPrograma, d.nomePrograma, d.codigoEmissora, d. nomeEmissora,d.genero, d.descritorGenero, d.subgenero, d.descritorSubgenero, d.generoSubgenero, d.descritorGS FROM d1_v4 d; Listagem 4 – Cálculo do tempo de visualização. Após calcular o tempo de visualização, foi necessário converter esse tempo em número inteiro, para a posterior utilização nos cálculos da Filtragem Colaborativa. A Listagem 5 apresenta a consulta SQL utilizada. Utilizaram-se os comandos HOUR(), que retorna a hora do tempo sendo o valor de retorno entre 0 a 23 e MINUTE(), que retorna o minuto da hora, na faixa de 0 a 59, para realizar o seguinte cálculo: duracao em inteiro = (hora * 60 ) + minuto duracao em inteiro = ( hora ( fim sintonia – inicio sintonia ) * 60 ) + ( minuto ( fim sintonia – inicio sintonia ) ) A Figura 18 apresenta a tabela criada no MySQL para armazenar o resultado. INSERT INTO d1_v6 SELECT d.domicilio, d.id_dx, d.id_users, d.id_epg, d.dia, d.horario, d.inicioSintonia, d.fimSintonia, d.duracaoSintonia, ((hour (subtime (d.fimSintonia,d.inícioSintonia)) * 60) + minute(subtime(d.fimSintonia,d.inícioSintonia))) as duracaoS2, d.horaInício,d.horaFim, d.inícioPrograma, d.fimPrograma, d.duracaoPrograma, d.codigoPrograma, d.nomePrograma, d.codigoEmissora, d.nomeEmissora, d.genero, d.descritorGenero, d.subgenero, d.descritorSubgenero, d.generoSubgenero, d.descritorGS FROM d1_v5 d; Listagem 5 – Cálculo da conversão do tempo do formato hora para inteiro. Ainda faltavam algumas informações que podem ser úteis no momento de geração das recomendações, o dia da semana e o período do dia. A Listagem 6 ilustra a consulta SQL utilizada para encontrar o dia da semana e a Listagem 7 a consulta para o período. As Figuras 19
  • 29. 19 e 20 apresentam as tabelas criadas no banco de dados para armazenar os resultados dessas consultas. INSERT INTO d1_v7 SELECT d.domicilio, d.id_dx, d.id_users, d.id_epg, d.dia, d.horario, d.inicioSintonia, d.fimSintonia, d.duracaoSintonia, duracaoS2, DAYNAME(dia) as diaSemana, d.horaInicio, d.horaFim, d.inicioPrograma, d.fimPrograma, d.duracaoPrograma, d.codigoPrograma, d.nomePrograma, d.codigoEmissora as codigoEmissora,d.nomeEmissora, d.genero, d.descritorGenero, d.subgenero, d.descritorSubgenero, d.generoSubgenero, d.descritorGS FROM d1_v6 d; Listagem 6 – Cálculo do dia da semana. Figura 15 – Tabela que contém a Figura 16 – Tabela com os novos Figura 17 – Tabela com o mescla do EPG com o histórico campos início e fim da sintonia resultado de Subtime() do usuário 20
  • 30. O dia da semana é descoberto passando-se o campo dia para o comando DAYNAME() do MySQL, que retorna o nome do dia da semana para a data. Faixas de horário foram definidas para identificar o período do dia. Quando a faixa varia entre 06:00:00 e 11:59:00, usa-se a variável manha, criando o campo período. Quando a faixa varia entre 12:00:00 e 17:59:00, usa-se a variável tarde, entre 18:00:00 e 23:59:00 usa-se a variável noite e entre 00:00:00 e 05:59:00, madrugada. Os dados são inseridos em outra tabela. Assim, finaliza-se a organização dos dados. set @manha='manha'; set @tarde='tarde'; set @noite='noite'; set @madrugada='madrugada'; INSERT INTO d1_v8 SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inícioSintonia, d.fimSintonia, d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @manha as periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS FROM d1_v7 d WHERE (inícioSintonia>='06:00:00' and fimSintonia<='11:59:00'); INSERT INTO d1_v8 SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inícioSintonia, d.fimSintonia, d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @tarde as periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS FROM dx_v7 d WHERE (inícioSintonia>='12:00:00' and fimSintonia<='17:59:00'); INSERT INTO d1_v8 SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inícioSintonia, d.fimSintonia, d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @noite as periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS FROM dx_v7 d WHERE (inícioSintonia>='18:00:00' and fimSintonia<='23:59:00'); INSERT INTO d1_v8 SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inícioSintonia, d.fimSintonia, d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @madrugada as periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS FROM dx_v7 d WHERE (inícioSintonia>='00:00:00' and fimSintonia<='06:59:00'); Listagem 7 – Cálculo do período do dia. 21
  • 31. Figura 18 – Tabela com o campo duração Figura 19 – Tabela com o campo dia da semana. Figura 20 – Tabela com o campo Figura 21 – Tabela com a versão período do dia. final dos dados. Em seguida, os dados de cada dia, para cada domicílio, foram salvos em planilhas CSV para serem utilizados no software Weka (Witten, 2005). Foi necessário salvar os dados separadamente devido ao processo iterativo que é utilizado na simulação do Weka, conforme detalhado a seguir. 22
  • 32. 3.2 Metodologia e Simulação Simulou-se a Filtragem Baseada em Conteúdo com duas técnicas diferentes, Apriori e Cosseno, ambas usando como atributo alvo o gênero. No caso do Apriori, as configurações apresentadas na Figura 21 foram aplicadas: Figura 22 – Configurações Apriori. Em seguida, começou-se a simulação para o Apriori. Para cada domicílio, o processo foi o mesmo. Ao fim do primeiro dia, geravam-se recomendações para o segundo dia; no segundo dia, com base no que foi visto no dia anterior e no dia atual, geravam-se 23
  • 33. recomendações para o terceiro dia e, assim, consecutivamente. Os seguintes passos foram executados: 1. Abrir arquivo CSV; 2. Converter alguns atributos de String para Nominal e outros de Numeric para Nominal (aplicando-se os filtros); 3. Configurar o Apriori; 4. Executar o Apriori; 5. Salvar a saída. Com os dados salvos, foi possível avaliar se, no dia seguinte àquele, alguém do domicílio assistiu a algum dos gêneros encontrados pelo Apriori. Para o Cosseno, vários passos foram necessários, pois esse foi simulado no MySQL. Além das tabelas já existentes, foi necessário criar mais tabelas para armazenar os resultados gerados pelas consultas. A tabela recomenda armazena as recomendações geradas, a tabela profile armazena o perfil gerado e a tabela domicilio_teste, os dados do dia seguinte para a comparação. Para garantir que os resultados não estivessem errados, sempre ao iniciar o processo, os dados dessas tabelas eram apagados e, então, inseridos apenas os dados necessários para aquele dia em particular (Listagem 8). As Figuras 23 e 24 apresentam as tabelas criadas no MySQL. Os passos abaixo relacionados foram seguidos para a simulação do Cosseno: 1. Encontrar e salvar o perfil na tabela profile; 2. Calcular a distância; 3. Calcular a norma; 4. Calcular o Cosseno; 5. Verificar se acertou. O processo também é iterativo, sendo realizado para cada dia e para cada domicílio. As consultas SQL utilizadas no processo, as quais simulam a geração das recomendações para um domicílio também são apresentadas a seguir. 24
  • 34. Figura 23 – Tabela profile Figura 24 – Tabela recomenda INSERT INTO domicilio_teste SELECT * FROM d1_vf WHERE dia='2008-03-05'; SELECT * FROM domicilio_teste; DELETE FROM profile; DELETE FROM recomenda; Listagem 8 – Inserindo e apagando os dados para a correta avaliação A Listagem 10 ilustra a consulta SQL utilizada para calcular o perfil do usuário – gêneros preferidos – a partir dos dados do domicílio e do EPG, quando os descritores são iguais em ambas as tabelas. São selecionados os gêneros do domicílio e faz-se o seguinte cálculo: CAMPOS DAS TABELAS: media (genero) = duracao * genero matrixepg TABELAS: tabela profile = tabela domicilio_teste * tabela matrixepg Equação 1 – Cálculo do perfil INSERT INTO PROFILE SELECT avg(ded1), avg(dee1), avg(ed), avg(er),avg(es),avg(f),avg(fo1),avg(h),avg(i),avg(ic1),avg(im1),avg(io1), avg(ir1), avg(ins1),avg(it1),avg(jd1),avg(jo1),avg(jr1),avg(jt1),avg(n),avg(oda1),avg(oi1),avg(oo1), avg(op1),avg(our1),avg(rs), avg(sss1),avg(stpo1),avg(stpp1),avg(stps1),avg(stpt1),avg(va1),avg(vf1), 25
  • 35. avg(vgs1),avg(vmo1),avg(vm1),avg(vo1),avg(vs1) FROM (SELECT d.descritorGS, duracao * DED AS ded1, duracao * DEE AS dee1, duracao * EDED AS ed, duracao * ERER AS er, duracao * ESES AS es, duracao * FF AS f, duracao * FO AS fo1, duracao * HH AS h, duracao * II AS i, duracao * IC AS ic1, duracao * IM AS im1, duracao * IO AS io1, duracao * IR AS ir1, duracao * INS AS ins1, duracao * IT AS it1, duracao * JD AS jd1, duracao * JO AS jo1, duracao * JR AS jr1, duracao * JT AS jt1, duracao * NN AS n, duracao * ODA AS oda1, duracao * OI AS oi1, duracao * OO AS oo1, duracao * OP AS op1, duracao * OUR AS our1, duracao * RSRS AS rs, duracao * SSS AS sss1, duracao * STPO AS stpo1, duracao * STPP AS stpp1, duracao * STPS AS stps1, duracao * STPT AS stpt1, duracao * VA AS va1, duracao * VF AS vf1, duracao * VGS AS vgs1, duracao * VMO AS vmo1, duracao * VM AS vm1, duracao * VO AS vo1, duracao * VS AS vs1 FROM domicílio_teste d, matrixepg m WHERE d.descritorGS=m.descritorGeneroSubgenero ORDER BY duracao DESC) AS result; Listagem 9 – Cálculo do perfil Em seguida, na Listagem 10, uma variável é criada e configurada a partir dos dados da tabela profile. O seguinte cálculo é realizado para a norma do perfil: Equação 2 – Cálculo da norma do perfil Em que mycprofilenorm corresponde ao cálculo da norma do perfil e gênero corresponde ao campo da tabela profile que contém o valor calculado na consulta anterior e indica o gênero do programa (jornalismo, documentário, etc.). SET @mycprofilenorm = ( SELECT SQRT ( ded1*ded1 + dee1*dee1 + ed*ed + er*er + es*es + f*f + fo1*fo1 + h*h + i*i + ic1*ic1 + im1*im1 + io1*io1 + ir1*ir1 + ins1*ins1 + it1*it1 + jd1*jd1 + jo1*jo1 + jr1*jr1 + jt1*jt1 + n*n + oda1*oda1 + oi1*oi1 + oo1*oo1 + op1*op1 + our1*our1 + rs*rs + sss1*sss1 + stpo1*stpo1 + stpp1*stpp1 + stps1*stps1 + stpt1*stpt1 + va1*va1 + vf1*vf1 + vgs1*vgs1 + vmo1*vmo1 + vm1*vm1 + vo1*vo1 + vs1*vs1 ) FROM profile ) ; Listagem 10 – Configuração da variável mycprofilenorm O passo seguinte calculou a norma da tabela matriz do EPG para cada gênero. A consulta da Listagem 11 corresponde a seguinte equação: 26
  • 36. Equação 3 – Cálculo da norma da tabela matrizepg SELECT descritorGeneroSubgenero, SQRT ( DED*DED + DEE*DEE + EDED*EDED + ERER*ERER + ESES*ESES + FF*FF + FO*FO + HH*HH + II*II + IC*IC + IM*IM + IO*IO + IR*IR + INS*INS + IT*IT + JD*JD + JO*JO + JR*JR + JT*JT + NN*NN + ODA*ODA + OI*OI + OO*OO + OP*OP + OUR*OUR + RSRS*RSRS + SSS*SSS + STPO*STPO + STPP*STPP + STPS*STPS + STPT*STPT + VA*VA + VF*VF + VGS*VGS + VMO*VMO + VM*VM + VO*VO + VS*VS) AS norm FROM matrixepg GROUP BY descritorGeneroSubgenero ORDER BY descritorGeneroSubgenero; Listagem 11 – Cálculo da norma da matrizepg A Listagem 12 apresenta a consulta SQL da Listagem 11, acrescida do cálculo de dot e a equação 4 apresenta o cálculo: Equação 4 – Cálculo de dot SELECT descritorGeneroSubgenero, SQRT ( DED*DED + DEE*DEE + EDED*EDED + ERER*ERER + ESES*ESES + FF*FF + FO*FO + HH*HH + II*II + IC*IC + IM*IM + IO*IO + IR*IR + INS*INS + IT*IT + JD*JD + JO*JO + JR*JR + JT*JT + NN*NN + ODA*ODA + OI*OI + OO*OO + OP*OP + OUR*OUR + RSRS*RSRS + SSS*SSS + STPO*STPO + STP*STPP + STPS*STPS + STPT*STPT + VA*VA + VF*VF + VGS*VGS + VMO*VMO + VM*VM + VO*VO + VS*VS ) AS norm, ( DED*ded1 + DEE*dee1 + EDED*Ed + ERER*er + ESES*es + FF*f + FO*fo1 + HH*h + II*i + IC*ic1 + IM*im1 + IO*io1 + IR*ir1+ INS*ins1 + IT*it1 + JD*jd1 + JO*jo1 + JR*jr1 + JT*jt1 + NN*n + ODA*oda1 + OI*oi1 + OO*oo1 + OP*op1 + OUR*our1 + RSRS*rs + SSS*sss1 + STPO*stpo1 + STPP*stpp1 + STPS*stps1 + STPT*stpt1 + VA*va1 + VF*vf1 + VGS*vgs1 + VMO*vmo1 + VM*vm1 + VO*vo1 + VS*vs1) AS dot FROM matrixepg, profile GROUP BY descritorGeneroSubgenero ORDER BY dot DESC; Listagem 12 – Cálculo da norma e dot A Listagem 13 reúne os cálculos acima, selecionando os nomes dos campos e calculando o Cosseno: 27
  • 37. Equação 5 – Cálculo do Cosseno SELECT descritorGeneroSubgenero, dot/(@mycprofilenorm*norm) AS cos, DED, DEE, EDED, ERER, ESES, FF, FO, HH, II, IC, IM, IO, IR, INS, IT, JD, JO, JR, JT, NN, ODA, OI, OO, OP, OUR, RSRS, SSS, STPO, STPP, STPS, STPT,VA, VF, VGS, VMO, VM, VO, VS FROM ( SELECT descritorGeneroSubgenero, SQRT ( DED*DED + DEE*DEE + EDED*EDED + ERER*ERER + ESES*ESES + FF*FF + FO*FO + HH*HH + II*II + IC*IC + IM*IM + IO*IO + IR*IR + INS*INS + IT*IT + JD*JD + JO*JO + JR*JR + JT*JT + NN*NN + ODA*ODA + OI*OI + OO*OO + OP*OP + OUR*OUR + RSRS*RSRS + SSS*SSS + STPO*STPO + STPP*STPP + STPS*STPS + STPT*STPT + VA*VA + VF*VF + VGS*VGS + VMO*VMO + VM*VM + VO*VO + VS*VS) AS norm, (DED*ded1+DEE*dee1+EDED*ed+ERER*er+ESES*es+FF*f+FO*fo1+HH*h+II*i+IC*ic1+IM*im1+IO* io1+IR*ir1+INS*ins1+IT*it1+JD*jd1+JO*jo1+JR*jr1+JT*jt1+NN*n+ODA*oda1+OI*oi1+OO*oo1+OP* op1+OUR*our1+RSRS*rs+SSS*sss1+STPO*stpo1+STPP*stpp1+STPS*stps1+STPT*stpt1+VA*va1+VF*vf 1+VGS*vgs1 +VMO*vmo1+VM*vm1+VO*vo1+VS*vs1) AS dot, DED, DEE, EDED, ERER, ESES, FF, FO, HH, II, IC, IM, IO, IR, INS, IT, JD, JO, JR, JT, NN, ODA, OI, OO, OP, OUR, RSRS, SSS, STPO, STPP, STPS, STPT, VA, VF, VGS, VMO, VM, VO, VS FROM matrixepg, profile) AS normdot GROUP BY descritorGeneroSubgenero ORDER BY cos DESC; Listagem 13 – Cálculo do Cosseno Na Listagem 14, o resultado da consulta é inserido na tabela recomenda. INSERT INTO recomenda SELECT nomeEmissora, descritorGeneroSubgenero AS descritorGS, dia, horaInício, dot/(@mycprofilenorm*norm) AS cos FROM ( SELECT nomeEmissora, dia, horaInício, descritorGeneroSubgenero, SQRT ( DED*DED + DEE*DEE + EDED*EDED + ERER*ERER + ESES*ESES + FF*FF + FO*FO + HH*HH + II*II + IC*IC + IM*IM + IO*IO + IR*IR + INS*INS + IT*IT + JD*JD + JO*JO + JR*JR + JT*JT + NN*NN + ODA*ODA + OI*OI + OO*OO + OP*OP + OUR*OUR + RSRS*RSRS + SSS*SSS + STPO*STPO + STPP*STPP + STPS*STPS + STPT*STPT + VA*VA + VF*VF + VGS*VGS + VMO*VMO + VM*VM + VO*VO + VS*VS) as norm, ( DED*ded1 + DEE*dee1 + EDED*Ed + ERER*er + ESES*ES + FF*f + FO*fo1 + HH*h + II*i + IC*ic1 + IM*im1 + IO*io1 + IR*ir1 + INS*ins1 + IT*it1 + JD*jd1 + JO*jo1 + JR*jr1 + JT*jt1 + NN*n + 28
  • 38. ODA*oda1 + OI*oi1 + OO*oo1 + OP*op1 + OUR*our1 + RSRS*rs + SSS*sss1 + STPO*stpo1 + STPP*stpp1 + STPS*stps1 + STPT*stpt1 + VA*va1 + VF*vf1 + VGS*vgs1 + VMO*vmo1 + VM*vm1 + VO*vo1 + VS*vs1 ) AS dot, DED, DEE, EDED, ERER, ESES, FF, FO, HH, II, IC, IM, IO, IR, INS, IT, JD, JO, JR, JT, NN, ODA, OI, OO, OP, OUR, RSRS,SSS, STPO, STPP, STPS, STPT,VA, VF, VGS, VMO, VM, VO, VS FROM matrixepg m, profile p) AS normdot GROUP BY descritorGeneroSubgenero ORDER BY cos DESC; Listagem 14 – Inserção do resultado na tabela recomenda Por fim, a Listagem 15 ilustra a consulta SQL utilizada para fazer a comparação e descobrir se algum dos cinco gêneros “recomendados” foi assistido no dia seguinte. Se o gênero existir na tabela recomenda e na tabela domicílio_teste, então, as recomendações sugeridas pelo Cosseno estão de acordo com o perfil do usuário. SELECT r.*, dt.descritorGS FROM recomenda r, d1_vf dt WHERE dt.descritorGS = r.descritorGS GROUP BY r.descritorGS ORDER BY cos DESC; Listagem 15 – Comparação entre as tabelas recomenda e d1_vf 29
  • 39. 4 RESULTADOS Neste capítulo, os resultados obtidos com a aplicação da técnica de Filtragem Baseada em Conteúdo nos dados de visualização de TV fornecidos pelo IBOPE são apresentados mais detalhadamente. A porcentagem de acerto de cada domicílio é apresentada em forma de gráficos e o modo como esses foram gerados também é explicitado. Para todos os domicílios, foram feitas planilhas utilizando o Excel que contabilizam quantos gêneros a consulta SQL de comparação acertou. Como o número de recomendações geradas foi 5, então, a fórmula base para o cálculo da porcentagem de acerto utilizada foi: Equação 6 – Fórmula que calcula a porcentagem de acerto de acordo com o número de recomendações geradas Além disso, também se calculou a média da porcentagem de acerto para o número de recomendações geradas, utilizando a seguinte fórmula indicada na equação 7: Equação 7 – Fórmula que calcula a média da porcentagem de acerto de acordo com o número de dias monitorados As Tabelas 6 e 7 apresentam os resultados obtidos para o Apriori após a aplicação das equações acima. A sigla A indica acertos, a sigla R, recomendações e a D, domicílio. Os gráficos de 25 a 30 apresentam a média alcançada para cada um dos domicílios nos 14 (não há informação para o dia 20/03) dias de simulação e a Figura 31 apresenta a média da 30
  • 40. porcentagem de acerto de todos os 6 domicílios com o Apriori. Nota-se que a média total de acertos não chega a 60%. Tabela 6 – Resultados do Apriori D1 D2 D3 D4 D5 D6 Dia R. A. % A. % A. % A. % A. % A. % 1 5 1 20% 2 40% 2 40% 2 40% 1 20% 4 80% 2 5 2 40% 2 40% 0 0% 4 80% 2 40% 4 80% 3 5 2 40% 2 40% 1 20% 2 40% 2 40% 4 80% 4 5 2 40% 2 40% 1 20% 2 40% 2 40% 3 60% 5 5 3 60% 2 40% 2 40% 3 60% 2 40% 3 60% 6 5 1 20% 0 0% 1 20% 2 40% 0 0% 2 40% 7 5 2 40% 2 40% 2 40% 4 80% 2 40% 2 40% 8 5 2 40% 2 40% 3 60% 3 60% 2 40% 2 40% 9 5 3 60% 2 40% 3 60% 3 60% 2 40% 3 60% 10 5 4 80% 2 40% 2 40% 2 40% 2 40% 3 60% 11 5 3 60% 2 40% 3 60% 3 60% 2 40% 3 60% 12 5 3 60% 2 40% 1 20% 2 40% 2 40% 3 60% 13 5 0 0% 3 60% 1 20% 3 60% 0 0% 3 60% 14 5 2 40% 3 60% 2 40% 2 40% 2 40% 0 0% soma 70 30 6 28 5,60 24 4,80 37 7,40 23 4,60 39 7,80 média 5 2,14 43% 2 40% 1,71 34% 2,64 53% 1,64 33% 2,79 56% Figura 25 – % de acerto Apriori Domicílio 1 31
  • 41. Figura 26 – % de acerto Apriori Domicílio 2 Figura 27 – % de acerto Apriori Domicílio 3 32
  • 42. Figura 28 – % de acerto Apriori Domicílio 4 Figura 29 – % de acertoApriori Domicílio 5 33
  • 43. Figura 30 – % de acertoApriori Domicílio 6 Figura 31 - % de acerto Apriori todos os domicílios 34
  • 44. A Tabela 7 apresenta os resultados obtidos para o Cosseno pela aplicação das equações 6 e 7. A sigla A indica acertos, a sigla R, recomendações e a D, domicílio. Os gráficos de 32 a 37 apresentam a média alcançada para cada um dos domicílios nos 14 dias de simulação e a Figura 38 apresenta a média da porcentagem de acerto de todos os 6 domicílios com o Cosseno. Nota-se que a média de acerto aproxima-se de 90%. Tabela 7 – Resultados do Cosseno D1 D2 D3 D4 D5 D6 Dia R. A. % A. % A. % A. R. A. % A. % 1 5 1 20 2 40 2 40 3 60 2 4% 5 100 2 5 2 40 3 60 2 40 3 60 4 80 5 100 3 5 2 40 4 80 1 20 4 80 2 40 3 60 4 5 4 80 4 80 4 80 4 80 4 80 4 80 5 5 3 60 4 80 4 80 2 40 3 60 3 60 6 5 2 40 2 40 1 20 2 40 1 20 2 40 7 5 3 60 5 100 4 80 5 100 4 80 5 100 8 5 1 20 4 80 2 40 5 100 2 40 5 100 9 5 3 60 5 100 4 80 5 100 4 80 5 100 10 5 5 100 5 100 3 60 3 60 2 40 5 100 11 5 4 80 5 100 2 40 5 100 2 40 5 100 12 5 3 60 4 80 1 20 4 80 2 40 5 100 13 5 2 40 4 80 1 20 2 40 0 0 2 40 14 5 5 100 5 100 4 80 4 80 2 40 5 100 soma 70 40 8 56 11,2 35 7 51 10,2 34 6,8 59 11,8 média 5 2,86 57 4,00 80 2,50 50 3,64 73 2,43 49 4,21 84 Figura 32 – % de acerto Cosseno domicílio 1 35
  • 45. Figura 33 – % de acerto Cosseno domicílio 2 Figura 34 – % de acerto Cosseno domicílio 3 36
  • 46. Figura 35 – % de acerto Cosseno domicílio 4 Figura 36 – % de acerto Cosseno domicílio 5 37
  • 47. Figura 37 – % de acerto Cosseno domicílio 6 Figura 38 – % de acerto Cosseno todos os domicílios 38
  • 48. As Tabelas 8 e 9 mostram a comparação entre os dois métodos e as Figuras de 39 a 44 apresentam os gráficos que comparam as porcentagens de acerto de cada um dos métodos para cada domicílio. A Figura 45 ilustra a comparação das médias atingidas para cada domicílio. Percebe-se que há uma diferença razoável entre as técnicas. A sigla Ac significa acertos, a sigla C, cosseno e a sigla Ap, Apriori. Tabela 8 - Comparação entre Apriori e Cosseno domicílios 1-3. D1 D2 D3 Dia R Ac C Ac Ap Ac C Ac Ap Ac C Ac Ap 1 5 1 20% 1 20% 2 40% 2 40% 2 40% 2 40% 2 5 2 40% 2 40% 3 60% 2 40% 2 40% 0 0% 3 5 2 40% 2 40% 4 80% 2 40% 1 20% 1 20% 4 5 4 80% 2 40% 4 80% 2 40% 4 80% 1 20% 5 5 3 60% 3 60% 4 80% 2 40% 4 80% 2 40% 6 5 2 40% 1 20% 2 40% 0 0% 1 20% 1 20% 7 5 3 60% 2 40% 5 100% 2 40% 4 80% 2 40% 8 5 1 20% 2 40% 4 80% 2 40% 2 40% 3 60% 9 5 3 60% 3 60% 5 100% 2 40% 4 80% 3 60% 10 5 5 100% 4 80% 5 100% 2 40% 3 60% 2 40% 11 5 4 80% 3 60% 5 100% 2 40% 2 40% 3 60% 12 5 3 60% 3 60% 4 80% 2 40% 1 20% 1 20% 13 5 2 40% 0 0% 4 80% 3 60% 1 20% 1 20% 13 5 5 100% 2 40% 5 100% 3 60% 4 80% 2 40% Soma 70 40,00 8,00 30,00 6,00 56,00 11,20 28,00 5,60 35,00 7,00 24,00 4,80 Média 5,00 2,86 57% 2,14 43% 4,00 80% 2,00 40% 2,50 50% 1,71 34% Tabela 9 – Comparação entre Apriori e Cosseno domicílios 4-6. D4 D5 D6 Dia R Ac C Ac Ap Ac C Ac Ap Ac C Ac Ap 1 5 3 60% 2 40% 2 40% 1 20% 5 100% 4 80% 2 5 3 60% 4 80% 4 80% 2 40% 5 100% 4 80% 3 5 4 80% 2 40% 2 40% 2 40% 3 60% 4 80% 4 5 4 80% 2 40% 4 80% 2 40% 4 80% 3 60% 5 5 2 40% 3 60% 3 60% 2 40% 3 60% 3 60% 6 5 2 40% 2 40% 1 20% 0 0% 2 40% 2 40% 7 5 5 100% 4 80% 4 80% 2 40% 5 100% 2 40% 8 5 5 100% 3 60% 2 40% 2 40% 5 100% 2 40% 9 5 5 100% 3 60% 4 80% 2 40% 5 100% 3 60% 10 5 3 60% 2 40% 2 40% 2 40% 5 100% 3 60% 11 5 5 100% 3 60% 2 40% 2 40% 5 100% 3 60% 12 5 4 80% 2 40% 2 40% 2 40% 5 100% 3 60% 13 5 2 40% 3 60% 0 0% 0 0% 2 40% 3 60% 13 5 4 80% 2 40% 2 40% 2 40% 5 100% 0 0% Soma 70 51 10,20 37 7,40 34 6,80 23 4,60 59 11,80 39 7,80 Média 5 3,64 73% 2,64 53% 2,43 49% 1,64 33% 4,21 84% 2,79 56% 39
  • 49. Figura 39 – Comparação entre Apriori e Cosseno domicílio 1 Figura 40 – Comparação entre Apriori e Cosseno domicílio 2 40
  • 50. Figura 41 – Comparação entre Apriori e Cosseno domicílio 3 Figura 42 – Comparação entre Apriori e Cosseno domicílio 4 41
  • 51. Figura 43 – Comparação entre Apriori e Cosseno domicílio 5 Figura 44 – Comparação entre Apriori e Cosseno domicílio 6 42
  • 52. Figura 45 – Comparação entre Apriori e Cosseno todos os domicílios 43
  • 53. 5 RESULTADOS Durante a execução dos testes, foi possível observar algumas peculiaridades. O sistema proposto recomenda conteúdos com base nos gêneros dos programas e as análises foram realizadas de acordo esse parâmetro. Com o algoritmo Apriori, o formato dos dados já é adequado ao uso. Para o Cosseno, o EPG necessita ser alterado para uma matriz antes de iniciar o processo de descoberta de perfis e recomendações. O Apriori é capaz de minerar apenas o histórico de visualização do usuário, descobrindo o seu perfil a partir das regras. Para selecionar os programas a serem recomendados, outra técnica deve ser utilizada. O Cosseno, no entanto, pode fazer as duas coisas. Entretanto, o Apriori consegue descobrir outras características no histórico do usuário, como, por exemplo: se o usuário permanece na frente da TV com mais frequência no período noturno, se gosta de ver filmes e se assiste TV com mais frequência na segunda-feira. O Cosseno não permite descobrir essas características, mas consegue atingir o objetivo. Para descobrir comportamentos parecidos com os indicados pelas regras de associação, é necessário fazer consultas mais complexas ao banco de dados. A saída do Apriori deve ser trabalhada para gerar o perfil correto do usuário, isto é, as regras devem ser interpretadas, o que em termos de implementação, é algo trabalhoso. A saída do Cosseno é mais legível; seu resultado ilustra o objetivo pretendido diretamente, permitindo que a saída seja usada sem a necessidade de um pós-tratamento. Já em relação à entrada, para o Apriori, não há necessidade de tratamento, já que os dados serão usados da forma como são coletados. Para o Cosseno, no entanto, sempre que o EPG for atualizado, a tabela que contém a matriz do EPG deverá ser modificada de acordo com o novo EPG, o que demanda trabalho extra. O processo de fornecimento e a aceitação de recomendações, calculando a porcentagem de acerto e gerando gráficos, foram simulados com duas técnicas. Apesar de ambas cobrirem as necessidades do sistema, o Cosseno é o que pode ser melhor aproveitado. O perfil relativo ao gênero encontrado por ambos os algoritmos é semelhante. 44
  • 54. Em um desktop, como foi o caso dos testes realizados, o retorno do cálculo do Cosseno é mais rápido em relação ao retorno das regras de associação do Apriori. Entretanto, estudos mais aprofundados a respeito do consumo de processamento desses algoritmos em um celular com TVDI (Televisão Digital Interativa) ainda não é possível no Brasil, pois. O tempo que todo o processo de recomendação leva para ser concluído varia de acordo com a técnica de personalização empregada. Nos testes e nas simulações realizadas, o Cosseno finaliza o processo antes do Apriori. Os estudos realizados mostram que, apesar de ambos os algoritmos atenderem às necessidades, o Cosseno apresenta melhores resultados para aplicação no sistema de recomendação para TVDPI (Televisão Digital Portátil Interativa). 45
  • 55. REFERÊNCIAS BIBLIOGRÁFICAS ABNT 15603-2. Norma Brasileira. Televisão Digital Terrestre – Multiplexação e serviços de informação (SI) Parte 2: Estrutura de dados e definições da informação básica de SI. Versão 3, 21/09/2009, 129 páginas. ADOMAVICIUS, G.; Tuzhilin, A. Towards the Next Generation of Recommenders Systems: A Survey of the State-of-the-Art and Possible Extensions. IEEE Transactions on Knowledge and Data Engineering, vol. 17, Issue 6, p. 734-749, June 2005. ÁVILA, P. M. Recommender TV: Suporte ao Desenvolvimento de Aplicações de Recomendação para o Sistema Brasileiro de TV Digital. Dissertação de Mestrado. 90 páginas, 2010. BÄR, A. et al. A Lightweight Mobile TV Recommender: Towards a One-Click-to- Watch Experience. In Proceedings 6th European Interactive TV Conference, p.142- 147, Salzburg, Áustria, 03-04/07/2008. BELKIN, Nicholas J.; CROFT, W. Bruce. Information filtering nad information retrieval: Two sides of the same coin? In Communications of the ACM, December 1992, vol. 35, Nº 12, p. 29-38. BOZIOS, T. et al. Advanced Techniques for Personalized Advertising in a Digital TV Environment: The iMedia System. In Proceedings of the eBusiness and eWork Conference, p. 1025-1031, IOS press, 2001. 46
  • 56. CHOI, J. Y.; KOH, D.; LEE, J. Ex-ante simulation of mobile TV market based on consumers’ preference data. In Proceedings of the Technological Forecasting & Social Change, p. 1043-1053, 2007. CHORIANOPOULOS, K. Personalized and mobile digital TV applications. In Proceedings of the Multimedia Tools and Aplications, p. 1- 10, vol.36, 27 January 2007. DAS, D. and ter HORST, H. Recommder Systems for TV. In Proceedings of 15 th AAAI Conference, Madison, Wisconsin, July 1998. EINARSSON, O. P. Content Personalization for Mobile TV Combining Content- Based and Collavorative Filtering. Master Thesis. Center for Information and Communication Technologies. Technical Univesity of Denmark. August 22, 2007. FOLTZ, W. Peter; Dumais, T. Susan. Personalized Information Delivery: Na analysis of Information Filtering Methods. In Communications of the ACM, December 1992, vol. 35, Nº 12, p. 51-60. GUTTA, S. et al. TV Content Recommender System. In Proceedings of the 17th National Conference of AAAI, Austin, TX, 2000. LUCAS, A. Personalização para Televisão Digital utilizando a estratégia de Sistema de Recomendação para ambientes multiusuário. Dissertação de Mestrado. 103 páginas. 2009. MAIA, Luiz Cláudio Gomes; SOUZA, Renato Rocha. Medidas de similaridade em documentos eletrônicos. In Encontro Nacional de Pesquisa em Ciência da Informação, IX, 28/09-01/10/2008, São Paulo. Anais. USP, 2008. Disponível em: <http://www.luizmaia.com.br/index2.php? option=com_docman&task=doc_view&gid=3&Itemid=30>. Acesso em: 03/10/2008. 47
  • 57. MARCHI, Késsia Rita de Costa. Sistemas de Recomendação. Uma abordagem geral. Paraná: UEM/DI/PPG-CC, 2008. 30 p. Seminário. Disponível em: <http://kessia.blogs.unipar.br/files/2008/07/sistemas-de-recomendacao.pdf.>. Acesso em: 10/10/2008. REATEGUI, Eliseo Berni; CAZELLA, Sílvio César. Sistemas de Recomendação. In 25.° Congresso da Sociedade Brasileira de Computação, 22-29/06/2005, Rio Grande do Sul. Anais do Encontro Nacional de Inteligência Artificial, São Leopoldo: UNISINOS, 2005. p. 306-348. Disponível em:<http://www.unisinos.br/_diversos/congresso/sbc2005/_dados/anais/ pdf/arq0287.pdf>. Acesso em: 04/10/2008. RESNICK, P.; VARIAN, H. R. Recommender Systems. Communications of the ACM, New York, vol. 40, n. 3, p. 77-87, March 1997. SILVA, F. S. Personalização de Conteúdo na TVDI Através de um Sistema de Recomendação Personalizada de Programas de TV (SRPTV). In III Fórum de Oportunidades em Televisão Digital Interativa, Poços de Caldas, Minas Gerais, Brasil, 2005. SILVA, S. P., Marcelino. Conceitos, Aplicações e Experimentos com Weka. In ESCOLA REGIONAL DE INFORMÁTICA, IV, 2004, Rio de Janeiro. Livro da Escola Regional de Informática Rio de Janeiro. Espírito Santo: 2004, 20p. Disponível em: <www.dpi.inpe.br/~mpss/artigos/ MineracaoDeDados2004.pdf>. Acesso em: 5/10/2008. SOLLA, A. G. et al. ZapTV: Personalized User-Generated Content for Handheld Devices in DVB-H Mobile Newtorks. In Proceedings 6th European Interactive TV Conference, p.193-203, Salzburg, Áustria, 03- 04/07/2008. 48
  • 58. TORRES, Roberto. Personalização na Internet. São Paulo: Novatec Editora, 2004. 158p. URIBE, S. et al. Mobile TV Targeted Advertisement and Content Personalization. In 16th International Workshop Conference on Systems, Signals and Image Processing, Chalkida, Greece, 18-19/06/2009. WITTEN, I. H.; FRANK, E. Data Mining: Practical Machine Learning Tools and Techniques, 2nd Edition, Morgan Kaufmann, 525 pages, June 2005. YU, Z. et al. TV program recommendation for multiple viewers based on user profile merging. In Proceedings of the User Model User-Adap Inter, p. 63-82, 2006. 49