620 likes | 751 Views
Web Mining. Aplicação de técnicas de Mineração de Dados para descoberta de padrões na Web Motivações: Encontrar informação relevante Gerar conhecimento a partir da informação disponível na Web Personalizar a informação Aprender sobre consumidores ou usuários individuais.
E N D
Web Mining • Aplicação de técnicas de Mineração de Dados para descoberta de padrões na Web • Motivações: • Encontrar informação relevante • Gerar conhecimento a partir da informação disponível na Web • Personalizar a informação • Aprender sobre consumidores ou usuários individuais
Abordagens de Web Mining • Mineração de conteúdo (Web content mining) • Extração de conhecimento do conteúdo de páginas e suas descrições • Mineração de estrutura (Web structure mining) • Obtenção de conhecimento a partir da organização da web e da referência cruzada de ligações. • Mineração de uso (Web usage mining) • Geração de padrões interessantes com o uso dos registros de acesso da web
Mineração de conteúdo(Web content mining) Extração de conhecimento do conteúdo de páginas e suas descrições • Inclui a Mineração de texto (text mining) Aplicações • Classificação de textos • Detecção e acompanhamento de evento • Extração de regras
Documentos não estruturados • Texto livre • Representação: bag of words • Palavras do texto são atributos • Booleano • Baseado em frequência • Ignora a sequência em que palavras aparecem • Usa estatísticas sobre palavras isoladas
Outras formas de seleção: • Remover pontuação, palavras pouco frequentes, palavras muito frequentes • Stemming – extrair o radical das palavras • Outras formas de representação: • Posição da palavra no documento • N-grams (sequências de palavras de tamanho até n)
Documentos semi-estruturados • Tem informação estrutural adicional (HTML e hiperlinks) no documento de hipertexto • Aplicações: • Classificação de hipertextos • Agrupamento • Aprendizado de relações entre documentos web • Extração de Padrões ou regras
Mineração de estrutura(Web structure mining) • Tenta descobrir o modelo por trás da estrutura de links na web. • Informação extraída: • Links apontando para um documento podem indicar sua popularidade • Links saindo de um documento podem indicar a riqueza ou variedade de tópicos tratados pelo documento
Estrutura típica • Páginas = nós, hyperlinks = arcos conectando páginas • Hyperlinks tem duas finalidades: • Permitir navegação • Apontar para páginas com “autoridade” no mesmo tópico da página contendo o link
Informações a serem extraídas: • Qualidade da página web • Autoridade de uma página • Ranking de páginas • Estruturas interessantes • co-citação, • escolha social, etc
Mineração de uso (Web usage mining) • Aplicação das técnicas de mineração de dados para descobrir padrões de uso a partir de registros de acesso à web • Tendências: • extração de padrão geral de acesso • personalização
Tendências - Definidas pelo tipo de aplicação: • Extração de padrão geral de acesso • Analisa dados do web log file e outras fontes para descobrir padrões e tendências de acesso • Pode ser usado para: • Reestruturação dos sites em grupos mais eficientes • Localizar pontos para propaganda mais efetiva • Direcionar campanhas específicas para usuários específicos
Uso personalizado • Analisa tendências de usuários individuais • Pode ser utilizado para: • Personalizar dinamicamente a cada usuário, com base no padrão de acesso ao longo do tempo • a informação apresentada, • a profundidade do site e • o formato dos recursos
Fontes de dados • Dados do servidor Web • Web server log • Cookies • Dados de consultas
Dados do cliente • Agente remoto (Javascripts ou Java applets) • Modificação do código fonte de um browser • Requer a cooperação do usuário
Dados do proxy • Web proxy atua como um nível intermediário entre browsers de clientes e servidores web • Pode ser usado para reduzir o tempo de carregar uma página web • Desempenho depende da habilidade de prever acessos futuros • Dados podem revelar requisição de múltiplos usuários a múltiplos servidores web
Web server log • Tipos de logs • Error • Segurança • Referência • Browser (Agente) • Accesso • Formatos • Common Log • Extended log formats
Exemplo: Web log #Software: Microsoft Internet Information Server 4.0 #Version: 1.0 #Date: 1999-12-25 00:00:21 #Fields: date time c-ip cs-username cs-method cs-uri-stem cs-uri-query sc-status sc-bytes cs(User-Agent) cs(Cookie) cs(Referer) 1999-12-25 00:00:21 194.237.174.119 - GET /issue1/jobs/Default.asp - 200 20407 AltaVista-Intranet/V2.3A+(www.altavista.co.uk+jan.gelin@av.com) - - 1999-12-25 00:03:39 194.237.174.119 - GET /statistics/ExpIntHits1.asp - 200 10519 AltaVista-Intranet/V2.3A+(www.altavista.co.uk+jan.gelin@av.com) - - 1999-12-25 00:26:54 209.67.247.158 - GET /robots.txt - 200 303 FAST-WebCrawler/2.0.9+(crawler@fast.no;+http://www.fast.no/…) - - 1999-12-25 00:32:47 194.237.174.119 - GET /issue2/default.asp - 200 5332 AltaVista-Intranet/V2.3A+(www.altavista.co.uk+jan.gelin@av.com) - - 1999-12-25 01:49:54 206.186.25.7 - GET /resources/images/main/bg.gif - 200 300 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f77460cde75c27f http://www.exploit-lib.org/issue1/webtechs/ 1999-12-25 01:49:54 206.186.25.7 - GET /issue1/webtechs/Default.asp - 200 24659 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) - http://www.statslab.cam.ac.uk/%7Esret1/analog/webtechs.html 1999-12-25 01:49:54 206.186.25.7 - GET /resources/images/main/global_home_h.gif - 200 487 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f77460cde75c27f http://www.exploit-lib.org/issue1/webtechs/ 1999-12-25 01:49:54 206.186.25.7 - GET /resources/images/main/global_search.gif - 200 534 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f77460cde75c27f http://www.exploit-lib.org/issue1/webtechs/ 1999-12-25 01:49:56 206.186.25.7 - GET /resources/images/main/local_home01.gif - 200 663 Mozilla/2.0+(compatible;+MSIE+3.02;+AK;+Windows+NT) ASPSESSIONIDGQQGQGAD=IIHCBIFDIECKPAPGICDEOJII;+SITESERVER=ID=22e0a17296b8c2ed1f77460cde75c27f http://www.exploit-lib.org/issue1/webtechs/
Este arquivo de log mostra visitas ao web site Exploit Interactive de 00:00:00 em 25 de Dezembro de 1999: • A visit from an AltaVista robot in UK, downloading several text files • A visit from a FAST-Crawler robot in Norway • A visit from a PC (WinNT) user of an IE browser who followed a link at <http://www.statslab.cam.ac.uk/%7Esret1/analog/webtechs.html> and downloaded a HTML page and several images
Conteúdo da Página Web server log 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET … HTTP/1.1" 200 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /gps.html HTTP/1.1" 200 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 … Web Server Log – Exemplo KDnuggets.com Server http://www.kdnuggets.com/jobs/
Web (Server) Log Uma linha (exemplo) do log 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"
Web log: IP 152.152.98.11 IP address – pode ser convertido para o nome do host, por exemplo: xyz.example.com
Top-Level Domains (TLD) • A última parte do domínio é o TLD • TLD Generico • .com (comercial) – geralmente mas não necessariamente USA • .net (ISP, network providers) • .edu – US educacional, e.g. conncoll.edu • Outros: .gov (governo), .org (organizações sem fins lucrativos), …
Top-Level Domains – código do país (ccTLD) Alguns dos mais comuns
Web log: Name, Login - Name: nome do usuário remoto (normalmente omitido e trocado por um traço “-”) - Login: Login do usuário remoto (também é normalmente omitido e trocado por um traço “-”)
Time: HH:MM:SS Time Zone: (+|-)HH00 relativo ao GMT Web log: Date/Time/TZ [16/Nov/2005:16:32:50 -0500] Date: DD/MM/AAAA
Web log: Request "GET /jobs/ HTTP/1.1" Method: GET HEAD POST OPTIONS … Protocolo HTTP: e.g. HTTP/1.0 or HTTP/1.1 URL: Relativo ao domínio Nota: a requisição é armazenada como é enviada, assim, pode conter erros, falhas, e qualquer tipo de coisa estranha.
Web log: Status code 200 Status (Response) code. Os mais importantes são: • 200 – OK (é o mais frequente, ainda bem!) • 206 – acesso parcial • 301 – redirecionamento permanente • 302 – redirecionamento temporário • 304 – não modificado • 404 – não encontrado • …
Web log: Object size 15140 O tamanho do objeto retornado ao cliente (em bytes) Pode ser “-” se o código de status for 304
Web log: Referrer http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N URL que da qual o visitante veio (neste exemplo é uma query do Google: “salary for data mining”, 2a. Página de resutados– começando de 10) Também pode ser uma página estática, interna, externa ou “-” no caso de uma requisição direta (bookmark, por exemplo) Esta é uma informação valiosa
Web log: User agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)" User agent (browser) http://en.wikipedia.org/wiki/User_agent Por razões históricas, quase todos os browsers começam com Mozilla Em muitos casos pode-se ter informações adicionais: Browser type, version : MSIE 6.0 - Internet Explorer 6.0 OS: Windows NT 5.1 (XP SP2) with .NET Framework 1.1 installed
Programas para análise de Web Log • Free • Analog, awstats, webalizer • Google analytics • (ver http://www.analog.cx/) • Comerciais • WebTrends, WebSideStory, … www.kdnuggets.com/software/web-mining.html
Programas para análise de Web Log • Podem fazer análises e emitir relatórios como por exemplo: • lista de IPs conectados a um website • “pie chart” detalhando quais arquivos foram acessados com mais frequência, e muitos outros
Itens identificados a partir dos dados coletados • Usuário • Click-streams – seqüência de requisições de acessos a páginas. Os dados disponíveis pelo servidor nem sempre fornece informação para reconstruir um click-stream completo para um site • Visões de páginas – uma única ação do usuário e pode consistir de vários arquivos: frames, gráficos, scripts. O usuário requer uma “web-page” e não cada um dos componentes.
Sessões – click-stream de páginas para um único usuário por toda a web. Tipicamente, apenas a parte de cada sessão de usuário acessando um site específico pode ser usada para análise, pois informações de acesso não são públicas.
Visita ou sessão do servidor – conjunto de acessos a páginas em uma sessão de usuário para um web site em particular. • Um conjunto de visitas é a entrada necessária para qualquer ferramenta de análise de uso ou de mineração de dados. • Episódios – subconjunto de uma sessão de usuário ou de servidor que tem significado semântico.
Processo de Web usage mining • Pré-processamento • Descoberta de Padrões • Análise de Padrões
Processo de Web Usage Mining • Pré-processamento • Consiste em converter os dados disponíveis nas várias fontes de dados identificando itens necessários para a descoberta de padrões. • Considerada a etapa mais difícil em Web usage mining devido aos dados disponíveis não serem completos
Pré-processamento • Identificar: • Usuários • Sessões do servidor • Usando: • Endereço de IP • Agente • Cadeia de requisições (click-streams)
Identificação de usuários Problemas: • IP único / Múltiplas sessões de servidor • Um proxy pode ter vários usuários acessando um Web site, no mesmo período de tempo – registros do usuário não serão sequenciais nem no tempo correto. • Múltiplos IPs / Sessão de servidor única • por motivo de segurança, o provedor pode atribuir aleatoriamente um entre vários endereços de IP a cada requisição de um usuário.
Múltiplos IP / Usuário único • um usuário que acessa a Web de máquinas diferentes terá IPs diferentes a cada sessão, dificultando registro de visitas repetidas do mesmo usuário. • Múltiplos agentes / Usuário único • o usuário pode usar diferentes browsers, de uma mesma máquina, pode parecer mais de um usuário.
Identificação de usuários Soluções: usar • Cookies • logins • IP/agentes/caminhos
Identificação de sessões • (depois de identificados cada usuário) • Dividir o click-stream de cada usuário em sessões • Dificuldades: • saber quando um usuário saiu de um website • Requisições de outros websites não estão disponíveis • Usar intervalo de tempo
Inferir referências a páginas em cache • Exige monitoramento de uso do lado do cliente • O campo de referência pode ser usado para detectar quando paginas em cache foram vistas
Exemplo • IP 123.456.78.9 é responsável por 3 sessões • IPs 209.456.78.2 e 209.45.78.3 são responsáveis por uma sessão. • Usando informações de referência e agente, linhas 1 a 11 podem ser divididas em: A-B-F-O-G L-R A-B-C-J • Complementando os caminhos seriam adicionadas páginas: A-B-F-O-F-B-G L-R A-B-A-C-J
Registros de tempos de acesso errados no servidor Tempo de acesso real