relatório técnico i fc 29-07

84
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 Colaborativa aos dados de TV fornecidos pelo IBOPE ALUNA: Elaine Cecília Gatto ORIENTADOR: Prof. Dr. Sergio Donizetti Zorzo São Carlos-SP Julho/2010

Upload: elaine-cecilia-gatto

Post on 09-Jul-2015

174 views

Category:

Documents


2 download

DESCRIPTION

Este relatório técnico apresenta os resultados 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 usuários que interagem com um sistema de recomendação baseado em Filtragem Colaborativa para televisão digital portátil. 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.

TRANSCRIPT

Page 1: Relatório técnico i   fc 29-07

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 Colaborativa aos dados de TV fornecidos

pelo IBOPE

ALUNA: Elaine Cecília Gatto

ORIENTADOR: Prof. Dr. Sergio Donizetti Zorzo

São Carlos-SP

Julho/2010

Page 2: Relatório técnico i   fc 29-07

i

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.

Page 3: Relatório técnico i   fc 29-07

ii

RESUMO

Este relatório técnico apresenta os resultados 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 usuários que interagem com um sistema de recomendação

baseado em Filtragem Colaborativa para televisão digital portátil. 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

Colaborativa, Televisão Digital, Knn.

Page 4: Relatório técnico i   fc 29-07

iii

LISTA DE FIGURAS

Figura 1 – Contexto do Estudo de Caso ..................................................................................... 6

Figura 2 – Características dos domicílios .................................................................................. 8

Figura 3 – Características socioeconômicas............................................................................... 8

Figura 4 – Conteúdo da tabela usuários ..................................................................................... 8

Figura 5 – Tabela usuários ......................................................................................................... 8

Figura 6 – Amostra dos arquivos TXT....................................................................................... 9

Figura 7 – Tabela que contém os descritores de gênero .......................................................... 12

Figura 8 – Tabela que contém os descritores de subgênero ..................................................... 12

Figura 9 – Tabela que contém os descritores de gênero com seus respectivos subgêneros ..... 12

Figura 10 – Tabela que contém os códigos originais das emissoras ........................................ 12

Figura 11 – Tabela que contém os códigos das emissoras ....................................................... 12

Figura 12 – Tabela que contém os programas.......................................................................... 12

Figura 13 – Tabela que contém as informações da programação de TV ................................. 12

Figura 14 – Amostra das planilhas de sintonia ........................................................................ 13

Figura 15 – Planilhas após organização ................................................................................... 14

Figura 16 – Tabela para armazenamento ................................................................................. 14

Figura 17 – Tabela que resulta da Listagem 1 ......................................................................... 14

Figura 18 – Tabela que contém a mescla do EPG com o histórico do usuário ........................ 18

Figura 19 – Tabela com os novos campos início e fim da sintonia ......................................... 18

Figura 20 – Tabela com o resultado de SUBTIME() ............................................................... 18

Figura 21 – Tabela que adiciona o campo de duração do tipo inteiro ..................................... 21

Figura 22 – Tabela que adiciona o dia da semana.................................................................... 21

Figura 23 – Tabela que adiciona o período .............................................................................. 22

Figura 24 – Tabela que contém a versão final dos dados......................................................... 22

Figura 25 – Tabela do histórico de visualização de cada usuário ............................................ 22

Figura 26 – Tabela que armazena as avaliações de todos os usuários ..................................... 23

Figura 27 – Tabela que armazena as informações do usuário em análise ................................ 23

Page 5: Relatório técnico i   fc 29-07

iv

Figura 28 – Tabela que armazena os usuários que gostam de programas similares ................ 23

Figura 29 – Tabela que armazena os usuários que gostam de gêneros similares..................... 23

Figura 30 – Tabela que armazena as recomendações (gêneros/programas) obtidas ................ 23

Figura 31 - % de acerto programa usuário 11 .......................................................................... 33

Figura 32 - % de acerto programa usuário 12 .......................................................................... 34

Figura 33 - % de acerto programa usuário 21 .......................................................................... 34

Figura 34 - % de acerto programa usuário 22 .......................................................................... 35

Figura 35 - % de acerto programa usuário 23 .......................................................................... 35

Figura 36 - % de acerto programa usuário 31 .......................................................................... 36

Figura 37 - % de acerto programa usuário 32 .......................................................................... 36

Figura 38 - % de acerto programa usuário 33 .......................................................................... 37

Figura 39 - % de acerto programa usuário 41 .......................................................................... 37

Figura 40 - % de acerto programa usuário 42 .......................................................................... 38

Figura 41 - % de acerto programa usuário 51 .......................................................................... 38

Figura 42 - % de acerto programa usuário 52 .......................................................................... 39

Figura 43 - % de acerto programa usuário 61 .......................................................................... 39

Figura 44 - % de acerto programa usuário 62 .......................................................................... 40

Figura 45 - % de acerto programa usuário 63 .......................................................................... 40

Figura 46 - % de acerto gênero usuário 11............................................................................... 42

Figura 47 - % de acerto gênero usuário 12............................................................................... 43

Figura 48 - % de acerto gênero usuário 21............................................................................... 43

Figura 49 - % de acerto gênero usuário 22............................................................................... 44

Figura 50 - % de acerto gênero usuário 23............................................................................... 44

Figura 51 - % de acerto gênero usuário 31............................................................................... 45

Figura 52 - % de acerto gênero usuário 32............................................................................... 45

Figura 53 - % de acerto gênero usuário 33............................................................................... 46

Figura 54 - % de acerto gênero usuário 41............................................................................... 46

Figura 55 - % de acerto gênero usuário 42............................................................................... 47

Figura 56 - % de acerto gênero usuário 51............................................................................... 47

Figura 57 - de acerto gênero usuário 52 ................................................................................... 48

Figura 58 - % de acerto gênero usuário 61............................................................................... 48

Page 6: Relatório técnico i   fc 29-07

v

Figura 59 - % de acerto gênero usuário 62............................................................................... 49

Figura 60 - % de acerto gênero usuário 63............................................................................... 49

Figura 61 – Comparação de gêneros entre os usuários 11 e 12 ............................................... 51

Figura 62 – Comparação de gêneros entre os usuários 21, 22 e 23 ......................................... 51

Figura 63 – Comparação de gêneros entre os usuários 31, 32 e 33 ......................................... 52

Figura 64 – Comparação de gêneros entre os usuários 41 e 42 ............................................... 52

Figura 65 – Comparação de gêneros entre os usuários 51 e 52 ............................................... 53

Figura 66 – Comparação de gêneros entre os usuários 61, 62 e 63 ......................................... 53

Figura 67 – Comparação de programas entre os usuários 11 e 12 ........................................... 54

Figura 68 – Comparação de programas entre os usuários 21, 22 e 23 ..................................... 54

Figura 69 – Comparação de programas entre os usuários 31, 32 e 33 ..................................... 55

Figura 70 – Comparação de programas entre os usuários 41 e 42 ........................................... 55

Figura 71 – Comparação de programas entre os usuários 51 e 52 ........................................... 56

Figura 72 – Comparação de programas entre os usuários 61, 62 e 63 ..................................... 56

Figura 73 – Comparação entre programas e gêneros usuário 11 ............................................. 60

Figura 74 – Comparação entre programas e gêneros usuário 12 ............................................. 60

Figura 75 – Comparação entre programas e gêneros usuário 21 ............................................. 61

Figura 76 – Comparação entre programas e gêneros usuário 22 ............................................. 61

Figura 77 – Comparação entre programas e gêneros usuário 23 ............................................. 62

Figura 78 – Comparação entre programas e gêneros usuário 31 ............................................. 62

Figura 79 – Comparação entre programas e gêneros usuário 32 ............................................. 63

Figura 80 – Comparação entre programas e gêneros usuário 33 ............................................. 63

Figura 81 – Comparação entre programas e gêneros usuário 41 ............................................. 64

Figura 82 – Comparação entre programas e gêneros usuário 42 ............................................. 64

Figura 83 – Comparação entre programas e gêneros usuário 51 ............................................. 65

Figura 84 – Comparação entre programas e gêneros usuário 52 ............................................. 65

Figura 85 – Comparação entre programas e gêneros usuário 61 ............................................. 66

Figura 86 – Comparação entre programas e gêneros usuário 62 ............................................. 66

Figura 87 – Comparação entre programas e gêneros usuário 63 ............................................. 67

Figura 88 – Média 1 ................................................................................................................. 69

Figura 89 – Média 2 ................................................................................................................. 69

Page 7: Relatório técnico i   fc 29-07

vi

LISTA DE TABELAS

Tabela 1 – Características dos domicílios .................................................................................. 7

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

Tabela 3 – Identificando os campos nos arquivos TXT ........................................................... 10

Tabela 4 – Layout dos arquivos TXT....................................................................................... 10

Tabela 5 – Relação quantidade de programas/categoria .......................................................... 11

Tabela 6 – % de Acerto de programas dos usuários 11, 12, 21, 22 e 23 .................................. 32

Tabela 7 – % de Acerto de programas dos usuários 31, 32, 33, 41 e 42 .................................. 32

Tabela 8 – % de Acerto de de programas dos usuários 51, 52, 61, 62 e 63 ............................. 33

Tabela 9 – % de Acerto dos gêneros dos usuários 11, 12, 21, 22, 23 ...................................... 41

Tabela 10 – % de Acerto dos gêneros dos usuários 31, 32, 33, 41 e 42 .................................. 41

Tabela 11 – % de Acerto dos gêneros dos usuários 51, 52, 61, 62 e 63 .................................. 42

Tabela 12 – Comparação entre gêneros e programas dos usuários 11, 12 e 21. ...................... 57

Tabela 13 – Comparação entre gêneros e programas dos usuários 22, 23 e 31. ...................... 57

Tabela 14 – Comparação entre gêneros e programas dos usuários 32, 33 e 41. ...................... 58

Tabela 15 – Comparação entre gêneros e programas dos usuários 41, 42 e 51. ...................... 58

Tabela 16 – Comparação entre gêneros e programas dos usuários 52 e 61. ............................ 59

Tabela 17 – Comparação entre gêneros e programas dos usuários 62 e 63. ............................ 59

Tabela 18 – Média 1 programas e gêneros ............................................................................... 68

Tabela 19 – Média 2 programas e gêneros ............................................................................... 68

Page 8: Relatório técnico i   fc 29-07

vii

LISTAGENS

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

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

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

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

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

Listagem 6 – Cálculo do dia da semana ................................................................................... 17

Listagem 7 – Cálculo do período do dia .................................................................................. 19

Listagem 8 – Separando os usuários de cada domicílio ........................................................... 21

Listagem 9 – Inserindo os dados nas tabelas ratings e myprofile ............................................ 25

Listagem 10 – Melhores programas e gêneros ......................................................................... 25

Listagem 11 – Programas e gêneros mais visualizados ........................................................... 25

Listagem 12 – Cálculo da distância.......................................................................................... 26

Listagem 13 – Cálculo da norma.............................................................................................. 26

Listagem 14 – Knn usuários ..................................................................................................... 26

Listagem 15 – Cálculo da similaridade entre usuários ............................................................. 28

Listagem 16 – Inserção dos usuários parecidos nas tabelas correspondentes .......................... 28

Listagem 17 – Inserção das recomendações geradas na tabela resultProgramas ..................... 29

Listagem 18 – Comparação entre o que foi assistido e recomendado ..................................... 30

Page 9: Relatório técnico i   fc 29-07

viii

LISTA DE EQUAÇÕES

Equação 1 – Cálculo dos Knn usuários .................................................................................... 27

Equação 2 – Cálculo da porcentagem de acerto de acordo com o número de recomendações

geradas ................................................................................................................ 31

Equação 3 – Cálculo da média da porcentagem de acerto de acordo com o número de

recomendações .................................................................................................... 31

Equação 4 – Cálculo da média da porcentagem de acerto de acordo com o número de dias

monitorados ......................................................................................................... 31

Page 10: Relatório técnico i   fc 29-07

ix

SUMÁRIO

CAPÍTULO 1 - INTRODUÇÃO ............................................................................................. 1

CAPÍTULO 2 - SISTEMAS DE RECOMENDAÇÃO ......................................................... 2

2.1 Filtragem de Informação .......................................................................................... 2

2.1.1 Filtragem Baseada em Conteúdo ............................................................... 3

2.1.2 Filtragem Colaborativa .............................................................................. 4

2.1.3 Filtragem Híbrida ...................................................................................... 4

CAPÍTULO 3 - ESTUDO DE CASO ..................................................................................... 6

3.1 Conhecendo e Preparando os Dados ........................................................................ 7

3.1.1 EPG ............................................................................................................ 8

3.1.2 Histórico dos usuários ............................................................................. 13

3.2 Metodologia ............................................................................................................ 22

3.3 Simulação ............................................................................................................... 24

CAPÍTULO 4 - RESULTADOS ........................................................................................... 31

4.1 Porcentagem de Acerto: programas por usuários ................................................... 32

4.2 Porcentagem de Acerto: gêneros por usuário ......................................................... 41

4.3 Porcentagem de Acerto: comparação de gêneros e programas entre usuários do

mesmo domicílio .......................................................................................................... 50

4.4 Porcentagem de Acerto: comparação entre programas e gêneros por usuário ....... 57

4.5 Porcentagem de Acerto: médias dos programas e gêneros .................................... 68

CAPÍTULO 5 - CONCLUSÕES ........................................................................................... 70

REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 71

Page 11: Relatório técnico i   fc 29-07

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 e 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 Colaborativa

aplicada aos dados de TV Digital fornecidos pelo IBOPE1 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 avaliar como

a Filtragem Colaborativa pode ser utilizada em sistemas de recomendação no contexto da TV

Digital.

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

Page 12: Relatório técnico i   fc 29-07

2

CAPÍTULO 1 -

CAPÍTULO 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-

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

2

Page 13: Relatório técnico i   fc 29-07

3

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).

Page 14: Relatório técnico i   fc 29-07

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.

Page 15: Relatório técnico i   fc 29-07

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).

Page 16: Relatório técnico i   fc 29-07

6

CAPÍTULO 3 - ESTUDO DE CASO

Este estudo de caso teve como objetivo avaliar o processo e as implicações que a

Filtragem Colaborativa gera ao ser utilizada no contexto da TVD Portátil. A necessidade de se

gerar recomendações melhores que as baseadas apenas em Filtragem de Conteúdo também

motivou o desenvolvimento deste estudo de caso. As seções deste capítulo descrevem com

detalhes como o estudo de caso foi realizado.

Considera-se, para os testes, o contexto apresentado na Figura 1. O usuário interage com

a TVD disponível em seu aparelho celular. A rede broadcast transmite áudio, vídeo e dados

(como o EPG – Guia Eletrônico de Programação) para o celular. O celular captura e armazena

tudo o que o usuário visualiza. Quando o usuário solicita a recomendação, o celular envia os

dados do EPG e do seu histórico para o servidor de recomendações. O servidor faz todo o

processamento de geração das recomendações utilizando a Filtragem Colaborativa e envia a

lista de recomendações para o usuário. O usuário, então, visualiza a lista no display do

dispositivo e pode selecionar alguma delas ou não.

Figura 1 – Contexto do Estudo de Caso

3

Page 17: Relatório técnico i   fc 29-07

7

3.1 Conhecendo e Preparando os Dados

Os dados fornecidos pelo IBOPE continham as informações do EPG, histórico de

visualização do usuário (o que o telespectador assistiu) e também as informações

socioeconômicas dos indivíduos de cada domicilio. Todos esses dados do IBOPE foram

separados e armazenados no banco de dados MySQL. Os dados compreendem 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 ilustra 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

Qtde domicílios Qtde TVs Qtde indivíduos

1 1 2

2 1 3

3 2 3

4 2 2

5 1 2

6 2 3

Total 15

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-

casa

44 45 39 32 60 36

Grau de

instrução do

chefe-de-

casa

Primário

incompleto

Ginasial

incompleto

Ginasial

incompleto

Colegial

completo

Colegial

incompleto

Colegial

completo

Sexo do

indivíduo 1 Feminino Feminino Feminino Feminino Feminino Feminino

Idade do

indivíduo 1 44 45 39 32 60 36

Page 18: Relatório técnico i   fc 29-07

8

Domicílio 1 2 3 4 5 6

Sexo do

Indivíduo 2 Feminino Masculino Masculino Masculino Masculino Masculino

Idade do

indivíduo 2 8 48 40 30 77 38

Sexo do

indivíduo 3 Feminino Feminino Masculino

Idade do

indivíduo 3

Em seguida, foram criadas as tabelas no banco de dados para armazenar essas

informações, como ilustram as Figuras 2, 3 e 5. A Figura 4 indica a captura de tela da tabela

users, que contém informações básicas dos usuários.

3.1.1 EPG

O EPG é 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

Figura 2 –

Características dos

domicílios

Figura 3 –

Características

socioeconômicas

Figura 5 – Tabela

usuários

Figura 4 – Conteúdo da tabela

usuários

Page 19: Relatório técnico i   fc 29-07

9

Aberta, com início às 00:00:00 e término às 05:59:00. A Figura 6 ilustra uma amostra do

layout inicial desses arquivos e a Tabela 3 apresenta como esse layout foi organizado.

Figura 6 – 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,

Page 20: Relatório técnico i   fc 29-07

10

reformatados de acordo com a Tabela 4. Após a exportação, foi feita a limpeza dos dados

desnecessários.

Tabela 3 – Identificando os campos nos arquivos TXT

Coluna Conteúdo Identificação

1.ª 005100PNREXXXXX 005 Código da emissora

100PNREXXXXX Descartado

2.ª 002645RELIGIOSO MAT 002645 Código do programa

RELIGIOSO MAT Nome do programa

3.ª 000000 Descartado

4.ª 0000 Descartado

5.ª 060000080000DIA_05

060000 Início do programa

080000 Fim do

programa

DIA_05 Dia do

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ções 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 no 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

Page 21: Relatório técnico i   fc 29-07

11

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:2007 e constam do Anexo C - “Descritor de gênero no descritor de conteúdo”.

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 dos 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 identificação de aproximadamente 800

programas diferentes. A Tabela 5 ilustra a relação quantidade de programas/categorias

encontrada no EPG. No MySQL também foram criadas tabelas para guardar as informações

do EPG. As Figuras de 7 a 13 apresentam essas tabelas.

Tabela 5 – Relação quantidade de programas/categoria

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

Page 22: Relatório técnico i   fc 29-07

12

Figura 7 – Tabela que

contém os descritores de

gênero

Figura 8 – Tabela que contém os

descritores de subgênero

Figura 9 – Tabela que contém os

descritores de gênero com seus

respectivos subgêneros

Figura 10 – Tabela que

contém os códigos originais

das emissoras

Figura 11 – Tabela que contém os

códigos das emissoras

Figura 12 – Tabela que contém os

programas

Figura 13 – Tabela que contém as informações da programação de TV

Page 23: Relatório técnico i   fc 29-07

13

3.1.2 Histórico dos usuários

As planilhas de sintonia que contêm os dados dos usuários, foram modificadas de

forma que técnicas de Filtragem Colaborativa pudessem ser aplicadas. Cada domicílio possui

uma quantidade de usuários, que foram monitorados separadamente. Esses dados vieram

todos juntos nas planilhas de sintonia e foi necessário separá-los. A Figura 14 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 é preenchida com o número do canal

que aquele indivíduo está assistindo naquela TV, naquele horário, naquele dia e naquele

domicílio.

Figura 14 – Amostra das planilhas de sintonia

Os dados foram, então, separados por domicílios e, em seguida, por usuários de cada

domicílio. Apesar de alguns domicílios possuírem mais de uma TV, percebeu-se que não há

registros de monitoramento em mais de uma TV ao mesmo tempo e, portanto, considera-se

que o domicílio tem apenas uma TV. A Figura 15 apresenta como os dados foram

organizados no momento da separação. A coluna Domicílio indica o domicílio ao qual aquele

indivíduo pertence. A coluna Dia indica o dia da visualização do programa. A coluna Horário

Page 24: Relatório técnico i   fc 29-07

14

indica a hora de visualização. A coluna Indivíduo indica qual é o usuário que está vendo

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, que 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 16.

Figura 15 – Planilhas após organização

Figura 16 – Tabela para

armazenamento

Figura 17 – Tabela que resulta da

Listagem 1

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.

Page 25: Relatório técnico i   fc 29-07

15

INSERT INTO d1_v2

SELECT d.id_d1, d.domicílio, d.dia, d.Horário, 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

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.Horário > = e.horaInicio) and (d.Horário <= e.horaFim))

ORDER BY d.id_users,d.dia,d.Horário;

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.

Page 26: Relatório técnico i   fc 29-07

16

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.horaInicio, 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.Horário=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

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.inicioSintonia) 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 ) )

Page 27: Relatório técnico i   fc 29-07

17

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.inicioSintonia)) * 60) +

minute(subtime(d.fimSintonia,d.inicioSintonia))) as duracaoS2, 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_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 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

Page 28: Relatório técnico i   fc 29-07

18

Figura 18 – Tabela que contém a

mescla do EPG com o histórico do

usuário

Figura 19 – Tabela com os novos

campos início e fim da sintonia

Figura 20 – Tabela com o

resultado de SUBTIME()

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';

Page 29: Relatório técnico i   fc 29-07

19

INSERT INTO d1_v8

SELECT d.domicílio, d.id_d1, d.id_users, d.id_epg, d.dia, d.inicioSintonia, d.fimSintonia,

d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @manha as periodo,

d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d1_v7 d

WHERE (inicioSintonia>='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.inicioSintonia, d.fimSintonia,

d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @tarde as periodo,

d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM dx_v7 d

WHERE (inicioSintonia>='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.inicioSintonia, d.fimSintonia,

d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @noite as periodo,

d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM dx_v7 d

WHERE (inicioSintonia>='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.inicioSintonia, d.fimSintonia,

d.duracaoSintonia as duracaoS1, d.duracaoS2, d.diaSemana, @madrugada as periodo,

d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM dx_v7 d

WHERE (inicioSintonia>='00:00:00' and fimSintonia<='06:59:00');

Listagem 7 – Cálculo do período do dia

O último passo foi o de separar os usuários de cada domicílio em tabelas específicas.

A consulta fez uma comparação entre o domicílio e o usuário e cria o campo userid, que

identifica o usuário X que pertence ao domicílio X.

INSERT INTO user_11 SELECT '11' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d1_v8 d WHERE (domicílio='1' and id_users='1');

Page 30: Relatório técnico i   fc 29-07

20

INSERT INTO user_12 SELECT '12' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d1_v8 d WHERE (domicílio='1' and id_users='2');

INSERT INTO user_21 SELECT '21' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d2_v8 d WHERE (domicílio='2' and id_users='1');

INSERT INTO user_22 SELECT '22' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d2_v8 d WHERE (domicílio='2' and id_users='2');

INSERT INTO user_23 SELECT '23' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d2_v8 d WHERE (domicílio='2' and id_users='3');

INSERT INTO user_31 SELECT '31' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d3_v8 d WHERE (domicílio='3' and id_users='1');

INSERT INTO user_32 SELECT '32' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d3_v8 d WHERE (domicílio='3' and id_users='2');

INSERT INTO user_33 SELECT '33' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d3_v8 d WHERE (domicílio='3' and id_users='3');

INSERT INTO user_41 SELECT '41' as userid, d.dia, d.inicioSintonia, d.fimSintonia,

d.duracaoS2, d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d4_v8 d WHERE (domicílio='4' and id_users='1');

INSERT INTO user_42 SELECT '42' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d4_v8 d WHERE (domicílio='4' and id_users='2');

INSERT INTO user_51 SELECT '51' as userid, d.dia, d.inicioSintonia, d.fimSintonia,

d.duracaoS2, d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d5_v8 d WHERE (domicílio='5' and id_users='1');

Page 31: Relatório técnico i   fc 29-07

21

INSERT INTO user_52 SELECT '52' as userid, d.dia, d.inicioSintonia, d.fimSintonia,

d.duracaoS2, d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d5_v8 d WHERE (domicílio='5' and id_users='2');

INSERT INTO user_53 SELECT '53' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d5_v8 d WHERE (domicílio='5' and id_users='3');

INSERT INTO user_61 SELECT '61' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d6_v8 d WHERE (domicílio='6' and id_users='1');

INSERT INTO user_62 SELECT '62' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d6_v8 d WHERE (domicílio='6' and id_users='2');

INSERT INTO user_63 SELECT '63' as userid, d.dia, d.inicioSintonia, d.fimSintonia, d.duracaoS2,

d.diaSemana, d.periodo, d.nomePrograma, d.nomeEmissora, d.descritorGS

FROM d6_v8 d WHERE (domicílio='6' and id_users='3');

Listagem 8 – Separando os usuários de cada domicílio

Figura 21 – Tabela que adiciona o

campo de duração do tipo inteiro

Figura 22 – Tabela que adiciona o

dia da semana

Page 32: Relatório técnico i   fc 29-07

22

Figura 23 – Tabela que adiciona o

período

Figura 24 – Tabela que contém a

versão final dos dados

Figura 25 – Tabela do

histórico de visualização

de cada usuário

3.2 Metodologia

Para aplicar a Filtragem Colaborativa foi necessário criar mais tabelas no banco. A

tabela ratings armazena o que todos os usuários visualizaram no dia analisado, além do

que foi visto no passado. A tabela myprofile armazena o que um usuário específico

visualizou no dia analisado, assim como as visualizações passadas desse usuário em

particular. A tabela similaruser armazena os usuários parecidos com o usuário analisado

levando em conta os programas, juntamente com a pontuação. A tabela similaruser2 faz o

mesmo, entretanto, está relacionada aos gêneros e seus subgêneros. A tabela

resultProgramas tem como função armazenar os resultados das recomendações geradas,

tanto para programas quanto para gêneros. Esse resultado é utilizado para calcular a

porcentagem de acerto. As Figuras de 26 a 30 apresentam as tabelas cridas no MySQL.

Page 33: Relatório técnico i   fc 29-07

23

Figura 26 – Tabela que armazena as avaliações de

todos os usuários

Figura 27 – Tabela que armazena as informações

do usuário em análise

Figura 28 – Tabela que

armazena os usuários que

gostam de programas similares

Figura 29 – Tabela que

armazena os usuários que

gostam de gêneros similares

Figura 30 – Tabela que armazena

as recomendações

(gêneros/programas) obtidas

Os passos para a execução da Filtragem Colaborativa nesses dados são listados a

seguir:

1. Os dados são inseridos no banco, conforme o usuário e o dia a ser analisado;

2. Encontram-se os 10 melhores programas e gêneros para se recomendar, de

acordo com os outros usuários;

3. Encontram-se os 10 programas e gêneros mais visualizados, de acordo com os

outros usuários;

4. Calcula-se a distância dos programas e dos gêneros;

5. Calcula-se a norma dos usuários e do usuário em análise;

6. Encontram-se os knn usuários para os programas e para os gêneros;

7. Calcula-se o quanto cada usuário é parecido com o outro;

8. Os Knn usuários são salvos nas tabelas similaruser e similaruser2;

9. Encontram-se as sugestões para programas e gêneros;

10. As recomendações geradas são comparadas ao programa/gênero assistido pelo

Page 34: Relatório técnico i   fc 29-07

24

usuário no dia seguinte e calcula-se, dessa forma, a porcentagem de acerto das

recomendações, tanto para os programas, quanto para os gêneros.

Esses passos se repetem de forma iterativa. Após seguir os passos para o primeiro

usuário e para o primeiro dia, aplica-se novamente ao primeiro usuário e ao segundo dia e

assim por diante. Vale ressaltar que sempre é levado em consideração o que foi visto no dia

da pesquisa e nos dias anteriores.

3.3 Simulação

Nesta seção descreve-se a aplicação dos passos citados na seção 3.2. Após a criação

de todas as tabelas necessárias, iniciou-se o processo de simulação. Como existem 15

usuários e a simulação foi feita para todos, apresenta-se aqui apenas a simulação para um

usuário.

Usuário 11 – Dia 1:

No primeiro passo, os dados correspondentes ao primeiro dia são inseridos nas tabelas

ratings e myprofile, conforme ilustra a Listagem 9.

insert into myprofile select * from user_11 where dia='2008-03-05';

insert into ratings select * from user_11 where dia='2008-03-05';

insert into ratings select * from user_12 where dia='2008-03-05'

insert into ratings select * from user_21 where dia='2008-03-05';

insert into ratings select * from user_22 where dia='2008-03-05';

insert into ratings select * from user_23 where dia='2008-03-05';

insert into ratings select * from user_31 where dia='2008-03-05';

insert into ratings select * from user_32 where dia='2008-03-05';

insert into ratings select * from user_33 where dia='2008-03-05';

insert into ratings select * from user_41 where dia='2008-03-05';

insert into ratings select * from user_42 where dia='2008-03-05';

insert into ratings select * from user_51 where dia='2008-03-05';

insert into ratings select * from user_52 where dia='2008-03-05';

Page 35: Relatório técnico i   fc 29-07

25

insert into ratings select * from user_61 where dia='2008-03-05';

insert into ratings select * from user_62 where dia='2008-03-05';

insert into ratings select * from user_63 where dia='2008-03-05';

Listagem 9 – Inserindo os dados nas tabelas ratings e myprofile

No passo seguinte, os 10 melhores programas e gêneros da base foram recomendados,

de acordo com os outros usuários. Calculou-se a média e a quantidade de vezes que o

programa/gênero foi visualizado agrupando-se, na primeira consulta, pelo nome do

programa e, na segunda, pelo gênero. A Listagem 10 apresenta a consulta SQL.

SELECT round(avg(duracao),1) AS avgrating, count(userid) AS nbratings, r.descritorGS,

r.nomePrograma FROM ratings r GROUP BY r.nomePrograma ORDER BY avgrating

DESC LIMIT 10;

SELECT round(avg(duracao),1) AS avgrating, count(userid) AS nbratings, r.descritorGS,

r.nomePrograma FROM ratings r GROUP BY r.descritorGS ORDER BY avgrating

DESC LIMIT 10;

Listagem 10 – Melhores programas e gêneros

No terceiro passo, os programas e gêneros mais visualizados são encontrados,

conforme demonstra a Listagem 11. A consulta SQL é a mesma utilizada na Listagem 10,

entretanto, a ordem dos dados na Listagem 11 é dada pelo número de visualizações.

SELECT round(avg(duracao),1) AS avgrating, count(userid) AS nbratings, nomePrograma,

descritorGS FROM ratings GROUP BY nomePrograma ORDER BY nbratings DESC;

SELECT round(avg(duracao),1) AS avgrating, count(userid) AS nbratings, descritorGS,

nomePrograma FROM ratings GROUP BY descritorGS ORDER BY nbratings DESC;

Listagem 11 – Programas e gêneros mais visualizados

No passo 4, calcula-se a distância dos programas e dos gêneros. Soma-se a duração da

tabela myprofile com a duração da tabela ratings, quando os nomes de programas/gêneros

em ambas são iguais (Listagem 12).

SELECT r.userid, sum((m.duracao)*(r.duracao)) AS dist FROM ratings r, myprofile m WHERE

m.nomePrograma = r.nomePrograma GROUP BY r.userid;

Page 36: Relatório técnico i   fc 29-07

26

SELECT r.userid, sum((m.duracao)*(r.duracao)) AS dist FROM ratings r, myprofile m WHERE

m.descritorGS = r.descritorGS GROUP BY r.userid;

Listagem 12 – Cálculo da distância

No passo 5, calcula-se a norma da tabela ratings e da tabela myprofile. Multiplica-se a

duração e, em seguida, faz-se a soma (Listagem 13).

SELECT userid, sum((duracao)*(duracao)) AS norm FROM ratings r GROUP BY userid;

SELECT sum((duracao)*(duracao)) AS norm FROM myprofile;

Listagem 13 – Cálculo da norma

Assim, os knn usuários para os programas e para os gêneros são calculados. A

Listagem 14 apresenta a consulta SQL utilizada. São necessárias três subconsultas para

calcular os knn usuários.

SELECT distances.userid AS userid, dist/(sqrt(my.norm)*sqrt(users.norm)) AS score FROM

(SELECT r.userid, sum((m.duracao)*(r.duracao)) AS dist FROM ratings r, myprofile m

WHERE m.nomePrograma = r.nomePrograma GROUP BY r.userid) AS distances,

(SELECT userid, sum((duracao)*(duracao)) AS norm

FROM ratings r GROUP BY userid) AS users,

(SELECT sum((duracao)*(duracao)) AS norm FROM myprofile) AS my

WHERE users.userid = distances.userid ORDER BY score DESC;

Listagem 14 – Knn usuários

Para o melhor entendimento, as consultas são explicadas mais detalhadamente a

seguir:

1. Primeiro subselect:

a) sum((m.duracao)*(r.duracao)) AS dist FROM ratings r, myprofile m: Cálculo da norma das

tabelas myprofile e ratings. A consulta recebe o nome dist, para que o seu

resultado possa ser manipulado.

b) (SELECT r.userid, sum((m.duracao)*(r.duracao)) AS dist FROM ratings r, myprofile m WHERE

m.nomePrograma = r.nomePrograma GROUP BY r.userid) AS distances: Cálculo da norma das

tabelas myprofile e ratings quando os nomes dos programas em ambas as

tabelas são iguais. Agrupa-se pelo número de usuários da tabela ratings. A

consulta recebe o nome distances, para que o seu resultado possa ser

manipulado.

Page 37: Relatório técnico i   fc 29-07

27

2. Segundo subselect:

a) sum((duracao)*(duracao)) AS norm FROM ratings r: Cálculo da norma da tabela ratings.

b) (SELECT userid, sum((duracao)*(duracao)) AS norm FROM ratings r GROUP BY userid) AS users:

Cálculo da norma da tabela ratings agrupada pelo número de usuário. A

consulta recebe o nome users, para que o seu resultado possa ser manipulado.

3. Terceiro subselect:

a. (SELECT sum((duracao)*(duracao)) AS norm FROM myprofile) AS my: O Cálculo da norma

da tabela myprofile recebe o nome my, para ser manipulada.

b. (SELECT sum((duracao)*(duracao)) AS norm FROM myprofile) AS my WHERE users.userid =

distances.userid ORDER BY score DESC: Cálculo da norma da tabela myprofile

quando o campo userid do alias users for igual ao campo userid do alias

distances colocando a pontuação em ordem decrescente.

4. Select principal: SELECT distances.userid AS userid, dist/(sqrt(my.norm) * sqrt(users.norm)) AS

score FROM: Selecionar os usuários da consulta distances. Cálculo da pontuação a partir das

consultas em seguida.

Resumindo, essa consulta faz o cálculo das normas, usando o campo duração como

parâmetro, conforme ilustra a Equação 1:

∑( )

(√(∑ ) √(∑ ))

Equação 1 – Cálculo dos Knn usuários

O passo 7 consiste em calcular o quanto cada usuário é parecido com outro, tanto em

gênero, quanto em programa. A consulta SQL determina myrating para o campo duração da

tabela myprofile (visualização do usuário em análise) e herrating (visualização do outro

usuário) para o campo duração da tabela ratings. A seleção é feita quando o usuário em

análise e os nomes dos programas/gêneros nas tabelas ratings, myprofile e EPG são iguais e

esses são agrupados e ordenados pelo nome do programa/gênero da tabela myprofile. Isso é

feito para todos os usuários, sendo que é apenas necessário trocar o userid.

Page 38: Relatório técnico i   fc 29-07

28

SELECT m.nomePrograma, r.descritorGS, m.duracao AS myrating, r.duracao AS herrating

FROM ratings r, myprofile m, matrixepg e WHERE r.userid=11 AND

r.nomePrograma=m.nomePrograma AND r.nomePrograma=e.nomePrograma GROUP BY

m.nomePrograma ORDER BY m.nomePrograma;

SELECT m.descritorGS, m.nomePrograma, m.duracao AS myrating, r.duracao AS herrating

FROM ratings r, myprofile m, matrixepg e WHERE r.userid=11 AND

r.descritorGS=m.descritorGS AND r.descritorGS=e.descritorGeneroSubgenero GROUP BY

m.descritorGS ORDER BY m.descritorGS;

Listagem 15 – Cálculo da similaridade entre usuários

Os Knn usuários são salvos nas tabelas similaruser e similaruser2.

insert into similaruser

SELECT distances.userid AS userid, dist/(sqrt(my.norm)*sqrt(users.norm)) AS score FROM

(SELECT r.userid, sum((m.duracao)*(r.duracao)) AS dist FROM ratings r, myprofile m

WHERE m.nomePrograma = r.nomePrograma GROUP BY r.userid) AS distances,

(SELECT r.userid, sum((duracao)*(duracao)) AS norm FROM ratings r

GROUP BY userid) AS users,

(SELECT sum((duracao)*(duracao)) AS norm FROM myprofile) AS my

WHERE users.userid = distances.userid ORDER BY score DESC LIMIT 30;

insert into similaruser2

SELECT distances.userid AS userid, dist/(sqrt(my.norm)*sqrt(users.norm)) AS score FROM

(SELECT r.userid, sum((m.duracao)*(r.duracao)) AS dist FROM ratings r, myprofile m

WHERE m.descritorGS = r.descritorGS GROUP BY r.userid) AS distances,

(SELECT r.userid, sum((duracao)*(duracao)) AS norm FROM ratings r

GROUP BY userid) AS users,

(SELECT sum((duracao)*(duracao)) AS norm FROM myprofile) AS my

WHERE users.userid = distances.userid ORDER BY score DESC LIMIT 30;

Listagem 16 – Inserção dos usuários parecidos nas tabelas correspondentes

No penúltimo passo, encontram-se as sugestões para programas e gêneros, as quais são

inseridas na tabela resultProgramas.

insert into resultProgramas

SELECT m.nomePrograma, m.descritorGeneroSubgenero, score, nbratings FROM epg m,

(SELECT nomePrograma, sum(r.duracao*similaruser.score) AS score,

Page 39: Relatório técnico i   fc 29-07

29

count(similaruser.userid) AS nbratings FROM similaruser, ratings r

WHERE similaruser.userid = r.userid GROUP BY nomePrograma ORDER BY score

DESC LIMIT 10) AS scores WHERE m.nomePrograma = scores.nomePrograma

GROUP BY nomePrograma ORDER BY score DESC;

insert into resultProgramas

SELECT r.nomePrograma, r.descritorGS, sum(r.duracao*s.score) AS score, count(s.userid) AS

nbratings FROM similaruser2 s, ratings r WHERE s.userid = r.userid GROUP BY r.descritorGS

ORDER BY score DESC LIMIT 10;

Listagem 17 – Inserção das recomendações geradas na tabela resultProgramas

Quebrando a primeira consulta SQL:

1. Subselect

a) sum(r.duracao*similaruser.score) AS score: Cálculo da pontuação. Somatório da

multiplicação do campo duração da tabela ratings pelo campo score da tabela

similaruser. Recebe o nome score, pontuação.

b) count(similaruser.userid) AS nbratings: O contador dos usuários da tabela similaruser

recebe o nome nbratings, número de visualizações.

c) (SELECT nomePrograma, sum(r.duracao*similaruser.score) AS score, count(similaruser.userid) AS

nbratings FROM similaruser, ratings r WHERE similaruser.userid = r.userid GROUP BY nomePrograma

ORDER BY score DESC LIMIT 10) AS scores: Selecionar os nomes dos programas, a

pontuação e o número de visualizações quando os usuários (userid) são iguais,

agrupar pelo nome do programa, classificar a pontuação em ordem crescente,

limitar o retorno a 10 registros. Recebe o nome de scores.

2. Select principal: Selecionar o nome dos programas, os descritores de gêneros, a

pontuação, o número de avaliações quando os nomes dos programas são iguais nas tabelas

EPG e scores, agrupar pelo nome do programa e classificar a pontuação em ordem

decrescente.

Segunda consulta SQL: Selecionar os nomes dos programas, os descritores de gêneros, a

pontuação, o número de visualizações quando os usuários são iguais em ambas as tabelas.

Agrupar pelo descritor de gênero e classificar a pontuação em ordem decrescente, limitado a

10 registros.

Page 40: Relatório técnico i   fc 29-07

30

As recomendações geradas são comparadas com o que o usuário assistiu no dia seguinte e

então é calculada a porcentagem de acerto das recomendações, tanto para os programas,

quanto para os gêneros. As consultas SQLs, ilustradas na Listagem 18, verificam se no dia

posterior, o nome do programa da tabela resultPrograms consta na tabela do usuário.

SELECT r.*, u.* FROM resultProgramas r, user_11 u

WHERE u.dia='2008-03-06' AND r.nomePrograma = u.nomePrograma

GROUP BY r.nomePrograma ORDER BY score DESC;

SELECT r.*, u.* FROM resultProgramas r, user_11 u

WHERE u.dia='2008-03-06‘ AND u.descritorGS = r.descritorGeneroSubgenero

GROUP BY r.descritorGeneroSubgenero ORDER BY score DESC;

Listagem 18 – Comparação entre o que foi assistido e recomendado

Ao fim desse ciclo, inicia-se o próximo dia de avaliação. Por exemplo, avaliando o

usuário 11 no dia 06: a tabela myprofile contém os dados do usuário 11 correspondentes ao

dia 05 e a tabela ratings os dados de todos os usuários correspondentes ao dia 05. No dia -6,

os dados correspondentes ao dia 06 são inseridos nas tabelas, juntando-se aos dados do dia 05,

na tabela myprofile os dados do usuário 11 e na tabela ratings os dados de todos os usuários,

ambos correspondentes ao dia 06. Assim, simulam-se recomendações diárias e para cada

usuário.

Page 41: Relatório técnico i   fc 29-07

31

RESULTADOS

Neste capítulo, os resultados obtidos com a aplicação da técnica de Filtragem

Colaborativa nos dados de visualização de TV fornecidos pelo IBOPE são apresentados em

detalhes. A porcentagem de acerto de cada usuário é apresentada em forma de gráficos e o

modo como esses foram gerados também é explicitado.

Dois atributos alvos foram utilizados: os nomes dos programas e os descritores de

gêneros. Para todos os gráficos, foram feitas planilhas no Excel que contalibizaram quantos

programas/gêneros a consulta SQL de comparação acertou. Como o número de

recomendações geradas foi 10, então, a fórmula base para o cálculo da porcentagem de acerto

utilizada foi:

Equação 2 – Cálculo da 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, tanto para o número

de recomendações geradas, quanto para a quantidade de dias. Nesse caso, foram utilizadas as

seguintes equações indicadas abaixo:

∑( )

Equação 3 – Cálculo da média da porcentagem de acerto de acordo com o número de

recomendações

∑( )

Equação 4 – Cálculo da média da porcentagem de acerto de acordo com o número de dias

monitorados

4

Page 42: Relatório técnico i   fc 29-07

32

4.1 Porcentagem de Acerto: programas por usuários

Nesta subseção, os gráficos para a porcentagem de acerto de programas para cada

usuário são apresentados, assim como as planilhas que computam essa porcentagem de acerto.

Tabela 6 – % de Acerto de programas dos usuários 11, 12, 21, 22 e 23

Usuário 11 Usuário 12 Usuário 21 Usuário 22 Usuário 23

Dia Recom. Acerto % Acerto % Acerto % Acerto % Acerto %

1 10 2 20% 2 20% 4 40% 0 0% 5 50%

2 10 2 20% 2 20% 2 20% 1 10% 0 0%

3 10 2 20% 2 20% 7 70% 6 60% 5 50%

4 10 4 40% 4 40% 4 40% 4 40% 6 60%

5 10 0 0% 0 0% 0 0% 3 30% 5 50%

6 10 0 0% 0 0% 0 0% 0 0% 0 0%

7 10 2 20% 1 10% 4 40% 3 30% 6 60%

8 10 0 0% 0 0% 6 60% 0 0% 3 30%

9 10 2 20% 2 20% 4 40% 0 0% 2 20%

10 10 4 40% 3 30% 7 70% 0 0% 6 60%

11 10 3 30% 3 30% 4 40% 6 60% 4 40%

12 10 0 0% 0 0% 0 0% 3 30% 1 10%

13 10 0 0% 0 0% 0 0% 0 0% 0 0%

14 10 0 0% 0 0% 4 40% 4 40% 7 70%

Soma 21 2,1 19 1,9 46 4,6 30 3 50 5

Média 1

21%

19%

46%

30%

50%

Média 2 15% 14% 33% 21% 36%

Tabela 7 – % de Acerto de programas dos usuários 31, 32, 33, 41 e 42

Usuário 31 Usuário 32 Usuário 33 Usuário 41 Usuário 42

Dia Recom. Acerto % Acerto % Acerto % Acerto % Acerto %

1 10 5 50% 0 0% 1 10% 0 0% 3 30%

2 10 0 0% 0 0% 1 10% 1 10% 3 30%

3 10 0 0% 0 0% 0 0% 0 0% 4 40%

4 10 2 20% 0 0% 0 0% 2 20% 0 0%

5 10 0 0% 0 0% 0 0% 0 0% 0 0%

6 10 0 0% 0 0% 0 0% 0 0% 0 0%

7 10 5 50% 1 10% 0 0% 0 0% 6 60%

8 10 4 40% 3 30% 0 0% 0 0% 3 30%

9 10 0 0% 3 30% 1 10% 0 0% 5 50%

10 10 1 10% 0 0% 1 10% 1 10% 0 0%

11 10 1 10% 1 10% 0 0% 0 0% 3 30%

12 10 0 0% 0 0% 0 0% 0 0% 4 40%

13 10 0 0% 0 0% 0 0% 0 0% 0 0%

14 10 1 10% 2 20% 0 0% 3 30% 5 50%

Soma 19 1,9 10 1 4 0,4 7 0,7 36 3,6

Média 1

19%

10%

4%

7%

36%

Média 2 14% 7% 3% 5% 26%

Page 43: Relatório técnico i   fc 29-07

33

Tabela 8 – % de Acerto de de programas dos usuários 51, 52, 61, 62 e 63

Usuário 51 Usuário 52 Usuário 61 Usuário 62 Usuário 63

Dia Recom. Acerto % Acerto % Acerto % Acerto % Acerto %

1 10 2 20% 4 40% 5 50% 0 0% 5 50%

2 10 3 30% 5 50% 2 20% 4 40% 6 60%

3 10 0 0% 2 20% 5 50% 3 30% 6 60%

4 10 4 40% 5 50% 4 40% 0 0% 2 20%

5 10 2 20% 3 30% 0 0% 2 20% 0 0%

6 10 0 0% 0 0% 0 0% 0 0% 0 0%

7 10 3 30% 3 30% 6 60% 2 20% 4 40%

8 10 3 30% 3 30% 7 70% 0 0% 4 40%

9 10 1 10% 1 10% 4 40% 2 20% 6 60%

10 10 3 30% 4 40% 0 0% 0 0% 7 70%

11 10 3 30% 4 40% 5 50% 0 0% 8 80%

12 10 4 40% 4 40% 2 20% 3 30% 5 50%

13 10 0 0% 0 0% 0 0% 1 10% 0 0%

14 10 3 30% 3 30% 4 40% 1 10% 5 50%

Soma 31 3,1 41 4,1 44 4,4 18 1,8 58 5,8

Média 1

31%

41%

44%

18%

58%

Média 2 22% 29% 31% 13% 41%

Figura 31 - % de acerto programa usuário 11

Observa-se que os usuários 11 e 12 tiveram uma baixa porcentagem de acerto, atingindo

40% no máximo. Isso indica que as recomendações de programas sugeridas ao usuário não

foram satisfatórias. Nesse caso, pode-se utilizar as recomendações de gêneros para tentar

encontrar mais programas que estejam de acordo com as preferências do usuário. Os usuários

21 e 22 têm uma porcentagem de acerto maior, que atinge aproximadamente 70%. Esse valor

indica que as recomendações de programas encontradas são adequadas. Entretanto, vale

Page 44: Relatório técnico i   fc 29-07

34

observar que em alguns dias a porcentagem de acerto foi zero. O usuário 23 também obteve

boas recomendações, atingindo aproximadamente 75% de acerto.

Figura 32 - % de acerto programa usuário 12

Figura 33 - % de acerto programa usuário 21

Page 45: Relatório técnico i   fc 29-07

35

Figura 34 - % de acerto programa usuário 22

Figura 35 - % de acerto programa usuário 23

Já o usuário 31, durante vários dias, teve uma baixa porcentagem de acerto, atingindo

aproximadamente 50%. Os usuários 32 e 33 obtiveram porcentagem de acerto baixa, o que

Page 46: Relatório técnico i   fc 29-07

36

não é adequado. Isso indica que a Filtragem Colaborativa não acertou os programas

recomendados para esses usuários. O usuário 41 também obteve uma baixa porcentagem de

acerto, enquanto que, para o usuário 42, a Filtragem Colaborativa conseguiu sugerir os

programas, atingindo aproximadamente 60% de acerto.

Figura 36 - % de acerto programa usuário 31

Figura 37 - % de acerto programa usuário 32

Page 47: Relatório técnico i   fc 29-07

37

Figura 38 - % de acerto programa usuário 33

Figura 39 - % de acerto programa usuário 41

Page 48: Relatório técnico i   fc 29-07

38

Figura 40 - % de acerto programa usuário 42

O usuário 51 atingiu aproximadamente 40% de acerto e o usuário 52, 50%. O usuário

61 obteve uma boa porcentagem de acerto, aproximadamente 70%, enquanto o usuário 62

atingiu aproximadamente 40%. O usuário 63 obteve a melhor porcentagem de acerto,

aproximando-se de 80%. Os resultados acima podem ser visualizados nas figuras de X a Y.

Figura 41 - % de acerto programa usuário 51

Page 49: Relatório técnico i   fc 29-07

39

Figura 42 - % de acerto programa usuário 52

Figura 43 - % de acerto programa usuário 61

Page 50: Relatório técnico i   fc 29-07

40

Figura 44 - % de acerto programa usuário 62

Figura 45 - % de acerto programa usuário 63

Page 51: Relatório técnico i   fc 29-07

41

4.2 Porcentagem de Acerto: gêneros por usuário

Nesta subseção são apresentados as planilhas e os gráficos que ilustram a porcentagem

de acerto de gêneros para cada usuário.

Tabela 9 – % de Acerto dos gêneros dos usuários 11, 12, 21, 22, 23

Usuário 11 Usuário 12 Usuário 21 Usuário 22 Usuário 23

Dia Recom. Acerto % Acerto % Acerto % Acerto % Acerto %

1 10 4 40% 4 40% 6 60% 0 0% 7 70%

2 10 2 20% 2 20% 9 90% 4 40% 6 60%

3 10 2 20% 2 20% 6 60% 8 80% 5 50%

4 10 5 50% 5 50% 7 70% 5 50% 8 80%

5 10 0 0% 2 20% 0 0% 4 40% 6 60%

6 10 2 20% 2 20% 3 30% 4 40% 5 50%

7 10 2 20% 2 20% 7 70% 3 30% 8 80%

8 10 1 10% 1 10% 6 60% 0 0% 5 50%

9 10 3 30% 3 30% 6 60% 0 0% 6 60%

10 10 7 70% 7 70% 8 80% 0 0% 8 80%

11 10 4 40% 4 40% 6 60% 7 70% 6 60%

12 10 3 30% 3 30% 1 10% 7 70% 2 20%

13 10 2 20% 2 20% 0 0% 4 40% 8 80%

14 10 4 40% 5 50% 5 50% 7 70% 7 70%

Soma 41 4,1 44 4,4 70 7 53 5,3 87 8,7

Média 1

41%

44%

70%

53%

87%

Média 2 29% 31% 50% 38% 62%

Tabela 10 – % de Acerto dos gêneros dos usuários 31, 32, 33, 41 e 42

Usuário 31 Usuário 32 Usuário 33 Usuário 41 Usuário 42

Dia Recom. Acerto % Acerto % Acerto % Acerto % Acerto %

1 10 5 50% 0 0% 1 10% 0 0% 4 40%

2 10 2 20% 0 0% 2 20% 1 10% 5 50%

3 10 6 60% 2 20% 0 0% 1 10% 4 40%

4 10 2 20% 3 30% 0 0% 3 30% 3 30%

5 10 6 60% 0 0% 0 0% 3 30% 2 20%

6 10 1 10% 2 20% 0 0% 0 0% 6 60%

7 10 5 50% 2 20% 0 0% 0 0% 8 80%

8 10 2 20% 2 20% 0 0% 0 0% 6 60%

9 10 0 0% 3 30% 2 20% 1 10% 6 60%

10 10 3 30% 2 20% 0 0% 2 20% 3 30%

11 10 2 20% 4 40% 0 0% 0 0% 7 70%

12 10 3 30% 3 30% 1 10% 1 10% 5 50%

13 10 0 0% 4 40% 0 0% 0 0% 5 50%

14 10 1 10% 4 40% 2 20% 3 30% 5 50%

Soma 38 3,8 31 3,1 8 0,8 15 1,5 69 6,9

Média 1

38%

31%

8%

15%

69%

Média 2 27% 22% 6% 11% 49%

Page 52: Relatório técnico i   fc 29-07

42

Tabela 11 – % de Acerto dos gêneros dos usuários 51, 52, 61, 62 e 63

Usuário 51 Usuário 52 Usuário 61 Usuário 62 Usuário 63

Dia Recom. Acerto % Acerto % Acerto % Acerto % Acerto %

1 10 2 20% 2 20% 3 30% 0 0% 7 70%

2 10 5 50% 3 30% 1 10% 3 30% 7 70%

3 10 1 10% 2 20% 5 50% 2 20% 5 50%

4 10 3 30% 5 50% 6 60% 0 0% 2 20%

5 10 4 40% 2 20% 4 40% 3 30% 0 0%

6 10 3 30% 4 40% 3 30% 4 40% 0 0%

7 10 5 50% 3 30% 7 70% 2 20% 5 50%

8 10 3 30% 4 40% 8 80% 0 0% 7 70%

9 10 4 40% 7 70% 3 30% 3 30% 7 70%

10 10 2 20% 3 30% 0 0% 0 0% 6 60%

11 10 4 40% 4 40% 7 70% 2 20% 6 60%

12 10 1 10% 2 20% 5 50% 2 20% 5 50%

13 10 2 20% 2 20% 3 30% 2 20% 1 10%

14 10 2 20% 2 20% 4 40% 1 10% 5 50%

Soma 41 4,1 45 4,5 59 5,9 24 2,4 63 6,3

Média 1

41%

45%

59%

24%

63%

Média 2 29% 32% 42% 17% 45%

Figura 46 - % de acerto gênero usuário 11

O usuário 11 e 12 atingiram uma boa porcentagem de acerto, aproximadamente 75%.

Conforme mostram os gráficos 46 e 47, os dias de 6 à 14 apresentam uma variação bem

parecida. Isso ocorre porque esses usuários pertencem ao mesmo domicílio. O usuário 21 e o

22 atingiram uma ótima porcentagem de acerto, aproximadamente 90% e 80%

respectivamente. Em alguns dias, como é possível observar, a porcentagem de acerto foi zero.

Page 53: Relatório técnico i   fc 29-07

43

O usuário 23 manteve uma boa porcentagem durante os dias monitorados, entre 40% e 80%.

Para o usuário 31, o acerto é melhores nos primeiros dias.

Figura 47 - % de acerto gênero usuário 12

Figura 48 - % de acerto gênero usuário 21

Page 54: Relatório técnico i   fc 29-07

44

Figura 49 - % de acerto gênero usuário 22

Figura 50 - % de acerto gênero usuário 23

Page 55: Relatório técnico i   fc 29-07

45

Como mostram os gráficos, os usuários 32 e 33 tiveram valores baixos, atingindo no

máximo 40% e 20% de acerto, respectivamente. O usuário 41 também obteve uma baixa

porcentagem. Já para o usuário 42, a Filtragem Colaborativa obteve uma boa porcentagem de

acerto, atingindo no máximo 80%.

Figura 51 - % de acerto gênero usuário 31

Figura 52 - % de acerto gênero usuário 32

Page 56: Relatório técnico i   fc 29-07

46

Figura 53 - % de acerto gênero usuário 33

Figura 54 - % de acerto gênero usuário 41

Page 57: Relatório técnico i   fc 29-07

47

Figura 55 - % de acerto gênero usuário 42

Os usuários 51 e 52 também apresentaram bons resultados. Ainda assim, o usuário 51

teve um desempenho um pouco abaixo comparado ao do apresentado pelo usuário 52. Os

usuários 61 e 63 obtiveram uma boa porcentagem, enquanto o usuário 62 apresentou valores

baixos.

Figura 56 - % de acerto gênero usuário 51

Page 58: Relatório técnico i   fc 29-07

48

Figura 57 - de acerto gênero usuário 52

Figura 58 - % de acerto gênero usuário 61

Page 59: Relatório técnico i   fc 29-07

49

Figura 59 - % de acerto gênero usuário 62

Figura 60 - % de acerto gênero usuário 63

Page 60: Relatório técnico i   fc 29-07

50

4.3 Porcentagem de Acerto: comparação de gêneros e programas entre

usuários do mesmo domicílio

Nesta subseção são apresentados os gráficos que comparam a porcentagem de acerto

entre os usuários do mesmo domicílio. Para esses usuários, a Filtragem Colaborativa

apresentou porcentagens parecidas, conforme se pode verificar pelos gráficos apresentados a

seguir, tanto em relação aos programas, quanto em relação aos gêneros.

Para os três usuários, a Filtragem Colaborativa atingiu uma boa porcentagem de acerto

tanto para os gêneros, quanto para os programas. O usuário 23 foi o que obteve melhor

porcentagem de acerto nos gêneros, ao passo que o usuário 21 obteve o melhor resultado nos

programas. Os gráficos demonstram que os usuários desse domicílio têm preferências

diferenciadas.

Como pode ser observado nos gráficos, o usuário 33 obteve uma baixíssima

porcentagem de acerto, tanto para os programas, quanto para os gêneros, se comparado aos

usuários 31 e 32. A Filtragem Colaborativa acertou mais para o usuário 31.

Nitidamente, a Filtragem Colaborativa acertou mais para o usuário 42 e o usuário 41

teve melhores porcentagens de acerto para os gêneros. Em relação aos programas, os usuários

51 e 52 obtiveram porcentages parecidas e, para os gêneros, as porcentagens se mantêm na

faixa de 20% à 40%. A Filtragem Colaborativa conseguiu bons acerto para esses usuários

tanto para os programas, quanto para os gêneros e vale ressaltar que o nível de acerto para

ambos se mantém semelhante.

Page 61: Relatório técnico i   fc 29-07

51

Figura 61 – Comparação de gêneros entre os usuários 11 e 12

Figura 62 – Comparação de gêneros entre os usuários 21, 22 e 23

Page 62: Relatório técnico i   fc 29-07

52

Figura 63 – Comparação de gêneros entre os usuários 31, 32 e 33

Figura 64 – Comparação de gêneros entre os usuários 41 e 42

Page 63: Relatório técnico i   fc 29-07

53

Figura 65 – Comparação de gêneros entre os usuários 51 e 52

Figura 66 – Comparação de gêneros entre os usuários 61, 62 e 63

Page 64: Relatório técnico i   fc 29-07

54

Figura 67 – Comparação de programas entre os usuários 11 e 12

Figura 68 – Comparação de programas entre os usuários 21, 22 e 23

Page 65: Relatório técnico i   fc 29-07

55

Figura 69 – Comparação de programas entre os usuários 31, 32 e 33

Figura 70 – Comparação de programas entre os usuários 41 e 42

Page 66: Relatório técnico i   fc 29-07

56

Figura 71 – Comparação de programas entre os usuários 51 e 52

Figura 72 – Comparação de programas entre os usuários 61, 62 e 63

Page 67: Relatório técnico i   fc 29-07

57

4.4 Porcentagem de Acerto: comparação entre programas e gêneros por

usuário

Nesta subseção são apresentados as planilhas e os gráficos que comparam a

porcentagem de acerto entre gêneros e programas para cada usuário.

Tabela 12 – Comparação entre gêneros e programas dos usuários 11, 12 e 21.

D

Dia

Usuário 11 Usuário 12 Usuário 21

Recom. Programas Gêneros Programas Gêneros Programas Gêneros

1 10 2 20% 4 40% 2 20% 4 40% 4 40% 6 60%

2 10 2 20% 2 20% 2 20% 2 20% 2 20% 9 90%

3 10 2 20% 2 20% 2 20% 2 20% 7 70% 6 60%

4 10 4 40% 5 50% 4 40% 5 50% 4 40% 7 70%

5 10 0 0% 0 0% 0 0% 2 20% 0 0% 0 0%

6 10 0 0% 2 20% 0 0% 2 20% 0 0% 3 30%

7 10 2 20% 2 20% 1 10% 2 20% 4 40% 7 70%

8 10 0 0% 1 10% 0 0% 1 10% 6 60% 6 60%

9 10 2 20% 3 30% 2 20% 3 30% 4 40% 6 60%

10 10 4 40% 7 70% 3 30% 7 70% 7 70% 8 80%

11 10 3 30% 4 40% 3 30% 4 40% 4 40% 6 60%

12 10 0 0% 3 30% 0 0% 3 30% 0 0% 1 10%

13 10 0 0% 2 20% 0 0% 2 20% 0 0% 0 0%

14 10 0 0% 4 40% 0 0% 5 50% 4 40% 5 50%

Soma 21 2,1 41 4,1 19 1,9 44 4,4 46 4,6 70 7

Média 1

21%

41%

19%

44%

46%

70%

Média 2 15% 29% 14% 31% 33% 50%

Tabela 13 – Comparação entre gêneros e programas dos usuários 22, 23 e 31.

Dia Recom. Usuário 22 Usuário 23 Usuário 31

Programas Gêneros Programas Gêneros Programas Gêneros

1 10 0 0% 0 0% 5 50% 7 70% 5 50% 5 50%

2 10 1 10% 4 40% 0 0% 6 60% 0 0% 2 20%

3 10 6 60% 8 80% 5 50% 5 50% 0 0% 6 60%

4 10 4 40% 5 50% 6 60% 8 80% 2 20% 2 20%

5 10 3 30% 4 40% 5 50% 6 60% 0 0% 6 60%

6 10 0 0% 4 40% 0 0% 5 50% 0 0% 1 10%

7 10 3 30% 3 30% 6 60% 8 80% 5 50% 5 50%

8 10 0 0% 0 0% 3 30% 5 50% 4 40% 2 20%

9 10 0 0% 0 0% 2 20% 6 60% 0 0% 0 0%

10 10 0 0% 0 0% 6 60% 8 80% 1 10% 3 30%

11 10 6 60% 7 70% 4 40% 6 60% 1 10% 2 20%

12 10 3 30% 7 70% 1 10% 2 20% 0 0% 3 30%

13 10 0 0% 4 40% 0 0% 8 80% 0 0% 0 0%

14 10 4 40% 7 70% 7 70% 7 70% 1 10% 1 10%

Soma 30 3 53 5,3 50 5 87 8,7 19 1,9 38 3,8

Média 1

30%

53%

50%

87%

19%

38%

Média 2 21% 38% 36% 62% 14% 27%

Page 68: Relatório técnico i   fc 29-07

58

Tabela 14 – Comparação entre gêneros e programas dos usuários 32, 33 e 41.

Usuário 32 Usuário 33 Usuário 41

Programas Gêneros Programas Gêneros Programas Gêneros

1 10 0 0% 0 0% 1 10% 1 10% 0 0% 0 0%

2 10 0 0% 0 0% 1 10% 2 20% 1 10% 1 10%

3 10 0 0% 2 20% 0 0% 0 0% 0 0% 1 10%

4 10 0 0% 3 30% 0 0% 0 0% 2 20% 3 30%

5 10 0 0% 0 0% 0 0% 0 0% 0 0% 3 30%

6 10 0 0% 2 20% 0 0% 0 0% 0 0% 0 0%

7 10 1 10% 2 20% 0 0% 0 0% 0 0% 0 0%

8 10 3 30% 2 20% 0 0% 0 0% 0 0% 0 0%

9 10 3 30% 3 30% 1 10% 2 20% 0 0% 1 10%

10 10 0 0% 2 20% 1 10% 0 0% 1 10% 2 20%

11 10 1 10% 4 40% 0 0% 0 0% 0 0% 0 0%

12 10 0 0% 3 30% 0 0% 1 10% 0 0% 1 10%

13 10 0 0% 4 40% 0 0% 0 0% 0 0% 0 0%

14 10 2 20% 4 40% 0 0% 2 20% 3 30% 3 30%

Soma 10 1 31 3,1 4 0,4 8 0,8 7 0,7 15 1,5

Média 1

10%

31%

4%

8%

7%

15%

Média 2 7% 22% 3% 6% 5% 11%

Tabela 15 – Comparação entre gêneros e programas dos usuários 41, 42 e 51.

Dia Recom. Usuário 41 Usuário 42 Usuário 51

Programas Gêneros Programas Gêneros Programas Gêneros

1 10 0 0% 0 0% 3 30% 4 40% 2 20% 2 20%

2 10 1 10% 1 10% 3 30% 5 50% 3 30% 5 50%

3 10 0 0% 1 10% 4 40% 4 40% 0 0% 1 10%

4 10 2 20% 3 30% 0 0% 3 30% 4 40% 3 30%

5 10 0 0% 3 30% 0 0% 2 20% 2 20% 4 40%

6 10 0 0% 0 0% 0 0% 6 60% 0 0% 3 30%

7 10 0 0% 0 0% 6 60% 8 80% 3 30% 5 50%

8 10 0 0% 0 0% 3 30% 6 60% 3 30% 3 30%

9 10 0 0% 1 10% 5 50% 6 60% 1 10% 4 40%

10 10 1 10% 2 20% 0 0% 3 30% 3 30% 2 20%

11 10 0 0% 0 0% 3 30% 7 70% 3 30% 4 40%

12 10 0 0% 1 10% 4 40% 5 50% 4 40% 1 10%

13 10 0 0% 0 0% 0 0% 5 50% 0 0% 2 20%

14 10 3 30% 3 30% 5 50% 5 50% 3 30% 2 20%

Soma 7 0,7 15 1,5 36 3,6 69 6,9 31 310% 41 4,1

Média 1

7%

15%

36%

69%

31%

41%

Média 2 5% 11% 26% 49% 22% 29%

Page 69: Relatório técnico i   fc 29-07

59

Tabela 16 – Comparação entre gêneros e programas dos usuários 52 e 61.

Dia Recom. Usuário 52 Usuário 61

Programas Gêneros Programas Gêneros

1 10 4 40% 2 20% 5 50% 3 30%

2 10 5 50% 3 30% 2 20% 1 10%

3 10 2 20% 2 20% 5 50% 5 50%

4 10 5 50% 5 50% 4 40% 6 60%

5 10 3 30% 2 20% 0 0% 4 40%

6 10 0 0% 4 40% 0 0% 3 30%

7 10 3 30% 3 30% 6 60% 7 70%

8 10 3 30% 4 40% 7 70% 8 80%

9 10 1 10% 7 70% 4 40% 3 30%

10 10 4 40% 3 30% 0 0% 0 0%

11 10 4 40% 4 40% 5 50% 7 70%

12 10 4 40% 2 20% 2 20% 5 50%

13 10 0 0% 2 20% 0 0% 3 30%

14 10 3 30% 2 20% 4 40% 4 40%

Soma 41 410% 45 4,5 44 4,4 59 5,9

Média 1

41%

45%

44%

59%

Média 2 29% 32% 31% 42%

Tabela 17 – Comparação entre gêneros e programas dos usuários 62 e 63.

Dia Recom. Usuário 62 Usuário 63

Programas

Gêneros

Programas

Gêneros

1 10 0 0% 0 0% 5 50% 7 70%

2 10 4 40% 3 30% 6 60% 7 70%

3 10 3 30% 2 20% 6 60% 5 50%

4 10 0 0% 0 0% 2 20% 2 20%

5 10 2 20% 3 30% 0 0% 0 0%

6 10 0 0% 4 40% 0 0% 0 0%

7 10 2 20% 2 20% 4 40% 5 50%

8 10 0 0% 0 0% 4 40% 7 70%

9 10 2 20% 3 30% 6 60% 7 70%

10 10 0 0% 0 0% 7 70% 6 60%

11 10 0 0% 2 20% 8 80% 6 60%

12 10 3 30% 2 20% 5 50% 5 50%

13 10 1 10% 2 20% 0 0% 1 10%

14 10 1 10% 1 10% 5 50% 5 50%

Soma 18 1,8 24 2,4 58 5,8 63 6,3

Média 1

18%

24%

58%

63%

Média 2 13% 17% 41% 45%

Page 70: Relatório técnico i   fc 29-07

60

Figura 73 – Comparação entre programas e gêneros usuário 11

Figura 74 – Comparação entre programas e gêneros usuário 12

Page 71: Relatório técnico i   fc 29-07

61

Figura 75 – Comparação entre programas e gêneros usuário 21

Figura 76 – Comparação entre programas e gêneros usuário 22

Page 72: Relatório técnico i   fc 29-07

62

Figura 77 – Comparação entre programas e gêneros usuário 23

Figura 78 – Comparação entre programas e gêneros usuário 31

Page 73: Relatório técnico i   fc 29-07

63

Figura 79 – Comparação entre programas e gêneros usuário 32

Figura 80 – Comparação entre programas e gêneros usuário 33

Page 74: Relatório técnico i   fc 29-07

64

Figura 81 – Comparação entre programas e gêneros usuário 41

Figura 82 – Comparação entre programas e gêneros usuário 42

Page 75: Relatório técnico i   fc 29-07

65

Figura 83 – Comparação entre programas e gêneros usuário 51

Figura 84 – Comparação entre programas e gêneros usuário 52

Page 76: Relatório técnico i   fc 29-07

66

Figura 85 – Comparação entre programas e gêneros usuário 61

Figura 86 – Comparação entre programas e gêneros usuário 62

Page 77: Relatório técnico i   fc 29-07

67

Figura 87 – Comparação entre programas e gêneros usuário 63

Nota-se pelos gráficos, que a porcentagem de acerto dos gêneros foi maior que a dos

programas para praticamente todos os usuários e também apresentam resultados parecidos,

porém em níveis diferentes. Os usuários 11 e 12 têm comportamentos parecidos e isso se deve

ao fato de eles pertencerem ao mesmo domicílio. Os usuários 21 e 22 obtiveram uma alta

porcentagem de acerto, tanto para os gêneros, quanto para os programas. O usuário 23

também atingiu uma porcentagem de acerto adequada, tanto para programas, quanto para

gêneros. Já o usuário 31 obteve melhor resultado com os gêneros.

O usuário 33 teve uma porcentagem baixíssima de acerto, o que indica que a Filtragem

Colaborativa sozinha não atenderá corretamente a esse usuário e o usuário 32 teve melhoras

na porcentagem de acerto dos gêneros nos últimos dias da simulação. O usuário 41, em

relação ao usuário 42, teve sua porcentagem de acerto baixa, tanto para programas, quanto

para gêneros.

Page 78: Relatório técnico i   fc 29-07

68

4.5 Porcentagem de Acerto: médias dos programas e gêneros

Nesta subseção, a planilha e os gráficos que comparam a média diária (média 1 e média

2) da porcentagem de acerto dos gêneros e dos programas para todos os usuários são

apresentados e também . Como pode ser visualizado através dos gráficos e da tabela abaixo, a

média 1 dos gêneros teve uma porcentagem de acerto maior que a dos programas e a média 2

dos Gêneros teve uma porcentagem de acerto maior que a dos programas.

Tabela 18 – Média 1 programas e gêneros

Média 1

Usuário Gêneros Programas

11 41% 21%

12 44% 19%

21 70% 46%

22 53% 30%

23 87% 50%

31 38% 19%

32 31% 10%

33 8% 4%

41 15% 7%

42 69% 36%

51 41% 31%

52 45% 41%

61 59% 44%

62 24% 18%

63 63% 58%

Tabela 19 – Média 2 programas e gêneros

Média 2

Usuário Gêneros Programas

11 29% 15%

12 31% 14%

21 50% 33%

22 38% 21%

23 62% 36%

31 27% 14%

32 22% 7%

33 6% 3%

41 11% 5%

42 49% 26%

51 29% 22%

52 32% 29%

61 42% 31%

62 17% 13%

63 45% 41%

Page 79: Relatório técnico i   fc 29-07

69

Figura 88 – Média 1

Figura 89 – Média 2

Page 80: Relatório técnico i   fc 29-07

70

CAPÍTULO 5 -

CONCLUSÕES

Pessoas que se conhecem e convivem entre si têm a capacidade de indicar textos,

filmes, livros ou locais mais adequadamente, justamente por ter conhecimento dos gostos

alheios. Além disso, pessoas com mais experiência em um determinado assunto, melhoram a

qualidade das sugestões. Os sistemas de recomendação que utilizam Filtragem Colaborativa

tentam imitar o que acontece na vida real, como citado acima.

Nos testes apresentados neste relatório, mesmo tentando imitar a sugestão pessoal de

programas de TV, percebeu-se que a Filtragem Colaborativa obteve bons resultados para

alguns usuários e para outros não. Isso ocorreu, principalmente, porque alguns usuários

possuem poucos dados para alguns dias e a quantidade de dados influencia fortemente na

qualidade das recomendações. Outro fator é a baixa quantidade de usuários – apenas 15. Em

um sistema de recomendação real, normalmente existem milhões de usuários, o que pode

torna a qualidade das recomendações melhor.

O processo utilizado aqui não gera um perfil específico, como nos testes realizados com

a Filtragem Baseada em Conteúdo, em que um perfil é gerado e atualizado constantemente

para as recomendações. Além disso, o processo foi aplicado para gerar recomendações de

programas como se fossem títulos de um filme e também recomendações de gêneros

diretamente.

Finalizando, os resultados apresentados neste relatório foram satisfatórios e a análise

reforçou o fato de que o desenvolvimento de um sistema de recomendação híbrido é uma

ótima solução para a geração de recomendações com maior qualidade.

5

Page 81: Relatório técnico i   fc 29-07

71

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.

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.

Page 82: Relatório técnico i   fc 29-07

72

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.

Page 83: Relatório técnico i   fc 29-07

73

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.

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

158p.

Page 84: Relatório técnico i   fc 29-07

74

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.

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.