Agente Crawler

Propaganda
Gerador Automático de Arquivos
HTML de Ajuda para Aplicação em
Educação a Distância (GAAHA)
Paulo Sérgio Salla Sá
Orientação: Prof. Dr. Dilvan de Abreu Moreira
USP - ICMC
2000
Introdução
Principal enfoque deste projeto é o moderno
conceito de Educação à Distância
• Objetivo deste projeto
– geração de arquivos de indexação e ajuda no padrão
HTML
Educação à Distancia (EAD)
• Caracterizada
– separação do professor e do aluno
– controle de aprendizagem é realizado mais
intensamente pelo aluno do que pelo professor
– interação entre alunos e professores é mediada por
alguma forma de tecnologia
– ocorre em locais diferentes dos tradicionais
• técnicas instrucionais especiais
Educação à Distância (EAD)
• Por que ensinar à distância ?
– abrange maior diversidade de alunos
– estudante e professor normalmente não se encontram no
mesmo espaço físico
– horários não são rígidos
– ritmo é de exclusiva responsabilidade do aluno
– os temas de aprendizagem são mais vastos
Internet
• Rede de redes
– iniciou um novo conceito
na comunicação
– grande quantidade de
informações disponíveis
– informação distribuída
– seminários virtuais
Word-Wide Web (WWW)
• É um sistema hipermídia executado na Internet
• Baseada em três padrões abertos:
– transferir a informação: http
– descrever o formato da informação: HTML
– localizar a informação: URL
• Vantagens do Ensino a Distância na Internet/WWW
–
–
–
–
–
ensino centralizado no aluno
ferramentas fáceis de utilizar
desenvolvimento dos ambientes virtuais rápido e fácil
aproveitamento dos recursos já existentes
fácil alteração dos conteúdos temáticos
Integrando Web com Banco de dados
• Arquitetura típica.
Internet/Intranet
Cliente
Web
HTTP
Servidor
Web
Gateway
SGBD
Integrando Web com Banco de dados
• Taxonomia das arquiteturas dos Gateway Web Banco de Dados
Programas Executáveis
Interface CGI
Gerenciador de Aplicação
Arquitetura de
integração Web
Banco de Dados
Lado Servidor
Web
SSI
Servidor Web
Estendido
API
Programas
Executáveis
CGI
Gerenciador
de Aplicação
CGI
Aplicação
API
Aplicação
SSI
Controle de
transações
Segurança
e
Acesso
Desempenho
Desenvolvimento
Portabilidade
*
*
*
**
***
***
***
**
*
***
***
**
***
*
*
*
*
*
***
*
Quadro comparativo das arquiteturas de integração Web Banco de Dados
*
**
***
funcionalidade fraca, difícil.
funcionalidade é boa
funcionalidade é ótima
Ferramentas de Programação
A linguagem de programação JAVA
–
–
–
–
–
–
arquitetura de linguagem consistente
grande portabilidade em diferentes arquiteturas
facilidade de programação em rede
aplicações via WWW
simples, alto desempenho
totalmente orientado a objeto, multithreaded
Ferramentas de Programação
• Servlet JAVA
– são módulos baseados em solicitações/respostas que
executam no lado do servidor
• Ex. um servlet pode ser responsável por pegar os dados pela
ordem de entrada em uma página HTML e aplicá-los em uma
lógica de negociação usada em um banco de dados
Objeto: solicitação
parâmetro
protocolo
nome da máquina remota
nome do servidor
Servidor
Servlet
Cliente
Objeto: Resposta
resposta ao cliente
Ferramentas de Programação
• Java DataBase Connectivity - JDBC
– driver de acesso a um banco de dados SQL
– é uma API Java para a execução de declarações SQL
– com um simples programa usando API JDBC, é possível transmitir
declarações para diferentes gerenciadores de banco de dados
– a combinação JAVA e JDBC permite o programador escrever um
programa apenas uma vez e executá-lo em diferentes plataformas
Ferramentas de Programação
• MySQL
– é um servidor de banco de dados SQL
• pequeno
• multi-usuário
– é uma implementação cliente/servidor
– a principal meta do MySQL
• velocidade
• fácil utilização
– domínio público
– desvantagem: suporte dificiente para integridade
relacional e não suportam triggers
Ferramentas de Programação
Modelo de acesso a um DBMS SQL usando um driver JDBC
Conex!ão (getConnection)
Cliente
JAVA_Applet
JAVA_Stand_Alone
Driver JDBC disponível
Instrução SQL (createStatement)
Instrução SQL (executeQuery)
Servidor
Drivers
JDBC
Resultados (ResultSet)
Base de
Dados
SQL
Driver JDBC
Agentes de Software
• Não existe um consenso sobre o seu significado:
– programas que manifestam características de inteligência
distribuída
– programas que desempenham um papel de um assistente
inteligente
– outros mais ....
• O foco atual parece ter-se deslocado do hardware para o
software, dos átomo que compõem um robô mecânico
para os bits que compõem um agente digital
Agente Automático de Análise de Texto
• Existem três tipos de indexação:
– indexação tradicional
• intervenção humana pode gerar falhas no índice
– indexação full-text
• gera índices volumosos
– indexaçao por tags
• procura tags nos documentos
• Solução adotada para este projeto
– indexação full-text com aplicação de um filtro
Agente Automático de Análise de Texto (Filtro)
• Indexação full-text com aplicação de um filtro
– a freqüência da ocorrência de uma palavra em um texto, fornece
uma medida útil para significância da palavra (Luhn)
– a freqüência do dado, pode ser usada para extrair palavras e
sentenças para representar um documento
– Produto da freqüência das palavras com rank order, gera o peso da
palavra: aproximadamente uma constante (Zipf)
Freq. da palavra
Rank Order
Peso da Palavra
13
1
13
Scanner
8
2
16
Printer
5
3
15
Oráculo
1
4
4
Palavra do texto
Matemática
- upper cut-off : são consideradas comuns
- lower cut-off : são consideradas raras
- poder de resolução : o poder de resolução das palavras significantes no que
diz respeito a habilidade de distinguir conteúdos de palavras, atinge um pico no
meio do caminho entre os 2 extremos do cut-off
Agente Automático de Análise de Texto
Qualificação
700
1400
600
1200
500
1000
Peso das Palavras
Frequencia das Palavras
Qualificação
400
300
200
800
600
400
100
200
0
0
0
10
20
30
Rank Order
40
50
60
0
10
20
30
Rank Order
40
50
60
Agente Automático de Análise de Texto
Dom Casmurro
Dom Casmurro
3000
10000
9000
8000
Peso das Palavras
Frequencia das Palavras
2500
2000
1500
1000
7000
6000
5000
4000
3000
2000
500
1000
0
0
0
50
100
Rank Order
150
0
30
60
90
Rank Order
120
150
Agente Automático de Análise de Texto
RFC2250 - MPEG1/MPEG2
RFC2250 - MPEG1/MPEG2
300
800
700
Peso das Palavras
Frequencia das Palavras
250
200
150
100
50
600
500
400
300
200
100
0
0
0
10
20
30
Rank Order
40
50
0
10
20
30
Rank Order
40
50
Descrição do Problema
• grande maioria das aplicações são construídas no
padrão HTML
• dinamismo
– como manter uma correta indexação, visando um
esquema de ajuda para os usuários
• soluções
– criação manual de um índice de ajuda
– ter um mecanismos automático de criação de índice
Apresentação
• Desenvolvimento de uma ferramenta que através
da análise do conteúdo de um curso em um Web
Site, gere uma página HTML contendo:
– Mapa de navegação
– Campo de pesquisa
• Duas técnicas principais foram utilizadas
– análise de texto usando ferramenta estatística
– programação distribuída usando agentes de software
Apresentação (cont.)
• É composto por três subsistemas:
– um agente crawler
– um agente mentor
– um cliente WWW
Agente Crawler
• Consiste no rastreamento de um curso em um Web Site, a
procura de padrões que serão armazenados em um banco de
dados SQL, através de um driver JDBC
–
–
–
–
as palavras mais significativas
os links de referencias
os headers
e os títulos
• o principal propósito é prover conteúdos para um banco de
dados
• aplicar restrições as palavras e páginas
Agente Crawler
Curso EAD
Páginas
HTML
Processo de
execução do agente
CRAWLER
Executado pelo
Administrador
Banco de
Dados
SQL
Crawler
jdbc
Servidor HTTP/
Banco de Dados
Representação Gráfica do principal módulo do agente crawler
PageSeeker.run()
Objeto URL
Novas URL
PageSeeker.LoadPage()
Banco de
Dados
micro_course
600
Upper
Cutoff
500
Lower
Cutoff
Peso
400
Freq. Pal. = 23
300
200
Freq. Pal. = 36
Freq. Pal. = 12
100
0
0
5
10
15
20
25
30
35
Rank Order
Pal. > Freq. = 263
50 %
100 %
40
45
Pal. < Freq. = 1
50 %
100 %
Agente Mentor
• Consiste em uma rotina de pesquisa e acesso a um
banco de dados
– é executada no servidor
– é um gateway
– faz a pesquisa baseado nas palavras chaves que o
usuário fornecer
– gera página dinâmica de resposta com os links que ele
achar mais importante, através da combinação do
Servlet e o acesso via driver JDBC ao banco de dados
SQL
Agente Mentor
INTERNET
Cliente
Página de
resposta
Mentor
Dinâmico
Mapa
Gráfico do
Curso
Mentor
Dinâmico
Página de
entrada
Pesquisa
Mapa
Processo de
execução do
agente Mentor
Servlet
Mentor
jdbc
Banco de
Dados
SQL
Servidor HTTP/
Banco de Dados
Fluxo de dados no sistema de pesquisa do agente Mentor
Cliente solicita a página
de pesquisa
Servidor recebe a
página form e inicia
a rotina de pesquisa
Rotina de pesquisa
compõe o resultado em
uma páginas HML
Servidor retorna a
página ao cliente
Rotina de pesquisa
determina o que
deverá ser pesquisado
Servidor retorna a
página ao cliente
Cliente submete
a página
Rotina de pesquisa
executa a pesquisa
Cliente mostra a página
Cliente WWW
• Fundamental importância no sistema
• Qualquer browser que aceita entrada de texto e
mostra a ação de um button
• Existem duas páginas web primárias através da
qual o usuário interagi:
– um simples form de entrada de texto
– resposta da consulta produzida pelo servidor
Execução do
agente crawler
Execução do
agente crawler
Valores após a indexação pelo Crawler
CURSOS
LC %
UC %
TP
FPUC
FPLC
TPA
Sist. Operac.
100
100
47922
3034
1
10719
Sist. Operac.
70
70
47922
257
25
4018
Mat. Financ.
100
100
3506
222
1
534
Mat. Financ.
70
70
3506
76
8
122
Mic. Course
100
100
1472
93
1
727
Mic. Course
70
70
1472
23
5
295
Dir. Tribut.
100
100
3173
159
1
804
Dir. Tribut.
70
70
3173
49
7
98
Ling. Portug. 100
100
3038
159
1
1159
Ling. Portug. 70
70
3038
51
6
64
Rac. Lógico
100
100
2042
143
1
463
Rac. Lógico
70
70
2042
67
6
64
Cont. Geral
100
100
2855
184
1
656
Cont. Geral
70
70
2855
55
7
85
Dir. Constit.
100
100
2461
156
1
610
Dir. Constit.
70
70
2461
52
6
96
Pesquisar
Http://java.icmc.sc.usp.br/Search?curso=Micro+Course
Execução do agente Mentor - Pesquisa
Execução do agente Mentor - Mápa de Navegação
Conclusão
Download