Você está na página 1de 19

FACULDADE PRESIDENTE ANTNIO CARLOS DE CONTAGEM CURSO TECNLOGO EM ANLISE E DESENVOLVIMENTO DE SISTEMAS

Implementao de Uma Mquina de Busca: MBText

Eliene Alves de Moura Fernando Curvelo Volpato Jarbas Ivon Ugarte Rodrigo Marcone Xavier

Contagem 2 semestre de 2011

Eliene Alves de Moura Fernando Curvelo Volpato Jarbas Ivon Ugarte Rodrigo Marcone Xavier

Implementao de Uma Mquina de Busca: MBText

Trabalho Interdisciplinar de concluso de Mdulo apresentado como exigncia parcial para concluso do 5 perodo do Curso de Tecnologia em Anlise e Desenvolvimento de Sistemas da UNIPAC Contagem.

Prof. Orientador: RAFAEL FELIPE DUTRA DA SILVEIRA

Contagem 2. Semestre de 2011

SUMRIO
1 - INTRODUO 2 -OBJETIVO 3 -INTERDISCIPLINARIDADE 3.1 ARQUITETURA DE MQUINAS DE BUSCA 3.2 LINGUAGEM DE PROGRAMAO PARA WEB III 3.3 LEGISLAO APLICADA INFORMTICA 4- CONCEITOS BSICOS 4.1-O QUE UMA MQUINA DE BUSCA 4.2-PORQUE USAR UMA MQUINA DE BUSCA TEXTUAL 567CONCLUSO BIBLIOGRAFIA

1-INTRODUO

A criao de uma Mquina de Busca Textual com o nome MBText, ser desenvolvida seguindo uma sequncia de estudos e implementaes. No primeiro momento realizar-se- o levantamento dos dados e a pesquisa bibliogrfica e documentao para, a posteriori, viabilizar a implementao do projeto a fim de desenvolver o software. Visto que consiste em um trabalho acadmico e um desenvolvimento de um produto, software, cujos prazos de seu desenvolvimento demandam certa quantidade de tempo, o mesmo ser desenvolvido no corrente perodo. Lembrando que este projeto consiste tambm em um trabalho acadmico desenvolvido por alunos do curso de Anlise e Desenvolvimento de Sistemas (ADS) da UNIPAC- Contagem. Um aspecto importante a ressaltar consiste nos softwares e linguagens de programao utilizada para desenvolver este trabalho acadmico, aos quais so utilizados como instrumento de aprendizagem durante o curso em questo. Os principais so: JAVA, HTML dentre outros. Outro aspecto a ser levado em conta consiste em observar o que este trabalho acadmico foi desenvolvido no ltimo perodo do curso de A.D.S. , de modo que se utilize do aprendizado de vrias conceitos de vrias disciplinas e utilizado de vrias ferramentas aprendidas neste curto tempo de aprendizagem, pois trata-se de um curso de curta durao (tecnlogo) mas que os conceitos aprendidos foram aproveitados pelos alunos em questo e que deveu-se focar o tema proposto s disciplinas do corrente perodo, limitando um pouco criatividade do corpo discente.

2-OBJETIVOS
Ser desenvolvido um software que ir utilizar a biblioteca LUCENE onde sero mostrados suas funcionalidades e principais caractersticas sobre mquinas de busca. A Mquina de Busca Textual que ser criada MBText tem por objetivo indexar um conjunto de arquivos textuais a fim de localizar palavras e trechos dos mesmos. Este sistema poder, tambm, ser anexado em outros softwares a serem criados em sistemas de empresas e sites. Portanto, outro objetivo se mostra intrnseco ao desenvolver do trabalho em si, o desenvolver de um produto, no um produto qualquer mas um software, que possa entrar no mercado com condies de competir no mercado , se complementado e incorporado a sites e sistemas podendo o mesmo ser modificado, melhorado para melhor se adequar necessidade proposta.

3-INTERDISCIPLINARIDADE
Conforme descrito no manual do trabalho interdisciplinar no corrente perodo: O objetivo do trabalho interdisciplinar integrar as disciplinas cursadas no perodo, atravs da interdisciplinaridade, de acordo com um tema central relacionado ao eixo temtico de cada mdulo do curso. Tem o propsito tambm de interligar e conjugar os conhecimentos tericos e prticos discorridos pelas disciplinas e a vivncia prtica-profissional dos docentes e alunos. (UNIPAC. 2semestre-2011)

3.1 ARQUITETURA DE MQUINAS DE BUSCA


A partir do momento que se escolheu o tema proposto que consiste em desenvolver uma mquina de busca de palavras, fica intrnseco ao contedo da disciplina como sendo um dos principais pilares do desenvolver deste trabalho acadmico.

3.2 LINGUAGEM DE PROGRAMAO PARA WEB III


Desde a concepo dos programas bsicos do projeto at sua finalizao sero utilizados conceitos e tcnicas aprendidas em ATP1 e ATP2 visto que o conhecimento destas duas disciplinas imprescindvel ao desenvolvimento do projeto, tais como programao bsica em Java e Portugol que viabilizaram uma capacitao bsica para outras linguagens da programao, alm da prpria utilizao do JAVA no projeto. Portanto fica claro que outro grande pilar de sustentao no desenvolver deste trabalho a programao em Java viabilizado pela disciplina ATP3.

3.3 LEGISLAO APLICADA INFORMTICA


A partir da necessidade de se registrar qualquer produto criado, incluindo softwares, objetivando proteger os direitos de quem o criou e de evitar apropriaes indevidas. A disciplina em questo se integra nas anteriores para este trabalho, neste 5 perodo, cedendo textos a serem utilizados e posteriormente objetivando o registro do software conforme orientao da mesma, caso o mesmo possa ser utilizado de forma comercial e pblico.

4-Conceitos Bsicos 4.1-O que uma mquina de busca


Um motor de busca, motor de pesquisa ou mquina de busca um sistema de software projetado para encontrar informaes armazenadas em um sistema computacional a partir de palavras-chave indicadas pelo utilizador, reduzindo o tempo necessrio para encontrar informaes.(< http://pt.wikipedia.org/wiki/Motor_de_busca>Set.2011) De maneira geral, um sistema encarregado de fazer buscas em um conjunto de documentos (seja ele na Web ou no) consiste basicamente de 3 partes: coleta/armazenamento de documentos indexao dos mesmos e processamento de consultas.

4.2- Porque criar uma mquina de busca textual?


A partir do momento que um usurio precise buscar em textos informaes especficas no s por ttulos e/ou autor mas tambm por palavras ou frases , como por exemplo em artigos que geralmente so algo em torno de 1500 palavras, imagine que no banco de artigos a serem buscados h mais de um milho de artigos cadastrados, o usurio poder usar um bom framework de busca textual ser o mais vivel pois uar o banco de dados do operador no seria a soluo mais eficaz. 4.3-Recuperao da Informao (RI) "a tarefa de encontrar documentos relevantes a partir de um corpus ou conjunto de textos em resposta a uma necessidade de informao de um usurio". A rea de RI tornou-se mais conhecida com o advento das mquinas de busca na Web. Um dos modelos mais conhecidos de RI com esse intuito o Espao Vetorial (ou Vector Space Model). Este modelo , provavelmente, usado por todas as grandes mquinas de busca de hoje, inclusive o Google. 4.3.1 Histrico Primrdios da Recuperao da Informao: 40 sculos atrs (brahmanes, escrita sumria) Cincia, dcada de 40 do sculo XX Bush, 1945 Weaver, 1949 Mooers 1951 (criou o termo Recuperao da Informao)

4.4-Termos utilizados para Mquina de Busca: Search Engine; Ferramenta de Busca; Mecanismo de Busca; Buscador; Motor de Busca; SRI (Sistema de Recuperao da Informao); 4.5 Estrutura

Arquitetura de uma mquina de busca

9 Etapas:

Histrico: 1 2 3 4 5 6 7 8 9 10 11 12 13 1993 1993 1994 1994 1994 1995 1995 1995 1995 1995 1996 1997 2009

10

4.4-ETAPAS DE UMA MQUINA DE BUSCA: 4.1-COLETOR: SLIDE2 PG24 Indica quais os domnios a serem catalogados, os tipos de servidores a entrarem na coleta, os tipos de arquivos a serem buscados dentre outros. Um modelo conhecido o tipo Aranha onde a web pode ser caracterizada como um grafo direcionado onde cada URL um vrtice e os links entre elas so as arestas.

4.2-ARMAZENAMENTO: Consiste no armazenamento de pginas de diversos formatos: html, txt, doc, pdf,dentre outros. Atualmente o texto das figuras tambm indexado. 4.3-INDEXAO: Uma vez que so retornadas Informaes sobre as pginas, a mquina de busca deve armazenar essas informaes de modo a utiliz-las para responder posteriores perguntas dos usurios. Esse processo chama-se indexao. Esse processo pode variar de uma mquina de busca para outra da seguinte forma: Caractersticas da indexao Caso a indexao seja feita de forma automtica, ela pode variar em sua sofisticao de forma a melhorar a preciso da resposta. Documentos podem ser indexados por frequncia de palavras e frases, pode-se atribuir pesos para as posies onde aparecem as palavras (por ex.: uma palavra no ttulo da pgina tem maior peso que uma palavra no texto), ou at por uma anlise mais detalhada do documento. A utilizao das meta tags supracitadas tambm podem ser usadas nessa fase. *Velocidade de indexao O processo de indexao consome tempo. Por exemplo, o Altavista (www.altavista.com.br) demora em mdia 6 semanas at uma URL achada pelo spider ser listada em sua base de dados indexada e, portanto, ser passvel de ser encontrada (Mller, 1999). 4.4-CONSULTA: Aps os passos anteriores, a mquina de busca capaz de receber pedidos de busca. Quando um pedido requerido, a mquina de busca procura no ndice entradas que casem com o pedido de busca e ordena as respostas pelo o que acredita ser mais relevante. Modelos Clssicos para Recuperao da Informao Modelo Booleano Modelo Vetorial Modelo Probabilstico

11 5-TIPOS DE MQUINAS DE BUSCA: SLIDE2 PG32 5.1-Buscadores Globais: Este modelo busca documentos na rede e apresenta-o de forma aleatria, dependendo da quantidade de acesso ao site, dentre outros fatores. Um exemplo o GOOGLE. 5.2-Buscadores Verticais: Este tipo realiza pesquisas especializadas, com base de dados prpria. Est relacionado busca relativo pagamento de mensalidade ou de um valor por clic. Exemplo: BuscaP; 5.3-Guias Locais: Este tipo est relacionado a buscadores locais e regionais e as informaes esto relacionadas a endereos de empresas e prestadores de servio. Geralmente so cadastros de publicaes pagas. indicado para empresas que procuram oferecer produtos e servios em uma regio exemplo: AcheCerto; 5.4-Guias de Busca Locais: So buscadores de abrangncia nacional que lista as empresas e prestadores de servios prximas ao endereo do internauta a partir de um texto digitado. A proximidade avaliada normalmente pelo cep, Donavera.com, ou por coordenadas de GPs.() 5.5-Diretrios de Web Sites: Este tipo de buscador organizado por categorias e subcategorias, sua finalidade permitir ao usurio encontrar rapidamente sites que desejar, buscando por categorias, e no por palavras-chave , so ndices de sites.Ex: Open Directory Project; 6-O SISTEMA DE RECUPERAO DA INFORMAO (SRI) O SRI deve de alguma forma interpretar o contedo das informaes encontradas nos documentos de uma coleo e orden-los de acordo com um grau de relevncia para o usurio. Relevncia: objetivo do SRI recuperar todos os documentos que so relevantes a uma consulta de um usurio e o menor nmero possvel de documentos no relevantes. As medidas mais comuns para avaliar a qualidade de um sistema de busca e recuperao de informao so conhecidas como revocao (recall) e preciso: Revocao: mede a proporo de documentos relevantes que formam retornados como resultado a uma consulta do usurio. Preciso: mede quantos documentos relevantes foram recuperados Existem dois fatores muito importantes que governam a eficincia da indexao de um documento e consequentemente, influenciam na revocao e na preciso: Exaustividade: Define o nmero de diferentes conceitos (tpicos) que esto indexados Especificidade: Define o grau de preciso da linguagem de indexao em descrever um dado documento. O objetivo geral de um sistema de informao minimizar o overhead para localizao da informao para o usurio. tempo para gerao da pergunta

12 tempo para execuo da pergunta tempo para buscar os resultados tempo para organizao da resposta para ser mostrada ao usurio tempo perdido para encontrar o resultado com leituras de documentos no relevantes Indexao Por motivos histricos, documentos em uma coleo so geralmente representados por um conjunto de termos de indexao ou palavras-chaves. Estas palavras podem ser automaticamente extradas dos documentos, ou selecionadas por especialistas humanos. De qualquer forma, isto gera uma viso lgica dos documentos.

Arquivo invertido Arquivo invertido aplica-se ao tipo de ndice que aponta os documentos que contm os diversos termos de um texto. Seguindo essa definio, um arquivo invertido apresenta, para cada termo do vocabulrio, uma lista invertida, isto , um conjunto de nmeros de documentos contendo o termo. Arquivos invertidos so os mais utilizados, pela simplicidade de sua estrutura, eficincia nas buscas e possibilidade de compresso. Arquivos invertidos necessitam uma estrutura auxiliar: o vocabulrio ou lxico, uma lista de todos os termos distintos que ocorrem no texto.

13

Matriz de Frequncia (Slide 16 aula3) Caractersticas de Arquivo Invertido (slide 19- aula3) As tabelas Hash (slide 20- aula3) Estrutura de Arquivos de Assinatura (slide 22- aula3) Estrutura de rvore PAT (slide 28- aula3) Hipertextos e Grafo (slide 36- aula3) rvore Binria (Aula4-slide03) Tipos de rvore Binria (Aula4-slide04) Percurso na rvore Binria (Aula4-slide05) rvore Binria de Busca (Aula4-slide09) Algoritmo de Busca (Aula4-slide11) Algoritmo de Insero (Aula4-slide13) Algoritmo de Excluso (Aula4-slide15) Algoritmo de Excluso em C (Aula4-slide21) rvore AVL (Aula 5)

14

O LUCENE
Lucene um framework de alta performance para busca textual feito em java. (h verses para php e .net tambm) Uma das caractersticas marcantes dele a integrao com Hadoop. (um framework para computao distribuida que possui, dentre outros, um MapReduce e um sistema de arquivos distribuido HDFS

Como isso funciona?


A descrio a seguir um resumo bem simplificado sobre o funcionamento de um motor de busca textual. A primeira fase, geralmente, a indexao do documento, nessa fase o documento analizado (por um Analizer que tambm j retira as stopwords) para posteriomente ser indexado.
Set stopWords = new HashSet(); stopWords.add("the"); stopWords.add("it"); stopWords.add("is"); IndexWriter writer = new IndexWriter(FSDirectory.open(INDEX_DIR), new StandardAnalyzer(Version.LUCENE_CURRENT,stopWords), false,IndexWriter.MaxFieldLength.LIMITED);

No Lucene voc pode criar um ndice usando o IndexWriter, a criao desse objeto envolve dizer onde ser (ou est) o diretrio dos ndices, qual analizador voc ir utilizar, se ir criar o indice e qual a quantidade mxima de campos. O objetivo do indexador indexar documentos, para tanto necessrio que haja documentos para serem indexados.
Document doc = new Document(); doc.add(new Field("nomedocampo", "valores a serem guardados", Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.add(new Field("camp1","valores a serem analisados tokenizados",Field.Store.YES, Field.Index.toIndex(true, true))); writer.addDocument(doc);

o objetivo final de todo processo de busca textual mesmo a busca em si.


String valueToBeSearched = "red"; String index = "indexDir"; //dirotorio base do indice IndexReader reader = IndexReader.open(FSDirectory.open(new File(index)), true); //indexador Searcher searcher = new IndexSearcher(reader); //pesquisador QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field, analyzer); //transoformador do texto em uma query Query query = parser.parse(valueToBeSearched); //a consulta (query) em si TopScoreDocCollector collector = TopScoreDocCollector.create(hitsPerPage, false); //os melhores resultados searcher.search(query, collector); ScoreDoc[] hits = collector.topDocs().scoreDocs; //o conjunto de melhores documentos para a consulta int maximo = hits.length; Document doc = searcher.doc(hits[index].doc); String valor = doc.get("nomeDoCampo");

15

Recursos na busca de documentos


Quando se faz uma pesquisa por documentos no Lucene podemos utilizar de alguns operadores (+, -, AND, NOT, OR, * e etc.) juntamente com o termo pesquisado ou apenas pesquisar uma frase completa. Exemplo : termo Consequncia: Ir pesquisar a palavra "termo" nos documentos indexados. Exemplo : termo OR palavra ( == termo palavra) Consequncia: Ir pesquisar "termo" ou "palavra" nos documentos indexados. Exemplo : +termo +palavra ( == termo AND palavra) Consequncia: Ir pesquisar "termo" e "palavra" nos documentos indexados. Exemplo : campo:termo Consequncia: Ir pesquisar "termo" no campo "campo" nos documentos indexados. Exemplo : +homer +simpsons -house Consequncia: Ir pesquisar documentos que contenham homer e simpsons e no tenha house. Exemplo : "termo exato" Consequncia: Ir pesquisar documentos que contenham exatamente "termo exato". Exemplo : java* Consequncia: Ir pesquisar documentos que contenham palavras que comeem com java (javadb, javanet...). Exemplo : java~ Consequncia: Ir pesquisar documentos que contenham palavras similares a java como por ex. lava, jaba... Finalizando tive as seguintes impresses sobre essa nova verso do Lucene. Prs:

Maior facilidade para uso do framework, ex: criaes de Fields esto bem mais fluentes. Sensvel otimizao nos tempos de busca e indexao.

Contras:

Otimas ferramentas como luke ainda no tem suporte para a verso 3.0.0. (mas j h uma solicitao aberta para tal mudana.) Muitas mudanas no core do framework; o que fez livros mais antigos quase perderem seu valor

16

MB TEXT
A Mquina de Busca Textual que ser criada MBText tem por objetivo indexar um conjunto de arquivos textuais a fim de localizar palavras e trechos dos mesmos. Este sistema poder, tambm, ser anexado em outros softwares a serem criados em sistemas de empresas e sites. Portanto, outro objetivo se mostra intrnseco ao desenvolver do trabalho em si, o desenvolver de um produto, no um produto qualquer mas um software, que possa entrar no mercado com condies de competir no mercado , se complementado e incorporado a sites e sistemas podendo o mesmo ser modificado, melhorado para melhor se adequar necessidade proposta.

17

8-CONCLUSO
A partir da pesquisa bibliogrfica do tema proposto e da aprovao pelo professor coordenador do interdisciplinar para este grupo em questo foi desenvolvido este trabalho. Assim foi dada nfase nas disciplinas de Linguagem e programao para a Web III, Mquina de Busca e Legislao Aplicada a Informtica, visto que no h um tempo real (horrio especfico) para o desenvolvimento junto aos orientadores bem como o trabalho diurno dos alunos, juntamente com o excesso de trabalhos extraclasse dificultaram um melhor aproveitamento do tempo para viabilizar o desenvolvimento do trabalho/projeto de forma mais criteriosa e com uma abordagem de forma a abranger uma gama maior de contedo interdisciplinar . Portanto espera-se dar prosseguimento ao projeto mesmo aps o curso afim de vlo aperfeioado, corrigido e incrementado para que possa , em futuro prximo inserido no mercado de forma competitiva e atrativa aos olhos de seus usurios.

18

9-BIBLIOGRAFIA
UNIPAC,Universidade Presidente Antnio Carlos. Manual de Orientao do Trabalho Interdisciplinar de Concluso de Mdulo.Unipac.2semestre2011. MANZANO, Jos A.N.Garcia.JNIOR, Roberto A. da Costa.JAVA2 Programao de Computadores.Guia Bsico de Introduo, Orientao e Desenvolvimento.So Paulo: Erica. .2006.368p. FREEMAN,Elizabeth. FREEMAN,Erick . Use a Cabea HTML com CSS e XHTML Rio de Janeiro: AltaBooks. 2008. 2ed 616p(Traduo Betina Macdo). SIERRA, Kato.BATES, Bert.Java.Use a Cabea!.Rio de Janeiro: AltaBooks. 2010.2ed 488p; SOUZA, Emmanuel Cssio Oliveira. Criando textos segundo as normas da ABNT. Scelisual, 2005. 41 p MOREIRA.Leandro.Lucene,Um Motor de Busca Textual <http://archsofty.blogspot. com /2009/12 /tutorial-apache-lucene-300-motor-de.html>Acesso em: PAMPLONA,Vitor.Introduo ao Apache Lucene <http://vitorpamplona.com> Acesso em: SONAWANE,Amol.Usando o Apache Lucene Para Procura de Texto <http://www.ibm.com/developerworks/br/java/library/os-apachelucenesearch/index.html> Acesso em:

19

Exemplos de Citaes:
Segundo Vaz (2008, p. 63) no saber usar a internet em um futuro prximo ser como no saber abrir um livro ou acender um fogo, no sabermos algo que nos permita viver a cidadania na sua completitude.

Uma das referncias mais conhecidas a respeito do conceito de padro de projeto o livro A Timeless Way of Building, escrito em 1979 pelo arquiteto Christopher Alexander (KOSCIANSKI; SOARES, 2007, p. 289, grifo do autor). No saber usar a internet em um futuro prximo ser como no saber abrir um livro ou acender um fogo, no sabermos algo que nos permita viver a cidadania na sua completitude (VAZ, 2008, p. 63). Tanto Weaver (2002, p.18) como Semonche (1993, p. 21) apontam questionamentos que devem preceder o planejamento da indexao de artigos de jornais, como: Qual a finalidade do artigo? Quem o pblico-alvo que ter acesso ao artigo? Que tipo de informao o usurio procura?

Exemplo de citao com mais de 3 linhas com autor inserido entre parnteses, no final da citao:

Exemplo de citao com mais de 3 linhas com autor inserido no texto: Oliveira (2003, p. 39) ao abordar sobre cincia destaca que a mesma

Você também pode gostar