Relatorio 29189-29391 by wuzhengqin

VIEWS: 0 PAGES: 7

									            ISEL
            INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA




 Complementos de Sistemas de Informação
                                 SgI-I51N
                        Semestre Inverno 08/09



                           2º Trabalho Prático


Alunos:


  Número           Nome:                    E-mail                    Telefone

   29189       Manuel Felício       29189@alunos.isel.ipl.pt          963864691
   29391       Francisco Covas      29391@alunos.isel.ipl.pt          965674195


Docentes:


                   Nome:                             E-mail

                João Ferreira                 jsimao@cc.isel.ipl.pt


                            16 de Fevereiro de 2009
                                                                  Índice

Introdução ..................................................................................................................................... 2
Aplicação Cliente ........................................................................................................................... 3
Web Crawler.................................................................................................................................. 4
Indexação e Classificação .............................................................................................................. 4
Conclusão ...................................................................................................................................... 6




                                                                                                                                                1
                                         Introdução

Este trabalho consiste em explorar a recuperação de informação em documentos de
texto não estruturado. Para isto, foi utilizada a técnica de Web Crawling para construir
uma colecção de documentos, podendo estes ser indexados com a ajuda de bibliotecas
especializadas para o efeito. Posteriormente, foi realizada a classificação da colecção
de documentos, recorrendo a uma implementação do algoritmo K-Means, cujo
objectivo foi agrupar documentos com base num conjunto de critérios (ver a secção de
Classificação), de modo a optimizar pesquisas na colecção de documentos.

A solução que apresentamos foi implementada em .NET, utilizando a biblioteca
Lucene.NET para realizar indexação. Foi também implementado um WebCrawler para
angariar documentos HTML de um Web Site, e o algoritmo K-Means para agrupar
documentos.

Foi desenvolvida uma aplicação cliente para que os vários componentes
implementados pudessem ser testados.

O código fonte da solução encontra-se alojado num repositório SVN numa comunidade
open-source, no domínio www.assembla.com, estando disponível para download
através do url 1http://subversion.assembla.com/svn/CSITrabalho2/trunk.




1
 Pode ser utilizada ferramenta TortoiseSVN, disponível em http://tortoisesvn.net/, para obter o código
fonte através do URL do repositório.

                                                                                                         2
                                      Aplicação Cliente

A aplicação desenvolvida permite testar os vários componentes desenvolvidos. Na
Figura 1 é possível ver imagens dos vários separados que constituem a aplicação.

No separador General é possível definir a directoria de trabalho da aplicação. Nesta
directoria, irão ser criadas as subdirectoria \Docs, \Index e \Results, com o conteúdo
das várias operações que podem realizadas nos separadores seguintes.

No separador Part1 é possível direccionar o WebCrawler desenvolvido para um
website e obter os seus documentos HTML. É possível indicar um filtros de domínio
para angariar apenas documentos que pertençam ao domínio do website, e um filtro
ao conteúdo dos documentos, para que apenas sejam angariados documentos que
contenham pelo menos um dos termos presente no filtro. Ambos os filtros suportam
vários termos (separados por ‘,’).

No separador Part2&3 é possível iniciar a operação de indexação. A operação de
classificação é automática e inicia assim que a indexação terminar. Após terminada a
operação de classificação, é possível ver os resultados da classificação no browser.

No separador Part4 é possível realizar pesquisas sobre a colecção de documentos, já
indexada, e ver o seu resultado.




Figura 1 - Screenshots da aplicação

                                                                                    3
                                  Web Crawler

Implementou-se um web crawler para procurar e retirar documentos da internet. O
crawler mantém uma lista de links que pretende visitar, e após cada visita vai consultar
esta lista.

Para cada link da lista o crawler vai realizar um pedido http, retirar o conteúdo da
página e aplicar o filtro de conteúdo com base nas palavras definidas na interface do
programa. Se o conteúdo passar no filtro são recolhidos os links presentes na página e
filtrados aqueles que interessam (usando o filtro de domínio). Os links interessantes
são adicionados à lista de urls a visitar e o conteúdo da página é gravada em disco. Os
ficheiros são criados na pasta Doc na directoria de trabalho.

Enquanto existirem links na lista o crawler vai percorrer todos esses passos.




                            Indexação e Classificação


Os documentos angariados da internet são indexados recorrendo à biblioteca
Lucene.Net. Os documentos são indexados pelo seu conteúdo e o index é criado na
directoria de trabalho da aplicação. É possível fazer pesquisas por termos a partir da
aplicação principal.

Uma vez criado o index os documentos foram classificados recorrendo ao algoritmo K-
Means. Para utilizar este algoritmo para classificar os documentos foi necessário criar
representativos desses documentos. Estes representativos (vectores de características)
consistem em vectores em que cada posição representa a frequência de um dado
termo nesse documento.

Ao executar o algoritmo K-Means com estes vectores será possível agrupar os
documentos semelhantes. No entanto a escolha dos termos a usar no vector de
características e o número de grupos escolhidos para o K-Means é decisivo para o bom
funcionamento do algoritmo.

Para a construção dos vectores de características fez-se uma análise de todos os
termos encontrados nos documentos (após a indexação). À lista de termos foram
retirados os que respeitavam os seguintes critérios:

      Menos de 3 letras,
      Mais de 10 letras,

                                                                                      4
      Termos numéricos,
      Termos muito frequentes,
      Termos pouco frequentes;

Após obter a lista de termos construíram-se os vectores de características dos
documentos.

A colecção de documentos foi classificada pelo algoritmo K-Means várias vezes, com
número de grupos diferentes. Para cada classificação verificou-se se os agrupamentos
de documentos gerados pelo algoritmo correspondiam a grupos temáticos com fim a
determinar o número ideal de grupos.




                                                                                  5
                                   Conclusão

Com a realização deste trabalho aprofundámos os nossos conhecimentos na matéria
de Recuperação de Informação. Foi interessante utilizar a API Lucene.NET, pois pode
vir a ser útil no futuro em outros projectos onde seja necessário realizar pesquisas em
grandes quantidades de informação não estruturada.

Os resultados obtidos pelos critérios de classificação nem sempre foram satisfatórios,
pois não conseguimos associar os grupos produzidos pelo algoritmo K-Means a temas
(receitas de peixe, receitas de sopa, etc). No entanto, é um ponto a melhorar em
futuras versões da aplicação.




                                                                                     6

								
To top