12.07.2015 Views

METODOLOGIA DE MINERAÇÃO DE DADOS PARA ANÁLISE DO ...

METODOLOGIA DE MINERAÇÃO DE DADOS PARA ANÁLISE DO ...

METODOLOGIA DE MINERAÇÃO DE DADOS PARA ANÁLISE DO ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>METO<strong>DO</strong>LOGIA</strong> <strong>DE</strong> MINERAÇÃO <strong>DE</strong> <strong>DA<strong>DO</strong>S</strong> <strong>PARA</strong> ANÁLISE <strong>DO</strong>COMPORTAMENTO <strong>DE</strong> NAVEGAR NUM WEB SITEMauricio OnodaTESE SUBMETIDA AO CORPO <strong>DO</strong>CENTE DA COOR<strong>DE</strong>NAÇÃO <strong>DO</strong>SPROGRAMAS <strong>DE</strong> PÓS-GRADUAÇÃO <strong>DE</strong> ENGENHARIA DA UNIVERSIDA<strong>DE</strong>FE<strong>DE</strong>RAL <strong>DO</strong> RIO <strong>DE</strong> JANEIRO COMO PARTE <strong>DO</strong>S REQUISITOSNECESSÁRIOS <strong>PARA</strong> A OBTENÇÃO <strong>DO</strong> GRAU <strong>DE</strong> <strong>DO</strong>UTOR EM CIÊNCIASEM ENGENHARIA CIVIL.Aprovada por:_____________________________________________Prof. Nelson Francisco Favilla Ebecken, D.Sc._____________________________________________Prof. Alexandre Gonçalves Evsukoff, D.Sc._____________________________________________Profª. Beatriz de Souza Leite Pires de Lima, D.Sc._____________________________________________Profª. Myrian Christina Aragão Costa, D.Sc._____________________________________________Prof. Estevam Rafael Hruschka Junior, D.Sc.RIO <strong>DE</strong> JANEIRO, RJ – BRASILJUNHO <strong>DE</strong> 2006


ONODA, MAURICIOMetodologia de Mineração de Dados paraAnálise do Comportamento de Navegar numWeb Site [Rio de Janeiro] 2006XIV, 215 p. 29,7 cm (COPPE/UFRJ, D.Sc.,Engenharia Civil, 2006)Tese - Universidade Federal do Rio deJaneiro, COPPE1. Web Usage Mining2. Navegação de usuário3. Análise do Comportamento4. Behaviorismo RadicalI. COPPE/UFRJ II. Título (série)ii


AgradecimentosAo Prof. Nelson, por ter incentivado e apoiado o meu doutorado.Ao amigo e psicólogo Marcelo Correia da Assunção Fonseca, que me ajudou a entenderum pouco da Análise do Comportamento.Ao CNPq, pelo suporte financeiro dado durante o curso.iv


Resumo da Tese apresentada à COPPE/UFRJ como parte dos requisitos necessáriospara a obtenção do grau de Doutor em Ciências (D.Sc.)<strong>METO<strong>DO</strong>LOGIA</strong> <strong>DE</strong> MINERAÇÃO <strong>DE</strong> <strong>DA<strong>DO</strong>S</strong> <strong>PARA</strong> ANÁLISE <strong>DO</strong>COMPORTAMENTO <strong>DE</strong> NAVEGAR NUM WEB SITEMauricio OnodaJunho/2006Orientador: Nelson Francisco Favilla EbeckenPrograma: Engenharia CivilAtualmente um dos maiores problemas das empresas que mantêm um web site é afalta de informações qualitativas a respeito de seus usuários. Um desafio é conseguireste tipo de informação de forma objetiva, sem utilizar a intuição e a subjetividade. Asolução proposta neste trabalho é estudar o comportamento de navegar dos usuários,integrando o Web Usage Mining com os conceitos da Análise do Comportamento, quese fundamenta no Behaviorismo Radical de Skinner. Com os resultados obtidos, épossível formular hipóteses sobre o comportamento dos usuários e, conseqüentemente,direcionar ações sobre o site de forma a torná-lo mais efetivo para os objetivos donegócio.v


Abstract of Thesis presented to COPPE/UFRJ as a partial fulfillment of therequirements for the degree of Doctor of Science (D.Sc.)DATA MINING METHO<strong>DO</strong>LOGY FOR BEHAVIOR ANALYSISOF A WEB SITE NAVIGATIONMauricio OnodaJune/2006Advisor: Nelson Francisco Favilla EbeckenDepartment: Civil EngineeringNowadays one of the biggest problems of companies that maintain a web site is thelack of qualitative information concerning their users. One challenge is to objectivelyget this type of information, without the use of intuition or subjectivity. The solutionproposed in this work is to study the behavior of the users when navigating in a website, integrating the Web Usage Mining with the concepts of the Behavior Analysis,based in Radical Behaviorism of Skinner. With the results obtained it is possible toformulate hypotheses about users' behavior and, consequently, to address actions tomake the web site more effective for the goals of the business.vi


Sumário1 Introdução 11.1 Tipos de mineração de dados na web ..................................................... 31.2 Web Content Mining .............................................................................. 51.3 Web Structure Mining ............................................................................ 61.4 Web Usage Mining ............... ................................................................. 71.5 Termos e definições ................................................................................ 81.6 Contribuição da tese ................................................................................ 91.7 Estrutura da tese ...................................................................................... 92 Web Usage Mining 112.1 Fontes de dados ....................................................................................... 112.2 Formatos de log ...................................................................................... 142.3 Etapas do processo .................................................................................. 172.3.1 Preparação de dados .................................................................... 182.3.2 Descobrimento de padrões .......................................................... 222.3.3 Análise de padrões ...................................................................... 262.4 Tipo de aplicações .................................................................................. 272.5 Ferramentas ............................................................................................ 282.6 Trabalhos relacionados ........................................................................... 313 Comportamento 383.1 Behaviorismo .......................................................................................... 383.1.1 Behaviorismo Radical ................................................................. 423.2 Cognitivismo ........................................................................................... 493.2.1 Ciência cognitiva ........................................................................ 513.2.2 Tratamento da informação .......................................................... 524 Metodologia 564.1 Problemas no processo tradicional ......................................................... 57vii


4.2 Nova abordagem ..................................................................................... 604.2.1 Tratamento das sessões ............................................................... 604.2.2 Extração de padrões seqüenciais ................................................. 654.2.3 Detalhamento dos padrões .......................................................... 665 Validação 685.1 Pré-processamento .................................................................................. 705.2 Padrões seqüenciais no Clementine ........................................................ 725.3 Detalhamento dos padrões ...................................................................... 776 Estudo de caso 1 786.1 Características dos acessos ..................................................................... 806.2 Objetivo .................................................................................................. 836.3 Tratamento dos dados ............................................................................. 836.4 Tratamento das sessões ........................................................................... 896.5 Extração de padrões seqüenciais ............................................................. 936.6 Detalhamento dos padrões ...................................................................... 966.7 Análise da regra R1 ................................................................................. 986.8 Análise da regra R2 ................................................................................. 1026.9 Análise da regra R3 ................................................................................. 1076.10 Análise da regra R4 ................................................................................. 1106.11 Análise da regra R5 ................................................................................. 1146.12 Outras hipóteses ...................................................................................... 1197 Estudo de caso 2 1217.1 Características dos acessos ..................................................................... 1237.2 Objetivo .................................................................................................. 1267.3 Tratamento dos dados ............................................................................. 1267.4 Tratamento das sessões ........................................................................... 1297.5 Extração de padrões seqüenciais ............................................................. 1327.6 Detalhamento dos padrões ...................................................................... 1357.7 Análise da regra R1 ................................................................................. 135viii


7.8 Análise da regra R2 ................................................................................. 1407.9 Análise da regra R3 ................................................................................. 1457.10 Análise da regra R4 ................................................................................. 1487.11 Hipótese para o site ................................................................................. 1528 Conclusões 1548.1 Trabalhos futuros .................................................................................... 156Referências bibliográficas 159Apêndice A – Referências de ferramentas 171Apêndice B – Fontes dos programas 172Apêndice C – Páginas do emagrecendo.com.br 202Apêndice D – Páginas do hotelbucsky.com.br 207ix


Índice de figurasFigura 1.1 – Tipos de dados da web ........................................................................ 3Figura 1.2 – Taxonomia de Web Mining ................................................................ 4Figura 2.1 – Diagrama simplificado de acesso a web ............................................. 12Figura 2.2 – Exemplo de entrada no log ................................................................. 15Figura 2.3 – Etapas do Web Usage Mining ............................................................. 18Figura 2.4 – Mercado de ferramentas de análise de web sites ................................ 31Figura 2.5 – Exemplo de modelagem de navegação como cadeia de Markov ...... 33Figura 3.1 – Estímulo-resposta ............................................................................... 41Figura 3.2 – Condicionamento operante ................................................................. 45Figura 3.3 – Discriminação operante ...................................................................... 45Figura 3.4 – Exemplo de discriminação operante ................................................... 46Figura 3.5 – Exemplo de mudança de comportamento ........................................... 47Figura 3.6 – Esquema de aprendizagem .................................................................. 48Figura 3.7 – Exemplo de aprendizagem .................................................................. 48Figura 3.8 – Encadeamento ..................................................................................... 49Figura 3.9 – Estrutura cognitiva ............................................................................. 50Figura 3.10 – Modelo mental .................................................................................. 55Figura 4.1 – Exemplo de tratamento de sessão ....................................................... 62Figura 4.2 – Detalhamento dos padrões .................................................................. 67Figura 5.1 – Processo utilizado nos estudos de casos ............................................. 69Figura 5.2 – Interface do Clementine ...................................................................... 73Figura 5.3 – Configuração do nó “Sequence” ......................................................... 74Figura 5.4 – Opções básicas do nó “Sequence” ...................................................... 75Figura 5.5 – Opções avançadas do nó “Sequence” ................................................. 76Figura 6.1 – Página inicial do emagrecendo.com.br ............................................... 79Figura 6.2 – Estatísticas gerais ................................................................................ 80x


Figura 6.3 – Páginas mais acessadas ....................................................................... 81Figura 6.4 – Atividades por dia da semana ............................................................. 82Figura 6.5 – Atividades por hora do dia .................................................................. 82Figura 6.6 – Histograma do tamanho das sessões ................................................... 86Figura 6.7 – Histograma filtrado do tamanho das sessões ...................................... 86Figura 6.8 – Histograma do tempo das sessões ....................................................... 87Figura 6.9 – Histograma de tempo entre duas solicitações ..................................... 88Figura 6.10 – Cálculo do IMC (com detalhes) ........................................................ 91Figura 6.11 – Resultado do cálculo do IMC ........................................................... 92Figura 6.12 – Data stream para mineração de padrões seqüenciais ....................... 93Figura 6.13 – Regras obtidas ................................................................................... 94Figura 6.14 – Data stream para análise de tempos ................................................. 97Figura 6.15 – Estatísticas e histogramas da regra R1 .............................................. 99Figura 6.16 – Estatísticas dos intervalos da regra R1 .............................................. 100Figura 6.17 – Histogramas da quantidade e tempos dos intervalos da regra R1 ..... 101Figura 6.18 – Estatísticas do tempo total de navegação – R1 ................................. 102Figura 6.19 – Estatísticas e histogramas da regra R2 .............................................. 103Figura 6.20 – Estatísticas dos intervalos da regra R2 .............................................. 104Figura 6.21 – Histogramas da quantidade e tempos dos intervalos da regra R2 ..... 105Figura 6.22 – Estatísticas do tempo total de navegação – R2 ................................. 106Figura 6.23 – Estatísticas e histogramas da regra R3 .............................................. 107Figura 6.24 – Estatísticas dos intervalos da regra R3 .............................................. 108Figura 6.25 – Histogramas da quantidade e tempos dos intervalos da regra R3 ..... 109Figura 6.26 – Estatísticas do tempo total de navegação – R3 ................................. 110Figura 6.27 – Estatísticas e histogramas da regra R4 .............................................. 111Figura 6.28 – Estatísticas dos intervalos da regra R4 .............................................. 112Figura 6.29 – Histogramas da quantidade e tempos dos intervalos da regra R4 ..... 113Figura 6.30 – Estatísticas do tempo total de navegação – R4 ................................. 114Figura 6.31 – Estatísticas e histogramas da regra R5 .............................................. 115xi


Figura 6.32 – Estatísticas dos intervalos da regra R5 .............................................. 116Figura 6.33 – Histogramas da quantidade e tempos dos intervalos da regra R5 ..... 117Figura 6.34 – Estatísticas do tempo total de navegação – R5 ................................. 118Figura 7.1 – Página inicial do hotelbucsky.com.br ................................................. 122Figura 7.2 – Página principal em português do hotelbucsky.com.br ...................... 123Figura 7.3 – Sumário geral dos acessos .................................................................. 124Figura 7.4 – Acessos por dia da semana ................................................................. 124Figura 7.5 – Acessos por hora do dia ...................................................................... 125Figura 7.6 – Páginas mais acessadas ....................................................................... 125Figura 7.7 – Histograma do tamanho das sessões ................................................... 127Figura 7.8 – Histograma do tempo das sessões ....................................................... 128Figura 7.9 – Histograma de tempo entre duas solicitações ..................................... 129Figura 7.10 – Página de tarifas ................................................................................ 131Figura 7.11 – Regras obtidas ................................................................................... 132Figura 7.12 – Estatísticas e histogramas da regra R1 .............................................. 136Figura 7.13 – Estatísticas dos intervalos da regra R1 .............................................. 137Figura 7.14 – Histogramas da quantidade e tempos dos intervalos da regra R1 ..... 138Figura 7.15 – Estatísticas do tempo total de navegação – R1 ................................. 139Figura 7.16 – Estatísticas e histogramas da regra R2 .............................................. 141Figura 7.17 – Estatísticas dos intervalos da regra R2 .............................................. 142Figura 7.18 – Histogramas da quantidade e tempos dos intervalos da regra R2 ..... 143Figura 7.19 – Estatísticas do tempo total de navegação – R2 ................................. 144Figura 7.20 – Estatísticas e histogramas da regra R3 .............................................. 145Figura 7.21 – Estatísticas dos intervalos da regra R3 .............................................. 146Figura 7.22 – Histogramas da quantidade e tempos dos intervalos da regra R3 ..... 147Figura 7.23 – Estatísticas do tempo total de navegação – R3 ................................. 148Figura 7.24 – Estatísticas e histogramas da regra R4 .............................................. 149Figura 7.25 – Estatísticas dos intervalos da regra R4 .............................................. 150Figura 7.26 – Histogramas da quantidade e tempos dos intervalos da regra R4 ..... 151xii


Figura 7.27 – Estatísticas do tempo total de navegação – R4 ................................. 152Figura 8.1 – Tomada de consciência ....................................................................... 155Figura C.1 – Página “/2004/bal_vc/0704_qual_peso.shtml” .................................. 203Figura C.2 – Página “/2004/bal_vc/bal_vc.shtml” .................................................. 204Figura C.3 – Página “/2004/rec_em/ rec_em.shtml” ............................................... 205Figura C.4 – Página “/system/cadastro_tela1.asp” .................................................. 206Figura D.1 – Página “/hotelbucsky/instala.htm” ..................................................... 208Figura D.2 – Página “/hotelbucsky/lazer.htm” ........................................................ 209Figura D.3 – Página “/hotelbucsky/servico.htm” .................................................... 210Figura D.4a – Página “/hotelbucsky/form.htm” ...................................................... 211Figura D.4b – Página “/hotelbucsky/form.htm” ...................................................... 212Figura D.4c – Página “/hotelbucsky/form.htm” ...................................................... 213Figura D.4d – Página “/hotelbucsky/form.htm” ...................................................... 214Figura D.5 – Página “/hotelbucsky/chegar.htm” ..................................................... 215xiii


Índice de tabelasTabela 1.1 – Definições de termos da web .............................................................. 8Tabela 2.1 – Detalhamento do log ........................................................................... 16Tabela 2.2 – Exemplo de navegações ..................................................................... 23Tabela 2.3 – Soluções de mercado .......................................................................... 30Tabela 4.1 – Sessão considerada ............................................................................. 63Tabela 4.2 – Características das páginas ................................................................. 65Tabela 6.1 – Distribuição de sessões e páginas ...................................................... 84Tabela 6.2 – Distribuição de sessões e páginas dos visitantes ................................ 85Tabela 6.3 – Formatos das sessões .......................................................................... 88Tabela 6.4 – Páginas mais acessadas ...................................................................... 90Tabela 6.5 – Descrição das páginas ......................................................................... 94Tabela 6.6 – Nomenclatura das regras .................................................................... 95Tabela 7.1 – Distribuição de sessões e páginas ....................................................... 127Tabela 7.2 – Páginas mais acessadas ....................................................................... 130Tabela 7.3 – Descrição das páginas ......................................................................... 133Tabela 7.4 – Nomenclatura das regras .................................................................... 133xiv


Capítulo 1IntroduçãoO incrível crescimento da World Wide Web (ou simplesmente, web) na última década,que hoje possui mais de 8 bilhões de documentos e 20 milhões de novas páginaspublicadas todo dia (TANASA, 2005), proporcionou o desenvolvimento de várias áreasdo conhecimento, sendo a mineração na web, ou Web Mining, uma delas. Web Miningé o processo de descobrimento de informações potencialmente úteis e desconhecidasdos dados da web (KOSALA & BLOCKEEL, 2000). Da interação dos 800 milhões deusuários com os mais de 60 milhões de web sites existentes é produzida uma quantidadeenorme de dados, que são armazenados em arquivos específicos nos servidores web, osarquivos de log. Estes arquivos são as principais fontes de informações para análise dasnavegações dos usuários.Numa conversa recente com o gerente de marketing de uma multinacional que mantémapenas um web site institucional, verificou-se, surpreendentemente, que os resultadosquantitativos apresentados pelas suas ferramentas de análise de sites já são suficientes.Não há interesse em novas técnicas e soluções que envolvam o descobrimento depadrões de navegação, seja para melhoria do sistema, modificação do site oupersonalização. Entretanto há, de maneira geral, uma busca por informações qualitativasdos clientes. Esta percepção foi confirmada através de discussões com váriosprofissionais da área de criação e manutenção de web sites.Um desafio, então, é conseguir este tipo de informação a partir dos logs de um web site.Uma destas informações é o comportamento de navegar dos usuários, que se difere doperfil ou comportamento do usuário comumente referenciado nos trabalhos de WebUsage Mining (MASSEGLIA et al., 2004, VELÁSQUEZ et al., 2003a, HOFGESANG1


& KOWALCZYK, 2005, SPILIOPOULOU et al., 1999). Nestes trabalhos, procura-se,através de interpretações dos padrões de navegação encontrados, classificar e rotular osusuários. É uma maneira subjetiva de analisar estas pessoas. Para conseguir umaanálise objetiva do comportamento de navegar, buscou-se na Psicologia uma técnicaque pudesse ser aplicada nesse ambiente e que tivesse características apropriadas para aintegração com Web Usage Mining, que é o processo de descobrimento de padrõesinteressantes nos dados de navegação dos usuários na web. Após conversa comespecialista da área, a escolha recaiu sobre a Análise do Comportamento.A Análise do Comportamento (SKINNER, 1989) está baseada no behaviorismo radicaldesenvolvido por Burrhus Frederic Skinner (1904 - 1990). Behaviorismo é um vocábuloque se origina da palavra inglesa “behaviour” e significa comportamento. Estecomportamento é o conjunto das reações que podem ser observadas num indivíduo,estando este em seu ambiente, e em dadas circunstâncias. Fazer análise docomportamento é determinar as características e dimensões da ocasião em que ocomportamento ocorre, identificar as propriedades públicas e privadas da ação e definiras mudanças produzidas pela emissão das respostas (no ambiente, no organismo). ParaSkinner, um evento comportamental é o produto conjunto da história anterior dereforçamento do sujeito. Por reforçamento, entende-se qualquer estímulo que aumenta aprobabilidade de respostas. Assim, pode-se dizer que o ambiente (externo - físico,social; interno - biológico, histórico) seleciona grandes classes de comportamento.Considerando como ambiente um web site, teoricamente é possível que o mesmotambém selecione classes de comportamento. A grande dificuldade para a aplicação naweb é que a Análise do Comportamento deverá considerar um ambiente novo, virtual.Até hoje, ela tem sido aplicada apenas em ambientes onde o comportamento é públicoou encoberto. A análise do comportamento público é feita através de observaçõesenquanto que o comportamento encoberto é analisado através de relatos pessoais. Assimcomo nesses relatos a comunicação é feita através da língua portuguesa, no ambientevirtual, analogamente, também há uma “língua específica”: o log.Neste capítulo serão apresentadas uma definição de Web Mining, sua principaltaxonomia, um resumo das subáreas e uma definição de termos específicos da web. Porfim, a contribuição e a estrutura da tese.2


1.1 Tipos de mineração de dados na webWeb Mining tem sido definido como a aplicação de técnicas de Data Mining em dadosda Web (ETZIONI, 1996, COOLEY et al., 1997a, MENA, 1999). Segundo COOLEY(2000), estes dados podem ser classificados como sendo de conteúdo, estrutura, uso oude perfil de usuário, conforme mostrado na Figura 1.1.TextosArquivos HTMLDados de conteúdoArquivos XMLDados da webDados de estruturaDados de utilizaçãoConteúdo dinâmicoMultimídiaInterpáginasIntrapáginasDados de perfil dousuárioFigura 1.1 – Tipos de dados da web• Os dados de conteúdo são aqueles efetivamente apresentados aos usuários,geralmente abrangendo textos e figuras.• Os dados de estrutura são aqueles que descrevem a organização do conteúdo, eque podem ser internos (como tags de HTML e XML) ou relacionados (linkscom outras páginas).• Os dados de utilização são aqueles que descrevem a navegação dos usuários naspáginas do site. Geralmente estes dados são obtidos a partir do log do servidorweb, que também inclui endereço IP e data de acesso.3


• Os dados de perfil de usuário são aqueles que fornecem informaçõesdemográficas sobre os usuários do site, como, por exemplo, dados cadastrais declientes.Uma visão geral sobre Web Mining pode ser encontrada em KOSALA & BLOCKEEL(2000). SRIVASTAVA et al. (2002) fazem uma avaliação do desenvolvimento de WebMining, tanto da parte tecnológica quanto das aplicações, e traçam um esboço dasfuturas pesquisas na área. Devido ao crescimento do comércio eletrônico, as áreasdominantes das aplicações estão relacionadas ao comércio B2C (business-to-consumer)e ao gerenciamento do relacionamento com clientes na web (CRM - CustomerRelationship Management). Uma área interessante onde Web Mining tem sido aplicadaé a bioinformática (LEE, 2004). A extensa literatura disponível nessa área, que dificultaos pesquisadores a buscar informações quando estão desenvolvendo novosmedicamentos, e o crescimento de portais médicos na web são os principais motivos dautilização desta técnica.Com relação à classificação de Web Mining, COOLEY et al. (1997a) inicialmenteapresentaram uma taxonomia composta de mineração de conteúdo (Web ContentMining) e mineração de utilização (Web Usage Mining). Mais tarde, ZAÏANE (1999)apresentou uma taxonomia mais completa, onde foi incluída a mineração de estrutura(Web Structure Mining). Esta é a taxonomia mais conhecida e utilizada atualmente, eestá esquematizada na Figura 1.2.Web MiningWeb ContentMiningWeb StructureMiningWeb UsageMiningFigura 1.2 – Taxonomia de Web Mining (ZAÏANE, 1999)4


A seguir estão explicadas, sucintamente, cada uma destas subáreas que compõem o WebMining. Apesar deste trabalho focar exclusivamente em Web Usage Mining, éimportante conhecer os objetos de pesquisas e aplicações das outras subáreas, uma vezque já existem trabalhos combinando dados de utilização com dados de conteúdo e/oude estrutura, como o de VELÁSQUEZ et al. (2003a).1.2 Web Content MiningÉ o descobrimento de informações úteis de texto, imagem, áudio e vídeo contidos emum ou mais web sites. Pode ser entendido como uma extensão das tradicionaisferramentas de busca, as quais são limitadas pois se baseiam unicamente em palavraschaves.Atualmente, a maioria dos estudos de Web Content Mining está focada nastécnicas de busca, recuperação e sumarização de conteúdos.Um problema associado à análise do conteúdo de web sites é que eles não estãoestruturados, como num banco de dados. Uma abordagem existente para tratar essagrande quantidade de dados não-estruturados da web é através da criação de um MLDB(Multiple Layered Database). No nível mais baixo ficam armazenadas as informaçõesprimitivas e no nível mais alto ficam as generalizações extraídas dos níveis inferiores.Com isso, como esse nível mais alto é estruturado, há condições de utilizar umalinguagem tipo SQL para mineração (ZAÏANE, 1999).Entretanto, este problema vem diminuindo devido à recente expansão do padrão XML(Extensible Markup Language), movida pela necessidade crescente de troca dedocumentos na web. O XML permite uma semi-estruturação do conteúdo, facilitando atarefa de mineração.Como exemplo de aplicação de Web Content Mining, pode-se citar LIU et al. (2001).Neste trabalho é mostrada uma nova técnica para auxiliar as pessoas na busca pordeterminado tópico na web. Esta técnica inicialmente identifica os subtópicos ouconceitos principais do tópico desejado, e então busca e organiza as páginas que contêmas respectivas definições e descrições. Outra aplicação interessante é apresentada por5


LIU et al. (2002) onde, através de uma mineração de conteúdo associada a uma técnicade visualização, pode-se comparar um determinado site com outro (para análise deconcorrentes), de forma a encontrar as similaridades e diferenças entre páginas.1.3 Web Structure MiningÉ o processo de extração de conhecimento dos links entre documentos da web. Aestrutura de links, normalmente, contém uma quantidade enorme de anotações humanasescondidas que podem auxiliar na inferência automática da importância da página comrelação a um dado tópico.Seus conceitos estão baseados na Análise de Co-citações, desenvolvido em meados dadécada de 70 por SMALL & GRIFFITH (1974). É um método que mede o interesseintelectual em comum existente num par de documentos. Esta medida, definida comoforça de co-citação (cocitation strength), é dada pelo número de documentos que foramcitados por ambos. No ambiente web, esta Análise de Co-citações traduz-se na noção deque, quando um documento contém links referenciando outros documentos, porexemplo, documento A e documento B, estes documentos estão inter-relacionados dealguma maneira. Neste exemplo, os documentos A e B são ditos co-citados.Os principais conceitos do Web Structure Mining são:• Concentrador (hub): página web conectada a uma coleção de sites relevantespara determinado tópico;• Autoridade (authority): página web apontada por vários concentradores;• Relacionamento mútuo de reforço: uma autoridade boa é aquela apontada pormuitos concentradores bons; um concentrador bom é a página que aponta paramuitas autoridades boas.6


O Web Structure Mining pode ser utilizado para ordenar documentos resultante de umabusca (ranking), decidir quais páginas selecionar (crawling), categorizar páginas, buscarpáginas relacionadas e buscar sites duplicados. Além disso, tem sido bastante aplicadona área de redes sociais para descobrimento de comunidades virtuais (KUMAR et al.,1999). Segundo LEE (2004), a web está se tornando uma plataforma eletrônica deinterações ou conexões sociais, seja para negócio ou para lazer. As salas de bate-papo(chat rooms), os grupos de discussão, os e-mails, as mensagens instantâneas e, maisrecentemente, os diários pessoais na web (weblogs), ao mesmo tempo em que permitemuma interação entre as pessoas, geram dados potenciais para mineração.1.4 Web Usage MiningWeb Usage Mining é o campo de pesquisa focada no desenvolvimento de técnicas eferramentas para estudo do comportamento dos usuários durante suas navegações naWeb (BORGES, 2000). A compreensão das preferências de navegação de um visitante éuma importante etapa para o estudo de qualidade, principalmente em sites de comércioeletrônico. Através dos padrões de acessos dos usuários é possível reestruturar,personalizar e adaptar a interface do site para um usuário específico (MOBASHER etal., 1999, PERKOWITZ & ETZIONI, 1997) ou fazer melhorias no sistema (FRIAS-MARTINEZ & KARAMCHETI, 2003).Estes padrões também podem ser utilizados em aplicações direcionadas à segurança dedados, para detectar acessos não usuais, e na análise de tráfego da rede, para determinarrequisitos de equipamentos e distribuição de dados que tornem mais eficiente o tráfegono site (COOLEY, 2003).Web Usage Mining também é conhecido por Web Log Mining pois utiliza como fontede dados as informações de navegação dos usuários gravadas nos diversos arquivos delog existentes no ambiente web.7


1.5 Termos e definiçõesNa estrutura da web existe um grande número de termos específicos, cujas definiçõessão geradas pelo World Wide Web Consortium (W3C, 1999), organização responsávelpela sua padronização. Os termos mais relacionados a este trabalho estão apresentadosna Tabela 1.1.TermoPágina webURL (Uniform Resource Locator)Web siteUsuárioServidor webSessão de usuárioSessão de servidorEpisódioVisita a uma página (page view)Seqüência de cliques (clickstream)Referidor (referrer)Cookie 1DefiniçãoConjunto de informações que são apresentadassimultaneamente e são identificadas por uma URLString de caracteres num formato padronizado queidentifica um recurso na web e indica como localizá-loColeção de páginas web interconectadas, incluindo umapágina principal, residindo no mesmo local da redeIndivíduo que está acessando arquivos de um servidorweb utilizando um navegador (browser)Servidor que oferece acesso a recursos da web e, quandosolicitado, entrega-os ao requisitanteConjunto delimitado de cliques do usuário em um ou maisservidor webConjunto de cliques num determinado servidor webdurante uma sessão de usuário. Também é chamada devisitaSubconjunto das páginas acessadas em uma sessãoResposta visual de uma página web num ambienteespecífico e determinado ponto do tempoSeqüência de page views solicitadas, feitas por um únicousuárioPágina de onde partiu a referência para a visita atualPequeno arquivo transferido por um web site, que ficaarmazenado no computador do cliente, contendoinformações que serão usadas na sua identificaçãoTabela 1.1 – Definições de termos da web1 Apesar de não fazer parte do padrão do protocolo HTTP, é adotado pelos principais servidores web enavegadores do mercado.8


1.6 Contribuição da teseO objetivo principal deste trabalho é demonstrar que existe a possibilidade de integraçãode Web Usage Mining com a Análise do Comportamento, propiciando a definição deuma metodologia para analisar o comportamento de navegar num web site. Estapesquisa se diferencia por tentar efetivamente analisar o comportamento dos visitantesde um web site de modo objetivo, sem atribuir rótulos aos usuários por meio deinterpretações subjetivas.O grande desafio é integrar duas disciplinas que são totalmente distintas, não apenas naárea, mas nos conceitos. Enquanto a Análise do Comportamento é realizada de formaindividual, onde as informações coletadas ao longo do tempo servem para comparar umindivíduo consigo mesmo, em Web Usage Mining o estudo é voltado para grupos deindivíduos.Esta metodologia permitirá que haja uma técnica efetiva para avaliação e modificaçãode web sites já existentes. De forma secundária, espera-se que esta metodologia deanálise do comportamento possa efetivamente ser aplicada nos sites das empresas paragerar resultados. Numa época onde o volume de transações realizadas pela web aumentaprogressivamente, é necessário que os sites se transformem em instrumentos denegócio.Não faz parte do escopo deste trabalho fazer um comparativo das técnicas de WebUsage Mining, e nem avaliar ou melhorar o desempenho dos algoritmos utilizados.1.7 Estrutura da teseEsta tese está organizada em 8 capítulos.O capítulo 2 descreve o processo de Web Usage Mining, mostrando as principaisferramentas do mercado e os trabalhos relevantes já desenvolvidos nesta área.9


No capítulo 3 são apresentadas as origens da Psicologia Comportamental e os conceitosque foram aplicados neste trabalho. Há também uma explicação sobre o Cognitivismo,que surgiu como oposição ao Behaviorismo, e que hoje em dia é muito utilizado nostrabalhos sobre comportamento.A metodologia proposta para análise do comportamento de navegar está detalhada nocapítulo 4.O capítulo 5 detalha o processo de validação desta metodologia, incluindo a descriçãodos programas implementados e softwares utilizados.O capítulo 6 contém o primeiro estudo de caso, que é o site de uma empresa que temseu negócio fortemente acoplado à web.O segundo estudo de caso é o site de um hotel de porte regional. Apesar de ser maistradicional, possui algumas características específicas. Encontra-se detalhado nocapítulo 7.Finalmente, no capítulo 8 são reunidas as conclusões e sugestões de trabalhos futuros.10


Capítulo 2Web Usage MiningQuando os usuários visitam os web sites, dados de sua navegação são gravados emdiferentes arquivos de log. Como estes arquivos podem conter informações valiosassobre a experiência do usuário na web, mas em geral são muito grandes, é necessárioutilizar técnicas e ferramentas que auxiliem a tarefa de análise. O objetivo do WebUsage Mining é descobrir o conhecimento escondido nestes arquivos de log.Aplicando métodos estatísticos e de Data Mining nos dados de log, padrõesinteressantes relacionados ao comportamento de navegação dos usuários podem seridentificados, tais como agrupamento de páginas e de usuários.2.1 Fontes de dadosNo ambiente web, as principais fontes de dados são os arquivos de log do servidor web.Estes arquivos textos, gerados automaticamente pelo servidor web, como o Apache e oMicrosoft Internet Information Server (IIS), são simplesmente um relatório de quaisendereços IP requisitaram quais objetos.Além do servidor web, outras fontes de dados podem ser utilizadas, tais comocomputador do usuário, servidor proxy, sniffer 2 e servidor de conteúdo, conformemostrado na Figura 2.1.2 Sniffer é uma marca registrada da Network General Computer Corporation e que descreve sua linha deanalisadores de protocolo.11


Figura 2.1 – Diagrama simplificado de acesso à web (COOLEY, 2000)Na Figura 2.1 é mostrado um esquema simplificado de acesso à internet. O servidor ISP(Internet Service Provider) é o provedor de acesso onde o usuário tem conta. Noservidor web é onde fica hospedado o web site. O servidor de conteúdo é utilizado paraa publicação de informações dinâmicas no site, através de uma estrutura pré-definida.Neste diagrama, a coleta de informações diretamente no computador do usuáriousualmente é feita através da inclusão de um pequeno código JavaScript nas páginasweb (HTML). Esse processo é conhecido como “JavaScript Page Tags”. JavaScript éuma linguagem de programação utilizada para criar pequenos programas encarregadosde realizar ações dentro do âmbito de uma página web. É executado no lado cliente,pois é o navegador do usuário que suporta a carga de processamento. Quando estaspáginas com código JavaScript são carregadas no browser do usuário, o programaembutido solicita a um servidor externo específico (web analytics server) um outroarquivo, com código JavaScript adicional, que captura informações do usuário. Depois,esse programa JavaScript monta uma requisição de uma imagem invisível, chamada de“web beacon”, e a envia ao servidor externo. No corpo desta requisição são passados osdados coletados no browser do usuário durante a sua navegação.Um web beacon é uma imagem eletrônica, chamada de GIF de pixel simples (1x1) ouGIF limpo. Normalmente estão presentes em páginas de sites ou em boletinsinformativos em formato HTML enviados por e-mail. É utilizado para reconhecer12


determinados tipos de informações sobre os computadores dos visitantes, como a data ea hora das visitas à página, o número de cookies e uma descrição da página em que estáinserido. Utilizado juntamente com cookie, permite compilar estatísticas agregadassobre o uso do site. Web beacons e cookies são usados geralmente por empresasprestadoras de serviço para monitorar a atividade de sites dos seus clientes. Nestescasos, com relação à privacidade, as informações são anônimas enquanto estiveremnesta empresa, mas pertencem ao respectivo cliente.Ainda na Figura 2.1, o servidor proxy, que se encontra no provedor de acesso à internet(ISP – Internet Service Provider), serve como um intermediário entre os micros dosusuários e a web. Este servidor pode ser usado basicamente com três objetivos: (a)compartilhar a conexão com a internet quando existe apenas um IP disponível, (b)melhorar o desempenho do acesso através de um cache de páginas, e (c) bloquearacesso a determinadas páginas. A vantagem em utilizar os logs do servidor proxy é queeles registram todas as navegações dos usuários daquele ISP, ou seja, todos osdiferentes sites por onde passaram. Diferentemente, no log do servidor web e no log doservidor de conteúdo são armazenadas somente as navegações dos usuários durante oacesso ao respectivo site; não há dados sobre as navegações que os mesmos realizaramem outros sites.Com relação ao log do servidor de conteúdo, seu processo de captura é realizado nonível de aplicação, resolvendo grande parte das deficiências apresentadas pelo log doservidor web, as quais estão detalhadas no Subitem 2.3. Entretanto, esta é umaalternativa muito onerosa para sites já existentes pois há a necessidade de redesenhartodo o sistema.Em todos estes tipos de log mostrados até agora não há a possibilidade de captura dedesconexões solicitadas por clientes (por exemplo, quando o usuário pára atransferência de uma página), de problemas de redes (retransmissão e sinal de ocupadodevido à sobrecarga), e do tempo de resposta do servidor para cada solicitação(PETERSON, E. T., 2005). Quando estas informações são relevantes, a coleta de dadoscom sniffers é a solução (“Packet-Sniffer logs”). Além disso, esta técnica de sniffingpermite coletar dados de vários servidores web simultaneamente.13


BRANDMAN et al. (1999) fazem um estudo sobre “web tracking”, definido como oprocesso de busca das informações de acesso a web, onde avaliam três formas decaptura destas informações: (a) através de log do proxy (quando um cliente não seconecta diretamente ao web site), (b) utilização de sniffers para detectar e gravar um logde todo tráfego HTTP, e (c) coleta periódica dos arquivos de log do browser dosusuários e envio a um repositório central para processamento.Exemplos de sistemas de monitoração na plataforma cliente para coletar os dados danavegação do usuário podem ser encontrados em SHAHABI et al. (2001) eFENSTERMACHER & GINSBURG (2003). LOU et al. (2002) apresentam umaproposta para a mineração de logs de servidores proxy. A técnica de “sniffing” aplicadacom Web Mining é muito utilizada em soluções inteligentes para detecção de invasõesem redes de computadores (BARBARA et al., 2001, BIVENS et al., 2002). Umaanálise comparativa entre a utilização de log de servidor web e log de servidor deconteúdo é mostrada em KOHAVI (2001).2.2 Formatos de logConsiderando que em Web Usage Mining as principais fontes de dados são os arquivosde log do servidor web, é importante conhecer os principais formatos existentes, quedependem da configuração e tipo do servidor:• Common Log Format (CLF): também conhecido como NCSA Common Format,é o formato mais utilizado atualmente, originalmente definido pela NCSA(National Center for Supercomputing Applications) e disponível numa variedadede servidores web, incluindo Apache e IIS (da Microsoft). Maiores detalhesdeste formato estão disponíveis em W3C (2006);• Combined Log Format: é uma extensão do Common Log Format que incluireferidor e a informação do agente que fez a solicitação ao servidor. Maioresdetalhes podem ser encontrados em APACHE (2006);14


• W3C Extended Logfile Format: é um log customizável, baseado também noCommon Log Format, que permite a configuração do log do servidor de forma acoletar somente as informações necessárias para a análise. Detalhes desteformato estão disponíveis em HALLAM-BAKER & CONNOLLY (1996a);• IIS Logfile Format: é um formato fixo utilizado pelo Internet Information Server(IIS) da Microsoft, baseado no Common Log Format, mas que permitearmazenar informações adicionais, incluindo tempo gasto e número de bytesenviados (diferentemente dos bytes recebidos no CLF). Maiores detalhes podemser encontrados em MICROSOFT (2006a).Independentemente do formato, uma entrada sempre é gravada como uma única linhaem texto (ASCII), separado por tabulações e espaços. Na Figura 2.2 é mostrado umexemplo de entrada num arquivo de log no formato Combined Log Format.shasta047195.ig.com.br - - [01/May/2003:09:25:24 -0300] "GETguiafriburgo/hospedagem/hoteis.htm HTTP/1.1" 200 5217"http://www.guiafriburgo.com.br/guiafriburgo/hospedagem/hospedagem.htm""Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)"Figura 2.2 – Exemplo de entrada no logO detalhamento dos campos do exemplo da Figura 2.2 é mostrado na Tabela 2.1, aseguir.15


Conteúdo Campo Definiçãoshasta047195.ig.com.br--[01/May/2003:09:25:24 -0300]"GET/guiafriburgo/hospedagem/hoteis.htm HTTP/1.1"Remote hostAuthenticationserverAuthenticatedusernameDate and timeRequestedinformationEndereço IP ou nome do computador que fez asolicitação HTTP. Será gravado o nome se oservidor estiver com o recurso de pesquisareversa de DNS ativo.Raramente utilizado, o campo foi destinado aidentificar o requisitante. Se esta informação nãofoi gravada, um hífen (-) é colocado.Mostra o usuário autenticado, se for solicitadopara acesso. Como esta autenticação é enviadaem texto livre, não é prático para a segurança.Geralmente é preenchido com um hífen (-).Data e hora, incluindo diferença de fuso horárioem relação à hora de Greenwich (GMT -Greenwich Mean Time). Comparando estes dadosentre diferentes entradas, pode-se estimarquanto tempo o visitante ficou numa página.É a linha da solicitação do HTTP. Existem trêstipos de solicitação: GET é a requisição padrãopor um documento ou programa, POST diz aoservidor que os dados estão no corpo damensagem, HEAD é utilizado por programas devalidação de links (e não browsers) e enviasomente a informação do cabeçalho HTTP.Também é gravada a versão do protocolo HTTP.200 HTTP statusHá cinco classes de códigos: informacional (série100), sucesso (série 200), redirecionamento(série 300), erro no cliente (série 400) e erro noservidor (série 500).5217“http://www.guiafriburgo.com.br/guiafriburgo/hospedagem/hospedagem.htm”“Mozilla/4.0 (compatible;MSIE 5.0; Windows 98;DigExt)"Content lengthreturnedReferring URLUser agentPara transações GET (HTTP), este campo indicaa quantidade de bytes transferidos. Para outras,este campo é preenchido com um hífen (-) ouum zero (0).Indica a página que contém o link para odocumento requisitado, ou seja, é a página ondeo visitante estava quando fez a solicitação.Fornece a descrição da aplicação que fez arequisição, que pode ser um browser, robô ouspider.Tabela 2.1 – Detalhamento do log16


2.3 Etapas do processoNum cenário ideal, estas informações do log poderiam ser utilizadas para reconstruir, deforma simples, a navegação de um usuário. Entretanto, na prática, este processo torna-secomplexo devido às seguintes dificuldades:• Identificação de usuários: um usuário pode ter múltiplos fluxos de navegação oupode acessar a web de diversos computadores. Além disso, há os servidoresproxy, onde muitos usuários compartilham um mesmo endereço ou um usuáriopode ter vários endereços;• Existência de dados não registrados no arquivo de log: por exemplo, dados tipoPOST não são armazenados no log;• Dados incompletos: são conseqüências do armazenamento das páginas emcache, da utilização de ponteiros de retorno e avanço e da inexistência deinformação de fim de sessão;• Conteúdo da página pode ser dinâmico: desta forma, não é possível reconstruironde o usuário navegou. Nestes casos, a opção mais adequada é configurar eutilizar o log do servidor de conteúdo;• Utilização de crawlers, spider e agentes autônomos: fazem solicitaçõesautomáticas de páginas.Assim, como nas tarefas de Data Mining, o Web Usage Mining necessita de um préprocessamentopara identificar os usuários, para determinar as sessões, para preencherdados incompletos e, finalmente, para reconstruir o clickstream. Esta etapa depreparação de dados demanda um esforço considerável, sendo que muitos autores jáestudaram este problema (PIROLLI et al.,1996, PITKOW, 1997, COOLEY et al.,1999a).17


Esta fase de pré-processamento, juntamente com as fases de descobrimento de padrões eanálise de padrões, compõe o processo de Web Usage Mining (SRIVASTAVA et al.,2000, COOLEY, 2000). Na segunda fase, métodos estatísticos e de Data Mining, taiscomo regras de associação, descobrimento de padrões seqüenciais, clusterização eclassificação, são aplicados para detectar padrões interessantes. Estes padrões sãoanalisados na terceira fase do processo.Na Figura 2.3 está esquematizado o processo de Web Usage Mining.Figura 2.3 – Etapas do Web Usage Mining (COOLEY, 2000)2.3.1 Preparação de dadosDependendo da aplicação, os dados de log podem necessitar de uma limpeza deregistros das páginas que retornaram com erro ou limpeza de acessos a arquivosgráficos. Em alguns casos estas informações podem ser úteis, mas geralmente sãoeliminadas. Além disso, atividades de crawlers também devem ser filtradas pois taisregistros não contribuem com informações úteis sobre a utilização do site. Outroproblema que deve considerado é o de dados incompletos ocasionado pelo caching,onde acessos às páginas em cache não são gravados no arquivo de log, resultando em18


perda de informação. Como o caching é muito dependente das tecnologias utilizadas naplataforma cliente, este problema não se resolve facilmente. Em alguns casos, estaspáginas podem ser inferidas usando a informação de referidor (referrer) contida no log.O ponto mais importante na etapa de preparação é a identificação do usuário. Há váriosmeios para identificar um visitante individual. A solução mais óbvia é assumir que cadaendereço IP (ou par endereço IP/agente do cliente) é um visitante. Entretanto, isso não émuito preciso pois um mesmo visitante pode acessar a web por diferentescomputadores, ou vários usuários podem utilizar o mesmo endereço IP (no caso deutilização de servidor proxy ou quando o provedor fornece endereço IP dinâmico).Normalmente assume-se que acessos consecutivos do mesmo computador durante certointervalo de tempo são do mesmo usuário. A utilização de cookies, que depende deconsentimento do usuário, e de mecanismos de login (registro de usuário) sãoabordagens mais eficazes para a identificação de visitante único. É importante ressaltarque o cookie somente identifica o browser/máquina, e não o usuário.Existem duas variações de cookies: os de sessão e os persistentes (PETERSON, 2005).Os cookies de sessão permanecem somente enquanto o visitante estiver no site e sãoapagados quando ele fecha seu browser ou depois de algum tempo de inatividade(geralmente 30 minutos). Os cookies persistentes vão além de uma única visita e têmuma data de expiração futura. Esta variação é a recomendada para identificação devisitantes únicos. Este dois tipos de cookies usam a mesma tecnologia, mas diferem emcomo são tratados pelas aplicações no que se refere à segurança e privacidade. Oscookies persistentes podem ainda ser classificados em First-party, que são colocadospelo próprio domínio visitado, ou Third-party, que são colocados por um domíniodiferente do site visitado.Outra técnica que tem sido utilizada por lojas on-line é a de indicador de sessão. Nestecaso, um identificador único é inserido na URL para a primeira página solicitada do site.A partir daí, todos os links nesta página são modificados para incluir o mesmoidentificador, permitindo a análise de toda a navegação do usuário dentro do site(HALLAM-BAKER & CONNOLLY, 1996b). É possível também coletar o logdiretamente no cliente através de agentes de software, que são programas carregados no19


owser dos usuários e têm a função de enviar os dados de navegação (SHAHABI et al.,1997). Esse é o processo conhecido como “JavaScript Page Tags”, já explicadoanteriormente.Estando o usuário identificado, o próximo passo é executar a identificação das sessõesde cada usuário. A solução mais usual é definir um tempo de intervalo máximo, ondedois acessos consecutivos que excedam este limite pertencerão a diferentes sessões.CATLEDGE & PITKOW (1995) fizeram um estudo para avaliar o intervalo de tempoentre as interações do usuário e o browser e concluíram que a probabilidade de umusuário ficar mais que 25,5 minutos sem fazer qualquer solicitação é muito baixa. Comoresultado deste estudo, muitos autores e softwares comerciais adotaram o valor de 30minutos para time-out.Pode-se também definir um tempo mínimo de duração, onde acessos consecutivosdentro deste limite pertencerão à mesma sessão (SPILIOPOULOU & FAULSTICH,1998, SPILIOPOULOU et al, 1999).Considerando que erros na reconstrução de sessões e um monitoramento incompleto dasatividades dos usuários num site podem facilmente invalidar os padrões e gerarconclusões erradas, SPILIOPOULOU et al. (2003) avaliaram o desempenho de váriasheurísticas destinadas à reconstrução de sessões a partir do log do servidor web. Osresultados mostraram que cada heurística foi eficiente numa determinada situação.Todas as sessões identificadas dos usuários servirão como entrada da fase de descobertade padrões ou da etapa de identificação de transações. Esta última, ainda consideradapreparatória, é necessária para o descobrimento de regras de associação. Uma transaçãocaracteriza-se por ser um agrupamento semanticamente significativo de referências depáginas (COOLEY et al., 1999a), podendo incluir desde apenas uma até todas aspáginas acessadas em uma sessão.COOLEY et al. (1997a, 1999a) comparam três métodos principais de identificação detransações: (a) identificação por duração da referência, (b) identificação por referênciasposteriores máximas, e (c) identificação por janelas de tempo.20


• O método de identificação por duração da referência está baseado na suposiçãode que o tempo gasto pelo usuário numa página pode classificá-la como sendode conteúdo ou auxiliar;• O método de identificação por referências posteriores máximas está baseado notrabalho apresentado por CHEN et al. (1996). Ao invés de tempo gasto em cadapágina, cada transação é definida como um conjunto de páginas, começando naprimeira página da sessão e terminando na página anterior a uma referênciareversa (backward reference). Uma referência posterior (forward reference) édefinida como uma página ainda não contida na transação corrente. De formasimilar, uma referência reversa é definida como uma página que já está contidana transação. Uma nova transação é iniciada quando se faz a próxima referênciaposterior. Neste método, as páginas de referências posteriores máximas sãopáginas de conteúdo e as páginas que conduzem a elas são páginas auxiliares;• O método de identificação de transações por janelas de tempo considera queuma transação tem um tempo médio de duração. É o mais simples poisparticiona a sessão em intervalos com duração menor do que um determinadoparâmetro.Os autores concluíram que o método de duração de referência é o único a encontrarregras que não poderiam ser inferidas da estrutura do site web. O método de referênciasposteriores máximas não obteve bons resultados com logs de sites com alto grau deconectividade entre as páginas.Após esta etapa de pré-processamento dos dados, os arquivos de log são transformadosem um ou mais arquivos estruturados (ou inseridos num banco de dados), mantendosomente as informações necessárias para a análise de Web Usage Mining. Isso faz comque os logs sejam reduzidos consideravelmente, ficando entre 10% a 25% do tamanhoinicial.21


2.3.2 Descobrimento de padrõesUma vez que os logs foram pré-processados, as técnicas estatísticas e de Data Miningpodem ser aplicadas.A análise estatística de log é o método mais simples dentro deste contexto. Atualmente,já existem várias ferramentas comerciais para este tipo de análise (STOUT, 1997,MENA, 1999). Estas ferramentas, também chamadas de ferramentas de análise detráfego, processam o log e extraem os seguintes tipos de informações:• Estatísticas de atividade do site: por exemplo, número total de visitas, númeromédio de hits e tamanho médio de navegação;• Estatísticas de diagnóstico: erros de servidor e páginas não encontradas;• Estatísticas do servidor: páginas mais visitadas, páginas de entrada e saída, epáginas de acesso único;• Estatísticas do referidor: sites mais referidores, mecanismos de buscas epalavras-chaves;• Estatísticas do cliente: browser do visitante, sistema operacional e cookies;• Dados demográficos: localização geográfica e países, cidades, organizaçõesmais ativas.Estas estatísticas, geralmente apresentadas em relatórios e gráficos, são utilizadas pelosadministradores para melhorar o desempenho do sistema, para facilitar as tarefas demodificação do site e para auxiliar em decisões de marketing (SRIVASTAVA et al.,2000).Comparado com a análise estatística de log, as técnicas de Data Mining são maiseficientes pois conseguem extrair observações mais complexas. As técnicas maisutilizadas são: a mineração de regras de associação, a mineração de padrões seqüenciaise a clusterização.22


2.3.2.1 Mineração de regras de associaçãoOs algoritmos de mineração de regras de associação foram inicialmente desenvolvidospara a análise de cesto de compra (marketbasket analysis). O algoritmo Apriori(AGRAWAL & SRIKANT, 1994), apesar de ter sido o primeiro a ser desenvolvido,continua a ser um dos mais utilizados nesta tarefa.A mineração de regras de associação é utilizada para encontrar padrões freqüentes, istoé, associações e correlações entre conjuntos de itens. No ambiente web, as regras deassociação são normalmente usadas para verificar as correlações entre páginasacessadas durante uma sessão. Estas regras indicam a possibilidade de relação entrepáginas, mesmo se elas não estiverem diretamente conectadas.Esta noção de padrão freqüente depende de duas medidas: o suporte e a confiança. Amedida de suporte expressa o número mínimo de sessões para formar uma regra deassociação, que são do tipo “Se-Então”. Como a forma geral de uma regra é X => Y(“se X então Y”), onde X e Y são conjuntos de páginas web, um suporte de s% para estaregra de associação significa que X e Y estão contidos em s% das sessões. A confiançaé calculada como a razão entre o suporte da regra X => Y e o número de sessões quecontém X. Esta medida expressa a probabilidade que o conjunto de páginas Y sejavisitado quando o conjunto X for visitado. Por exemplo, considere as seguintesnavegações contidas na Tabela 2.2.SessãoPáginas visitadas1 A, B, C2 A, C3 A, D4 B, E, FTabela 2.2 – Exemplo de navegaçõesEstabelecendo o suporte mínimo e a confiança mínima em 50%, obtêm-se duas regras:23


• A => C (suporte = 50%, confiança = 66,6%)• C => A (suporte = 50%, confiança = 100%)A grande desvantagem da mineração de regras de associação é que a ordem das páginasnuma sessão não é considerada. Assim, uma sessão onde uma página A é visitada antesda página B será considerada da mesma forma que uma sessão onde a página A évisitada após a página B.Como esta ordem de visitação é essencial tanto para a previsão de próxima requisiçãoquanto para buscar usuários com navegações similares, a mineração de padrõesseqüenciais aparece como uma das soluções para estes problemas.2.3.2.2 Mineração de padrões seqüenciaisO problema de mineração de padrões seqüenciais foi introduzido por AGRAWAL &SRIKANT (1995), juntamente com o algoritmo AprioriAll. No trabalho seguinte(SRIKANT & AGRAWAL, 1996), os mesmos autores propuseram o algoritmo GSP,que é vinte vezes mais rápido que o AprioriAll.A mineração de padrões seqüenciais, que é uma extensão da mineração de regras deassociação, permite buscar por co-ocorrências incorporando a noção de tempo (ordemdos eventos, isto é, cliques. Desta forma podem-se descobrir quais páginas foramacessadas após um determinado conjunto de páginas. Por exemplo: 23% dos usuários dosite visitam a página A, depois a página B e então a página C.Neste caso, o suporte deste padrão seqüencial é constituído apenas por sessões quecontêm as páginas A, B e C, precisamente nesta ordem, mas não necessariamenteconsecutivos. Geralmente a medida de confiança não é usada para padrões seqüenciais,embora possa ser calculada considerando como sendo um caso especial de regra deassociação (de forma geral X => Y). Os primeiros n-1 itens seriam o conjunto X e oúltimo item seria o conjunto Y.24


Devido a esta restrição de ordem, esta medida de suporte geralmente é menor que osuporte das regras de associação correspondentes (com as mesmas páginas). Em WebUsage Mining, dependendo da quantidade de páginas do web site e do número devisitantes, os valores de suporte dos padrões seqüenciais podem chegar a 0,1%(TANASA, 2005).2.3.2.3 ClusterizaçãoA clusterização agrupa itens que possuem características similares. No contexto de WebUsage Mining, utiliza-se esta técnica para identificar grupos de usuários ou grupos depáginas dos arquivos de log, onde cada cluster representa um conjunto de objetos cominteresses ou características comuns:• A clusterização de usuários encontra grupos com interesses comuns baseadosem seus comportamentos durante a navegação no site (FU et al., 1999);• A clusterização de página gera grupos de páginas de acordo com o acesso dosusuários. Estes conhecimentos são importantes, por exemplo, para inferir sobreaspectos demográficos dos usuários. Com isso pode-se fazer uma segmentaçãode mercado ou uma personalização de conteúdo.Esta similaridade é obtida utilizando-se uma medida de distância definida para oconjunto (ou seqüência) de page views. Para preparar os dados de navegação para aclusterização, a solução mais comum é transformar cada sessão num vetor de nelementos, onde n corresponde ao número de páginas do web site.WANG & ZAIÄNE (2002), além de proporem um novo algoritmo para clusterizaçãobaseado em alinhamento seqüencial, fazem um bom resumo das técnicas existentes declusterização.25


2.3.2.4 ClassificaçãoUma tarefa de classificação mapeia um dado em uma das classes pré-definidas(SRIVASTAVA et al., 2002). No ambiente web, é interessante que os usuários quenavegam num site possam pertencer a uma determinada classe ou categoria. Num sitede comércio eletrônico, por exemplo, um usuário poderia ser classificado como “nãocliente”, “cliente novo” ou “cliente regular” de acordo com a sua navegação. As regrasdescobertas permitiriam que fossem feitas ofertas especiais para cada tipo de cliente(BÜCHNER & MULVENNA, 1998).A classificação pode ser feita utilizando algoritmos de aprendizado supervisionado,como árvore de decisão, k-nearest neighbor (kNN), Support Vector Machine (SVM),etc. (HAN & KAMBER, 2001, CORTES & VAPNIK, 1995, SUN et al., 2002).2.3.3 Análise de padrõesApós o descobrimento dos padrões de utilização, é necessário realizar a análise dosmesmos considerando um determinado domínio. Isso pode ser feito usando diretamentetodo o conjunto de padrões descobertos, ou através de mais um nível de agregação, quepode ser gerado por programas estatísticos, gráficos, de visualização ou de consulta. Oobjetivo da análise de padrões é transformar estas regras, padrões e estatísticas emconhecimento sobre o site que está sendo analisado.Neste tipo de análise, nem sempre os padrões dominantes são os mais interessantes. Àsvezes é mais importante descobrir informações, por exemplo, dos subcaminhos quepassam por páginas com determinadas características e que sejam percorridos por umnúmero mínimo ou máximo de usuários, mantendo uma relação estatística confiávelentre quaisquer duas ou mais páginas deste caminho (BOULLOSA, 2002).Entretanto, como em qualquer processo de KDD, os resultados produzidos pelo WebUsage Mining dependem de um analista para separar o que é realmente interessante. Oconceito do que é interessante é muito difícil de incorporar ao processo de mineração26


pois varia de acordo com as crenças e necessidades do analista, com o tipo do site, suaestrutura, etc.2.4 Tipo de aplicaçõesDevido ao grande interesse dos pesquisadores e do mercado pelo Web Usage Mining,surgiram inúmeras aplicações, as quais, de forma geral, podem ser agrupadas daseguinte forma:• Personalização: faz recomendações de páginas dependendo do perfil do usuárioou das páginas anteriormente visitadas. Pode ser do tipo sistema derecomendação, onde são sugeridos ao usuário possíveis links interessantes, oudo tipo site adaptativo (ou inteligente), onde o site pode alterar seu conteúdodependendo do usuário;• Melhoria de desempenho: permite analisar o comportamento do tráfego e assimgerenciar o balanceamento de carga e a distribuição dos dados. Por exemplo,através dos resultados do Web Usage Mining é possível prever a próximasolicitação (página) do usuário e antecipar a carga da mesma num cache oubuffer. Desta forma, o usuário não precisará esperar a carga desta página dodisco e o desempenho do sistema será melhorado;• Melhoria do site: as informações de navegação dos usuários servem pararedesenho do site, tanto lógico (inclusão de novos links) quanto físico (mudançana organização das páginas). VELÁSQUEZ et al. (2003b) mostram umaaplicação deste tipo direcionada a um web site educacional;• Caracterização do usuário: captura informações detalhadas da interação dosusuários com o site para o CRM (Customer Relationship Management). Atravésda análise do comportamento do usuário, é possível entender suas necessidades,avaliar oportunidades e identificar potenciais clientes.27


2.5 FerramentasAs ferramentas 3 para análise de log podem ser agrupadas em três níveis: ferramentas derelatório, ferramentas de Web Usage Mining e ferramentas analíticas. Atualmente agrande maioria das ferramentas comerciais está no primeiro e no terceiro grupo. Istoreflete uma teoria apresentada por SRIVASTAVA et al. (2002), onde os autoresacreditam que a melhor forma das pesquisas de Web Mining chegarem ao mercado éatravés dos fornecedores de soluções analíticas.As ferramentas de relatório geralmente trabalham diretamente com os arquivos de log,fornecendo sumários e simples visualização dos dados. Podem ser consideradas comosimples analisadores de tráfego (EIRINAKI & VAZIRGIANNIS, 2003). Por isso, sãoos que custam menos, sendo que muitas delas são gratuitas, como é o caso do Analog (omais popular) [ANA], WebLog [AWS] e FunnelWeb [QUE]. Outros produtos nestacategoria são o Mach 5 Faststats Analyzer [MAH], Sawmill [SAW], SurfStats LogAnalyzer [SUR], Web-Stat [WST], WebSTAT Premium [WSP] e Deep Log Analyzer[DLA]. Como estes produtos não são caros, são direcionados normalmente a pequenasempresas que querem monitorar e analisar o tráfego em seu servidor web (geralmenteúnico).As ferramentas de Web Usage Mining caracterizam-se por utilizar de técnicas de DataMining para extração de conhecimento, além de possuir uma etapa de preparação e préprocessamentodos arquivos de log. Devido a estas características, até um tempo atrásexistiam somente ferramentas acadêmicas neste grupo, como é o caso do WUM[WUM]. O WUM é uma ferramenta apropriada para descobrimento de padrõesseqüenciais que surgiu de um projeto de pesquisa e hoje é distribuído gratuitamente.Caracteriza-se por possuir uma linguagem de consulta (semelhante ao SQL) paramineração, o MINT. Hoje, alguns grandes fornecedores já possuem módulo paramineração de logs, como é o caso da SPSS com o Web Mining for Clementine [WMC],que funciona como um módulo do pacote Clementine.3 Todas as referências das ferramentas (colocadas entre colchetes) que aparecem neste tópico estãolistadas no Apêndice A, indicando o link para o fabricante.28


No patamar superior estão as soluções analíticas que oferecem, além de recursos maisavançados, alguns algoritmos de Data Mining. A maioria destes produtos faz parte deuma solução de CRM, a qual, combinando o conhecimento extraído dos logs de websites com as informações de clientes coletadas de outras fontes, reúne e gerencia ainteligência do negócio de uma empresa. Desta forma, questões relevantes podem serrespondidas, tais como:• Qual é a taxa de conversão, isto é, quantos visitantes se tornam clientesrealizando uma compra on-line?• Quantos clientes começam a fazer compras (enchendo o carrinho de compras) eabandonam o processo?• Qual foi o resultado de uma determinada oferta, isto é, qual foi seu retornofinanceiro?• Quem compra determinado produto?• Quem são os clientes mais rentáveis?• O que está sendo comprado e por quem?Uma empresa pode utilizar uma solução analítica em pacote ou pode contratar osserviços externos fornecidos pelos ASPs (Application Service Providers). Esta últimaopção está ficando muito popular pois muitas empresas preferem não executar e manteraplicativos internamente. Além disso, os ASPs têm oferecido soluções mais rápidas emais baratas do que as soluções em pacote. Os ASPs geralmente coletam dados no ladodo cliente, através do browser do usuário (JavaScript Page Tags).Atualmente muitos fornecedores tanto fornecem pacote quanto hospedam serviço. NaTabela 2.3 são mostradas as principais soluções de mercado, detalhando ascaracterísticas de tipo de entrega e origem dos dados.O ClickTracks [CKT] foi o que popularizou o modelo de browser overlay paravisualização de dados, onde as estatísticas são mostradas diretamente na página. É umadas ferramentas mais baratas, começando por US$ 495 para uma licença única. OWebTrends [WTR] é um dos fornecedores mais antigos, possuindo tanto solução de29


pacote quanto de serviço. Seus preços são baseados no volume de page views, onde suaversão mais barata sai por US$ 495 (software) ou US$ 35 por mês (serviço).FornecedorTipo de entrega Origem dos dadosPacote Serviço Logs Page tagsClickTracks x x x xWebTrends x x x xWebSideStory x xOmniture x xCoremetrics x xSane Solutions x x xFireclick x xTabela 2.3 – Soluções de mercadoO WebSideStory [WSS] foi um dos primeiros ASPs para análise da web, que inovoupermitindo que os dados de acesso ao site fossem capturados e armazenadosautomaticamente numa planilha Excel. O Omniture [OMN] é conhecido por suainterface visual denominada SiteCatalyst. É uma das melhores ferramentas que existe,adequada a qualquer web site de negócio on-line. O Coremetrics [COR] construiu suareputação trabalhando para site de vendas on-line no varejo, de serviços financeiros e deviagens. Como ele é fundamentado num data warehouse flexível, permite analisar perfiscomplexos de visitantes e integrar dados com soluções externas complementares. Aaplicação NetTracker da Sane Solutions [SAN] é uma das ferramentas mais utilizadasno monitoramento de sites. É uma ferramenta sofisticada de ETL (Extract, Transform,Load) que converte os dados obtidos de um web site para que ferramentas de BI(Business Intelligence), como o Cognos, Business Object e MicroStrategy, possamutilizá-los. O Fireclick [FRK] foi o primeiro provedor de serviço (ASP) que ofereceurecursos com maior valor agregado, como a comparação com os concorrentes.Outros fornecedores deste tipo de solução são: Datanautics [DAT], Watchfire [WHF],Doubleclick [DCK] e SAS [SAS]. Na Figura 2.4 é mostrado o posicionamento nomercado americano de algumas ferramentas de análise de web site no ano de 2004.30


Figura 2.4 – Mercado de ferramentas de análisede web sites 4 (CHATHAM, 2004)2.6 Trabalhos relacionadosMOBASHER et al. (1996) e COOLEY et al. (1997a) propõem uma arquitetura genéricapara o processo de Web Usage Mining, implementada parcialmente no projetoWebMiner. O ambiente WebMiner fornece uma linguagem de consulta que utilizacritérios mais sofisticados do que a simples freqüência de acesso.4O NetIQ é o WebTrendsO Harvest Solutions foi adquirido em 2005 pela CheetahMailO IBM SurfAid foi adquirido no início de 2006 pela Coremetrics31


O projeto WebSIFT (Web Site Information Filter), desenvolvido por COOLEY et al.(1999b) e COOLEY (2000), mostra que é possível inferir, a partir de arquivos de log, aspáginas não registradas nos logs devido ao uso de cache nos clientes. Além disso,mostra também que o tipo de utilização de uma página pode ser inferido a partir dotempo gasto pelo usuário na mesma.O WUM (Web Utilization Miner), proposto por SPILIOPOULOU & FAULSTICH(1998), é uma arquitetura que emprega uma técnica inovadora para descobrir os padrõesde navegação utilizando uma visão agregada do arquivo de log de acesso. Nele, asnavegações individuais, chamadas de trilhas, são combinadas numa estrutura de árvore.Esta árvore de agregação é formada juntando as trilhas com o mesmo prefixo, onde cadanó desta árvore contém uma URL e a informação de quantos visitantes chegaram a estenó através do mesmo caminho. Utilizando-se a linguagem de mineração MINT(disponível através de uma interface), é possível descobrir os padrões freqüentes.BERENDT (2000) desenvolveu um módulo add-on para a ferramenta WUM,denominado STRATDYN. Este módulo implementa um algoritmo para classificação deseqüências ou sessões, permitindo que diferenças relevantes sejam percebidas nocomportamento dos usuários. Desta forma, é possível determinar se uma mudança nodesenho do site obteve o resultado desejado.ZAÏANE et al. (1998) utilizam uma estrutura de cubos de dados para armazenar os logsdo servidor web, onde é possível executar tarefas de Data Mining e atividades de OLAP(Online Analytical Processing). O projeto, denominado WebLogMiner, possui quatroestágios: filtragem dos dados, construção dos cubos de dados, utilização de OLAP noscubos de dados de log e aplicação de técnicas de Data Mining.Uma das técnicas que tem se adaptado bem na modelagem e previsão docomportamento do usuário num web site é o modelo de Markov, muito aplicado emprocessos estocásticos (MASSA & PULIAFITO, 2002, SINGH, 2004). Em geral, ummodelo de Markov é caracterizado por um conjunto de estados {s 1 , s 2 , ..., s n } e umamatriz de probabilidade de transição {p 1,1 , ..., p 1,n , ..., p 2,1 , ..., p 2,n , ..., p n,1 , ..., p n,n }, ondep i,j representa a probabilidade da transição do estado s i para s j . A ordem de um modelo32


de Markov corresponde ao número de eventos anteriores utilizados na previsão de umevento futuro. No contexto de navegação, as cadeias de Markov podem ser usadas paramodelar as probabilidades de transição entre page views.SINGH (2004) mostra como as navegações num web site podem ser modeladas com ummodelo de Markov. Considerando as transações da Figura 2.5 (esquerda) que envolvemas páginas A, B, C, D, E e F, e suas respectivas freqüências (totalizando 50 transações),o modelo de Markov para estes dados é mostrado na Figura 2.5 (direita). Por exemplo, aprobabilidade de transição de A para B é 16/28 = 0,57, pois há 20 ocorrências de A nastransações e, em 16 casos, B ocorre imediatamente após A.Figura 2.5 – Exemplo de modelagem de navegaçãocomo cadeia de Markov (SINGH, 2004)Como os modelos de Markov de primeira-ordem não fornecem boa precisão, modelosde maior ordem são freqüentemente utilizados. Entretanto, estes modelos sãoextremamente complexos devido a grande quantidade de estados, o que aumenta oespaço e o tempo de execução. <strong>DE</strong>SHPAN<strong>DE</strong> & KARYPIS (2000) apresentamdiferentes técnicas para selecionar, de forma inteligente, partes de diferentes modelos deMarkov de forma que o modelo resultante tenha complexidade reduzida e melhor nívelde acerto.A utilização de técnicas fuzzy é proposta por NASRAOUI et al. (1999) para clusterizarsessões de usuários e descobrir os perfis existentes, os quais são utilizados para inferir33


as associações existentes entre páginas de um web site. JOSHI & KRISHNAPURAM(2000) também apresentam uma abordagem para a identificação automática das sessõescom técnicas de agrupamento fuzzy. Utilizam uma medida de similaridade entre duassessões que incorpora tanto as URLs envolvidas quanto a estrutura do site.SCHECHTER et al. (1998) propõem utilizar os dados de log para prever a próximaURL a ser solicitada, permitindo que o servidor gere com antecedência as páginas comconteúdo dinâmico. Uma comparação entre três abordagens de Data Mining paraprevisão da próxima solicitação de um usuário (baseada no seu comportamento extraídodos dados de log) é apresentada por GÉRY & HADDAD (2003).YANG et al. (2004) apresentam um estudo de diferentes métodos para construção demodelo de predição da próxima solicitação de usuário baseado em regras de associaçãoutilizando dados de log. Neste trabalho, os autores examinam duas dimensõesimportantes na construção do modelo: os antecedentes das regras e o critério paraseleção das regras.O algoritmo PageGather, introduzido por PERKOWITZ & ETZIONI (1998 e 2000),utiliza técnicas de agrupamento para descobrir páginas relacionadas de um web sitebaseada numa suposição de coerência de visitas, isto é, as páginas que um usuário visitadurante uma interação com o site tendem a ser conceitualmente relacionadas. É umavariação da clusterização tradicional, só que ao invés de particionar todo o espaço deobjetos, ele tenta achar uma pequena quantidade de clusters de alta qualidade.Basicamente este algoritmo muda a forma de representação dos dados de log (utilizamatriz de similaridade e grafo) para facilitar a execução da clusterização.A utilização de técnicas de Data Mining para organizar dinamicamente os hipertextosno servidor web é proposta por MASSEGLIA et al. (1999a e 1999b). O protótipodesenvolvido, denominado WebTool, gera links dinâmicos baseados nas regras obtidaspela mineração de seqüências ou de associações. Toda vez que um padrão de navegaçãode um visitante coincide com uma regra, a organização dos hipertextos é modificada.Mais recentemente, MASSEGLIA et al. (2000) abordaram o problema de Web UsageMining incremental através do método ISEWUM.34


O sistema WebPersonalizer, proposto por MOBASHER et al. (1999 e 2000a), permitefazer recomendações para um usuário baseado em similaridades de navegação comoutros usuários. Posteriormente, este sistema foi melhorado através da incorporação deperfis de conteúdo no processo de recomendação (MOBASHER et al., 2000b e 2000c).Estes perfis representam as diversas formas que as páginas com conteúdos parciaissemelhantes podem ser agrupadas.BÜCHNER & MULVENNA (1998) apresentam um processo de descobrimento deconhecimento de dados da web direcionado à área de marketing. Eles definem umaestrutura de hipercubo que consolida os dados de log de acesso com dados de marketingpara aplicações de comércio eletrônico (e-commerce). Esta técnica suporta as quatroetapas distintas que são identificadas no ciclo de vida do relacionamento com o cliente:aquisição, retenção, vendas cruzadas e término.As técnicas de visualização, que têm ajudado na compreensão de vários tipos defenômenos, também podem ser aplicadas para a análise do comportamento de usuáriosna web. O trabalho pioneiro nesta área é o de PITKOW & BHARAT (1994), quedesenvolveram o sistema WebViz para visualização dos padrões de acesso web. Elesrepresentam uma coleção de documentos web como um grafo cíclico dirigido, onde osarcos representam os links entre os documentos e cada nó representa um documento.Outro trabalho direcionado à visualização dos comportamentos dos usuários num website é o de CA<strong>DE</strong>Z et al. (2000). Eles apresentam a ferramenta WebCANVAS (WebClustering Analysis and Visualization of Sequences), que utiliza uma nova metodologiapara apresentação dos padrões de navegação. Nesta abordagem, primeiramenteparticiona-se os usuários em clusters de acordo com sua navegação. Em seguida, paracada cluster, são mostrados graficamente os caminhos tomados por cada usuário destecluster.Atualmente, muitos trabalhos têm combinado outros conhecimentos ao processo deWeb Usage Mining devido às dificuldades encontradas na manipulação exclusiva dearquivos de log. COOLEY (2003) mostra que, apesar de todos os recursos dedicados aoWeb Usage Mining, os sucessos têm sido limitados e freqüentemente estão associados35


às propriedades específicas do web site. Ele propõe que sejam utilizadas informações deconteúdo e de estrutura do site para a melhoria deste processo. VELÁSQUEZ et al.(2003a) mostram uma solução para analisar o comportamento de visitantes num website combinando dados de conteúdo e de log.Uma das áreas que vem sendo muito pesquisada é o Semantic Web Mining, que é ainteração de Web Mining com Semantic Web (BERENDT et al., 2002). A SemanticWeb é um termo criado por Tim Berner-Lee para definir um ambiente onde asinformações da web podem ser processadas por máquinas. (BERNERS-LEE et al.,2001). A idéia básica é adicionar conhecimentos às páginas web (que podem serprocessados), os quais são representados na forma de ontologias. Ontologias definemcertos tipos de objetos e as relações entre eles (FENSEL, 2001). Além disso, sãofacilmente acessáveis, permitindo que programas de computadores as usem para inferirsobre informações contidas em páginas web.Cabe aqui ressaltar que existe uma diferença na interpretação de ontologia entre osfilósofos e a comunidade de inteligência artificial. Para a engenharia de software,ontologia descreve certa realidade com um vocabulário específico, usando um conjuntode premissas de acordo com o sentido intencional das palavras do vocabulário. Nosentido filosófico, ontologia é um sistema específico de categorias que reflete uma visãoespecífica do mundo ou, de forma mais simples, uma ontologia é uma teoria que explicacomo o universo é organizado. Desta forma, pode-se dizer que para o engenheiro desoftware existem diversas ontologias, enquanto que para o filósofo existe apenas uma, aOntologia (com letra maiúscula). Para resolver esta questão, foi criada uma distinçãoterminológica entre uma ontologia baseada na realidade (ontologia-R) e uma ontologiaepistemológica (ontologia-E). A ontologia-R corresponde ao mundo dos filósofosenquanto que a ontologia-E serve aos propósitos dos engenheiros de software(FONSECA et al., 2000).Especificamente em Web Usage Mining, este tipo de conhecimento das páginasvisitadas durante a navegação dos usuários pode melhorar consideravelmente osresultados de mineração, uma vez que ajuda o analista, entre outras coisas, a entender oque os usuários estavam procurando e a verificar co-ocorrências de conteúdo.36


Existem também trabalhos que se distinguem, principalmente, pela inovação naaplicação. Nessa linha, duas aplicações interessantes de Web Usage Mining foramapresentadas recentemente por WOON et al. (2003) e SOUTO (2003).No primeiro trabalho os autores propõem a utilização de técnicas de mineração de logpara melhoria do processo de desenvolvimento de produto, onde projetistas,fornecedores, parceiros de negócio e até mesmo consumidores colaboram, via Internet,em todo o ciclo de vida do produto. Eles apresentam um método, denominado PDMiner(Product Development Miner), que extrai o conhecimento de como os produtos podemser projetados mais rápidos através do descobrimento dos relacionamentos entre peças etipo de montagem, e descobrimento da interação entre as pessoas envolvidas nesteprocesso de desenvolvimento.O segundo trabalho descreve uma metodologia para investigar como modelar o EstiloCognitivo de Aprendizagem (ECA) de um aluno remoto, baseado na observação eanálise de seu comportamento em um ambiente de ensino e aprendizagem na web. Estametodologia compreende duas fases: (a) geração das classes de ECA a partir daaplicação de um teste psicológico em uma amostra da população-alvo; e (b)desenvolvimento do módulo de ensino experimental e estudo das Trajetórias deAprendizagem (TA) padrão das classes de ECA, a partir da observação de seuscomportamentos durante a execução de uma sessão de estudo na web. A primeira fasefoi realizada através de análises estatísticas, pela aplicação das técnicas de AnáliseFatorial e Análise de Cluster. Na segunda fase foram aplicadas técnicas de AnáliseExploratória de Dados (para formulação de hipóteses) e de Web Usage Mining (paraconstrução de modelos de classificação de ECAs).37


Capítulo 3ComportamentoO comportamento, no âmbito da psicologia, pode ser estudado por diferentes áreas,como o behaviorismo, a psicanalítica e a rogeriana. A Análise do Comportamento,utilizada neste trabalho, não pode ser considerada como uma área. Ela é, na verdade,uma maneira de estudar o objeto da psicologia.Apesar deste trabalho estar baseado no behaviorismo, é importante conhecer também ao cognitivismo, presente em grande parte dos trabalhos relacionados a Web UsageMining. Estas duas abordagens da psicologia comportamental, por possuírem conceitosconflitantes, são fontes de muitas discussões e debates no meio acadêmico eprofissional, onde cada grupo tenta mostrar que é o certo. Não é o objetivo destetrabalho gerar mais polêmica sobre este assunto. Neste capítulo será apresentada umadescrição de cada uma delas, principalmente dentro do contexto histórico, além de umdetalhamento dos conceitos do behaviorismo radical aplicados nesta pesquisa.3.1 BehaviorismoO behaviorismo surgiu no começo do século passado como uma proposta para apsicologia, para tomar como seu objeto de estudo o comportamento, ele próprio, e nãocomo indicador de alguma outra coisa, como indício da existência de alguma outra coisaque se expressasse pelo ou através do comportamento. Na Idade Média, a igrejaexplicava a ação, o comportar-se do homem pela posse de uma alma. As faculdades ecapacidades desta alma é que causavam o comportamento deste homem. No início do38


século 20, os cientistas o faziam pela existência de uma mente. Os objetos e eventoscriavam idéias em suas mentes e estas impressões mentais ou idéias geravam seucomportamento. Estas duas posições são essencialmente dualistas: o homem éconcebido como tendo duas naturezas, uma divina e uma material, ou uma mental e umafísica. Há também, em ambas, uma circularidade do argumento: ao mesmo tempo emque essa alma ou mente causavam e explicavam o comportamento, esse comportamentoera a única evidência desta alma ou desta mente.Segundo MATOS (1993), no mentalismo o acesso às idéias ou imagens se faria somenteatravés da introspecção, que seria então revelada através de uma ação, gesto ou palavra.Neste caso, tem-se um modelo causal de ciência: (a) o indivíduo passivo recebeimpressões do mundo; (b) estas impressões são impressas na sua mente constituindo suaconsciência; (c) que é então a entidade agente responsável por suas ações (ou local ondeocorrem processos responsáveis por estas ações). Os processos cognitivos, tão faladoshoje em dia, são uma forma de mentalismo em suas origens. O cognitivista recupera oconceito de consciência quando afirma que estados disposicionais e/ou motivacionaispoderiam ser modificados de fora (instruções) ou de dentro (autocontrole) através dereestruturações cognitivas alcançadas por trocas verbais. Ou seja, o comportamentoverbal do outro é decodificado por um indivíduo e seu relato verbal – versão modernada introspecção – dá acesso ao outro às suas cognições.O behaviorismo, então, surgiu em oposição ao mentalismo e ao introspeccionismo. Emfins do século 19, a ciência, de modo geral, começou a colocar uma forte ênfase naobtenção de dados ditos objetivos, em medidas, em definições claras, em demonstraçãoe experimentação. Esta influência se fez sentir na psicologia com a propostabehaviorista feita em 1924 pelo psicólogo americano John B. Watson (1878 – 1958):"Por que não fazemos daquilo que podemos observar, o corpo de estudo dapsicologia?". Ou, em outras palavras:• estudar o comportamento por si mesmo;• opor-se ao mentalismo;• aderir ao evolucionismo biológico;• adotar o determinismo materialístico;39


• usar procedimentos objetivos na coleta de dados, rejeitando a introspecção;• realizar experimentação;• realizar testes de hipótese de preferência com grupo controle;• observar consensualmente.Com exceção das duas últimas características, as demais também se aplicam ao quemais tarde veio a se chamar Behaviorismo Radical. Observa-se que os quatro primeiroitens expressam uma vertente filosófica, enquanto os quatro últimos itens, uma vertentemetodológica. Estas vertentes refletem a influência de várias tendências sobre opensamento científico desde o final do século 19 até o começo do século 20:• O Positivismo Social de Auguste Comte, considerando que a ciência é umaatividade do homem, e o homem um ser social, postula a natureza social doconhecimento científico, rejeita a introspecção e estabelece como critério deverdade o observável consensual, isto é, o observável partilhado e sancionadopelo outro;• O Positivismo Lógico do Círculo de Viena, considerando que a pessoa só temacesso à informação que seus sentidos lhe trazem, não pode ter informaçõessobre sua consciência, cuja natureza difere da de seu corpo. É verdade que nãopode negá-la, mas também não pode estudá-la. É interessante que esta influênciatambém levou ao idealismo e ao subjetivismo: já que não tem acesso a nadasenão suas sensações, o mundo não existe, somente suas impressões dele, sósuas idéias são reais;• O Operacionismo, derivado da influência do Positivismo Lógico sobre a Física:se somente tem-se acesso às informações que os sentidos trazem, então alinguagem pela qual se expressa e estrutura essas informações é o maisimportante em ciência. A definição dos conceitos é fundamental, e definir édescrever as operações envolvidas no processo de medir o conceito. Essadescrição deve ser objetiva e referir-se a termos observáveis.40


Assim, a observação tornou-se um termo e uma operação fundamental para obehaviorismo pois define a categoria "comportamento", seu objeto de estudo. Dentro deuma física newtoniana mecanicista da época, onde todo fenômeno devia ter uma causa,e a causa do comportamento seria algo externo ao organismo e observável, o ambiente,o estímulo, já que, pela rejeição mentalista, a causa do comportamento não poderia ser amente. A palavra "estímulo" veio do médico russo Ivan Pavlov (1849 – 1936), e referiasetanto à ação de uma fonte de energia sobre o organismo quanto à operação realizadapelo experimentador em seu laboratório, que causavam uma mudança no organismo ouem parte dele (a resposta). Essa mudança observável no organismo biológico seria ocomportamento.Este é o behaviorismo praticado por Watson (conhecido como BehaviorismoMetodológico), que não negava a existência da mente, mas negava-lhe status científicoao afirmar que não se pode estudá-la pela sua inacessibilidade (caixa preta). Dessamaneira, negava status científico às emoções, às sensações, ao pensamento e aos demaiseventos privados. Para ele, o determinador do comportamento é o estímulo, queantecede a resposta. Esses conceitos acabaram produzindo a seqüência experimental quemarcou o behaviorismo metodológico, representada na Figura 3.1.S → RFigura 3.1 – Estímulo-respostaOnde:• S = estímulo (o que operacionaliza o ambiente)• R = resposta (o comportamento)• → = a ação desencadeante ou a causa (determinador do comportamento)Até 1945, B. F. Skinner também foi um behaviorista metodológico. A partir daí,Skinner rompe com o behaviorismo metodológico e faz uma proposta do behaviorismoque vem a ser chamado de radical, que apesar de ser chamado de radical, é menosradical do que o metodológico.41


3.1.1 Behaviorismo RadicalNenhum pensador ou cientista do século 20 levou tão longe a crença na possibilidade decontrolar e moldar o comportamento humano como o norte-americano Burrhus FredericSkinner (1904 – 1990). Sua obra é a expressão mais célebre do behaviorismo radical,corrente que dominou o pensamento e a prática da psicologia, em escolas e consultórios,até os anos 50. Foi adotada por vários outros psicólogos famosos: Ferster, Sidman,Schoenfeld, Catania, Hineline, Jack Michel e outros.O behaviorismo de Skinner nega a existência da mente e assemelhados, mas aceitaestudar eventos internos. Nesse sentido, Skinner não separa mundo interno de mundoexterno e é por isso que para ele não existem estímulos e respostas, mas existe umaunidade interativa Comportamento-Ambiente (não esquecendo que Ambiente é tudoaquilo que é externo ao Comportamento, não importando se é um piscar de luz, umdesequilíbrio hídrico, um derrame de adrenalina, ou um objeto ausente associado a umevento presente). Sendo a experiência que alguém tem de uma situação um eventoprivado, Skinner assim a aceita. Para ele, os estudos de eventos internos incluem-selegitimamente dentro do campo de estudos da psicologia, de uma ciência docomportamento. Assim ele é radical em dois sentidos: por negar radicalmente (isto é,negar absolutamente) a existência de algo que escapa ao mundo físico, que não tenhauma existência identificável no espaço e no tempo (mente, consciência, cognição); e porradicalmente aceitar (isto é, aceitar integralmente) todos os fenômenos comportamentais(MATOS, 2003).O behaviorismo radical constitui-se numa interpretação filosófica (baseada numaideologia) de dados obtidos através da investigação sistemática do comportamento,onde o corpo desta investigação propriamente dita é a Análise Experimental/Funcionaldo Comportamento. Esta interpretação descreve basicamente relações funcionais entreComportamento e Ambiente, ou seja, relações entre discriminações de mudanças narealidade observada e descrições das condições em que essas mudanças se dão. Comoproduto desta interpretação tem-se, não explicações realistas, nem relações de causaefeito,nem leis baseadas no modelo da Física Mecânica de troca de energia, mas sim a42


construção de seqüências regulares de eventos que eventualmente poderão ser descritaspor funções matemáticas.O behaviorista radical rejeita o mentalismo por ser materialista, e acaba com o dualismopor acreditar que o comportamento é uma função biológica do organismo vivo. Nãoprecisa da mente para respirar, não se explica a digestão por processos cognitivos,porque explicaria o comportamento por um ou outro? Propõe que existam dois tipos detransações entre o Comportamento e o Ambiente:a) conseqüências seletivas, que ocorrem após o comportamento e modificam aprobabilidade futura de ocorrerem comportamentos equivalentes (da mesmaclasse);b) contextos, que estabelecem a ocasião para o comportamento ser afetado por suasconseqüências e que, portanto, ocorreriam antes do comportamento e queigualmente afetariam a probabilidade desse comportamento.Estas duas classes possíveis de interações são denominadas "contingências" econstituem as duas classes conceituais fundamentais para a análise do comportamento.Relações funcionais são estabelecidas na medida em que se registram mudanças naprobabilidade de ocorrência dos comportamentos que se procura entender, em relação àsmudanças, quer nas conseqüências, quer nos contextos, quer em ambos.Por se lidar com explicações funcionais e não causais, o importante é coletarinformações ao longo do tempo, repetidas do mesmo evento, com os mesmospersonagens. Para o behaviorismo radical, o estudo em grupo é uma heresia, uma vezque o objetivo é tentar estudar a experiência de um sujeito. Ao coletar registros ao longodo tempo deve-se comparar o sujeito consigo mesmo, sua história passada é sua linha debase. Entretanto, indivíduos de uma mesma espécie partilham de um mesmo conjuntode contingências filogenéticas, e indivíduos com histórias passadas semelhantes podempartilhar de contingências ontogenéticas semelhantes e, portanto, para certas variáveis épossível descrever funções semelhantes para diferentes indivíduos. Para Skinner, o43


organismo não é nem gerente nem iniciador de ações, é o palco onde as interaçõesComportamento-Ambiente de dão.O conceito-chave do pensamento de Skinner é o de condicionamento operante, que eleacrescentou à noção de reflexo condicionado, formulada pelo russo Ivan Pavlov. Osdois conceitos estão essencialmente ligados à fisiologia do organismo, seja animal ouhumano. O reflexo condicionado é uma reação a um estímulo casual. Ocondicionamento operante é um mecanismo que premia uma determinada resposta deum indivíduo até ele ficar condicionado a associar a necessidade à ação. É o caso dorato faminto que, numa experiência, percebe que o acionar de uma alavanca levará aorecebimento de comida. Ele tenderá a repetir o movimento cada vez que quiser saciarsua fome.A diferença entre o reflexo condicionado e o condicionamento operante é que oprimeiro é uma resposta a um estímulo puramente externo, e o segundo, o hábito geradopor uma ação do indivíduo. Enquanto que no comportamento respondente (de Pavlov) aum estímulo segue-se a uma resposta, no comportamento operante (de Skinner), oambiente é modificado e produz conseqüências que agem de novo sobre ele, alterando aprobabilidade de ocorrência futura semelhante.O condicionamento operante é um mecanismo de aprendizagem de novocomportamento, cujo processo Skinner denominou modelagem. O instrumentofundamental de modelagem é o reforço – a conseqüência de uma ação quando ela épercebida por aquele que a pratica. Para o behaviorismo em geral, o reforço pode serpositivo (uma recompensa) ou negativo (uma punição). O primeiro levará o indivíduo arepetir a ação e o segundo a evitá-la. A punição envolve a conseqüência de uma respostaquando há apresentação de um estímulo aversivo ou remoção de um reforçador positivopresente.Skinner considerava reforço apenas as contingências de estímulo. “No condicionamentooperante, um mecanismo é fortalecido no sentido de tornar uma resposta mais provável,ou melhor, mais freqüente”, escreveu o cientista (FERRARI, 2004).44


Este condicionamento operante pode ser representado conforme a Figura 3.2.R → SrFigura 3.2 – Condicionamento operanteOnde:• R = resposta• Sr = estímulo reforçador• → = “leva a”Outros mecanismos de aprendizagem são a extinção, a generalização e a discriminação.Para KELLER (1970), a extinção é um procedimento no qual uma resposta deixa de serabruptamente reforçada, e como conseqüência, a resposta diminuirá de freqüência e atémesmo poderá deixar de ser emitida. É a maneira básica de desaprender uma resposta jácondicionada. Na generalização, quando um operante ou respondente foi condicionadoem uma dada situação-estímulo, poderá ser evocado, sem condicionamento posterior,em uma outra situação-estímulo. O princípio da discriminação diz que conexões entreestímulos e respostas que se efetuaram por generalização podem ser rompidasseparadamente. Ou seja, o reforçamento poderá ainda ser mantido para a conexãooriginal, enquanto se permitirá que todas as conexões derivadas sofram extinção.Uma discriminação operante pode ser representada num diagrama, mostrada na Figura3.3.S ∆S DS ∆R → SrFigura 3.3 – Discriminação operante45


Neste diagrama, o S D indica o estímulo ao qual o operante foi associado e os S ∆ indicamos estímulos generalizados que perderam o poder de evocar a resposta. Por isso, não têmconexão com o R do diagrama.Para entender melhor este conceito, considere como exemplo uma situação onde umapessoa vai escrever num quadro branco para explicar algo a uma platéia. Esta situaçãopode ser representada conforme o diagrama da Figura 3.4.[mouse] S ∆ [escrever no quadro branco][caneta pilot] S D R Sr[apagador] S ∆ [informar]Figura 3.4 – Exemplo de discriminação operantePelo seu histórico de condicionamento, a pessoa sabe que tem que utilizar a caneta pilotpara escrever no quadro branco. De nada adianta o mouse e o apagador nesse contexto.O estímulo para escrever no quadro é a transmissão da informação.Neste ponto é importante destacar o que é comportamento. Normalmente há umaconfusão no conceito pois muitas vezes o comportamento é entendido como sendo aresposta (R). Comportamento é, na verdade, o conjunto de elementos composto peloestímulo antecedente, pela resposta e pela conseqüência, num determinado ambiente(contexto).A Figura 3.5 exemplifica a relação entre contexto e comportamento. Considerando amesma situação anterior (da Figura 3.4), denominada Contexto A, a mesma resposta R A(escrever no quadro branco) não produz efeito se agora a platéia for composta somentepor pessoas míopes (Contexto B). Neste novo contexto, para que a pessoa consigatransmitir a informação, é necessário que ela emita uma nova resposta, R B , que pode serescrever no quadro branco com letras maiores. É um outro comportamento.46


R AContexto BR AContexto AR BContexto BFigura 3.5 – Exemplo de mudança de comportamentoTodos estes princípios são complementados ainda pelo processo de diferenciação(popularmente conhecido por refinamento), que é o responder sempre dentro dos limitesda classe reforçada. Muitas habilidades da vida diária baseiam-se neste processo. Porexemplo, o arremesso da bola numa cesta de basquete e a tacada de um jogador de golfesão atividades que podem ser aperfeiçoadas em situações inalteradas de estímulos. Adiferenciação também está presente no domínio das habilidades universais, tais comoandar, falar, escrever e cantar. Neste contexto, há a introdução do conceito de R D , querepresenta a variante de resposta que conduz ao reforçamento, e R ∆ , que indica umavariante que não recebe reforço.Para entender a diferenciação, considere o exemplo onde uma pessoa está aprendendo ajogar golfe numa situação ideal, onde o buraco e a posição do jogador não mudam, elenão se cansa e não se abala, e é possível apenas variar a posição do taco e a forçaaplicada. Se a cada tacada ele não observar a conseqüência, isto é, onde a bola caiu emrelação ao buraco, não há discriminação e vira um processo de tentativa e erro.Observando as conseqüências, o jogador discrimina e muda (aperfeiçoa) a resposta, ouseja, corrige a posição do taco e a força para a próxima tacada.47


Todos estes processos são responsáveis pelo desenvolvimento comportamental do serhumano, desde criança até se tornar adulto, adquirindo um número enorme de respostasdiferenciadas que podem ser dadas a um número ainda maior de sinais discriminativos.Isso tudo é conhecido como aprendizagem, e pode ser esquematizado, de forma bemsimplista, conforme a Figura 3.6.S ∆R ∆S D R D SrS ∆R ∆Figura 3.6 – Esquema de aprendizagemEste processo pode ser exemplificado utilizando a situação onde uma pessoa acessa osite de uma livraria para procurar um livro de computação, esquematizada na Figura 3.7.[link livros Psicologia] S ∆ R ∆ [clicar fora do link][link livros Computação] S D R D Sr[link CD] S ∆ [clicar no link] [aparece a listade livros]Figura 3.7 – Exemplo de aprendizagemO estímulo discriminativo é o link para livros desta área existente na página inicial dosite. Os outros links não provocam a resposta da pessoa, que é o clicar no link. A pessoasabe também, devido ao seu histórico de condicionamento, que clicar fora do link não oleva à lista dos livros de computação. Assim que aparecer esta lista, este estímulo leva auma nova resposta por parte desta pessoa.A partir disso surge a noção de encadeamento, que diz que uma resposta pode produziro estímulo para a seguinte. KELLER (1970) reconhece que é raro uma única resposta ouconexão estímulo resposta não conduzir a outra ou se originar de uma anterior. NaFigura 3.8 é mostrado o diagrama de encadeamento, onde um estímulo discriminativo48


pode evocar uma resposta diferenciada que, por sua vez, produzirá o estímulodiscriminativo para outra resposta diferenciada que conduz, por sua vez, ao reforço.S ∆ R ∆ S ∆ R ∆S D R D S D R D SrS ∆ R ∆ S ∆ R ∆Figura 3.8 – EncadeamentoO estímulo marcado com um círculo é, ao mesmo tempo, o estímulo que reforça aresposta anterior (que fortalece o discriminativo anterior), e o estímulo que aumenta aprobabilidade de emitir a resposta para conseguir a conseqüência Sr. Essa característicade um S D também ser Sr (S D = Sr) é a chave do encadeamento.Todas as contingências, sejam de reforçamento positivo ou de punição, sãoacompanhadas de uma emoção específica. A apresentação de um estímulo reforçadorpositivo gera felicidade, a sua retirada gera tristeza ou raiva. A apresentação de umestímulo aversivo (punição) gera ansiedade, e a sua retirada gera alívio.3.2 CognitivismoDurante a primeira metade do século 20, o behaviorismo foi uma corrente dominante,porém o quadro começou a balançar com o advento da ciência cognitiva, a partir dosanos 50. Para muitos psicólogos e filósofos cognitivistas, não estava claro que a fórmula"estímulo-resposta" pudesse ser aplicada a todo tipo de comportamento humano. Emmuitos aspectos, as pessoas parecem conduzir suas vidas sob um conjunto de crenças edesejos que não podem ser reduzidos ao arco-reflexo behaviorista.Segundo LAMPREIA (1993), a origem da atual concepção cognitivista na cultura eciência ocidentais, deve ser encontrada em Descartes. Em sua resposta ao problemaepistemológico sobre a relação entre "aparência" e realidade, oriundo da revolução49


científica dos séculos 16 e 17, a realidade tornou-se "mundo externo" que deve serrepresentado pela mente, uma entidade separada, imaterial, na qual os processos mentaisocorrem.No dicionário, cognição é definida como “aquisição de conhecimento”. Pode ser maisbem entendida como a capacidade de construir conhecimento. A cognição estárelacionada ao processamento de informações, à capacidade de adaptação às situaçõesdiferentes, à resolução de problemas, à percepção do mundo e do próprio ser.O modelo cognitivo é baseado em crenças, esquemas e estruturas cognitivas. As crençassão teorias sobre o que acontece ao redor de uma pessoa, que se interagem e criam ummapa sobre quem ela é, quem é o mundo e como as coisas se articulam. São estascrenças que determinam como se transita pela vida. A partir da tentativa de dar sentidoàs coisas do mundo, surge a crença. O conjunto de todas essas teorias pessoais(crenças), todos esses pensamentos, é denominado estrutura cognitiva. Na verdade, aspessoas atuam através de subconjuntos, denominados esquemas cognitivos, pois emnenhum momento tem-se toda a estrutura cognitiva acionada. Neste modelo, sempre háum esquema acionado. Na Figura 3.9 é representada esta estrutura.Figura 3.9 – Estrutura cognitivaA psicologia cognitiva atual é considerada uma área da psicologia experimental quepossui como um dos marcos fundadores a obra de Neisser, "Cognitive Psychology",50


publicada em 1967, nos Estados Unidos. De forma geral, enquanto o behaviorismo estáinteressado no comportamento, a psicologia cognitiva está interessada nos processosmentais que geram esses comportamentos.COSTERMANS (1981) afirma ainda que a psicologia cognitiva ousa investigar afamosa "caixa preta" que intermedia os estímulos do ambiente e o comportamentomanifesto. Em outras palavras, ela propõe modelos axiomáticos de caráter matemáticono estudo experimental dos processos de tratamento da informação pelos quais opsiquismo assegura a gerência e a gestão do comportamento.3.2.1 Ciência cognitiva<strong>DE</strong>L NERO (1997) define ciência cognitiva como a alcunha genérica para um conjuntode esforços interdisciplinares visando a compreender a mente e sua relação com océrebro humano. Desse esforço fazem parte as seguintes grandes áreas: asneurociências, a psicologia, a lingüística, a filosofia e a inteligência artificial. Autilização de modelos matemáticos aplicados à psicologia permitiu a abordagem deoutro objeto de estudo, mais amplo que o comportamento manifesto, qual seja, opsiquismo. Por psiquismo, entende-se todos aqueles processos psíquicos que gerenciamo comportamento.Esta ciência cognitiva trouxe, por volta dos anos de 1950, um reavivamento da doutrinasegundo a qual a mente é um aparato processador de informação e que basicamentemanipula símbolos ou representações por meio de regras lógico-computacionais.Grande parte do sucesso dessa primeira grande guinada para os modeloscomputacionais da mente deveu-se ao aparecimento de programas de computadorcapazes de provar teoremas matemáticos. A mente seria, então, nessa chamadainteligência artificial simbólica, o resultado da operação computacional por meio deregras e de símbolos mentais, devidamente traduzidos em algoritmos. Por intermédiodas leis lógicas poderiam construir-se programas que simulassem as leis mentais,simples cadeias de inferências válidas. A mente nessa visão seria um programa51


(software) e o cérebro um meio físico (hardware), não-exclusivo, daí poder-se replicar oprocesso em outros meios físicos, nas máquinas.Essa versão simbólica da inteligência artificial cedeu lugar (embora continue em francaatividade, modelando principalmente processos lingüísticos) a uma classe rival demodelos, chamada rede neural ou inteligência artificial conexionista. Nelas não hádivisão de nível entre o programa e o meio físico, e a possibilidade de aprendizado émais consistente com o que o ser humano realiza na sua constante exposição aexemplos, a partir dos quais retira suas generalizações. Recentemente outros modelosinvadiram a cena da modelagem da mente e do cérebro sob o rótulo de ciênciacognitiva. Entre eles cabe citar o uso de sistemas dinâmicos não-lineares, que podemexibir bifurcações e caos, sistemas quânticos, que supõem haver base quântica (nãoalgorítmica)na consciência, e também as idéias de vida artificial, com a construção derobôs que aprendam interagindo com os outros e com o meio ambiente.3.2.2 Tratamento da informaçãoAssim como os conhecimentos sobre a fisiologia da mão e do braço são importantes noprojeto de uma ferramenta manual, também os conhecimentos sobre as característicashumanas no tratamento da informação são importantes em qualquer projeto de softwareinterativo, incluindo aí os web sites. Nos últimos anos, vários estudos têm sidorealizados em psicologia sobre o tratamento da informação. A descrição das leis geraissobre o comportamento (behaviorismo) é complementada, não sem controvérsias, peladescrição dos mecanismos que explicam o seu funcionamento (cognitivismo).Considerar o usuário significa conhecer, além das informações explícitas, como idade,sexo, formação específica e conhecimentos, também aquelas ligadas às suas habilidadese capacidades em termos cognitivos. Na medida em que se pretende o computador comouma extensão do cérebro humano, é fundamental conhecer como se processam ostratamentos cognitivos na realização de uma tarefa informatizada. Um estudo relevantedo comportamento humano centrado nas estruturas cognitivas é realizado pelaabordagem de Modelos Mentais.52


CYBIS (2006) define modelos mentais como representações da realidade que as pessoasutilizam para compreender um fenômeno específico. Como o sistema cognitivo humanoé caracterizado pelo tratamento de informações simbólicas, as pessoas elaboram etrabalham sobre a realidade através destas representações. Esses modelos, quecondicionam totalmente o comportamento do indivíduo, constituem a sua visão darealidade, que é modificada e simplificada pelo que é funcionalmente significativo paraele. O sujeito amplia os elementos pertinentes e elimina os secundários através dosconhecimentos já adquiridos e da compreensão que o indivíduo tem de um problema.Os modelos mentais relativos a um sistema interativo, por exemplo, variam de indivíduopara indivíduo, em função de suas experiências passadas, e evoluem no mesmoindivíduo, em função de sua aprendizagem. Neste sentido geralmente ocorre que, naconstrução de um sistema interativo, os modelos mentais desenvolvidos por projetistas epor usuários se diferenciam grandemente.As teorias cognitivas descrevem dois tipos básicos de modelos mentais, os querepresentam procedimentos e os que representam conceitos. Ambos se organizam emredes hierárquicas de conhecimentos, semânticos e procedurais sobre, por exemplo, ossignificados das funções do sistema interativo e sobre como se operam estas funções. Aslógicas de funcionamento (conceitos) e de operação (procedimentos) de um dispositivoestão associadas à natureza destes dois tipos de representações mentais e contribuemigualmente para o seu entendimento. Daí a necessidade dos textos de ajuda explorarestas duas perspectivas de um software interativo: como funcionam e como se operamsuas funções.Os modelos mentais têm sido estudados por cientistas cognitivos como parte de umesforço para entendimento de como o ser humano compreende, percebe, toma decisõese se comporta em vários ambientes. Estes estudos avaliam os processos perceptivos, aatenção, a linguagem, a aprendizagem e a forma como se percebe as coisas ao redor.Tentam também entender a capacidade da memória e seus tipos (curto e longo prazo),bem como o porquê de alguns estímulos são mais bem lembrados do que outros. Todosestes conhecimentos servem de base para a área de HCI (Human-Computer Interaction)no estudo da “usabilidade”, isto é, como os seres humanos interagem com osobjetos/máquinas.53


No caso da web, esta usabilidade engloba as seguintes questões:• Como se produz a cegueira aos banners;• Porque se é impaciente quando se navega na web;• Como captar a atenção dos usuários;• Como gerar confiança na web;• Como é a conduta de navegação pelo site;• Como se comporta um usuário no seu primeiro contato com a interface de umsite.KWAN et al. (2005) apresentam um trabalho de Web Log Mining onde utilizam ummodelo mental para identificar as dimensões mais importantes do comportamento docliente num site de comércio eletrônico e assim, poder medir este comportamento. Omodelo mental que estes autores utilizam é baseado no estudo das leis secundárias deassociação de Thomas Brown. Apesar de Brown (1778 – 1820) ter proposto nove leissecundárias para prever quais sensações estão mais associadas com outras, foramselecionadas apenas quatro:• (1ª regra) Associação entre sensações é modificada pela duração (tempo) que asensação original foi suportada;• (3ª regra) Associação entre sensações é modificada pela freqüência de seuspares;• (4ª regra) Associação entre sensações é modificada pela recência de seus pares;• (5ª regra) Associação entre sensações é modificada pelo número de outrasassociações nas quais estes pares de sensações estão envolvidos.Estas quatro regras foram adaptadas ao ambiente de Web Log Mining, de forma aindicar e quantificar o comportamento de um usuário. Considerando a navegação de umusuário, a primeira regra corresponde à duração, a segunda regra à freqüência de acesso,a terceira regra à recência de revisitação e, finalmente, a quarta regra corresponde aotamanho da navegação (número de páginas web associadas).54


Na Figura 3.10 é mostrada a representação gráfica do modelo mental utilizado.Figura 3.10 – Modelo mental de KWAN et al. (2005)55


Capítulo 4MetodologiaQuando se trata de descobrir o perfil ou o comportamento de navegação de usuário naweb, a técnica mais utilizada nos trabalhos de Web Usage Mining tem sido aclusterização. Ela é tipicamente indicada para o descobrimento de grupos de visitantes(de um web site) com propriedades, interesses ou comportamentos comuns. Entretanto,a clusterização de navegações não pode ser aplicada em conjunto com a Análise doComportamento pois, neste caso, cada entrada (navegação) no arquivo de log serátratada como um relato pessoal.Pode-se fazer uma analogia da navegação com o comportamento oral do indivíduo,onde, ao invés dele descrever seu comportamento, utiliza-se o log em substituição àdescrição. É como se o log relatasse o que o indivíduo fez enquanto esteve no site.Conhecido o arranjo de contingências (páginas do site) onde os comportamentosocorreram, isto é, por onde ele navegou, é possível fazer uma análise do comportamentodeste indivíduo num determinado ambiente.A utilização de regras de associação também não é a mais apropriada pois a ordem dosfatos é relevante para a análise do comportamento. Assim, a técnica que mais se adaptaà necessidade deste trabalho é a mineração de padrões seqüenciais.Definida a técnica, um dos desafios em qualquer processo de mineração, seja de dadosestruturados ou da web, situa-se na etapa de análise dos padrões encontrados. Nesta faseé onde entra o analista ou o especialista, avaliando e separando o que é realmenteinteressante para o negócio. No caso de mineração de padrões seqüenciais, para que esteprofissional possa avaliá-los bem e identificar corretamente as oportunidades, é56


necessário que as regras encontradas possuam poucos elementos (sejam curtas) eapareçam em pequena quantidade.Isso pode ser conseguido se o conceito do que é importante for incorporado ao processode mineração. Entretanto, como este conceito varia principalmente de acordo com ascrenças e necessidades de cada analista, diferentes resultados podem ser obtidos damesma situação.Por outro lado, quando se aplicam os algoritmos clássicos para extração de padrõesseqüenciais em um log de um web site grande, geralmente aparecem muitos padrões nãointeressantes. O principal motivo disso é que existe somente um pequeno número depessoas com navegações similares, fazendo com que somente estes tipos de padrões(curtos e envolvendo páginas com alto número de requisições) sejam os mais comunsentre a maioria dos usuários.Há, então, três pontos relevantes no processo de Web Usage Mining, mas quenormalmente são tratados de forma independente: a incorporação de elementosqualitativos, o tratamento de regras de baixo suporte e o grau de interesse das regrasobtidas. A metodologia proposta neste trabalho, voltada à utilização da Análise doComportamento, trata destas três questões ao mesmo tempo.4.1 Problemas no processo tradicionalO crescimento exponencial da Web e a redução de custo de armazenamento de dadostêm propiciado um aumento na quantidade de dados a serem tratados, principalmentepara as empresa de comércio eletrônico. Entretanto, essa tendência não tem sidoacompanhada pela capacidade de processamento disponível. Desta forma, a extração depadrões seqüenciais de dados produzidos por um web site é um processo que consomemuito tempo ou pode, em alguns casos, até mesmo ser inviável.57


Além disso, TANASA (2005) enumera outros problemas ainda existentes no processotradicional de Web Usage Mining:1. A fase de pré-processamento não recebe a atenção necessária e devida;2. Os web sites possuem pouca ou nenhuma definição semântica de suas páginas;3. As técnicas de mineração de padrões seqüenciais não são apropriadas paratrabalhar com as especificidades dos dados de utilização da web, principalmenteem grande quantidade;4. As técnicas de mineração de padrões seqüenciais freqüentemente geramresultados curtos e desinteressantes;5. As fases do Web Usage Mining não são coordenadas para criar um processoúnico e coerente.Devido às limitações de quantidade de dados existentes nas técnicas de mineração depadrões seqüenciais, várias soluções podem ser adotadas, tal como limitar a quantidadede dados analisada (por exemplo, considerar somente um dia por semana), ou reduzir acomplexidade dos dados utilizando uma generalização das páginas.Um dos problemas encontrados, efetivamente, na extração de padrões seqüenciais emWeb Usage Mining é a grande quantidade de regras descobertas com baixo suporte.Diferentemente do que ocorre em outras áreas, em se tratando de log de navegação, amaioria das regras encontradas possui suporte abaixo de 5%. Apesar disso, ainda sãopoucos os trabalhos que tratam deste problema.Em ALVES et al. (2004) os autores minimizam o problema de baixo suporte utilizandoa noção de conceito, que é o agrupamento de páginas baseado no modelo (ou estrutura)do site. Por exemplo, todas as páginas contendo detalhamento de produtos pertencem aoconceito “Produtos”. Com isso, cada sessão é convertida e trabalhada como umaseqüência de conceitos.58


Outro trabalho relevante no tratamento de regras de padrões seqüenciais com baixosuporte é mostrado em TANASA (2005). Como os algoritmos existentes não sãocapazes de extrair padrões com suporte muito baixo, pois o número de padrõescandidatos gerados aumenta exponencialmente a cada passo, o autor propôs umametodologia de mineração particionada de seqüências. O princípio desta metodologia édividir o problema inicial de extração de padrões seqüenciais de um grande arquivo delog pré-processado em n subproblemas similares, um para cada sublog gerado doarquivo inicial. Esta metodologia possui três abordagens:• Abordagem seqüencial: consiste de uma etapa inicial de clusterização dassessões, seguida de uma etapa de mineração de padrões seqüenciais em cada umdos clusters gerados;• Abordagem iterativa: faz-se uma mineração de padrões seqüenciais em todas assessões com o menor valor possível de suporte e depois se executa umaclusterização nestes padrões obtidos. Posteriormente as sessões são classificadasbaseadas na saída da etapa de clusterização. O processo se repete iterativamentenas sessões não classificadas;• Abordagem hierárquica: inicia com uma etapa de mineração de padrõesseqüenciais nas sessões com um nível hierárquico definido para as páginas. Onível hierárquico n de uma página é a página generalizada no nívelsintático/semântico n, pertencente à hierarquia construída de tópicossintáticos/semânticos. O log é então dividido utilizando os resultados desta etapae o processo se repete para os grandes sublogs. O nível hierárquico das páginas éaumentado para as sessões pertencentes a estes sublogs.Com relação à incorporação de elementos qualitativos ao processo de Web UsageMining, os trabalhos mais desenvolvidos são aqueles que utilizamsemânticas/ontologias (BERENDT et al., 2002). Entretanto, esta abordagem não seadequa à Análise do Comportamento, pois, dependendo do que se quer analisar, aspáginas devem ser agrupadas ou entendidas de forma específica.59


4.2 Nova abordagemPara que a técnica de Web Usage Mining, quando aplicada a um web site, gereresultados (padrões) que possam ser analisados por um psicólogo comportamental, épreciso adaptar o processo de mineração considerando a Análise do Comportamento.O principal ponto modificado está no foco inicial. Enquanto a tarefa de mineração secaracteriza pelo foco no desconhecido, a realização de uma análise comportamentalnecessita de uma questão a ser respondida. Desta forma, antes de iniciar a análise docomportamento de navegar num web site, também se deve definir esta questão, quenormalmente é um problema. Por exemplo, por que se têm muitas visitas a um site maspoucas pessoas compram o produto deste site? No mundo real, é como se houvesse umaloja onde muitas pessoas entrassem, mas poucas comprassem algo. É através dadefinição e utilização desta questão inicial que há a inclusão de elementos qualitativosno processo de Web Usage Mining. Na prática, certamente há mais de um problema aser pesquisado e que, segundo esta metodologia, cada um deles deve ser tratadoindividualmente.Como os dados para serem analisados são somente os logs, a questão inicial deve entãoser traduzida para esta estrutura de trabalho. A forma encontrada para isso é avaliar eescolher uma página, dentre as existentes no site, como pivô desta questão. Assim,somente as sessões que contêm essa página são relevantes para a análise. As sessões quenão passaram por esta página são desconsideradas.4.2.1 Tratamento das sessõesCaso os logs selecionados anteriormente fossem processados para obtenção de padrõesseqüenciais, ainda assim seriam obtidas muitas regras, a maioria com baixo suporte e,principalmente, desinteressantes. Para evitar estes problemas, comuns ao Web UsageMining, utilizou-se a seguinte heurística: para cada sessão contendo a página pivô,foram consideradas apenas as outras três páginas com maior tempo de visitação,excetuado a página inicial do web site, mais a última página acessada. Esta heurística60


aseia-se na idéia de que, dentre as páginas visitadas, aquelas onde o visitante gastoumaior tempo possuem alguma relação com a página pivô. No mundo real, é como umapessoa que entra dentro de uma loja e se interessa ou compra determinado produto. Osoutros produtos que também foram avaliados por ela nessa mesma visita/compra,juntamente com as informações de tempos, certamente fornecem dados do seucomportamento.Desta forma, também são automaticamente filtradas todas as sessões de tamanho um, ouseja, aquelas onde o visitante acessou apenas uma única página. Estas sessões, na suagrande maioria, contêm a página inicial do web site.A restrição de utilização da página inicial do site está baseada no fato de que ela, porsua característica intrínseca, deve aparecer como primeira página na maioria dassessões. Caso uma sessão não permita selecionar as três páginas devido ao seu tamanho,são selecionadas tantas quanto forem possíveis. A escolha da quantidade de páginas aserem selecionadas (três), além da página pivô e da última, foi obtida depois de algumasexecuções e avaliações utilizando dados reais. Dois fatores influenciaram bastante estaescolha: o tamanho médio das sessões e a facilidade na análise do comportamento.Além disso, os tempos das páginas selecionadas não devem ser menores que um limite(mínimo), o qual foi estabelecido, de forma empírica, em 5 segundos. Isto é necessáriopara evitar que páginas que não foram relevantes para o usuário entrem na análise.A última página deve ser incluída na análise pois, além do seu tempo de visitação serdesconhecido, é bem provável que, após achar o que estava procurando ou ler o queinteressava, o usuário sai do site. Nestes casos, a última página pode ser a maisimportante para ele.Como o HTTP é um protocolo que utiliza um modelo cliente-servidor (como a maioriados protocolos de rede), onde nenhuma conexão é mantida entre as transações, o log doservidor mantém apenas a data/hora das requisições do cliente (browser). Assim, parainferir o tempo de visitação de uma página é necessário que haja a hora da suarequisição e a hora da próxima requisição, de forma a calcular a diferença entre elas.Apesar de considerarem a última página de cada sessão nas análises, os trabalhos de61


Web Usage Mining não se preocupam com seu tempo de visitação pois quase nuncautilizam as informações neste nível. As informações de tempo gasto normalmente sereferem às sessões, onde o cálculo é simplificado considerando a diferença entre aprimeira e a última requisição da sessão. Percebe-se que, desta forma, o tempo da últimapágina visitada sempre é desconsiderado. Neste trabalho, para efeito de quantificação,foi definido como tempo de visitação da última página a média dos tempos gastos naspáginas anteriores da mesma sessão.Apesar de existirem fatores externos que podem afetar o tempo de visitação das páginas,como o volume de tráfego na web e o tipo de conexão (discado ou banda larga), nocontexto deste trabalho eles não foram considerados pois haveria a necessidade de umestudo específico para analisar cada um deles.A Figura 4.1 exemplifica o processo descrito anteriormente.Figura 4.1 – Exemplo de tratamento de sessão62


Neste exemplo, tem-se uma sessão com nove páginas visitadas, todas no mesmo dia ecom intervalos dentro do limite especificado para time-out. A página pivô, definida deacordo com o problema a ser analisado, é a página “/2004/rec_em/rec_em.shtml”, quenesta sessão é a página 2.A página 2 e a página 9 são selecionadas automaticamente pois são, respectivamente, apágina pivô e a última página. As páginas restantes são avaliadas de acordo com otempo de visitação calculada, sendo selecionadas as três com maior tempo. A página 1não entra nessa comparação pois é a página inicial. Assim, dentre as páginasconsideradas (página 3 à página 8), ficam as páginas 3, 4 e 7. Na Tabela 4.1 sãomostradas a sessão original e a que seria considerada para este caso.sessão original 1,2,3,4,5,6,7,8,9sessão considerada 2,3,4,7,9Tabela 4.1 – Sessão consideradaA grande vantagem deste tratamento é que a grande maioria das sessões terá umtamanho menor do que cinco (e sempre maior que dois), fazendo com que a tarefa deextração de padrões seqüenciais gere regras mais simples. Uma sessão final poderápossuir um tamanho maior que cinco num caso particular: quando a página pivô évisitada mais de uma vez, mas entre elas exista uma visita a uma das páginasselecionadas pelo critério do tempo. Também é importante destacar que esta tarefa detratamento das sessões está contida dentro da fase de pré-processamento.A heurística aqui definida e utilizada é semelhante ao trabalho de COOLEY et al.(1997b), onde os autores fazem a consideração de que um usuário, durante a navegaçãoem um web site, trata cada página apenas de duas maneiras: como um elemento denavegação para achar links aos dados desejados, ou como conteúdo. Estes doispropósitos, denominados respectivamente de “propósito de navegação” e “propósito deconteúdo”, dependem de cada usuário. Por exemplo, uma página que contém apenas umtítulo e vários links para outras páginas certamente pode ser considerada de navegação.Mas uma página com textos, fotos e links não pode ser classificada facilmente; ela tem63


propósito distinto para cada usuário. O que é conteúdo para um pode não ser para outro,e vice-versa. Eles utilizam estes conceitos para definir transações.Em COOLEY et al. (1999a), estes conceitos são expandidos e utilizados no sistemaWEBMINER, que trabalha com cinco tipos principais de páginas:• Página Inicial (Head Page): página que tem o propósito de ser a primeiraacessada quando o usuário entra no web site;• Página de conteúdo (Content Page): página que contém uma parte dasinformações existentes no web site;• Página de navegação (Navigation Page): página cujo propósito é fornecer linkspara guiar o usuário às páginas de conteúdo;• Página de procura (Look-up Page): página utilizada para fornecer uma definiçãoou detalhamento de um acrônimo;• Página pessoal (Personal Page): página que apresenta informações pessoais oubiográficas de indivíduos associados ao web site.Cada um destes tipos de página possui características físicas próprias. A Tabela 4.2 listaalgumas características de cada tipo apresentado.64


Tipo de Página Características físicas Características de usoInicialConteúdoNavegaçãoProcuraPessoal• Link para ela na maioriadas páginas do site• Raiz da estrutura dearquivos do site• Muitos textos e gráficoscom link para páginasinternas• Poucos textos e gráficoscom link para páginasinternas• Grande quantidade delinks para esta página• Pouco ou nenhum linkpara outra página• Muito pouco conteúdo• Sem característicascomuns• Primeira página nas sessões dosusuários• Longa duração de referênciamédia (average reference length)• Curta duração de referênciamédia (average reference length)• Não é página de referênciaposterior máxima• Curta duração de referênciamédia (average reference length)• É página de referência posteriormáxima• Baixo usoTabela 4.2 – Características das páginas (COOLEY et al., 1999a)4.2.2 Extração de padrões seqüenciaisApós o tratamento das sessões, executa-se a mineração de padrões seqüenciais damesma forma que no processo tradicional de Web Usage Mining, mas com o tamanhodas seqüências limitado a dois pois é um requisito da etapa posterior (detalhamento dospadrões). Na prática, essa limitação no tamanho das seqüências não é tão efetiva pois,devido ao tamanho também limitado das sessões, a grande maioria dos padrões sempreterá apenas dois elementos: somente um antecedente e o conseqüente.Este detalhamento dos padrões seqüenciais, necessário à análise do psicólogocomportamental, contempla o levantamento estatístico dos dados referentes às páginasconstantes nos padrões e aos seus intervalos.65


Apesar dos padrões encontrados possuírem um nível de suporte razoável, não énecessário detalhar todos os padrões. Pode-se, então, realizar uma seleção dos mesmosutilizando um nível mínimo de confiança. Esta estratégia foi utilizada nos estudos decasos deste trabalho para simplificar ainda mais o trabalho de análise.4.2.3 Detalhamento dos padrõesEsta fase de detalhamento dos padrões seqüenciais obtidos e selecionados é uma etapaque não existe no processo tradicional de Web Usage Mining, mas que, dentro daintegração com a Análise do Comportamento proposta por este trabalho, faz-senecessário acrescentar. O objetivo é obter dados específicos destes padrões encontrados,bem como verificar as características das sessões (originais) onde os mesmos aparecem.Então, através de buscas e procedimentos estatísticos nas sessões originais, são obtidasas seguintes informações:1. Histograma do tempo de visitação de cada uma das duas páginas que aparecemno padrão seqüencial (antecedente e conseqüente);2. Estatísticas (média, mínimo, máximo, mediana e moda) da quantidade depáginas que ocorrem antes do antecedente, entre o antecedente e o conseqüente,e após o conseqüente.3. Estatísticas (média, mínimo, máximo, mediana e moda) do tempo de visitaçãoacumulado das páginas que ocorrem antes do antecedente, entre o antecedente eo conseqüente, e após o conseqüente.Na Figura 4.2 é mostrado um exemplo de como é feito este detalhamento.66


Figura 4.2 – Detalhamento dos padrõesNeste exemplo, considere um web site contendo as páginas de A até J e um respectivolog contendo cinco sessões. Detalhar um padrão seqüencial obtido, por exemplo, opadrão B → G, significa construir o histograma do tempo de visitação em B e Gconsiderando as cinco sessões, e extrair estatísticas referentes à quantidade e tempo devisitação das páginas que ocorrem antes de B, entre B e G, e depois de G. Na figura,estes grupos estão identificados, respectivamente, como “antes”, “durante” e “depois”.67


Capítulo 5ValidaçãoPara validar a metodologia proposta, as técnicas apresentadas neste trabalho foramaplicadas no estudo de dois web sites comerciais, mas de naturezas distintas. Um secaracteriza por possuir seu negócio totalmente voltado para a web, enquanto que o outroutiliza seu site de uma forma mais tradicional, isto é, como forma de chegar aos seuspossíveis clientes.Esta validação consiste em verificar se a Análise do Comportamento pode elucidar anavegação a partir dos padrões de navegação extraídos e detalhados neste processo. NaFigura 5.1 é mostrado o processo utilizado na análise de cada web site contemplado nosestudos de casos. Há três aspectos distintos no processo:a) extração de padrões (Web Usage Mining tradicional), mais o detalhamento dosmesmos;b) análise comportamental;c) levantamento de hipóteses sobre os comportamentos.Tanto a tarefa de análise (comportamental) quanto a de levantamento de hipótese foramexecutadas pelo o especialista (psicólogo). É importante ressaltar que, para estas tarefasserem executadas com sucesso, é necessário identificar o contexto onde as navegaçõesocorreram.68


Coleta de logsWeb sitePré-processamentoExtração de padrõesDetalhamento dos padrõesAnálise comportamentalLevantamento de hipótesesFigura 5.1 – Processo utilizado nos estudos de casosAs hipóteses levantadas referem-se aos comportamentos e não aos usuários. Apesar deum depender do outro, há uma diferença grande entre analisar quem é o usuário eanalisar que comportamento ele tem num determinado contexto.Apesar de existirem diversas ferramentas para o tratamento de log (pré-processamento),nenhuma delas é flexível o suficiente para gerar um arquivo (a ser minerado) conformeas propostas estabelecidas neste trabalho. Assim, foi desenvolvido um conjunto deprogramas próprios utilizando a linguagem Python.Na etapa de extração de padrões foi utilizado um software comercial, no caso, oClementine da SPSS. Ele também foi aplicado na etapa de detalhamento dos padrões,juntamente com outros dois programas também desenvolvidos em Python.As fontes de todos os programas desenvolvidos estão no Apêndice B.69


5.1 Pré-processamentoPara o tratamento de log foram escritos 11 programas em Python, contemplandobasicamente todos os passos descritos no processo tradicional de Web Usage Mining. Aescolha pela linguagem Python se deve à sua facilidade de uso e, principalmente,facilidade no tratamento de flat files. Não era objetivo deste trabalho criar um ambientecompleto para pré-processamento de log, mas sim um ambiente que permitissetransformar o log de acordo com a metodologia proposta.Os programas desenvolvidos foram:1. Seleciona_log.py: é responsável por agregar os arquivos de log num únicoarquivo, filtrando todas as entradas referentes aos arquivos gráficos (extensõesgif, jpg, jpeg) ou arquivos indesejados (extensões js, css, ico, swf). Tambémretira todas as entradas com status de erro (mantém os status da família 200 e300) e os métodos inválidos, ou seja, diferentes de GET, POST ou PUT. Alémdisso, gera um segundo arquivo com todas as entradas que acessaram o arquivo“robots.txt”. Estes são os robôs de indexação. Esse arquivo, que fica no servidorweb, controla as permissões de acesso às informações, indicando quais diretóriosdevem ou não ser indexado pelo agente. Este programa é personalizadoconforme o padrão de log utilizado no servidor;2. Gera_robots_distintos.py: a partir do segundo arquivo gravado no programaanterior, simplesmente gera uma lista de robôs distintos, eliminando todaduplicidade. Os agentes que não são robôs verdadeiros, mas acessam o arquivo“robots.txt” porque estão embutidos em ferramentas de busca, como porexemplo, MSIECrawler (MICROSOFT, 2006b) e Girafabot (GIRAFA, 2006),também precisam ser excluídos;3. Elimina_navegacao_robots.py: com o arquivo de robôs distintos, retira doarquivo filtrado e consolidado de log todas as navegações executadas pelosmesmos;70


4. Gera_navegacao_total_memoria.py: gera um arquivo onde cada linha contémtodas as navegações (independentemente de data e hora) para cada combinaçãodistinta de IP/agente. Adicionalmente, gera um arquivo com todas as páginasacessadas e contidas no log consolidado;5. Gera_uri_stem_distintos.py: retira do arquivo de páginas acessadas (gerado noprograma anterior) todas as duplicidades, gerando um arquivo de páginasdistintas;6. Checa_uri_stem_valido.py: acessa o site que está sendo analisado e verifica ostatus de cada página distinta encontrada. Grava um arquivo de páginas válidas,excluindo as páginas restritas, as de testes e as fora do contexto da análise;7. Calcula_tempo_sessao.py: lê o arquivo de navegações por IP/agente,identificando as sessões pelo método de intervalo máximo (time-out). O tempoutilizado neste programa foi de 30 minutos. As sessões geradas são gravadasnum arquivo distinto;8. Exclui_uri_stem_irrelevantes.py: consulta o arquivo de páginas válidas e excluitodas as sessões (do arquivo anterior) que possuem alguma página inválida;9. Gera_sessao_transposta.py: como o Clementine trabalha com dois formatos dedados (tabular ou transacional), é necessário transformar as sessões consolidadasnum destes formatos. No formato tabular os itens são representados por flags,onde cada flag indica a presença ou não de um item específico. No formatotransacional cada item está numa linha, juntamente com a identificação docliente e tempo do evento. O formato utilizado por este programa é otransacional. Como resultado, é gravado um arquivo com os seguintes campos:identificação da sessão, quantidade de segundos desde o início da sessão, tempode visitação em segundos, página visitada;71


10. Associacao_uri_stem.py: avalia as sessões geradas e seleciona as páginas que,pelo critério tempo de visitação, devem ser gravadas juntamente com a páginapivô para o processo de mineração;11. Conta_uri_stem_sessao_transposta.py: é um programa auxiliar, que utiliza oarquivo de sessões na forma transacional e o arquivo de páginas distintas paragerar uma lista (arquivo) com a freqüência de cada página considerada naanálise;Como esta etapa de pré-processamento precisou ser toda desenvolvida, algumas tarefasoriginalmente propostas no processo de Web Usage Mining não foram incluídas, comoa reconstrução de sessão, devido à complexidade da implementação. Considerando osobjetivos propostos, as conseqüências desta exclusão não impactam os resultados destetrabalho.5.2 Padrões seqüenciais no ClementineO Clementine, da SPSS, é uma ferramenta de data mining que provê recursos paraacesso, manipulação e visualização de dados, e técnicas de modelagem utilizandoalgoritmos estatísticos e de aprendizado de máquina (machine learning). De formageral, o Clementine trabalha com um processo de três etapas: leitura, manipulação eencaminhamento. Esta seqüência de operações é conhecida como data stream pois osdados passam, registro a registro, de uma origem para a manipulação individual, edepois são encaminhadas para um destino, que pode ser um modelo ou um tipo de saídade dados (SPSS, 2002).Os recursos do Clementine estão integrados numa interface de programação visual,onde o usuário pode desenhar diagramas de operações de dados relevantes ao seunegócio. Cada operação é representada por um ícone ou nó, e os nós são ligados uns aosoutros de acordo com o próprio fluxo de dados deste conjunto de operações. Na Figura5.2 é mostrada a interface do Clementine e um exemplo de data stream.72


Figura 5.2 – Interface do ClementineO nó denominado “Sequence” (dentro da opção “Modeling”) é o que constrói ummodelo de regras de associação seqüenciais. Este modelo pode ser construído tanto apartir de dados seqüenciais quanto de dados baseados em tempo (SPSS, 2003).Este nó está baseado no algoritmo de regras de associação denominado CARMA(Continuous Association Rule Mining Algorithm), proposto por HIDBER (1998). Estealgoritmo precisa, no máximo, de duas buscas nas transações (seqüências) para obtertodos os conjuntos grandes de itens (large itemsets). Um conjunto de itens éconsiderado grande se seu suporte (fração de todas as transações que contêm o referidoconjunto) é maior ou igual a um valor especificado pelo usuário. Caso contrário, éconsiderado pequeno.Durante a primeira busca, o algoritmo constrói, de forma contínua, um grupo de todosos conjuntos de itens potencialmente grandes (em relação às transações já pesquisadas).73


Para cada conjunto neste grupo, o CARMA gera um limite determinístico superior einferior para seu suporte. Como a cada transação processada as regras de associação sãomostradas ao usuário, juntamente com os limites de suporte e confiança, ele podeajustar o valor mínimo destas medidas a qualquer momento. Com isso, o usuário podeantecipar a parada do processo de mineração das regras. Na segunda busca, o algoritmodetermina o valor preciso de suporte de cada conjunto contido no grupo e remove todosos conjuntos pequenos de itens.Para a execução deste nó (“Sequence”), é necessário definir os campos a seremutilizados pelo modelo. Isso se faz através da interface mostrada na Figura 5.3, ondetambém são informados se a variável de identificação está ordenada e se será utilizadoum indicador de tempo do evento.Figura 5.3 – Configuração do nó “Sequence”Após a definição dos campos que serão utilizados no modelo, o nó permite que sejamconfigurados alguns parâmetros básicos e outros mais avançados da construção domesmo. Na Figura 5.4 são mostradas as opções básicas, que são o suporte mínimo,74


confiança mínima, tamanho máximo de seqüência e o número de regras que devem serutilizadas pelo modelo na predição.Figura 5.4 – Opções básicas do nó “Sequence”As opções avançadas, mostradas na Figura 5.5, permitem que sejam configurados osseguintes parâmetros:• Duração máxima: as seqüências serão limitadas se sua duração (tempo entre oprimeiro e o último item do conjunto) for menor que o valor especificado;• Valor de poda: o algoritmo CARMA periodicamente remove os conjuntos deitens não freqüentes de sua lista de conjuntos potenciais que estão sendoprocessados em memória. Esta opção determina a freqüência de poda. Um valorespecificado pequeno diminui a quantidade de memória exigida pelo algoritmomas aumenta o tempo de treinamento requerido. Ao contrário, um valor grandeacelera o treinamento mas aumenta a memória exigida;75


• Seqüência máxima em memória: limita a quantidade de seqüências candidatasem memória durante o processo de construção do modelo. Normalmente éutilizado se o Clementine estiver utilizando muita memória neste processo;• Restrição de intervalo entre conjuntos: esta opção permite especificar restriçõesdos intervalos que separam os conjuntos de itens. Conjuntos com intervalo detempo menor que o valor mínimo ou maior que o valor máximo não serãoconsiderados na formação das seqüências. É utilizado para prevenir seqüênciasque contêm longos intervalos de tempo entre seus itens e seqüências executadasnum curto espaço de tempo.Figura 5.5 – Opções avançadas do nó “Sequence”76


5.3 Detalhamento dos padrõesPara este detalhamento, foram desenvolvidos 2 programas (também em Python), quesão responsáveis por gerar os dados necessários à análise estatística dos tempos equantidades de páginas envolvidas em cada regra:1. Tempo_associacao.py: dado um conjunto de padrões seqüenciais, o programabusca no arquivo de sessões reduzidas (com página pivô) dados de tempo devisitação de cada página contida nestes padrões. Estas informações são gravadasnum arquivo para a construção de histogramas;2. Intervalo_associacao.py: dado um conjunto de padrões seqüenciais, sãocalculados e pesquisados, para cada um deles, os tempos e quantidades depáginas existentes antes do antecedente, entre o antecedente e o conseqüente, edepois do conseqüente. Estas informações também são gravadas num arquivopara a devida análise estatística.Com estes dois arquivos gerados, utiliza-se o Clementine para as análises estatísticascomplementares. Nesta etapa a utilização do Clementine não é obrigatória; pode seutilizar qualquer software estatístico.77


Capítulo 6Estudo de caso 1O primeiro web site analisado foi o www.emagrecendo.com.br. Este site é um produtoda Medical Networks, empresa localizada em São Paulo, e foi lançado no dia 1º de maiode 2000. Sua proposta é promover o emagrecimento e manutenção de um peso desejáveldo assinante utilizando a Dieta dos Pontos, elaborada pelo médico endocrinologista Dr.Alfredo Halpern, mapeando suas dificuldades e propondo soluções que englobem oaspecto nutricional e comportamental. O seu diferencial é que este acompanhamento érealizado somente por telefone e via internet (chat e e-mail), onde todo o atendimento éfeito por uma equipe especializada de nutricionistas, denominadas terapeutasnutricionais. Atualmente, mais de 70% dos atendimentos é realizado via chat. Aempresa, que possui clientes em todo o Brasil, oferece aos seus clientes assinaturas deum, três ou seis meses.Apesar da empresa possuir um endereço comercial dedicado exclusivamente a estenegócio, todo ele foi planejado para ser virtual, diferentemente da maioria dos sitesexistentes no mercado, que são institucionais. Outros, apesar de possuírem algumcomércio eletrônico, mantêm uma ou mais lojas físicas.É um site bem acessado, possuindo uma média de 50 a 60 mil visitas por mês (segundoos seus relatórios de tráfego), sendo 50% visitantes únicos. Estes números variamprincipalmente conforme o mês, pois são muito influenciados pelas datascomemorativas e por aparecimento na mídia (reportagens e entrevistas). Estes acessosincluem as navegações dos assinantes e dos visitantes.Na Figura 6.1 é mostrada a página inicial (principal) do site.78


Figura 6.1 – Página inicial do emagrecendo.com.br79


6.1 Características dos acessosComo na maioria das empresas, seu site é hospedado e gerenciado num data centerexterno, no caso, a .comDominio. Mensalmente ela disponibiliza relatórios estatísticosde acesso ao site, produzidos pela ferramenta WebTrends. Apesar destes relatórioscontemplarem uma enorme quantidade de informações, eles geralmente são utilizadospara verificar uma informação pontual ou monitorar um item específico. Por exemplo,quando uma página é alterada, pode-se verificar se a modificação causou o impactodesejado analisando o relatório das páginas mais acessadas.Nas figuras abaixo (Figura 6.2 a 6.5) são mostradas as principais informações e gráficosdo site disponibilizados pelo WebTrends, referente ao mês de setembro de 2005.Figura 6.2 – Estatísticas gerais80


Na Figura 6.2 é mostrado o relatório de estatísticas gerais, incluindo um gráfico devisitas por dia. Nele estão incluídos quantidades de hits, page views e visitas. Um dadorelevante é a distinção entre visitantes únicos e visitantes que retornaram (dentro doreferido mês).Figura 6.3 – Páginas mais acessadasNa Figura 6.3 é mostrado o relatório das páginas mais acessadas no mês. Provavelmentepor ser um serviço de terceiro, percebe-se que não há muito critério no tratamento dasinformações. Por exemplo, dentre as quatro páginas mais visitadas, a página 1(www.emagrecendo.com.br/2004/index.shtml) e a página 3(www.emagrecendo.com.br/) referem-se à página inicial.Nas Figuras 6.4 e 6.5 são mostrados, respectivamente, o tráfego por dia da semana e porhora do dia.81


Figura 6.4 – Atividades por dia da semanaFigura 6.5 – Atividades por hora do dia82


6.2 ObjetivoAtravés de conversas com o Diretor Superintendente da empresa, identificou-se aquestão a ser tratada por essa metodologia. O site atual do Emagrecendo atendebasicamente a dois públicos: os que já são assinantes e os visitantes. No início, o site eradestinado exclusivamente aos assinantes, mas isso foi modificado quando perceberamque havia uma grande demanda das pessoas por informações sobre emagrecimento. Osite foi então reformulado, criando várias páginas de conteúdo público, com a intençãode conquistar mais clientes. A quantidade de visitantes realmente aumentou bastante,mas a taxa de adesão ao programa não cresceu. Hoje a empresa tem aproximadamente 2mil clientes, o que corresponde a apenas 2% dos visitantes mensais. Diante desteproblema, a questão é: como modificar o site para conquistar os visitantes que navegammas não compram o programa?6.3 Tratamento dos dadosOs dados originalmente coletados deste site contêm aproximadamente 24 milhões deregistros, que refletem o tráfego no período de 5 meses (de março a julho de 2005). Nocaso do Emagrecendo, foi possível utilizar este período longo pois as modificações deconteúdo e disposição, que implicariam em navegações diferentes, não foramrelevantes.Deste total de registros, quase 90% foi eliminado por acessar arquivo gráfico (figuras),por utilizar método inválido e por receber status de erro. Também estão incluídos aí osregistros gerados por robôs (que foi muito pequeno, não chegando a 0,02% do total). Naliteratura esse percentual fica perto dos 10%.Neste ponto, ficaram pouco mais de 3 milhões de registros (3.068.882 para ser exato).Desse conjunto, foram excluídas as navegações geradas pelos robôs identificados e, emseguida, agrupadas por IP/agente distintos. Este é o método mais simples e utilizadopara identificação de usuário. Nesse período avaliado, foram então encontrados poucomais de 136 mil usuários diferentes.83


Utilizando o critério de time-out para obtenção das sessões e especificando esse tempomáximo de inatividade em 30 minutos, gerou-se, a partir da navegação dos 136 milusuários distintos, 231.793 sessões. Também foi considerado um tempo mínimo, entreduas solicitações de páginas, de 1 segundo.Nestas 3 milhões de páginas acessadas, há um total de 1.305 páginas distintas, quereflete o tamanho do site, sendo 628 públicas (aproximadamente 48%) e o restante,restritas aos assinantes e páginas internas de teste.Como estas sessões incluem tanto os visitantes quanto os assinantes, e como o objetivoproposto contempla somente os visitantes, foi necessário excluir todas as sessõesreferentes aos assinantes. O critério adotado foi excluir toda sessão onde aparecia apágina de login. Esse critério não é totalmente eficaz pois não consegue identificar oassinante que somente navegou no conteúdo público. Considerando somente osvisitantes, o número de sessões diminuiu 45%, caindo para 127.400. Ou seja, 45% dosusuários que navegaram no site neste período são assinantes, e 55% são visitantes.Com essas quantidades, obteve-se a distribuição de sessões e de páginas visitadas, bemcomo a métrica de quantidade de páginas por sessão. Na Tabela 6.1 são mostrados estesnúmeros pelo total e por tipo de usuário.Usuários #sessões #páginas #páginas/sessãoTodos 231.793 3.068.882 13,2Somente assinantes 104.393 2.572.185 24,6Somente visitantes 127.400 496.697 3,9Tabela 6.1 – Distribuição de sessões e páginasAs quantidades relativas aos assinantes são aproximadas pois há um pequeno percentualdeste tráfego referente aos testes da área de desenvolvimento e manutenção do site.84


Nas sessões dos visitantes, há um bom número com tamanho igual a um, isto é, onde ousuário visitou apenas uma única página. São 57.439 sessões, ou 45% do total. A grandemaioria contém a página inicial do site. Excluindo estas sessões, a distribuição dosvisitantes passa a ser conforme mostrado na Tabela 6.2.Usuários #sessões #páginas #páginas/sessãoVisitantes comtamanho de sessãomaior que um69.961 439.258 6,2Tabela 6.2 – Distribuição de sessões e páginas dos visitantesOs números apresentados nestas duas tabelas mostram bem a diferença que existe entreos tipos de usuários. Apesar das páginas de livre acesso ser quase metade do site, osvisitantes navegam, em média, por apenas 4 páginas. Desconsiderando as visitas de umaúnica página, essa média sobe para 6,2, o que continua sendo pouco. Essa característicatambém foi detectada no trabalho de HOFGESANG & KOWALCZYK (2005), mas nãoestudada com mais detalhes.Na Figura 6.6 é mostrado o histograma do tamanho das sessões dos visitantes, incluindoas sessões de tamanho um.85


Figura 6.6 – Histograma do tamanho das sessõesNa Figura 6.7 é mostrado o mesmo histograma, só que agora desconsiderando assessões de tamanho um.Figura 6.7 – Histograma filtrado do tamanho das sessões86


Em termos de tempo, a média geral das sessões dos visitantes foi de 479 segundos(quase 8 minutos) e a mediana, 245 segundos (aproximadamente 6 minutos). Estadiferença ocorre devido ao formato da distribuição (exponencial) desta variável. Tantoesta média quanto a mediana não consideram o tempo de visitação da última página dasessão, já que é impossível, pelas características do protocolo HTTP, determinar quantotempo o visitante permaneceu nela. Com isso, as sessões de tamanho um sãoautomaticamente desconsideradas nestas estatísticas. O histograma do tempo dassessões é mostrado na Figura 6.8, sendo o tempo dado em segundos.Figura 6.8 – Histograma do tempo das sessõesOutra informação relevante para o entendimento dos visitantes é o tempo entre duassolicitações sucessivas, isto é, quanto o usuário demorou em navegar de uma páginapara a próxima. O histograma deste tempo (em segundos) é mostrado na Figura 6.9,junto com as estatísticas de média, mediana e moda.87


Figura 6.9 – Histograma de tempo entre duas solicitaçõesO último passo dessa etapa foi converter as sessões geradas, que estavam num formatopróprio, para o formato transacional da ferramenta Clementine. Na Tabela 6.3 sãomostrados esses dois formatos para uma determinada sessão.FormatoPróprio: todas as páginas visitadas,incluindo data e hora, mais os dados deIP e agente, estão numa única linha. Oprimeiro e o segundo número, são,respectivamente, o id da sessão e aquantidade de páginas visitadasTransacional: cada página visitada ficanuma linha distinta, juntamente com o idda sessão, tempo de início da visitação erespectiva duraçãoSessão1: 4 12.10.219.36Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1) 2005-04-11 19:11:43 /2004/index.shtml2005-04-11 19:12:07/2004/clip/pop_web_0305_prop.html 2005-04-1119:12:54 /2004/duv_fq/duv_fq_program.shtml2005-04-11 19:14:06 /2004/index.shtml1 0 24 /2004/index.shtml1 24 47 /2004/clip/pop_web_0305_prop.html1 71 72 /2004/duv_fq/duv_fq_program.shtml1 143 47 /2004/index.shtml 5Tabela 6.3 – Formatos das sessõesT 5 O tempo (duração) de visitação da última página foi calculada pela média dos tempos das páginasanteriores88


Ainda sobre o tratamento de dados, dois pontos não foram contemplados aqui devido apouca ocorrência dos mesmos: a eliminação de sessões muito longas e de sessões muitointensas, isto é, onde muitas páginas são visitas num intervalo de tempo relativamentecurto.6.4 Tratamento das sessõesNesta etapa, de acordo com a metodologia proposta neste trabalho, foi escolhida apágina pivô, aquela que é utilizada para tentar responder à questão definida no item 6.2.Neste primeiro estudo de caso, a estratégia para definição desta página pivô foiselecionar a página mais visitada, uma vez que este site possui uma grande quantidadede visitantes, mas poucos compram o serviço.Assim, entendendo um pouco mais sobre os comportamentos destes visitantes, serápossível levantar hipóteses que ajudem a responder a questão formulada. Apesar destaquestão poder ter outras respostas (provavelmente muito subjetivas), o que se procurouneste trabalho foi a objetividade contida nos dados de log.Apesar do Emagrecendo possuir relatório de páginas mais visitadas, emitidomensalmente pela empresa que hospeda o site, ele não pode ser utilizado aqui poisfornece uma informação em cima de dados não tratados. Desta forma, a página maisvisitada foi tirada do arquivo de sessões obtido na etapa anterior.Na Tabela 6.4 são mostradas as dez páginas mais acessadas do site no período avaliado.89


Ordem Página Qtde1 /2004/index.shtml 1124052 /2004/imc/imc.asp 553473 /2004/rec_em/rec_em.shtml 258084 /2004/bal_vc/bal_vc.shtml 130145 /system/cadastro_tela1.asp 84956 /2004/gen_sc/0704_abraham.shtml 71167 /2004/tour/home.htm 68168 /2004/bal_vc/0904_usa_today.shtml 67299 /2004/duv_fq/duv_fq.shtml 610710 /2004/bal_vc/0704_qual_peso.shtml 5715Tabela 6.4 – Páginas mais acessadasApesar da página “/2004/index.shtml” ter sido a mais visitada, ela não foi consideradapois é a página inicial do site. Assim, a segunda página mais visitada,“/2004/imc/imc.asp”, ficou como pivô.Este dado é singular pois mostra que os visitantes tiveram mais interesse, dentre todasas informações disponíveis, no recurso de cálculo do IMC (Índice de Massa Corporal),que, na página principal, se localiza num ponto secundário (no canto inferior direito),conforme mostrado com detalhes na Figura 6.10.90


Figura 6.10 – Cálculo do IMC (com detalhes)Quando o visitante preenche os dados solicitados e seleciona a opção “Calcule”, seuresultado é mostrado na página “/2004/imc/imc.asp”, apresentada na Figura 6.11.91


Figura 6.11 – Resultado do cálculo do IMCEsta página mostra basicamente o IMC calculado da pessoa, bem como o significado doresultado. Por esta característica, a probabilidade é alta desta página estar sendoreforçadora em todas as situações aqui analisadas.Definida a página pivô, foram selecionadas as outras três páginas com maior tempo devisitação, não considerando a página inicial, e mais a última página acessada. Assessões que não possuíam a página pivô foram excluídas. Com isso, o total de sessões aser analisada pelo Clementine (para extração dos padrões) diminuiu para 23.566.92


6.5 Extração de padrões seqüenciaisUtilizando o software Clementine, montou-se o data stream, esquematizado na Figura6.12, para ler o arquivo de sessões tratadas e realizar a mineração dos padrõesseqüenciais. O nó denominado “id_a” é o responsável por construir o modelo de regrasde associação seqüenciais. Neste nó, utilizou-se a configuração básica padrão, apenasalterando os parâmetros de suporte mínimo (5%), confiança mínima (5%) e tamanhomáximo de seqüência (2). Estes parâmetros de suporte e confiança foram ajustados deforma interativa. Os bons resultados obtidos desta forma tornaram desnecessárias autilização das opções avançadas do nó.Figura 6.12 – Data stream para mineração de padrões seqüenciaisO modelo construído ficou com 7 regras, as quais estão mostradas na Figura 6.13,ordenadas pela confiança. Estas regras efetivamente ficaram de acordo com o esperado,ou seja, focadas nas páginas relevantes e em pouca quantidade.93


Figura 6.13 – Regras obtidasAs páginas que apareceram nas regras estão descritas a seguir, na Tabela 6.5.Página/2004/imc/imc.asp/2004/bal_vc/0704_qual_peso.shtml/2004/bal_vc/bal_vc.shtml/2004/rec_em/rec_em.shtml/system/cadastro_tela1.aspDescriçãoÉ a página pivô, já explicada anteriormente.É a página, dentro do tópico “A balança e você”,que explica qual o peso ideal e mostra afórmula para cálculo do IMC (Índice de MassaCorporal).Página principal do tópico “A balança e você”.Contém um guia prático para entender melhoras características dos alimentos, dandoexemplos de quantos pontos (do programa)estão associados a eles.Contém receitas que ajudam no programa deemagrecimento.É a primeira página de cadastro do processo deassinatura.Tabela 6.5 – Descrição das páginasA visualização destas páginas encontra-se no Apêndice C.Para facilitar a referência às regras, foi utilizada uma nomenclatura para as mesmas: aregra com maior confiança foi denominada R1, e assim sucessivamente até R7. NaTabela 6.6 são mostrados os nomes atribuídos para cada uma destas regras.94


NomeR1R2R3R4R5R6R7Regra/2004/bal_vc/0704_qual_peso.shtml → /2004/imc/imc.asp/2004/bal_vc/bal_vc.shtml → /2004/imc/imc.asp/2004/rec_em/rec_em.shtml → /2004/imc/imc.asp/2004/imc/imc.asp → /2004/rec_em/rec_em.shtml/2004/imc/imc.asp → /2004/bal_vc/0704_qual_peso.shtml/2004/imc/imc.asp → /system/cadastro_tela1.asp/2004/imc/imc.asp → /2004/imc/imc.aspTabela 6.6 – Nomenclatura das regrasObservando as regras, juntamente com os percentuais de suporte e confiança, é possívelobter informações quantitativas de cada uma delas:• R1: a maioria dos visitantes que lê sobre o conceito de peso ideal e a métricautilizada faz o cálculo de IMC;• R2 x R5, R3 x R4: quem visita primeiro a página de cálculo de IMC tende a nãovisitar as outras páginas do site;• R6: apesar do cálculo do IMC ser a página mais visitada do site, poucosvisitantes inclinam-se a fazer a assinatura;• R6: como o processo de assinatura tem mais de uma página, mesmo estespoucos visitantes sequer preencheram os dados cadastrais da primeira página(abandonaram o processo);• R7: existe um grupo de visitantes que repete o cálculo do IMC.É neste ponto que se encontra a grande diferença entre a metodologia proposta nestetrabalho e as demais pesquisas de Web Usage Mining. Nesta última, existe umatendência de, a partir destas regras obtidas, focar a análise no usuário, buscando95


classificar e rotular os grupos de visitantes. Desta análise subjetiva, de base mentalista, éque surgem os denominados perfis de usuário ou de comportamento.Utilizando esta abordagem mentalista nas regras obtidas, é possível definir algumashipóteses sobre o perfil de alguns grupos de visitantes:a) as regras R1 e R2 selecionam os visitantes conceituais, aqueles que gostam deentender a teoria primeiro;b) a regra R3 seleciona os visitantes mais práticos, pois acessam primeiramente asreceitas para ver como é na dia-a-dia;c) a regra R7 seleciona os visitantes descontentes com seu corpo (provavelmenteestão acima do peso), pois repetem o cálculo do IMC.Aqui aparece a grande desvantagem da abordagem mentalista: como explicar aobtenção destes perfis sem usar da subjetividade? Como demonstrar que realmenteexistem os grupos identificados? Verdadeiramente, não existe forma objetiva para isso.É de se preocupar, então, que este tipo de informação, baseada em intuição, sejautilizado para direcionamento do negócio e para o planejamento estratégico da empresa.Neste trabalho, cada padrão (regra) encontrado foi avaliado conforme os conceitos daAnálise do Comportamento. Como os comportamentos dos usuários nas páginas sãoverificados a partir dos logs de navegação, todas as hipóteses, ao contrário daabordagem mentalista, podem ser explicadas e demonstradas. A partir disso, mudançaspodem ser efetuadas nestas páginas para conseguir um outro comportamento dosvisitantes.6.6 Detalhamento dos padrõesDiferentemente dos demais trabalhos de Web Usage Mining, descoberto os padrõesseqüenciais, ainda é necessário detalhá-los, complementando desta forma as96


informações utilizadas na análise comportamental. Avaliando o nível de confiança dasregras encontradas de forma relativa, foram selecionadas apenas aquelas com confiançamaior ou igual a 10%. Assim, das sete regras, as cinco primeiras foram escolhidas paradetalhamento (R1 a R5).Foram, então, executados os programas desenvolvidos especificamente para essepropósito, que, a partir dos arquivos de sessões reduzidas e de sessões originais,geraram os dois arquivos necessários para as análises estatísticas. Estas análises, porfacilidade, também foram realizadas com o Clementine.O detalhamento dos padrões contempla dois pontos: a análise dos tempos e a análise dosintervalos. Para a análise dos tempos de visitação de cada página contida nas regrasescolhidas, foi construído o data stream da Figura 6.14.Figura 6.14 – Data stream para análise de tempos97


Para a análise dos intervalos (quantidade e tempo) entre as páginas contidas nas cincoregras escolhidas, foi construído um novo data stream, semelhante ao da análise detempos, só que agora lendo o arquivo gerado pelo programa Intervalo_associacao.py.Os resultados obtidos deste detalhamento, compostos por estatísticas e histogramas,bem como a análise comportamental e as hipóteses levantadas para cada regra, estãoapresentados nos tópicos a seguir. Ressalta-se que tanto essa análise quanto olevantamento de hipóteses foram executados pelo especialista (psicólogo).Para efeito de análise comportamental, foi sempre utilizada como referência a medianados tempos de visitação, indicada nos histogramas por um traço vertical (com orespectivo valor).6.7 Análise da regra R1Os histogramas do tempo de visitação nas páginas da regra R1(/2004/bal_vc/0704_qual_peso.shtml → /2004/imc/imc.asp) estão mostrados na Figura6.15, juntamente com algumas estatísticas.98


71%66Probabilidadedestas páginasestarem sendoreforçadoras éalta64Figura 6.15 – Estatísticas e histogramas da regra R1Pelos histogramas da Figura 6.15, percebe-se que, apesar das páginas serem diferentes,o tempo de visitação nas duas páginas é semelhante, com as medianas em torno de 65segundos.Segundo o especialista, este tempo é suficiente tanto para entender a fórmula do IMC(página “/2004/bal_vc/0704_qual_peso.shtml”) quanto para verificar o resultado doIMC calculado (página “/2004/imc/imc.asp”). Desta forma, a probabilidade destaspáginas estarem sendo reforçadoras é alta.99


Este caso é um exemplo de bom funcionamento do site, pois a página antecedente(/2004/bal_vc/0704_qual_peso.shtml) provavelmente foi organizada para conduzir ousuário ao cálculo do IMC (situação indicada na Figura 6.15 pela flecha tracejada). Issose reflete no alto nível de confiança da regra (71%).Para análise dos intervalos das regras, ou seja, análise da quantidade de páginas erespectivos tempos complementares, foram geradas as estatísticas apresentadas naFigura 6.16. Do lado esquerdo estão as estatísticas da quantidade de páginas antes doantecedente, entre o antecedente e o conseqüente, e depois do conseqüente. Do ladodireito, as estatísticas do tempo (em segundos).Figura 6.16 – Estatísticas dos intervalos da regra R1Os histogramas destas variáveis de quantidade e tempo estão mostrados na Figura 6.17.Os três histogramas superiores referem-se à quantidade e os três inferiores, ao tempo.100


Figura 6.17 – Histogramas da quantidade e tempos dos intervalos da regra R1101


Também faz parte deste detalhamento dos intervalos levantar as estatísticas do tempototal de navegação até a penúltima e a última página. Essa diferenciação foi feita porqueo tempo de visitação da última página não é medida; é estimada pela média dos temposdas páginas anteriormente visitadas. Estas informações de tempo total, mostradas naFigura 6.18, complementam os dados de tempo da Figura 6.16.Figura 6.18 – Estatísticas do tempo total de navegação – R1Por estes números e gráficos, percebe-se que as navegações existentes antes doantecedente e depois do conseqüente da regra foram irrelevantes. Praticamente nãoexiste navegação numa outra página (intermediária) entre as páginas desta regra.Assim, segundo o especialista, há uma grande probabilidade de que nenhuma destasoutras páginas que aparecem nas navegações (que contêm a regra R1) esteja sendoreforçadora.6.8 Análise da regra R2Os histogramas e estatísticas obtidos para as páginas da regra R2(/2004/bal_vc/bal_vc.shtml → /2004/imc/imc.asp) estão mostrados na Figura 6.19.102


40%Probabilidadedesta páginaestar sendoreforçadora ébaixa62Probabilidadedesta páginaestar sendoreforçadora éalta68Figura 6.19 – Estatísticas e histogramas da regra R2Novamente percebe-se que o tempo de visitação nas duas páginas é semelhante, apesardas páginas serem diferentes, ficando as medianas no mesmo patamar da regra anterior,isto é, na faixa de 65 segundos.De acordo com o especialista, a probabilidade da página “/2004/bal_vc/bal_vc.shtml”estar sendo reforçadora é pequena pois este tempo é insuficiente para leitura doconteúdo da mesma com atenção. Já a página “/2004/imc/imc.asp”, da mesma formaque na regra anterior, possui alta probabilidade de estar sendo reforçadora.103


Este é um exemplo onde as duas páginas, apesar de possuírem tempos de visitaçãosemelhantes, geram comportamentos diferentes e opostos.A flecha vertical mostrada na Figura 6.19 indica o percentual de confiança da regra.As estatísticas apresentadas na Figura 6.20 foram geradas para a análise dos intervalosdas regras. Do lado direito, estão as estatísticas do tempo (em segundos) e do ladoesquerdo, as estatísticas da quantidade de páginas antes do antecedente, entre oantecedente e o conseqüente, e depois do conseqüente.Figura 6.20 – Estatísticas dos intervalos da regra R2Na Figura 6.21 são apresentados os histogramas de todas estas variáveis de quantidade etempo. Os histogramas superiores referem-se à quantidade e os inferiores, ao tempo.104


Mediana = 67Figura 6.21 – Histogramas da quantidade e tempos dos intervalos da regra R2105


As estatísticas do tempo total de navegação (até a penúltima e até a última página) daregra R2 estão detalhadas na Figura 6.22.Figura 6.22 – Estatísticas do tempo total de navegação – R2Estas estatísticas e histogramas mostram que praticamente não existe navegação entre oantecedente e o conseqüente da regra. E após o conseqüente, apesar de havernavegações, as mesmas são irrelevantes considerando o pouco tempo gasto.Na Figura 6.21, o histograma de quantidade de páginas existente antes do antecedenteda regra mostra que houve navegação anterior em apenas uma página (pela estrutura dosite, provavelmente é a página inicial). O tempo gasto nesta visitação, utilizando comoreferência a mediana do respectivo histograma de tempo, é de 67 segundos, insuficiente,segundo o especialista, para leitura completa desta página inicial.Desta forma, estas páginas que aparecem nas navegações (contendo a regra R2) têm altaprobabilidade de não estarem sendo reforçadoras.106


6.9 Análise da regra R3Na Figura 6.23 são mostrados os histogramas do tempo de visitação nas páginas daregra R3 (/2004/rec_em/rec_em.shtml → /2004/imc/imc.asp), juntamente com algumasestatísticas.35%Probabilidadedesta páginaestar sendoreforçadora ébaixa72Probabilidadedesta páginaestar sendoreforçadora éalta73Figura 6.23 – Estatísticas e histogramas da regra R3Apesar destas páginas possuírem conteúdos diferentes, o tempo de visitação nas duaspáginas é muito semelhante, ficando as medianas próximas a 70 segundos. De acordo107


com o especialista, como este tempo é relativamente curto para absorver todas asinformações presentes na página “/2004/rec_em/rec_em.shtml”, a probabilidade destaestar sendo reforçadora é baixa. Para a página de IMC (/2004/imc/imc.asp), o tempo ésuficiente para ler e compreender o resultado, o que torna alta a probabilidade dela estarsendo reforçadora.Essa baixa probabilidade da página antecedente estar sendo reforçadora reflete no baixopercentual de confiança (35%) da regra, mostrada na Figura 6.23 pela flecha vertical.As estatísticas obtidas para a análise dos intervalos das regras estão mostradas na Figura6.24.Figura 6.24 – Estatísticas dos intervalos da regra R3Os histogramas destas variáveis de quantidade e tempo estão apresentados na figura aseguir (Figura 6.25).108


Mediana = 75Figura 6.25 – Histogramas da quantidade e tempos dos intervalos da regra R3109


As estatísticas do tempo total de navegação até a penúltima e até a última página, quetambém fazem parte deste detalhamento do padrão, são apresentadas na Figura 6.26.Figura 6.26 – Estatísticas do tempo total de navegação – R3Os números e gráficos são similares às da regra anterior. Mostram que as páginas queaparecem nas navegações referentes à regra R3 têm, segundo o especialista, altaprobabilidade de não estarem sendo reforçadoras.Apesar de haver navegação anterior em uma página (pela estrutura do site,provavelmente é a página inicial), o tempo gasto de visitação de 75 segundos, obtida damediana do histograma de tempo (Figura 6.25), é insuficiente, de acordo com oespecialista, para leitura completa desta página inicial.6.10 Análise da regra R4Os histogramas e estatísticas do tempo de visitação nas páginas da regra R4(/2004/imc/imc.asp → /2004/rec_em/rec_em.shtml) são apresentados na Figura 6.27.110


Suporte=16%16%Probabilidadedesta páginaestar sendoreforçadora éalta76Probabilidadedesta páginaestar sendoreforçadora ébaixa69Figura 6.27 – Estatísticas e histogramas da regra R4A distribuição do tempo de visitação nas duas páginas é muito parecida, com asmedianas na faixa de 70 segundos. Dentro do contexto de cada página, este tempo érelativamente curto para a leitura completa das informações presentes na página“/2004/rec_em/rec_em.shtml”, mas suficiente para a página “/2004/imc/imc.asp”.Assim, segundo o especialista, é alta a probabilidade da página antecedente estar sendoreforçadora. Ao contrário, é baixa a probabilidade da página conseqüente estar sendoreforçadora.111


Apesar da confiança baixa (16%), esta regra é a que possui maior suporte (16%).Com relação à análise dos intervalos das regras, as estatísticas das quantidades e temposestão mostradas na Figura 6.28.Figura 6.28 – Estatísticas dos intervalos da regra R4Na Figura 6.29 são mostrados os respectivos histogramas destas variáveis. Os trêshistogramas superiores são das variáveis de quantidade e os três inferiores, das variáveisde tempo.112


Mediana = 97Figura 6.29 – Histogramas da quantidade e tempos dos intervalos da regra R4113


Na Figura 6.30 estão apresentadas as estatística do tempo total de navegação (até apenúltima e a última página), que complementam o detalhamento dos padrões.Figura 6.30 – Estatísticas do tempo total de navegação – R4Estas estatísticas mostram que as navegações entre as páginas da regra, e após a páginaconseqüente da regra, são praticamente irrelevantes devido ao tempo de visitação.Assim, segundo o especialista, as páginas destas navegações têm baixa probabilidade deestarem sendo reforçadoras.Na Figura 6.29, as navegações anteriores à página antecedente (/2004/imc/imc.asp)praticamente se resumem a uma única página, provavelmente a página inicial. Daí otempo maior gasto na visitação da mesma (mediana de 97 segundos), que é suficientepara compreensão do conteúdo. Desta forma, a página inicial, nestas navegações, deacordo com o especialista, tem alta probabilidade de estar sendo reforçadora.6.11 Análise da regra R5Os histogramas e as respectivas estatísticas das páginas da regra R5 (/2004/imc/imc.asp→ /2004/bal_vc/bal_vc.shtml) estão mostrados na Figura 6.31.114


10%Probabilidadedesta páginaestar sendoreforçadora éalta72Probabilidadedesta páginaestar sendoreforçadora ébaixa68Figura 6.31 – Estatísticas e histogramas da regra R5Pelos histogramas da Figura 6.31, percebe-se que, nas duas páginas, a maioria dostempos concentra-se em 70 segundos (considerando a mediana). Este tempo é suficientepara leitura completa do conteúdo da página “/2004/imc/imc.asp”, o que, de acordo como especialista, torna alta a probabilidade da mesma estar sendo reforçadora. Entretanto,é insuficiente para leitura da página “/2004/bal_vc/bal_vc.shtml”. Assim, segundo oespecialista, a probabilidade desta página estar sendo reforçadora é baixa.115


As estatísticas mostradas na Figura 6.32 foram obtidas para a análise dos intervalos dasregras. Do lado esquerdo estão as estatísticas da quantidade de páginas e do lado direito,as estatísticas do tempo.Figura 6.32 – Estatísticas dos intervalos da regra R5Os histogramas destas variáveis de quantidade e tempo são apresentados na Figura 6.33.116


Mediana = 100Figura 6.33 – Histogramas da quantidade e tempos dos intervalos da regra R5117


6.12 Outras hipótesesAlém das hipóteses levantadas individualmente para cada página e/ou regra peloespecialista (psicólogo), outras também foram levantadas por este profissional a partirdos dados obtidos:A. A maioria destes visitantes tem interesse apenas em saber se está acima do peso(cálculo do IMC); não tem interesse nas outras informações do site. É como a“balança da farmácia”;B. Para uma pessoa que busca o controle de peso, a disposição e a quantidade deinformações por página levam a um aumento do grau de ansiedade porquesinaliza que se a pessoa não tomar conhecimento de todas aquelas informações,ela não alcançará seu objetivo;C. O cliente que interessa à empresa é o visitante que entra no site e compra oprograma de emagrecimento. Para isso, cada página deve reforçar o seucomportamento, aumentando assim a probabilidade de compra. Reforçar ocomportamento do cliente pode ser interpretado como o cliente adquirirconfiança de que o serviço que irá contratar o levará ao seu objetivo maior:emagrecer;D. Caso as páginas não tenham função reforçadora, diminui a probabilidade decompra do programa de emagrecimento. Portanto, o que estaria acontecendo éque o comportamento estaria sendo enfraquecido, podendo ocorrer a suaextinção, ou seja, o cliente desistir da compra.As hipóteses C e D mostram que, apesar das regras terem sido obtidas através de umaabordagem focada numa página pivô, também é possível realizar análises relevantes dosite como um todo.119


As duas situações a seguir são similares a estas hipóteses (C e D), e exemplificam oconceito de reforçador maior e encadeamento existente nelas:• Quando uma pessoa pega a chave do carro para ir fazer compras nosupermercado, há vários comportamentos intermediários encadeados numaordem específica, tais como abrir a porta de casa, andar até o carro, por a chavena fechadura, abrir a porta, ligar o carro. Nenhum deles pode ser pulado ouexecutado fora de ordem. Além do reforçador maior, que é ”fazer compras”,cada comportamento tem seu reforçador, que leva a pessoa ao próximocomportamento;• O reforçador maior de um aluno que entra no doutorado é conseguir o diploma.Para isso, existe um encadeamento de comportamentos intermediários: assistiraulas, ser aprovado na disciplina, conseguir créditos, fazer exame dequalificação, desenvolver e defender a tese. Caso o aluno comece a tirar notasbaixas nas provas, o seu comportamento estaria sendo enfraquecido, podendoculminar na sua desistência do curso.120


Capítulo 7Estudo de caso 2O segundo web site analisado foi o www.hotelbucsky.com.br, do hotel de mesmo nomelocalizado na região serrana do Rio de Janeiro. Este hotel é um dos maiores da região,possuindo setenta quartos e é voltado para a classe média/alta.Este site representa bem o grupo de hotéis e pousadas, que vem aproveitando bem ocrescimento e disseminação da web para contornar o problema de distância com seusclientes. Com os sites, os hotéis tentam mostrar aos usuários todas as suascaracterísticas, suas qualidades e seus diferenciais, de forma a estimulá-los a sehospedarem no estabelecimento. Desta forma, percebe-se que o site de um hotel diferedo caso estudado no capítulo anterior: no site do Emagrecendo, a venda do produtopode ocorrer no momento da navegação, ou seja, o negócio está no ambiente do site;num hotel, que é o caso do Bucsky, o site apenas leva o visitante a querer se hospedarno estabelecimento.Em termos absolutos, é um site com poucos acessos, pois tem uma média de 2 a 3 milvisitas por mês. Entretanto, considerando a sua capacidade de hospedagem, pode-seconsiderar um bom número, pois se apenas uma parte destes visitantes se hospedasse nohotel, ele estaria sempre lotado.121


Na Figura 7.1 é mostrada a página inicial do site.Figura 7.1 – Página inicial do hotelbucsky.com.brNeste site, a página principal não é a página inicial, já que esta apenas permite que ovisitante escolha o idioma. A página principal, em português, é apresentada na Figura7.2.O tamanho deste site retrata o porte do hotel, que é regional. Não possui uma grandequantidade de páginas e a sua estrutura de conteúdo e links segue um padrãocaracterístico deste tipo de empreendimento.122


Figura 7.2 – Página principal em português do hotelbucsky.com.br7.1 Características dos acessosDevido ao porte do estabelecimento, este site fica hospedado num provedor, e não numdata center (como é o caso do Emagrecendo). Com isso, as informaçõesdisponibilizadas dos acessos são mais simples, produzida pela ferramenta gratuitaAnalog. Normalmente são utilizadas para verificar ou monitorar um item específico.As figuras a seguir mostram as principais informações e gráficos do sitedisponibilizados pelo Analog, referente ao mês de outubro de 2005. Na Figura 7.3 sãoapresentados o sumário geral e os dados de acesso no mês.123


Figura 7.3 – Sumário geral dos acessosNa Figura 7.4 estão os dados gerados pelo Analog referente ao acesso por dia dasemana. Assim como no caso do Emagrecendo, o sábado é o dia com menos visita.Figura 7.4 – Acessos por dia da semanaNa Figura 7.5 é mostrado um sumário dos acessos por hora do dia. Uma característicaobservada é que a maioria destes acessos acontece no período da tarde, ou seja, duranteo horário comercial.124


Figura 7.5 – Acessos por hora do diaA informação das páginas mais acessadas também é apresentada no relatório (Figura7.6).Figura 7.6 – Páginas mais acessadas125


7.2 ObjetivoNeste caso do Hotel Bucsky, não houve a oportunidade de conversar com o(s)proprietário(s) e nem com o gerente, impedindo que fossem conhecidos os problemasdo site e do negócio. Não tendo uma questão específica, optou-se por tentar conhecermais sobre o que os visitantes buscam no site.Também não foi possível obter dados sobre os hóspedes que chegaram ao hotel apósterem navegado no site, o que impossibilitou tirar conclusões sobre a eficiência ou nãodo site nos negócios.7.3 Tratamento dos dadosNo caso do Hotel Bucsky, houve uma particularidade na coleta dos logs do seu site,comum a empresas de pequeno e médio porte. Como o provedor que hospeda o sitetambém mantém outros sites de empresas e estabelecimentos da região, o log gerado écoletivo. Foi necessário filtrar somente aqueles registros referentes ao hotel.O período analisado foi de setembro a início de novembro de 2005 (pouco mais de 2meses). Da seleção dos logs do Bucsky, restaram aproximadamente 20 mil registros,desconsiderando os acessos aos arquivos gráficos, os acessos com método inválido e oscom status de erro. Também foram excluídos os registros gerados por robôs, cujopercentual não chegou a 2%.Foram então excluídas as navegações geradas pelos robôs identificados. Em seguida, asnavegações foram agrupadas por IP/agente distintos, gerando quase 4 mil usuáriosdiferentes. Com o critério de time-out para obtenção das sessões, e estabelecendo otempo máximo de inatividade em 30 minutos, geraram-se exatas 5.248 sessões. Foiutilizado como tempo mínimo entre duas solicitações de páginas o valor de 1 segundo.126


Na Tabela 7.1 são mostradas a quantidade de sessões resultante, o total de páginasvisitadas e a quantidade de páginas por sessão, considerando todos os visitantes esomente aqueles com tamanho de sessão maior que um.Usuários #sessões #páginas #páginas/sessãoTodos 5.248 20.269 3,8Com tamanho desessão maior que um3.682 18.703 5,0Tabela 7.1 – Distribuição de sessões e páginasAo contrário do Emagrecendo, que tinha mais de mil páginas distintas, no site doBucsky foram identificadas somente 32 páginas diferentes. Todas elas podem seracessadas pelos visitantes.Na Figura 7.7 é mostrado o histograma do tamanho das sessões consideradas, incluindoas sessões de tamanho um.Figura 7.7 – Histograma do tamanho das sessões127


Analisando os tempos destas sessões, verificou-se que a média geral foi de 245segundos (pouco mais de 4 minutos) e a mediana, 85 segundos (aproximadamente 1minuto e meio). Nestes cálculos não foram consideradas o tempo de visitação da últimapágina da sessão, que é uma informação inexistente devido às características doprotocolo HTTP. Desta forma, as sessões de tamanho um foram automaticamentedesconsideradas nestas estatísticas. Na Figura 7.8 é mostrado o histograma do tempodas sessões, onde o tempo é dado em segundos.Figura 7.8 – Histograma do tempo das sessõesO histograma do tempo que o usuário demorou em navegar de uma página para apróxima (solicitações sucessivas) está mostrado na Figura 7.9, juntamente com asestatísticas de média, mediana e moda. Esta informação também é importante para oentendimento dos visitantes.128


Figura 7.9 – Histograma de tempo entre duas solicitaçõesPor fim, as sessões geradas foram convertidas para o formato transacional da ferramentaClementine. Nesta etapa de tratamento de dados, também não foram contemplados aeliminação de sessões muito longas e sessões muito intensas (visitas de muitas páginasnum intervalo de tempo relativamente curto).7.4 Tratamento das sessõesComo o objetivo definido para este estudo foi conhecer mais sobre o que os visitantesprocuram, a escolha da página pivô baseou-se novamente na estratégia de selecionar apágina com maior quantidade de visitas (como no caso do Emagrecendo).Utilizando os dados tratados na fase anterior, obtiveram-se as dez páginas maisacessadas do site no período avaliado (Tabela 7.2). Percebe-se que esta lista é igual aorelatório de páginas mais visitadas gerado pela ferramenta Analog da Figura 7.6. Issoocorre por dois motivos: pelo pequeno porte do site e por se estar avaliando todos osusuários que acessaram o site (e não um grupo, como foi o caso dos “visitantes” noEmagrecendo).129


Ordem Página Qtde1 / 45982 /hotelbucsky/port.htm 34463 /hotelbucsky/tarifa.htm 25044 /hotelbucsky/form.htm 20675 /hotelbucsky/instala.htm 18216 /hotelbucsky/lazer.htm 12127 /hotelbucsky/servico.htm 9268 /hotelbucsky/chegar.htm 6249 /hotelbucsky/hotel.htm 61110 /hotelbucsky/friburgo.htm 530Tabela 7.2 – Páginas mais acessadasA primeira página, “/”, é a inicial e a segunda, “/hotelbucsky/port.htm”, é a páginaprincipal em português. Ambas já foram mostradas anteriormente. Como toda visitaprovavelmente deve conter estas duas páginas, elas não servem como página pivô. Foiescolhida então a terceira da lista, a página “/hotelbucsky/tarifa.htm”.Uma informação relevante que esta tabela fornece é a proporção de estrangeiros queacessam o site do hotel. Com a quantidade total e a quantidade de acessos às páginas emportuguês, tem-se que aproximadamente 25% dos visitantes são estrangeiros. É umcálculo estimado, pois parte do princípio de que um estrangeiro opta pela apresentaçãodas páginas em inglês ou alemão, que são as outras duas opções existentes na páginainicial.O fato da página de tarifas ser a mais acessada, com exceção das páginas iniciais,mostra que, mesmo este hotel sendo destinado às classes média e alta, há um interessedireto dos visitantes no preço cobrado. Entretanto, como não se sabe quais visitantes dosite tornaram-se hóspedes, não há como tirar conclusões deste dado. O que se espera éque os resultados aqui encontrados ajudem indiretamente nesta questão.130


A página de tarifas, escolhida como pivô, está mostrada na Figura 7.10.Figura 7.10 – Página de tarifasO próximo passo foi, com a página pivô, selecionar as outras três páginas com maiortempo de visitação, não considerando a página inicial e nem a página principal. Aúltima página acessada é selecionada automaticamente. Todas as sessões que nãopossuíam a página pivô foram excluídas. Desta forma, o total de sessões ficou em 1.877,que foram utilizados pelo Clementine para extração dos padrões.131


7.5 Extração de padrões seqüenciaisCom o software Clementine, realizou-se a mineração dos padrões seqüenciais utilizandoos seguintes parâmetros: suporte mínimo (10%), confiança mínima (10%) e tamanhomáximo de seqüência (2). Utilizou-se o valor mínimo de 10% ao invés de 5%, como noestudo do Emagrecendo, devido ao tamanho menor do site e, conseqüentemente, àsnavegações mais simples existentes. Neste caso, também não foi necessário utilizar asopções avançadas do nó de construção do modelo.O modelo ficou com 10 regras, mostradas e ordenadas pela confiança na Figura 7.11.Figura 7.11 – Regras obtidasOs percentuais de suporte e confiança são maiores do que os obtidos no estudo de casoanterior (Emagrecendo) devido à quantidade de páginas deste site, que é muito menor.As páginas que apareceram nas regras estão detalhadas na Tabela 7.3. A visualizaçãodelas encontra-se no Apêndice D.132


Página/hotelbucsky/tarifa.htm/hotelbucsky/instala.htm/hotelbucsky/lazer.htm/hotelbucsky/servico.htm/hotelbucsky/form.htm/hotelbucsky/chegar.htmDescriçãoÉ a página pivô (mostrada anteriormente).Mostra as instalações internas do hotel: quartos,bar e restaurante.Detalha a parte externa do hotel destinada ao lazer(quadras, piscinas, parquinhos).Detalha as especialidades do restaurante, osfestivais gastronômicos e os outros serviçosexistentes (lavanderia, telefonia).Mostra os pacotes promocionais, normalmenterelacionados aos feriados, e contém um formuláriopara solicitação de orçamento.Fornece indicações de como chegar ao hotel.Tabela 7.3 – Descrição das páginasPara auxiliar na identificação das regras, assim como no estudo de caso anterior, foiutilizada uma nomenclatura para as mesmas: a regra com maior confiança foidenominada R1, e assim sucessivamente até R10, conforme mostrado na Tabela 7.4.NomeR1R2R3R4R5R6R7R8R9R10Regra/hotelbucsky/instala.htm → /hotelbucsky/tarifa.htm/hotelbucsky/lazer.htm → /hotelbucsky/tarifa.htm/hotelbucsky/servico.htm → /hotelbucsky/tarifa.htm/hotelbucsky/tarifa.htm → /hotelbucsky/form.htm/hotelbucsky/instala.htm → /hotelbucsky/form.htm/hotelbucsky/instala.htm → /hotelbucsky/lazer.htm/hotelbucsky/form.htm → /hotelbucsky/tarifa.htm/hotelbucsky/tarifa.htm → /hotelbucsky/instala.htm/hotelbucsky/tarifa.htm → /hotelbucsky/lazer.htm/hotelbucsky/tarifa.htm → /hotelbucsky/chegar.htmTabela 7.4 – Nomenclatura das regras133


Analisando as regras obtidas na Figura 7.11, é possível obter algumas informaçõesquantitativas:• R1, R2 e R3: a maioria dos visitantes que conhece os recursos do hotel(instalações, lazer e serviços) vai verificar os valores das tarifas;• R4: quem navega pela página de tarifa também passa pela página de promoções;• R8, R9 e R10: que se interessa primeiro pela tarifa dificilmente continuavisitando o site.Neste caso também é possível classificar e rotular os grupos de visitantes. Utilizandoesta abordagem mentalista nas regras obtidas, é possível levantar algumas hipótesessobre o perfil de alguns grupos de visitantes:a) a regra R2 seleciona os visitantes que têm crianças (famílias);b) as regras R1 e R5 selecionam os visitantes que procuram descanso e conforto;c) as regras R8, R9 e R10 selecionam aqueles visitantes econômicos, queprovavelmente não se enquadram no perfil de hóspede do hotel.Assim como já foi mostrado no estudo de caso anterior, todas estas hipóteses sãosubjetivas. Não existe um método para explicar como foram obtidas. Essa é a grandedesvantagem desta abordagem mentalista.Neste trabalho, os comportamentos dos usuários nas páginas são verificadosobjetivamente a partir dos logs de navegação. A partir disso, são levantadas as hipótesessobre os comportamentos dos visitantes, as quais podem ser explicadas e demonstradas.É uma abordagem comportamental.134


7.6 Detalhamento dos padrõesDescoberto os padrões seqüenciais, é preciso detalhá-los conforme estabelecido nametodologia proposta. Avaliando de forma relativa o nível de confiança das regrasencontradas, foram selecionadas apenas aquelas com confiança maior que 50%, ou seja,as primeiras quatro regras (R1 a R4, de acordo com a nomenclatura utilizada).A partir dos programas desenvolvidos especificamente para esse propósito, foramgerados os dois arquivos necessários para as análises estatísticas que compõem estaetapa, um para a análise dos tempos e outro para a análise dos intervalos. Toda estatarefa foi executada com o software Clementine.Os resultados, compostos por estatísticas e histogramas, além da análisecomportamental e das hipóteses levantadas pelo especialista (psicólogo) para cada umadas quatro regras, estão apresentados nos tópicos a seguir.O traço vertical (com o respectivo valor) presente nos histogramas indica a mediana dostempos de visitação, utilizada como referência para a análise comportamental.7.7 Análise da regra R1Os histogramas do tempo de visitação das páginas da regra R1 (/hotelbucsky/instala.htm→ /hotelbucsky/tarifa.htm) estão mostrados na Figura 7.12, juntamente com algumasestatísticas.135


Suporte=35%68%29Probabilidadedestas páginasestarem sendoreforçadoras éalta29Figura 7.12 – Estatísticas e histogramas da regra R1Considerando o conteúdo de cada página, o tempo de visitação (dada pela mediana de29 segundos) é suficiente para absorção das informações apresentadas. Desta forma,segundo o especialista, a probabilidade destas páginas estarem sendo reforçadoras éalta.As características da página antecedente (/hotelbucsky/instala.htm), compostasbasicamente por fotos e textos curtos, são encontradas em quase todas as outras páginasdo site.136


Nesta regra, conforme mostrado na Figura 7.12, a confiança é de 68% e o suporte, 35%.Para análise dos intervalos das regras, ou seja, análise da quantidade de páginas erespectivos tempos complementares, foram geradas as estatísticas apresentadas naFigura 7.13. Do lado esquerdo estão as estatísticas da quantidade de páginas antes doantecedente, entre o antecedente e o conseqüente, e depois do conseqüente. Do ladodireito, as estatísticas do tempo (em segundos).Figura 7.13 – Estatísticas dos intervalos da regra R1Os histogramas de todas estas variáveis de quantidade e tempo estão apresentadas naFigura 7.14. Os três histogramas superiores referem-se à quantidade e os três inferiores,ao tempo.137


Mediana = 24Figura 7.14 – Histogramas da quantidade e tempos dos intervalos da regra R1138


Ainda referente à regra R1, também foram levantadas as estatística do tempo total denavegação até a penúltima e a última página (Figura 7.15). Estas informações de tempototal complementam os dados de tempo mostrados na figura anterior.Figura 7.15 – Estatísticas do tempo total de navegação – R1Apesar dos histogramas da Figura 7.14 mostrarem que houve alguma navegação entre oantecedente e o conseqüente da regra, e após o conseqüente, elas consumiram muitopouco tempo. Assim, de acordo com o especialista, estas outras páginas possuem baixaprobabilidade de estarem sendo reforçadora.Ainda na Figura 7.14, o histograma de quantidade de páginas existente antes doantecedente da regra também mostra que houve navegação anterior, mas apenas emduas páginas. Pela estrutura do site, provavelmente são a página inicial e a páginaprincipal. Considerando a mediana de 24 segundos (do respectivo histograma de tempo)como o tempo gasto de visitação nestas duas páginas, segundo o especialista, elas têmalta probabilidade de estarem sendo reforçadoras pois este tempo é suficiente paraleitura completa das mesmas.139


Com todas estas informações da regra R1, duas hipóteses mais amplas foram levantadaspelo especialista:• As instalações do hotel parecem estar sendo reforçadoras para este grupo depessoas pois eles gastaram tempo suficiente para avaliar as respectivasinformações;• Estes visitantes que começaram pela página de instalações provavelmentebuscam no hotel uma estrutura física reforçadora, ou seja, ficarão contentes como hotel se as suas dependências forem boas.7.8 Análise da regra R2Os histogramas e estatísticas obtidos para as páginas da regra R2(/hotelbucsky/lazer.htm → /hotelbucsky/tarifa.htm) estão mostrados na Figura 7.16.140


Suporte=18%63%24Probabilidadedestas páginasestarem sendoreforçadoras éalta29Figura 7.16 – Estatísticas e histogramas da regra R2Observando os histogramas da Figura 7.16, verifica-se que as medianas dos tempos devisitação das páginas estão na faixa de 25 segundos. Considerando o conteúdo destaspáginas, é tempo suficiente para análise das mesmas. Assim, de acordo com oespecialista, estas páginas têm alta probabilidade de estarem sendo reforçadoras.Um dado importante desta regra R2, com relação à regra R1, é que, mesmo tendo umaconfiança semelhante (63%), o suporte é muito menor (apenas 18%).141


As estatísticas apresentadas na Figura 7.17 foram geradas para a análise dos intervalosdas regras. Do lado direito, estão as estatísticas do tempo (em segundos) e do ladoesquerdo, as estatísticas da quantidade de páginas antes do antecedente, entre oantecedente e o conseqüente, e depois do conseqüente.Figura 7.17 – Estatísticas dos intervalos da regra R2Na Figura 7.18 são apresentados os histogramas de todas estas variáveis de quantidade etempo. Os histogramas superiores referem-se à quantidade e os inferiores, ao tempo.142


Mediana = 58Figura 7.18 – Histogramas da quantidade e tempos dos intervalos da regra R2143


As estatísticas do tempo total de navegação (até a penúltima e até a última página) daregra R2 estão detalhadas na Figura 7.19.Figura 7.19 – Estatísticas do tempo total de navegação – R2Os histogramas da Figura 7.18 mostram que houve alguma navegação entre oantecedente e o conseqüente da regra, e após o conseqüente, mas elas consumirammuito pouco tempo. Desta forma, de acordo com o especialista, estas outras páginastambém possuem baixa probabilidade de estarem sendo reforçadora.Como existiu navegação em três páginas (baseado na mediana das quantidades) antes dapágina “/hotelbucsky/lazer.htm” (antecedente da regra) e o tempo gasto nestas outraspáginas, considerando a mediana de 58 segundos, é suficiente para leitura completa dasmesmas, a probabilidade destas páginas estarem sendo reforçadoras é alta.A hipótese mais ampla levantada aqui pelo especialista é que, para este grupo depessoas, a infra-estrutura do hotel parece estar sendo reforçadora pois eles gastaramtempo suficiente para avaliar estas informações. Apesar do interesse mais específicosobre as partes de lazer, eles também visitaram anteriormente outras páginas do site.144


7.9 Análise da regra R3Na Figura 7.20 são mostrados os histogramas do tempo de visitação nas páginas daregra R3 (/hotelbucsky/serviço.htm → /hotelbucsky/tarifa.htm), juntamente comalgumas estatísticas.Suporte=11%61%29Probabilidadedestas páginasestarem sendoreforçadoras éalta35Figura 7.20 – Estatísticas e histogramas da regra R3Apesar destas páginas possuírem conteúdos diferentes, o tempo de visitação nas duaspáginas é muito semelhante, ficando as medianas no patamar de 30 segundos. Da145


mesma forma que nos casos anteriores, este tempo é suficiente para leitura ecompreensão das mesmas. De acordo com o especialista, a probabilidade destas páginasestarem sendo reforçadoras é alta.As estatísticas obtidas para a análise dos intervalos das regras estão mostradas na Figura7.21.Figura 7.21 – Estatísticas dos intervalos da regra R3Os histogramas destas variáveis de quantidade e tempo estão apresentados na figura aseguir (Figura 7.22).146


Mediana = 63Figura 7.22 – Histogramas da quantidade e tempos dos intervalos da regra R3147


As estatísticas do tempo total de navegação até a penúltima e até a última página, quetambém fazem parte deste detalhamento do padrão, são apresentadas na Figura 7.23.Figura 7.23 – Estatísticas do tempo total de navegação – R3Como os histogramas e estatísticas desta regra são muito semelhantes aos da regraanterior, de acordo com o especialista, as páginas constantes das navegações quecontêm R3, mas que estão após a página antecedente, possuem baixa probabilidade deestarem sendo reforçadora. Já as páginas navegadas antes da página antecedentepossuem alta probabilidade de estarem sendo reforçadora.Ainda segundo o especialista, uma hipótese aqui é que estes visitantes buscam no hoteluma variedade e qualidade nos serviços pois eles gastaram tempo suficiente para avaliaras respectivas informações. Provavelmente ficarão satisfeitos se o hotel possui bonsserviços.7.10 Análise da regra R4Os histogramas e estatísticas do tempo de visitação nas páginas da regra R4(/hotelbucsky/tarifa.htm → /hotelbucsky/form.htm) são apresentados na Figura 7.24.148


Suporte=53%53%Probabilidadedesta páginaestar sendoreforçadora éalta36Probabilidadedesta páginaestar sendoreforçadora ébaixa43Figura 7.24 – Estatísticas e histogramas da regra R4No primeiro histograma da Figura 7.24, referente à página de tarifas, a mediana dotempo de visitação é 36 segundos, tempo suficiente para ver todas as informações depreço. Já no segundo histograma, referente à página de promoções e pacotes,considerando a mediana do tempo de visitação de 43 segundos, o tempo é insuficientepara leitura detalhada da grande quantidade de informações existente. Assim, de acordocom o especialista, ela não está sendo reforçadora para este grupo de pessoas.149


Como a página antecedente (/hotelbucsky/tarifa.htm) provavelmente foi construída paraconduzir o usuário à página de promoções (/hotelbucsky/form.htm), este caso é umexemplo de bom funcionamento do site. Esta situação, indicada pela flecha tracejada,reflete no alto nível de confiança da regra (53%), o maior dentre as regras obtidas.Com relação à análise dos intervalos das regras, as estatísticas das quantidades e temposestão mostradas na Figura 7.25.Figura 7.25 – Estatísticas dos intervalos da regra R4Na Figura 7.26 são mostrados os respectivos histogramas destas variáveis. Os trêshistogramas superiores são das variáveis de quantidade e os três inferiores, das variáveisde tempo.150


Mediana = 41Figura 7.26 – Histogramas da quantidade e tempos dos intervalos da regra R4151


Na Figura 7.27 estão apresentadas as estatística do tempo total de navegação (até apenúltima e a última página), que complementam o detalhamento dos padrões.Figura 7.27 – Estatísticas do tempo total de navegação – R4Os histogramas da Figura 7.26 mostram que, apesar de ter existido navegação em trêspáginas (baseado na mediana das quantidades) antes da página antecedente, o tempogasto nestas outras páginas, dada pela mediana de 41 segundos, não é suficiente paraleitura completa das mesmas. Então, segundo o especialista, a probabilidade destaspáginas, incluindo as visitadas entre e depois as páginas da regra, estarem sendoreforçadoras é baixa.Destas informações obtidas, uma hipótese que foi levantada pelo especialista é que opreço não foi reforçador para levar o visitante a escolher este hotel para se hospedarpois ele não continuou a navegar pelo site.7.11 Hipótese para o siteAlém das hipóteses já apresentadas na análise de cada regra, de acordo com oespecialista, também é possível levantar uma hipótese para o site como um todo:152


• As páginas do site parecem estar cumprindo funções reforçadoras da navegaçãopois os dados mostram que o tempo de navegação pelas páginas e a quantidadede páginas visitadas são suficientes para se ter uma boa compreensão do hotel.Isso aumenta a probabilidade de se efetivar tanto o objetivo maior doempresário, que é ter esse visitante como cliente, quanto o objetivo maior dovisitante, que é se hospedar no hotel.No entanto, como neste estudo de caso não se tem a informação de quantos visitantes dosite efetivamente se hospedaram no hotel, do ponto de vista do empresário, não épossível avaliar se o site está gerando resultados para o negócio.Do ponto de vista do visitante, também não sabemos se o que o site apresentou foisuficiente para ele decidir hospedar-se lá.153


Capítulo 8ConclusõesCom a expansão da web, um dos grandes desafios atuais das empresas é obterinformações qualitativas dos visitantes e clientes que navegam em seus web sites, umavez que as informações quantitativas já são supridas pelas inúmeras ferramentasanalíticas já existentes no mercado. Dentre estas informações qualitativas, há uminteresse particular no comportamento dos usuários. A proposta que foi feita nestetrabalho aborda este tema.Diferentemente de outros trabalhos de Web Usage Mining, onde se procura classificar erotular (subjetivamente) os usuários a partir dos padrões de navegações encontrados,aqui foi definida uma metodologia para analisar de forma objetiva o comportamento denavegar dos usuários. Para isso, adaptou-se o processo de mineração para integrar osconceitos da Análise do Comportamento.Os resultados positivos mostram que é possível combinar estas duas disciplinasdistintas. A partir da análise do comportamento de navegar, várias hipóteses sobre ocomportamento dos usuários de um web site podem ser levantadas, as quais geram umatomada de consciência por parte dos responsáveis ou donos do site. Essaconscientização permite que sejam executadas, com maior probabilidade, açõesacertadas sobre o site, mais direcionadas ao objetivo do negócio.Assim como na Psicologia Comportamental, este trabalho não tem como objetivocomprovar estas hipóteses levantadas. Para que as mesmas fossem comprovadas, serianecessário realizar experimentos e pesquisas diretamente com os usuários do site. O quese pretende é que, a partir da tomada de consciência e realização de ações mais154


adequadas ao negócio, surjam hipóteses novas e, provavelmente, mais refinadas. Nesteprocesso, o site torna-se um instrumento efetivo da empresa pela característica decontrole que se obtém.Sem essa consciência gerada pelas hipóteses, as ações de modificação de estrutura,conteúdo e aparência do site ficam dentro de um processo de tentativa e erro. Éimportante ressaltar que esta tomada de consciência não decorre exclusivamente daanálise comportamental; há outros meios de levantar hipóteses. Estas poderiam, porexemplo, ser obtidas pela experiência do dono do site.A Figura 8.1 esquematiza o processo de tomada de consciência.Web Usage MiningAnálise comportamentalHipóteses levantadasTomada de consciênciaMaior probabilidade deescolhas acertadasAçõesDono dositeTentativa e erroFigura 8.1 – Tomada de consciênciaDentro desta integração de disciplinas, é imprescindível a atuação do especialista, nocaso, o psicólogo, na tarefa de análise comportamental e no levantamento de hipóteses.155


Sem este profissional, as regras obtidas pelo Web Usage Mining pouco auxiliam oprocesso de tomada de consciência mostrado anteriormente.Infelizmente, por dificuldades operacionais, em nenhum dos dois sites estudados foipossível, a partir das hipóteses levantadas, realizar alguma modificação para analisar asrespectivas mudanças de comportamento.Um ponto relevante da técnica proposta neste trabalho, e que foi mostrada nos doisestudos de caso, é que permite tanto uma análise pontual (comportamentos dos usuáriosem uma determinada página) quanto uma análise do site todo. Além disso, ela é flexívelna escolha das regras a serem detalhadas. Neste trabalho, optou-se por utilizar o critériode selecionar as com maior confiança, dado que os números de suporte eramsemelhantes. Isso exclui da análise páginas que podem estar sendo reforçadoras, maspara um número pequeno de pessoas.A partir da aplicação desta metodologia em sites já existentes (estudos de caso 1 e 2),percebeu-se que, apesar dos resultados relevantes, os sites ainda têm muito a melhorar,independentemente de já possuírem um bom design ou não. Muitos problemasprimários podem ser identificados apenas com uma análise mais detalhada nasinformações analíticas já existentes sobre os acessos ao site. Assim, fica claro que osresultados seriam ainda mais interessantes se esta metodologia fosse aplicada num sitenovo, já criado a partir dos conceitos da Psicologia Comportamental.8.1 Trabalhos futurosO desenvolvimento deste trabalho mostrou que muitos dos problemas comuns aoprocesso de Web Usage Mining podem ser evitados ainda na fase de préprocessamento.A partir disso, existem algumas atividades que podem ser realizadaspara melhorar a metodologia aqui proposta:156


• Estudar a utilização de tempo de visitação relativo ao invés de tempo absoluto.Este tempo relativo seria obtido a partir da definição de tempo de visitaçãomínimo para cada página do site, que pode ser definido como tempo necessáriopara leitura e compreensão;• Avaliar melhor o conceito de última página visitada, pois pode indicar overdadeiro interesse do usuário. Desta forma, a página pivô poderia ser definidaa partir dela;• Estudar o problema de repetições seguidas de páginas, situação que ocorrequando o usuário acessa vários conteúdos (dinâmicos) que são carregados poruma única página. Por exemplo, na apresentação de vídeos;• Estudar o impacto de fatores externos no tempo de visitação das páginas,principalmente no que se refere ao tipo de conexão (acesso discado ou bandalarga).Uma opção de trabalho futuro, na etapa de extração e detalhamento de padrõesseqüenciais, é avaliar o impacto e resultados na utilização de regras com mais de doiselementos.Um ponto importante é desenvolver o processo de refinamento de hipóteses, já que nãofoi possível realizar neste trabalho nenhum teste com as mesmas. Através demodificações direcionadas de estrutura e conteúdo do site, devem-se analisar asmudanças de comportamento dos usuários e, se possível, medir o impacto de cadamudança nos negócios, como por exemplo, aumento do número de clientes oucrescimento nas vendas. A partir disso, novas hipóteses serão levantadas.Outro bom estudo decorrente seria aplicar os procedimentos descritos neste trabalhonum log gerado pela técnica de “JavaScript Page Tags”, que é mais eficiente, ao invésde utilizar log de servidor web. Esta técnica permite que a coleta dos dados denavegação seja direcionada, isto é, sejam gravados somente os acessos às páginas157


elevantes para a análise. Também é possível armazenar informações adicionais, comopor exemplo, as palavras utilizadas para busca (interna) no site.Seria interessante também avaliar a utilização dos dados já gerados pelas ferramentasanalíticas, como por exemplo, navegação por dia da semana e por hora do dia, paraproduzir análises segmentadas.Finalmente, há a opção de trabalho futuro na própria área de PsicologiaComportamental, objetivando um formalismo dos procedimentos aqui adotados.158


Referências bibliográficasAGRAWAL, R., SRIKANT, R., 1994, “Fast Algorithms for Mining AssociationRules”, In: Proceedings of the 20th International Conference on Very Large DataBases, pp. 487-499, Santiago, Chile.AGRAWAL, R., SRIKANT, R., 1995, “Mining Sequential Patterns”, InternationalConference on Data Engineering (IC<strong>DE</strong>), Taipei, Taiwan.ALVES, R., BELO, O, CAVALCANTI, F. et al., 2004, “Clickstreams, the basis toestablish user navigation patterns on web sites”, In: Data Mining V – DataMining, Text Mining and their Business Applications, pp. 87-96, Malaga, Spain.APACHE, 2006, Log Files, http://httpd.apache.org/docs/2.2/logs.htmlBARBARA, D., WU, N., JAJODIA, S., 2001, “Detecting Novel Networks IntrusionsUsing Bayes Estimators”, First SIAM International Conference on Data Mining,Chicago, USA.BERENDT, B. 2000, “Web usage mining, site semantics, and the support ofnavigation”, Workshop WEBKDD’2000 Web Mining for E-Commerce -Challenges and Opportunities, Sixth ACM SIGKDD International Conference onKnowledge Discovery and Data Mining, Boston, USA.BERENDT, B., HOTHO, A., STUMME, G., 2002, “Towards Semantic Web Mining”,First International Semantic Web Conference (ISWC2002), Sardinia, Itália.BERNERS-LEE, T., HENDLER, J., LASSILA, O., 2001, “The Semantic Web”,Scientific Am., Vol. 279, No. 5, pp. 34-43.159


BIVENS, A., PALAGIRI, C., SMITH, R. et al., 2002, “Network-based IntrusionDetection using Neural Networks”, In: Proceedings of the Artificial NeuralNetworks in Engineering 2002 (ANNIE-2002), Volume 12, pp. 579-584, NewYork, NY, USA.BORGES, J., 2000, A Data Mining Model to Capture User Web Navigation Patterns,Ph.D. thesis, Department of Computer Science, University College London, UK.BOULLOSA, J., 2002, Um Ambiente para Mineração de Utilização da Web, tese deM.Sc., COPPE, Universidade Federal do Rio de Janeiro, Rio de Janeiro, RJ,Brasil.BRANDMAN, O., GARCIA-MOLINA, H., PAEPCKE, A., 1999, Where Have YouBeen? A Comparison of Three Web Tracking Technologies, Stanford University,USA.BÜCHNER, A., MULVENNA, M., 1998, “Discovering Internet Marketing Intelligencethrough Online Analytical Web Usage Mining”, ACM SIGMOD Record, Vol. 27,No. 4, pp. 54-61.CA<strong>DE</strong>Z, I., HECKERMAN, D., MEEK, C. et al., 2000, Visualization of NavigationPatterns on a Web Site Using Model Based Clustering, Technical Report SMR-TR-00-18, Microsoft Research, Microsoft Corporation, Redmond, WA, USA.CATLEDGE, L., PITKOW, J., 1995, “Characterizing Browsing Strategies on the WorldWide Web”, 3rd International WWW Conference, Darmstadt, Germany.CHATHAM, B., 2004, Selecting a B2C Site Analytics Product, Forrester Research,Cambridge, MA, USA.CHEN, M., PARK, J., YU, P., 1996, “Data Mining for Path Traversal Patterns in a WebEnvironment”, In: Proceedings of the 16th Conference on Distributed ComputingSystems, pp. 385-392, Baltimore, Maryland, USA.160


COOLEY, R., MOBASHER, B., SRIVASTAVA, J., 1997a, “Web Mining: Informationand Pattern Discovery on the World Wide Web”, 9th IEEE InternationalConference on Tools with Artificial Intelligence (ICTAI97), Newport Beach, CA,USA.COOLEY, R., MOBASHER, B., SRIVASTAVA, J., 1997b, “Grouping web pagereferences into transactions for mining world wide web browsing patterns”, In:Proceedings of the 1997 IEEE Knowledge and Data Engineering ExchangeWorkshop (K<strong>DE</strong>X-97), pp. 2-9, Newport Beach, CA, USA.COOLEY, R. MOBASHER, B., SRIVASTAVA, J., 1999a, “Data Preparation forMining World Wide Web Browsing Patterns”, Knowledge and InformationSystem, Vol.1, No.1, pp. 5-32.COOLEY, R., TAN, P., SRIVASTAVA, J., 1999b, “WebSIFT: The Web SiteInformation Filter System”, Web Usage Analysis and User Profiling Workshop(WEBKDD'99), San Diego, CA, USA.COOLEY, R., 2000, Web Usage Mining: Discovery and Application of InterestingPatterns from Web Data, Ph.D. thesis, Faculty of the Graduate School, Universityof Minnesota, Minneapolis, USA.COOLEY, R., 2003, “The Use of Web Structure and Content to Identify SubjectivelyInteresting Web Usage Patterns”, ACM Transactions on Internet Technology, Vol.3, No. 2, pp. 93-116.CORTES, C., VAPNIK, V., 1995, “Support-Vector Networks”, Machine Learning, Vol.20, No. 3, pp. 273-297.COSTERMANS, J., 1981, Psychologie Cognitive, UCL, Belgique.161


CYBIS, W. A., 2006, “Engenharia de Usabilidade: uma abordagem ergonômica”,Laboratório de Utilizabilidade (LabIUtil), Universidade Federal de SantaCatarina, Florianópolis, SC, Brasil.www.labiutil.inf.ufsc.br/hiperdocumento/conteudo.html<strong>DE</strong>L NERO, H., 1997, “Ciências Cognitivas”, Folha de São Paulo, edição de13/04/1997, pp. 5-5, São Paulo, SP, Brasil.<strong>DE</strong>SHPAN<strong>DE</strong>, M., KARYPIS, G., 2000, Selective Markov Models for Predicting Web-Page Accesses, Technical Report #00-056, Department of ComputerScience/Army HPC Research Center, University of Minnesota, Minneapolis, MN,USA.EIRINAKI, M., VAZIRGIANNIS, M., 2003, “Web Mining for Web Personalization”,ACM Transactions on Internet Technology, Vol. 3, No. 1, pp. 1-27.ETZIONI, O., 1996, “The world-wide web: a quagmire or gold mine?”,Communications of the ACM, Vol. 39, No.11, pp.64-68.FENSEL, D., 2001, Ontologies: A Silver Bullet for Knowledge Management andElectronic Commerce, Berlin, Springer-Verlag.FENSTERMACHER, K., GINSBURG, M., 2003, “Client-Side Monitoring for WebMining”, Journal of the American Society for Information Science andTechnology, Volume 54, Issue 7.FERRARI, M., 2004, “O cientista do comportamento e do aprendizado”, Revista NovaEscola, edição 176 (outubro/2004), São Paulo, SP, Brasil.FONSECA, F., EGENHOFER, M., BORGES, K. A. B., 2000, “Ontologias eInteroperabilidade Semântica entre SIGs”, GEOINFO 2000 – II WorkshopBrasileiro de Geoinformática, São Paulo, SP, Brasil.162


FRIAS-MARTINEZ, E., KARAMCHETI, V., 2003, “Reduction of User PerceivedLatency for a Dynamic and Personalized Web Site Using Web MiningTechniques”, Fifth WEBKDD Workshop (WEBKDD 2003), Washington, DC,USA.FU, Y., SANDHU, K., SHIH M., 1999, “Clustering of web users based on accesspatterns”, Workshop on Web Usage Analysis and User Profiling (WEBKDD1999), San Diego, CA, USA.GÉRY, M., HADDAD, H., 2003, “Evaluation of Web Usage Mining Approaches forUser’s Next Request Prediction”, Fifth International Workshop onWeb Information and Data Management (WIDM'03), New Orleans, USA.GIRAFA, 2006, www.girafa.comHALLAM-BAKER, P., CONNOLLY, D., 1996a, Extended Log File Format, W3CWorking Draft WD-session-id-960323, www.w3.org/TR/WD-logfile.htmlHALLAM-BAKER, P., CONNOLLY, D., 1996b, Session Identification URI, W3CWorking Draft WD-session-id-960221, www.w3.org/TR/WD-session-id.htmlHAN, J., KAMBER, M., 2001, Data Mining Concepts and Techniques, San Francisco,CA, USA, Morgan Kaufmann.HIDBER, C., 1998, Online Association Rule Mining, Technical Report UCB//CSD-98-1004, Department of Electrical Engineering and Computer Science, University ofCalifornia at Berkeley, USA.HOFGESANG, F. I., KOWALCZYK, W., 2005, “Analyzing Clickstream Data: FromAnomaly Detection to Visitor Profiling”, ECML/PKDD Discovery Challenge2005, Porto, Portugal.163


JOSHI, A., KRISHNAPURAM, R., 2000, “On Mining Web Access Logs”, In:Proceedings of the 2000 ACM SIGMOD Workshop on Research Issues in DataMining and Knowledge Discovery (DMKD’2000), pp. 63-69, Dallas, TX, USA.KELLER, F. S., 1970, Aprendizagem: Teoria do Reforço, 4ª edição, São Paulo, SP,EPU – Editora Pedagógica e Universitária Ltda.KOHAVI, R., 2001, “Mining E-Commerce Data: The Good, the Bad, and the Ugly”,KDD 2001 Industrial Track, San Francisco, CA, USA.KOSALA, R., BLOCKEEL, H., 2000, “Web Mining Research: A Survey”, SIGKD<strong>DE</strong>xplorations, Vol. 2, No. 1, pp. 1.KUMAR, R., RAGHAVAN, P., RAJAGOPALAN, P. et al., 1999, “Trawling the webfor emerging cyber-communities”. In: Proceedings of Eighth International WorldWide Web Conference, pp. 1481-1493, Amsterdam, Netherlands.KWAN, I. S. Y., FONG, J., WONG, H. K., 2005, “An e-customer behavior model withonline analytical mining for internet marketing planning”, Decision SupportSystems, Vol. 41, Issue 1 (November 2005), pp. 189-204.LAMPREIA, C., 1993, “Os Limites das Propostas Anti-Mentalistas Behavioristas”,Informativo nº 2 da ABPMC, Brasília, DF, Brasil.LEE, L. L., 2004, Web Mining, Leading Edge Forum – Research Grant 2003/4,Australia Group, CSC, Australia.LIU, B., MA, Y., YU, P.S., 2001, “Discovering Unexpected Information from YourCompetitors' Web Sites". In: Proceedings of the ACM SIGKDD InternationalConference on Knowledge Discovery & Data Mining (KDD 2001), San Francisco,CA, USA.164


LIU, B., ZHAO, K., YI, L., 2002, “Visualizing Web Site Comparisons”. In:Proceedings of the Eleventh International World Wide Web Conference(WWW2002), Honolulu, Hawaii, USA.LOU, W., LIU, G., LU, H. et al., 2002, “Cut-and-Pick Transactions for Proxy LogMining”, 8th International Conference on Extending Data Base Technology(EDBT), Prague, Czech Republic.MASSA, S., PULIAFITO, P. P., 2002, “Web usage mining: knowledge discovery usingMarkov chains”, In: Data Mining III, pp. 967-977, Bologna, Italy.MASSEGLIA, F., PONCELET, P., CICCHETTI, R., 1999a, “WebTool: An integratedframework for data mining”, In: Proceedings of the Ninth InternationalConference on Database and Expert Systems Applications (<strong>DE</strong>XA’99), pp. 892-901, Florence, Italy.MASSEGLIA, F., PONCELET, P., TEISSEIRE, M., 1999b, “Using data miningtechniques on web access logs to dynamically improve hypertext structure”, ACMSigWeb Letters, Vol. 8, No. 3, pp. 13-19.MASSEGLIA, F., PONCELET, P., AND TEISSEIRE, M., 2000, “Web usage mining:How to efficiently manage new transactions and new customers”, Proceedings ofthe Fourth European Conference on Principles of Data Mining and KnowledgeDiscovery (PKDD’00), Lyon, France.MASSEGLIA, F., TANASA, D., TROUSSE, B., 2004, “Web Usage Mining:Sequential Pattern Extraction with a Very Low Support”, In: Proceedings of TheSixth Asia Pacific Web Conference (APWEB 2004), pp. 513-522, Hangzhou,China.MATOS, M. A, 1993, “Behaviorismo metodológico e behaviorismo radical”, IIEncontro Brasileiro de Psicoterapia e Medicina Comportamental, Campinas, SP,Brasil.165


MENA, J., 1999, Data Mining your Website, Digital Press, Boston, Massachusetts.MICROSOFT, 2006a, IIS Log File Format, Microsoft TechNet,www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/be22e074-72f8-46da-bb7e-e27877c85bca.mspx?mfr=trueMICROSOFT, 2006b, http//:msdn.microsoft.com/workshop/delivery/offline/linkrel.aspMOBASHER, B., JAIN, N., HAN, E. et al., 1996, Web Mining: Pattern Discovery fromWorld Wide Web Transactions, Technical Report TR-96050, Dep. of ComputerScience, University of Minnesota, Minneapolis, USA.MOBASHER, B., COOLEY, R., SRIVASTAVA, J., 1999, ”Creating Adaptive WebSites Through Usage Based Clustering of URLs”, 1999 IEEE Knowledge andData Engineering Exchange Workshop (K<strong>DE</strong>X’99), Chicago, IL, USA.MOBASHER, B., COOLEY, R., SRIVASTAVA, J., 2000a, “AutomaticPersonalization Based On Web Usage Mining”, Communication of ACM, Volume43, Issue 8.MOBASHER, B., DAI, H., LUO, T., et al., 2000b, “Integrating Web Usage andContent Mining for More Effective Personalization”, International Conference onE-Commerce and Web Technologies (ECWeb2000), Greenwich, UK.MOBASHER, B., DAI, H., LUO, T. et al., 2000c, “Discovery of Aggregate UsageProfiles for Web Personalization”, Web Mining for E-Commerce Workshop(WEBKDD’2000), Sixth ACM SIGKDD International Conference on KnowledgeDiscovery and Data Mining, Boston, USA.NASRAOUI, O., KRISHNAPURAM, R., JOSHI, A., 1999, “Mining Web Access LogsUsing a Fuzzy Relational Clustering Algorithm Based on a Robust Estimator,Eighth International World Wide Web Conference, Toronto, Canada.166


PERKOWITZ, M., ETZIONI, O., 1997, “Adaptive web sites: an AI challenge”, In:Proceedings of the 15th International Joint Conference on Artificial Intelligence(IJCAI97), pp. 16-23, Nagoya, Japan.PERKOWITZ, M., ETZIONI, O., 1998, “Adaptive Web Sites: Automaticallysynthesizing web pages”, In: Proceedings of the 15th National Conference onArtificial Intelligence, pp. 727-732, Madison, WI, USA.PERKOWITZ, M., ETZIONI, O., 2000, Towards adaptive Web sites: Conceptualframework and case study, Artificial Intelligence 118 (2000), pp. 245-275.PETERSON, E. T., 2005, Web Site Measurement Hacks, 1ª edição, Sebastopol, CA,O’Reilly.PIROLLI, P., PITKOW, J., RAO, R., 1996, “Silk from a Sow's Ear: Extracting UsableStructures from the Web”, In: Proceedings of the ACM SIGCHI’96 Conference onHuman Factors in Computing Systems, pp. 118-125, Vancouver, BC, Canada.PITKOW, J., BHARAT, K., 1994, “WebViz: A Tool for World-Wide Web Access LogAnalysis”, First International World Wide Web Conference, Geneva, Switzerland.PITKOW J., 1997, "In Search of Reliable Usage Data on the WWW", In: Proceedingsof the 6th International WWW Conference, pp. 451-463, Santa Clara, CA, USA.SCHECHTER, S., KRISHNAN, M., SMITH, M., 1998, “Using path profiles to predictHTTP requests”, 7th International WWW Conference, Brisbane, Australia.SHAHABI, C., ZARKESH, A., ADIBI, J., SHAH, V., 1997, “Knowledge Discoveryfrom Users Web-Page Navigation”, In: Proceedings of the InternationalWorkshop on Research Issues in Data Engineering IEEE (RI<strong>DE</strong>'97), pp. 20-31,Birmingham, UK.167


SHAHABI, C., BANAEI-KASHANI, F., FARUQUE, J., 2001, “A Reliable, Efficient,and Scalable System for Web Usage Data Acquisition”, WEBKDD 2001, SanFrancisco, CA, USA.SINGH, P. M., 2004, Practical Handbook of Internet Computing, Chapman & Hall /CRC Press.SKINNER, B. F., 1989, Ciência e Comportamento Humano, 7ª edição, São Paulo, SP,Martins Fontes.SMALL, H., GRIFFITH, B., 1974, “The Structure of Scientific Literatures: Identifyingand Graphing Specialties”, Science Studies, 4(17), pp. 17-40.SOUTO, M. A. M., 2003, Diagnóstico on-line do Estilo Cognitivo de Aprendizagem doAluno em um Ambiente Adaptativo de Ensino e Aprendizagem na Web: umaAbordagem Empírica baseada na sua Trajetória de Aprendizagem, Tese deDoutorado, Instituto de Informática, Universidade Federal do Rio Grande do Sul.SPILIOPOULOU, M., FAULSTICH, L., 1998, “WUM: A Web Utilization Miner”,EDBT Workshop (WebDB98), Valencia, Spain.SPILIOPOULOU, M., FAULSTICH, L., WINKLER, K., 1999, “A Data Mineranalyzing the Navigational Behaviour of Web Users”, Workshop on MachineLearning in User Modeling of the ACAI'99, Creta, Greece.SPILIOPOULOU, M., MOBASHER, B., BERENDT, B. et al., 2003, “A Frameworkfor the Evaluation of Session Reconstruction Heuristics in Web Usage Analysis”,INFORMS Journal on Computing, Volume 15, Issue 2, pp. 171-190.SPSS, 2002, Introduction to Clementine, SPSS Inc., USA.SPSS, 2003, Clementine 8.0 User´s Guide, Integral Solutions Limited, USA.168


SRIKANT, R., AGRAWAL, R., 1996, “Mining Sequential Patterns: Generalizationsand Performance Improvements”, Fifth International Conference on ExtendingDatabase Technology (EDBT), Avignon, France.SRIVASTAVA, J., COOLEY, R., <strong>DE</strong>SHPAN<strong>DE</strong>, M. et al., 2000, “Web Usage Mining:Discovery and Applications of Usage Patterns from Web Data”, SIGKD<strong>DE</strong>xplorations, Volume 1, Issues 2.SRIVASTAVA, J., <strong>DE</strong>SIKAN, P., KUMAR, V., 2002, "Web Mining:Accomplishments & Future Directions", National Science Foundation Workshopon Next Generation Data Mining (NGDM'02), Baltimore, USA.STOUT, R., 1997, Web Site Stats: Tracking Hits and Analyzing Traffic, OsborneMcGraw-Hill, Berkeley, California.SUN, A., LIM, E., NG, W., 2002, “Web Classification Using Support Vector Machine”,In: Proceedings of the 4th Int. Workshop on Web Information and DataManagement (WIDM 2002), Virginia, USA.TANASA, D., 2005, Web Usage Mining: Contributions to Intersites LogsPreprocessing and Sequential Pattern Extraction with Low Support, PhD thesis,Ecole Doctorale de Sciences et Technologies de l'Information et de laCommunication, Université de Nice Sophia Antipolis, France.VELÁSQUEZ, J., YASUDA, H., AOKI, T., 2003a, “Combining the web content andusage mining to understand the visitor behavior in a web site”, In: Proceedings ofthe Third IEEE International Conference on Data Mining (ICDM'03), Melbourne,Florida, USA.VELÁSQUEZ, J., YASUDA, H., AOKI, T. et al., 2003b, “Acquiring Knowledge AboutUsers' Preferences in a Web Site”, In: Proceedings of the First IEEE InternationalConference on Information Technology: Research and Education, pp. 375-379,Newark, New Jersey, USA.169


W3C, 1999, Web Characterization Terminology & Definitions Sheet, W3C WorkingDraft, www.w3.org/1999/05/WCA-terms/W3C, 2006, The Common Logfile Format, Logging in W3C,www.w3.org/Daemon/User/Config/Logging.html#common-logfile-formatWANG, W., ZAIÄNE, O. R., 2002, “Clustering Web Sessions by SequenceAlignment”, Third International Workshop on Management of Information on theWeb in conjunction with 13th International Conference on Database and ExpertSystems Applications (<strong>DE</strong>XA’2002), Aix en Provence, France.WOON, Y., NG, W., LI, X. et al., 2003, “Efficient Web Log Mining for ProductDevelopment”, 2003 International Conference on Cyberworlds, Singapore.YANG, Q., LI, T., WANG, K., 2004, “Building Association Rule Based SequentialClassifiers for Web-document Prediction”, Journal of Data Mining andKnowledge Discovery, Volume 8, Issue 3, pp. 253-273.ZAÏANE, O., XIN, M., HAN, J., 1998, “Discovering Web Access Patterns and Trendsby Applying OLAP and Data Mining Technology on Web Logs”, In: Advances inDigital Libraries, pages 19-29, Santa Barbara, CA, USA.ZAÏANE, O., 1999, Resource and Knowledge Discovery from the Internet andMultimedia Repositories, Ph.D. thesis, School of Computing Science, SimonFraser University, Canada.170


Apêndice AReferências de ferramentas[ANA] www.analog.cx[AWS] http://awsd.com/scripts/weblog[CKT] www.clicktracks.com[COR] www.coremetrics.com[DAT] www.datanautics.com[DCK] www.doubleclick.com[DLA] www.deep-software.com[FRK] www.fireclick.com[MAH] http://mach5.com[OMN] www.omniture.com[QUE] www.quest.com/funnel_web_analyzer/[SAN] www.sane.com[SAS] www.sas.com[SAW] www.sawmill.net[SUR] www.surfstats.com[WHF] www.watchfire.com[WMC] www.spss.com[WSS] www.websidestory.com[WST] www.web-stat.com[WSP] www.webstat.com[WTR] www.webtrends.com[WUM] http://hypknowsys.sourceforge.net/wiki/The_Web_Utilization_Miner_WUM171


Apêndice BFontes dos programasOs programas desenvolvidos em Python e descritos no Capítulo 5 estão listados nesteapêndice. Com exceção do primeiro programa (Seleciona_log.py), todos os outros sãopraticamente iguais, independentemente do site analisado. Nestes, a diferença aparecesomente nos nomes dos arquivos lidos e gravados, e no diretório de trabalho. Por opção,estes programas apresentados são os utilizados no estudo do site emagrecendo.com.br.O primeiro programa possui diferenças maiores pois depende da característica doarquivo de log. Por isso, as duas versões deste programa estão listadas, uma para cadasite estudado. Todos eles lêem um arquivo de configuração, denominado“Configuracao.txt”, que contém apenas o diretório de trabalho.Programas listados:1. Seleciona_log.py (emagrecendo.com.br)2. Seleciona_log.py (hotelbucsky.com.br)3. Gera_robots_distintos.py4. Elimina_navegacao_robots.py5. Gera_navegacao_total_memoria.py6. Gera_uri_stem_distintos.py7. Checa_uri_stem_valido.py8. Calcula_tempo_sessao.py9. Exclui_uri_stem_irrelevantes.py10. Gera_sessao_transposta.py11. Associacao_uri_stem.py:12. Conta_uri_stem_sessao_transposta.py13. Tempo_associacao.py14. Intervalo_associacao.py172


Seleciona_log.py (emagrecendo.com.br)import stringimport os.pathimport timeimport zipfileprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Seleciona e junta os logs...'print '----------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()subtotal = 0total = 0gravado = 0robot = 0extensaonok = 0metodonok = 0statusnok = 0mes = ['marco', 'abril', 'maio', 'junho', 'julho']extensoes = ['.gif','.jpg','.jpeg','.js','.css','.ico','.swf']metodo = ['GET','POST','PUT']arqout1 = diretorio + '\Log\\emagrecendo.log'saida1 = open(arqout1, 'w')arqout2 = diretorio + '\Trabalho\\robots.log'saida2 = open(arqout2, 'w')for m in mes:arqz = diretorio + '\LogOriginal\\' + m + '2005.zip'if os.path.isfile(arqz):z = zipfile.ZipFile(arqz, 'r')for arqin in z.namelist():print arqintodas_linhas = z.read(arqin).splitlines()for i in range (0,len(todas_linhas)):subtotal = subtotal + 1rec = string.splitfields(todas_linhas[i], ' ')if rec[0][0] '#': #despreza linhas de cabecalho dos logsfor x in extensoes:c1 = string.count(todas_linhas[i], x)if c1 > 0: breakif c1 == 0:if rec[4] == '/robots.txt':saida2.write(todas_linhas[i] + '\n')robot = robot + 1else:173


if int(rec[10]) >= 200 and int(rec[10]) < 400:if rec[3] in metodo:saida1.write(todas_linhas[i] + '\n')gravado = gravado + 1else: metodonok = metodonok + 1else: statusnok = statusnok + 1else: extensaonok = extensaonok + 1total = total + subtotalprint str(subtotal) + ' registros gravados'subtotal = 0z.close()else:print 'Arquivo zipado com logs nao encontrado: ' + arqzsaida1.close()saida2.close()print ' 'print 'arqout1: ', arqout1print 'arqout2: ', arqout2print ' 'print '--------------------------------'print 'Lidos = ', totalprint 'Gravados = ', gravadoprint 'Robots = ', robotprint 'Extensao invalida = ', extensaonokprint 'Method invalido = ', metodonokprint 'Status invalido = ', statusnokprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())174


Seleciona_log.py (hotelbucsky.com.br)import stringimport os.pathimport timeimport zipfileprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Seleciona log de um determinado site...'print '----------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()site = ['www.hotelbucsky.com.br']subtotal = 0total = 0notsite = 0gravado = 0robot = 0extensaonok = 0metodonok = 0statusnok = 0extensoes = ['.gif','.jpg','.jpeg','.js','.css','.ico','.swf']metodo = ['GET','POST','PUT']arqout1 = diretorio + '\HotelBucsky\\Log\\hotelbucsky.log'saida1 = open(arqout1, 'w')arqout2 = diretorio + '\HotelBucsky\\Trabalho\\robots.log'saida2 = open(arqout2, 'w')arqz = diretorio + '\LogOriginal\\Logs2a70.zip'if os.path.isfile(arqz):z = zipfile.ZipFile(arqz, 'r')for arqin in z.namelist():print arqintodas_linhas = z.read(arqin).splitlines()for i in range (0,len(todas_linhas)):subtotal = subtotal + 1rec = string.splitfields(todas_linhas[i], ' ')if rec[0] in site:for x in extensoes:c1 = string.count(todas_linhas[i], x)if c1 > 0: breakif c1 == 0:if rec[7] == '/robots.txt':saida2.write(todas_linhas[i] + '\n')robot = robot + 1175


else:if int(rec[9]) >= 200 and int(rec[9]) < 400:if rec[6][1:4] in metodo:saida1.write(todas_linhas[i] + '\n')gravado = gravado + 1else: metodonok = metodonok + 1else: statusnok = statusnok + 1else: extensaonok = extensaonok + 1else: notsite = notsite + 1total = total + subtotalprint str(subtotal) + ' registros gravados'subtotal = 0z.close()else:print 'Arquivo zipado com logs nao encontrado: ' + arqzsaida1.close()saida2.close()print '--------------------------------'print 'Lidos = ', totalprint 'Logs de sites diferentes = ', notsiteprint 'Gravados ', site, ' = ', gravadoprint 'Robots = ', robotprint 'Extensao invalida = ', extensaonokprint 'Method invalido = ', metodonokprint 'Status invalido = ', statusnokprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())176


Gera_robots_distintos.pyimport stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Gera robots distintos (por agente)...'print '-------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()arqin = diretorio + '\Trabalho\\robots.log'arqout = diretorio + '\Trabalho\\robots_ag_distintos.log'saida = open(arqout, 'w')total = 0gravado = 0repetido = 0lista = []print ' 'print 'arqin: ' , arqinprint 'arqout: ' , arqoutprint ' 'if os.path.isfile(arqin):entrada = open(arqin)for line in entrada:total = total + 1if total % 50000 == 0:print totalrec = string.splitfields(line, ' ')# armazena agentelista.append(rec[9])print 'Inicio sort...'lista.sort()lista.reverse()print 'Fim sort...'dado1 = lista.pop()saida.write(dado1 + '\n')gravado = gravado + 1while 1:try:dado2 = lista.pop()while dado1 == dado2:dado2 = lista.pop()repetido = repetido + 1177


saida.write(dado2 + '\n')gravado = gravado + 1dado1 = dado2except IndexError:print 'Fim da lista...'breakentrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'entrada.close()saida.close()print ' 'print '--- Agente -----------------'print 'Lidos = ', totalprint 'Gravados (distintos) = ', gravadoprint 'Repetidos = ', repetidoprint '----------------------------'print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())178


Elimina_navegacao_robots.py 6import stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Elimina logs gerados por robots...'print '----------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()arqin = diretorio + '\Trabalho\\robots_ag_distintos.log'entrada = open(arqin)tab_ag = []total = 0if os.path.isfile(arqin):for line in entrada:total = total + 1if total % 50000 == 0:print totaltab_ag.append(line[0:len(line)-1])else:print 'Arquivo ' + arqin + ' nao encontrado...'entrada.close()print 'Inicio sort...'tab_ag.sort()tab_ag.reverse()print 'Fim sort...'print str(total) + ' robots_ag distintos carregados em memoria'total = 0gravado = 0robot = 0arqin = diretorio + '\Log\emagrecendo.log'arqout1 = diretorio + '\Trabalho\emagrecendo_sem_robots.log'saida1 = open(arqout1, 'w')arqout2 = diretorio + '\Trabalho\ip_agent.log'saida2 = open(arqout2, 'w')6 O programa anterior gera uma lista de agentes que acessaram o arquivo robots.txt, indicando, àprincípio, que é um robot. Entretanto, há alguns deles que acessam este arquivo porque estão embutidosem ferramentas de busca (por exemplo, MSIECrawler e Girafabot). Assim, antes de se executar esteprograma, é necessário excluir manualmente estes agentes do arquivo de entrada.179


print ' 'print 'arqin: ', arqinprint ' 'print 'arqout1: ', arqout1print 'arqout2: ', arqout2print ' 'if os.path.isfile(arqin):entrada = open(arqin)for line in entrada:total = total + 1if total % 50000 == 0:print totalrec = string.splitfields(line, ' ')if rec[9] in tab_ag:robot = robot + 1else:saida1.write(line)saida2.write(rec[8] + ' ' + rec[9] + '\n')gravado = gravado + 1entrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'saida1.close()saida2.close()print '--------------------------------'print 'Lidos = ', totalprint 'Gravados = ', gravadoprint 'Robots = ', robotprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())180


Gera_navegacao_total_memoria.pyimport stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Gera navegacao total por ip+agente distinto...'print '----------------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()total = 0gravado = 0arqin = diretorio + '\Trabalho\\emagrecendo_sem_robots.log'arqout1 = diretorio + '\Trabalho\\navegacao_total.log'saida1 = open(arqout1, 'w')arqout2 = diretorio + '\Trabalho\\uri_stem.log'saida2 = open(arqout2, 'w')index = ['/2004/index.htm','/2004/index.shtml/','/index.htm'] #sinonimos de '/2004/index.shtml'tabela = []print ' 'print 'arqin: ', arqinprint ' 'print 'arqout1: ', arqout1print 'arqout2: ', arqout2print ' '#carrega o log todo em memoriaif os.path.isfile(arqin):entrada = open(arqin)for line in entrada:total = total + 1if total % 50000 == 0:print totalrec = string.splitfields(line, ' ')if rec[4] in index:rec[4] = '/2004/index.shtml'if rec[5] '-' and string.count(rec[4], '/2004/asp/') > 0:#print rec[4], rec[5]saida2.write(rec[4] + '?' + rec[5] + '\n')else:saida2.write(rec[4] + '\n')temp = rec[8] + ' ' + rec[9] + ' ' + rec[0] + ' ' + rec[1] + ' ' + rec[4]181


tabela.append(temp)entrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'print 'Inicio sort...'tabela.sort()tabela.reverse()print 'Fim sort...'print str(total) + ' carregados em memoria (emagrecendo_sem_robots.log)'dado1 = tabela.pop()rec1 = string.splitfields(dado1, ' ')key1 = rec1[0] + ' ' + rec1[1]#print 'key1: ' + key1sessao = dado1while 1:try:repetido = 1dado2 = tabela.pop()rec2 = string.splitfields(dado2, ' ')key2 = rec2[0] + ' ' + rec2[1]#print 'key2: ' + key2while key1 == key2:sessao = sessao + ' ' + rec2[2] + ' ' + rec2[3] + ' ' + rec2[4]dado2 = tabela.pop()rec2 = string.splitfields(dado2, ' ')key2 = rec2[0] + ' ' + rec2[1]#print 'key2: ' + key2repetido = repetido + 1saida1.write(str(repetido) + ' ' + sessao + '\n')#print '**** ' + str(repetido) + ' ' + sessaogravado = gravado + 1key1 = key2#print 'key1: ' + key1sessao = dado2except IndexError:saida1.write(str(repetido) + ' ' + sessao + '\n')gravado = gravado + 1#print sessaoprint 'Fim da tabela...'breaksaida1.close()saida2.close()print '--------------------------'print 'Lidos = ', totalprint 'Gravados = ', gravadoprint ''print 'Sucesso...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())182


Gera_uri_stem_distintos.pyimport stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Gera uri-stem distintos...'print '--------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()arqin = diretorio + '\Trabalho\uri_stem.log'arqout = diretorio + '\Trabalho\uri_stem_distintos.log'saida = open(arqout, 'w')total = 0gravado = 0repetido = 0lista = []print ' 'print 'arqin: ', arqinprint 'arqout: ', arqoutprint ' 'if os.path.isfile(arqin):entrada = open(arqin)for line in entrada:total = total + 1if total % 50000 == 0:print totallista.append(line)print 'Inicio sort...'lista.sort()lista.reverse()print 'Fim sort...'dado1 = lista.pop()saida.write(dado1)gravado = gravado + 1while 1:try:dado2 = lista.pop()while dado1 == dado2:dado2 = lista.pop()repetido = repetido + 1saida.write(dado2)gravado = gravado + 1dado1 = dado2183


except IndexError:print 'Fim da lista...'breakentrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'saida.close()print '--------------------------'print 'Lidos = ', totalprint 'Gravados (distintos) = ', gravadoprint 'Repetidos = ', repetidoprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())184


Checa_uri_stem_valido.py 7import stringimport os.pathimport timeimport httplibprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Verifica status de cada uri-stem encontrado...'print '----------------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()arqin = diretorio + '\Trabalho\\uri_stem_distintos.log'arqout = diretorio + '\Trabalho\\status_uri_stem_distintos.log'saida = open(arqout, 'w')print 'Site analisado: www.emagrecendo.com.br'print ' 'print 'arqin: ', arqinprint 'arqout: ', arqoutprint ' 'total = 0if os.path.isfile(arqin):entrada = open(arqin)for line in entrada:total = total + 1if total % 10 == 0: print totalconn = httplib.HTTPConnection("www.emagrecendo.com.br")conn.request("GET", line[0:len(line)-1])r = conn.getresponse()saida.write(line[0:len(line)-1] + ' ' + str(r.status) + ' ' + r.reason + '\n')entrada.close()else:print 'Arquivo ' + arqin + 'nao encontrado...'saida.close()print '--------------------------------'print 'Lidos/gravados = ', totalprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())7 Este programa verifica o status de cada página (uri-stem) que foi acessada pelos usuários. Entretanto, hápáginas que não são disponíveis para visitantes ou que não existem mais (por problema de defasagem doestudo). Assim, antes de se executar o próximo programa, é necessário selecionar manualmente aspáginas que serão consideradas na análise.185


Calcula_tempo_sessao.pyimport stringimport os.pathimport timeimport datetimeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Calcula tempo de permanencia e separa sessoes geradas...'print '--------------------------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()timeout = 1800 #tempo maximo de inatividade para ser considerado da mesma sessaodeltamin = 1 #tempo minimo a ser considerado entre duas solicitacoes de paginastotal = 0gravado = 0arqin = diretorio + '\Trabalho\\navegacao_total.log'arqout = diretorio + '\Trabalho\\sessao.log'saida = open(arqout, 'w')repeticoes = ['/2004/index.shtml']print ' 'print 'arqin: ', arqinprint 'arqout: ', arqoutprint ' 'if os.path.isfile(arqin):entrada = open(arqin)for line in entrada:total = total + 1if total % 10000 == 0:print totalline = line[0:len(line)-1]rec = string.splitfields(line, ' ')qtde = int(rec[0])ip = rec[1]agente = rec[2]head = rec[1]+' '+rec[2]d1 = string.splitfields(rec[3], '-')h1 = string.splitfields(rec[4], ':')data1 = datetime.datetime(int(d1[0]),int(d1[1]),int(d1[2]),int(h1[0]),int(h1[1]),int(h1[2]))linha = head+' '+rec[3]+' '+rec[4]+' '+rec[5]if qtde > 1:for j in range(1, qtde):186


i = (j * 3) + 3d2 = string.splitfields(rec[i], '-')h2 = string.splitfields(rec[i+1], ':')data2 = datetime.datetime(int(d2[0]),int(d2[1]),int(d2[2]),int(h2[0]),int(h2[1]),int(h2[2]))delta = data2 - data1if delta.days < 0 or delta.seconds < 0: print 'Erro: inconsistencia de datas!!!'if delta.days > 0 or delta.seconds > timeout:saida.write(linha + '\n')gravado = gravado + 1linha = head + ' ' + rec[i] + ' ' + rec[i+1] + ' ' + rec[i+2]else:if rec[i-1] rec[i+2]:if delta.seconds < deltamin:rec[i-1] = rec[i+2]else:linha = linha + ' ' + rec[i] + ' ' + rec[i+1] + ' ' + rec[i+2]else:if rec[i-1] not in repeticoes: #elimina repeticoes indesejadasif delta.seconds < deltamin:rec[i-1] = rec[i+2]else:linha = linha + ' ' + rec[i] + ' ' + rec[i+1] + ' ' + rec[i+2]data1 = data2saida.write(linha + '\n')gravado = gravado + 1else:saida.write(linha + '\n')gravado = gravado + 1entrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'saida.close()print '--------------------------'print 'Lidos = ', totalprint 'Gravados = ', gravadoprint ''print 'Sucesso...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())187


Exclui_uri_stem_irrelevantes.pyimport stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Separa logs contendo apenas uri-stem que devem ser considerados...'print '------------------------------------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()total = 0total1 = 0excluido = 0gravado = 0nid = 0considerar = []arqin = diretorio + '\Trabalho\\uri_stem_considerados.log'if os.path.isfile(arqin):entrada = open(arqin)for line in entrada:rec = string.splitfields(line, ' ')total1 = total1 + 1considerar.append(rec[0])entrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'print ''print str(total1) + ' uri-stem considerados carregados em memoria'arqin = diretorio + '\Trabalho\\sessao.log'arqout1 = diretorio + '\Trabalho\\sessao_considerada.log'saida1 = open(arqout1, 'w')arqout2 = diretorio + '\Trabalho\\sessao_eliminada.log'saida2 = open(arqout2, 'w')print ' 'print 'arqin: ', arqinprint ' 'print 'arqout1: ', arqout1print 'arqout2: ', arqout2print ' 'if os.path.isfile(arqin):188


entrada = open(arqin)for line in entrada:total = total + 1if total % 10000 == 0:print totalline = line[0:len(line)-1]rec = string.splitfields(line, ' ')#print recqtde = (len(rec) - 2) / 3for j in range(1, qtde+1):i = (j * 3) + 1#print rec[i]if rec[i] in considerar:flag = 0else:flag = 1#print 'break'breakif flag == 0:#print 'nao excluido'nid = nid + 1saida1.write(str(nid) + ': ' + str(qtde) + ' ' + line + '\n')gravado = gravado + 1else:#print 'excluido'saida2.write(str(qtde) + ' ' + line + '\n')excluido = excluido + 1entrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'saida1.close()saida2.close()print '--------------------------------'print 'Lidos = ', totalprint 'Gravados = ', gravadoprint 'Excluidos = ', excluidoprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())189


Gera_sessao_transposta.pyimport stringimport os.pathimport timeimport datetimeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Gera sessao transposta...'print '-------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()total = 0gravado = 0arqin = diretorio + '\Trabalho\sessao_considerada.log'arqout = diretorio + '\Trabalho\sessao_considerada_transposta.log'saida = open(arqout, 'w')print ' 'print 'arqin: ', arqinprint 'arqout: ', arqoutprint ' 'if os.path.isfile(arqin):entrada = open(arqin)for line in entrada:total = total + 1if total % 10000 == 0:print totalrec = string.splitfields(line, ' ')nid = rec[0]nid = nid[0:len(nid) - 1]qtde = int(rec[1])d1 = string.splitfields(rec[4], '-')h1 = string.splitfields(rec[5], ':')if qtde == 1:# como eh o ultimo jah tem o caracter de new linesaida.write(str(nid) + ' ' + str(0) + ' ' + str(0) + ' ' + rec[6])gravado = gravado + 1data0 = datetime.datetime(int(d1[0]),int(d1[1]),int(d1[2]),int(h1[0]),int(h1[1]),int(h1[2]))data1 = data0if qtde > 1:for j in range(1, qtde):i = (j * 3) + 1k = ((j + 1) * 3) + 1d2 = string.splitfields(rec[k], '-')190


h2 = string.splitfields(rec[k+1], ':')data2 = datetime.datetime(int(d2[0]),int(d2[1]),int(d2[2]),int(h2[0]),int(h2[1]),int(h2[2]))delta1 = data2 - data1if delta1.days 0 or delta1.seconds < 0:print 'Erro: inconsistencia de datas!!!'delta0 = data1 - data0saida.write(str(nid) + ' ' + str(delta0.seconds) + ' ' + str(delta1.seconds) + ' ' + rec[i+2] + '\n')gravado = gravado + 1data1 = data2delta0 = data1 - data0saida.write(str(nid) + ' ' + str(delta0.seconds) + ' ' + str(delta0.seconds/(qtde-1)) + ' ' + rec[k+2])# nao precisa de new line pois eh o ultimo e jah tem o caractergravado = gravado + 1entrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'saida.close()print '--------------------------'print 'Lidos = ', totalprint 'Gravados = ', gravadoprint ''print 'Sucesso...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())191


Associacao_uri_stem.pyimport stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Gera associacoes principais com determinada uri-stem'print '----------------------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()total = 0desprezado = 0considerado = 0grav_sessao = 0grav_lista = 0gravado = 0rec_ant = ['1']arqin = diretorio + '\Trabalho\\sessao_considerada_transposta.log'arqout = diretorio + '\Trabalho\\associacoes_principais_uri_stem_a.log'saida = open(arqout, 'w')tempo_min = 5 #tempo minimo (em segundos) de permanencia numa pagina para ser consideradoqtde_assoc = 3 #qtde de paginas a serem consideradas na analise, alem da pagina de referencia e ultima paginapagref = '/2004/imc/imc.asp\n'pagini = ['/2004/index.shtml\n']print ' 'print 'arqin: ', arqinprint 'arqout: ', arqoutprint ' 'print 'Visao: ', pagrefprint ' 'if os.path.isfile(arqin):entrada = open(arqin)sessao = []lista = []grav_sessao_lista = 0for line in entrada:rec = string.splitfields(line, ' ')#coloca zeros a esquerda em rec[0] , rec[1] e rec[2] para acertar o sort das listasfor j in range(0,10-len(rec[0])):rec[0] = '0' + rec[0]for j in range(0,10-len(rec[1])):rec[1] = '0' + rec[1]192


for j in range(0,10-len(rec[2])):rec[2] = '0' + rec[2]total = total + 1#print recif total % 10000 == 0:print totalif int(rec[2]) == 0 or int(rec[2]) >= tempo_min:#somente pagina com tempo de visita maior que tempo_min ou igual a 0 (pagina inicial)considerado = considerado + 1if int(rec[0]) int(rec_ant[0]):#print '**** nova sessao'if len(lista) > 0 and grav_sessao_lista > 0 and (len(lista) + grav_sessao_lista) >= 2:#sessao contem a pagina de referencia e tem tamanho maior ou igual a 2#print 'considera sessao - ', len(lista), grav_sessao_listaif len(lista) 0:for i in range(0,grav_sessao_lista):#print 'tira sessao'sessao.pop()grav_sessao_lista = 0#print 'zera grav_sessao_lista'lista = []grav_sessao_lista = 0#print 'zera grav_sessao_lista'if rec[3] == pagref: #pagina de referencia entra obrigatoriamente#print 'grava sessao'sessao.append(rec[0] + ' ' + rec[1] + ' ' + rec[2] + ' ' + rec[3])grav_sessao = grav_sessao + 1grav_sessao_lista = grav_sessao_lista + 1elif rec[3] not in pagini : #pagina inicial nao entra na analise#print 'grava lista'lista.append(rec[2] + ' ' + rec[1] + ' ' + rec[3] + ' ' + rec[0])#grava saida temporariamente numa lista para depois ordenar por IDgrav_lista = grav_lista + 1#else:#print 'eh pagina inicial'rec_ant = rec #registro com ultima pagina visitadaelse:193


desprezado = desprezado + 1#print 'sessao = ', sessao#tem que gravar a lista do ultimo id em sessoes, se ha sessao que atenda os requisitosif len(lista) > 0 and grav_sessao_lista > 0 and (len(lista) + grav_sessao_lista) >= 2:#sessao contem a pagina de referencia e tem tamanho maior ou igual a 2if len(lista) 0:reg = string.splitfields(sessao.pop(), ' ')if reg[0] == reg_ant[0] and reg[3] == reg_ant[3]:repetido = repetido + 1else:saida.write(str(int(reg[0])) + ' ' + str(int(reg[1])) + ' ' + str(int(reg[2])) + ' ' + reg[3])gravado = gravado + 1reg_ant = regelse: breaksaida.close()print '--------------------------------'print 'Lidos = ', totalprint 'Desprezados = ', desprezadoprint 'Considerados = ', consideradoprint 'Grav. sessao = ', grav_sessaoprint 'Grav. lista = ', grav_listaprint 'Gravados = ', gravadoprint 'Repetidos = ', repetidoprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())194


Conta_uri_stem_sessao_transposta.pyimport stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Conta uri-stem da sessao considerada transposta...'print '--------------------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()total = 0gravado = 0arqin1 = diretorio + '\Trabalho\\uri_stem_considerados.log'arqin2 = diretorio + '\Trabalho\\sessao_considerada_transposta.log'arqout = diretorio + '\Trabalho\\conta_uri_stem_sessao_considerada_transposta.log'saida = open(arqout, 'w')print ' 'print 'arqin1: ', arqin1print 'arqin2: ', arqin2print ' 'print 'arqout: ', arqoutprint ' 'if os.path.isfile(arqin1):entrada1 = open(arqin1)for line1 in entrada1:rec1 = string.splitfields(line1, ' ')total = total + 1if total % 50 == 0:print totalif os.path.isfile(arqin2):qtde = 0entrada2 = open(arqin2)for line2 in entrada2:line2 = line2[0:len(line2)-1]rec2 = string.splitfields(line2, ' ')if rec1[0] == rec2[3]:qtde = qtde + 1saida.write(rec1[0] + ' ' + str(qtde) + '\n')gravado = gravado + 1else:print 'Arquivo ' + arqin + ' nao encontrado...'entrada2.close()entrada1.close()195


else:print 'Arquivo ' + arqin + ' nao encontrado...'print ''saida.close()print '--------------------------------'print 'Lidos = ', totalprint 'Gravados = ', gravadoprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())196


Tempo_associacao.py 8import stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Captura tempos de cada pagina para as associacoes'print '-------------------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()total = 0sessoes = 0assoc_gravadas = 0arqin = diretorio + '\Trabalho\\associacoes_principais_uri_stem_a.log'arqout = diretorio + '\Trabalho\\tempo_associacoes_a.log'saida = open(arqout, 'w')tam_lista = 8tam_assoc = 5lista = [[]]*tam_listaassoc = [[]]*tam_assocassoc[0] = ['/2004/bal_vc/0704_qual_peso.shtml\n', '/2004/imc/imc.asp\n']assoc[1] = ['/2004/bal_vc/bal_vc.shtml\n', '/2004/imc/imc.asp\n']assoc[2] = ['/2004/rec_em/rec_em.shtml\n', '/2004/imc/imc.asp\n']assoc[3] = ['/2004/imc/imc.asp\n', '/2004/rec_em/rec_em.shtml\n']assoc[4] = ['/2004/imc/imc.asp\n', '/2004/bal_vc/bal_vc.shtml\n']def compara_lista(k, l=[[]]):cj_grav = 0for n in range(0,tam_assoc):achou = Falsefor m in range(0,k):#print '1-', n, m, assoc[n][0], l[m][3]if assoc[n][0] == l[m][3] and not achou:j = m + 1#print 'j=', j, kif j < k:for m1 in range(j,k):#print '2-', n, m1, assoc[n][1], l[m1][3]if assoc[n][1] == l[m1][3] and not achou:#print 'achou...', l[m][3], l[m1][3]8 A matriz “Assoc” contam as regras selecionadas para detalhamento. O primeiro elemento é oantecedente e o segundo, o conseqüente.197


eturn cj_gravprint ' 'print 'arqin: ', arqinprint 'arqout: ', arqoutprint ' 'saida.write(str(n)+' '+l[m][0]+' '+l[m][1]+' '+l[m][2]+' '+l[m][3])saida.write(str(n)+' '+l[m1][0]+' '+l[m1][1]+' '+l[m1][2]+' '+l[m1][3])cj_grav = cj_grav + 1achou = Trueif os.path.isfile(arqin):entrada = open(arqin)line = entrada.readline()rec = string.splitfields(line, ' ') #abre arquivo e pega o primeiro idid_ant = rec[0]entrada.close()entrada = open(arqin) #le o arquivo do inicio novamentei = 0for line in entrada:rec = string.splitfields(line, ' ')#print rectotal = total + 1if total % 10000 == 0:print totalif rec[0] == id_ant:#print 'grava na lista', ilista[i] = reci = i + 1else:#print 'compara: ', lista, iassoc_gravadas = assoc_gravadas + compara_lista(i, lista)lista = [[]]*tam_listai = 0lista[i] = rec#print 'grava na lista', ii = i+ 1sessoes = sessoes + 1id_ant = rec[0]if len(lista) > 0: #grava ultima sessaoassoc_gravadas = assoc_gravadas + compara_lista(i, lista)sessoes = sessoes + 1entrada.close()else:print 'Arquivo ' + arqin + ' nao encontrado...'saida.close()print '--------------------------------'print 'Lidos = ', totalprint 'Sessao analisadas = ', sessoesprint 'Assoc. Gravadas = ', assoc_gravadasprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())198


Intervalo_associacao.pyimport stringimport os.pathimport timeprint time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())print 'Captura tempos e quantidades dos intervalos de cada regra'print '---------------------------------------------------------'#le arquivo de configuracao (diretorio de trabalho)arqconf = 'Configuracao.txt'entradaconf = open(arqconf)if os.path.isfile(arqconf):for line in entradaconf:diretorio = line[0:len(line)-1]breakelse:print 'Arquivo de configuracao nao encontrado...'entradaconf.close()arqin1 = diretorio + '\Trabalho\\sessao_considerada_transposta.log'arqin2 = diretorio + '\Trabalho\\tempo_associacoes_a.log'arqout = diretorio + '\Trabalho\\intervalo_associacoes_a.log'saida = open(arqout, 'w')print ' 'print 'arqin1: ', arqin1print 'arqin2: ', arqin2print ' 'print 'arqout: ', arqoutprint ' 'laux = [[]]*4#tamanho de cada uma das regrasassoc = [[]]*5assoc[0] = 2assoc[1] = 2assoc[2] = 2assoc[3] = 2assoc[4] = 2def compara_lista(p, k, l=[[]]):sessao = []temp = string.splitfields(l[0], ' ')for i in range (p,len(todas_linhas1)):line1 = todas_linhas1[i]rec1 = string.splitfields(todas_linhas1[i], ' ')if rec1[0] == temp[1]:sessao.append(line1)if int(rec1[0]) > int(temp[1]):#pode parar pois jah passou o ID procurado (o arquivo estah ordenado)break#print sessaoposant = 0199


q = '' #qtde de paginas entre as paginas principaist = '' #intervalo de tempo entre as paginas principaisfor n in range(0,k):#print 'n=', nl1 = string.splitfields(l[n], ' ')l1 = l1[1] + ' ' + l1[2] + ' ' + l1[3] + ' ' + l1[4]#print l1pos = sessao.index(l1)s1 = string.splitfields(sessao[posant], ' ')s2 = string.splitfields(sessao[pos], ' ')#print 'sessao[posant]=', s1, s1[1]#print 'sessao[pos]=', s2, s2[1]#print 'posant=', posant, ' / pos =', posif n == 0:#print 'primeiro'q = str(pos - posant)t = str(int(s2[1]) - int(s1[1]))else:if (pos - posant) == 1:q = q + ',0't = t + ',0'#print 'meio forcado'else:q = q + ',' + str((pos - posant) - 1)t = t + ',' + str((int(s2[1]) - (int(s1[1]) + int(s1[2]))))#print 'meio'posant = pos#pega o ultimo#print 'final'q = q + ',' + str((len(sessao) - 1) - pos)s3 = string.splitfields(sessao[len(sessao) - 1], ' ')#print 's3=', s3, s3[1]#pega a penultima pagina (para calculo de duracao sem tempo medio da ultima pagina)s3a = string.splitfields(sessao[len(sessao) - 2], ' ')#print 's3a=', s3at = t + ',' + str((int(s3[1]) + int(s3[2])) - (int(s2[1]) + int(s2[2])))#insere tempo total sem e com ultima paginat = t + ',' + str(int(s3a[1]) + int(s3a[2])) + ',' + str(int(s3[1]) + int(s3[2]))#print t#print temp[0], qsaida.write(temp[0] + ',' + q + ',' + t + '\n')return temp[1], int(p), int(i)#programa principaltotal = 0lidos = 0#carrega arquivo1if os.path.isfile(arqin1):entrada1 = open(arqin1)todas_linhas1 = entrada1.read().splitlines()print 'leu tudo entrada1'print ' 'else:print 'Arquivo ' + arqin1 + ' nao encontrado...'#carrega arquivo2if os.path.isfile(arqin2):entrada2 = open(arqin2)todas_linhas2 = entrada2.read().splitlines()print 'leu tudo entrada2'200


print ' 'else:print 'Arquivo ' + arqin2 + ' nao encontrado...'j = 0p = [' ', 0, 0]while j < len(todas_linhas2):line2 = todas_linhas2[j]rec2 = string.splitfields(todas_linhas2[j], ' ')j = j + 1lidos = lidos + 1laux[0] = line2tipo = int(rec2[0])for i in range(1,assoc[tipo]):line2 = todas_linhas2[j]j = j + 1lidos = lidos + 1laux[i] = line2#print 'laux=', lauxif lidos % 500 == 0:print lidos, time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())#print rec2[1], p[0]if rec2[1] == p[0]: #volta se for o mesmo IDpointer = p[1]else:pointer = p[2]#print 'pointer:', pointerp = compara_lista(pointer, assoc[tipo], laux)#print 'p=', ptotal = total + 1laux = [[]]*4saida.close()print '--------------------------------'print 'Lidos = ', lidosprint 'Regras analisadas/gravadas = ', totalprint ''print 'Fim...'print time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())201


Apêndice CPáginas do emagrecendo.com.brNeste apêndice são reproduzidas as páginas do site emagrecendo.com.br listadas naTabela 6.5 (excetuando a página pivô), presentes nos padrões seqüenciais obtidos norespectivo estudo de caso.202


Figura C.1 – Página “/2004/bal_vc/0704_qual_peso.shtml”203


Figura C.2 – Página “/2004/bal_vc/bal_vc.shtml”204


Figura C.3 – Página “/2004/rec_em/ rec_em.shtml”205


Figura C.4 – Página “/system/cadastro_tela1.asp”206


Apêndice DPáginas do hotelbucsky.com.brAs figuras a seguir reproduzem as páginas do site hotelbucsky.com.br listadas na Tabela7.3 (excetuando a página pivô), presentes nos padrões seqüenciais obtidos no respectivoestudo de caso.207


Figura D.1 – Página “/hotelbucsky/instala.htm”208


Figura D.2 – Página “/hotelbucsky/lazer.htm”209


Figura D.3 – Página “/hotelbucsky/servico.htm”210


Figura D.4a – Página “/hotelbucsky/form.htm”211


Figura D.4b – Página “/hotelbucsky/form.htm”212


Figura D.4c – Página “/hotelbucsky/form.htm”213


Figura D.4d – Página “/hotelbucsky/form.htm”214


Figura D.5 – Página “/hotelbucsky/chegar.htm”215

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!