Академический Документы
Профессиональный Документы
Культура Документы
Para usar o Lucene, um aplicativo deve criar documentos adicionando campos, criar um
IndexWriter e adicione documentos a ele com addDocument (), Chamar QueryParser.parse () para
criar uma consulta de uma sequência de caracteres e criar um IndexSearcher e passar a consulta
para o método search ().
O Lucene permite indexar quaisquer dados disponíveis no formato textual. O Lucene pode ser
usado quase com qualquer origem de dados contanto que as informações textuais possam ser
extraídas dela. Lucene pode ser utilizado para indexar e procurar dados armazenados em
documentos HTML, Word, arquivos PDF e outros. A primeira etapa na indexação de dados é
1
TÉCNICAS DE PESQUISA E RECUPERAÇÃO DE INFORMAÇÃO
Análise é a conversão dos dados de texto em uma unidade de procura fundamental, chamada
de termo. Durante a análise, os dados de texto passam por várias operações: extração das
palavras, remoção de palavras comuns, ignorar pontuação, redução de palavras para o formato de
raiz, alteração das palavras para minúsculas, etc. A análise acontece imediatamente antes de
analisar a indexação e a consulta. A análise converte os dados de texto em tokens e esses tokens
são incluídos como termos no índice do Lucene.
O Lucene é fornecido com vários analisadores integrados, como o SimpleAnalyzer, o
StandardAnalyzer, StopAnalyzer, SnowballAnalyzer, e outros. Eles diferem na maneira pela qual
tokenizam o texto e aplicam os filtros.
Uma classe abstrata que representa o local onde os arquivos de índice são armazenados.
Há duas subclasses principais normalmente usadas:
2
TÉCNICAS DE PESQUISA E RECUPERAÇÃO DE INFORMAÇÃO
IndexWriter
Uma classe que cria ou mantém um índice. Seu construtor aceita um booleano que
determina se um novo índice é criado ou se um índice existente é aberto. Ele fornece
métodos para incluir, excluir ou atualizar documentos no índice.
Procurador é uma classe base abstrata que possui vários métodos de procura
sobrecarregadas. IndexSearcher é uma subclasse normalmente utilizada que permite procurar
índices armazenados em um determinado diretório. O método Procurar retorna uma coleta
ordenada de documentos classificados pelas pontuações computadas. O Lucene calcula uma
pontuação de cada documento que corresponde a uma determinada consulta. IndexSearcher é
um thread-safe, ou seja, uma instância única que pode ser usada por vários encadeamentos
simultaneamente.
Termo é a unidade mais fundamental de procura. Ele é composto de dois elementos: o texto da
palavra e o nome do campo no qual o texto ocorre. Os objetos do termo são envolvidos na
indexação, mas são criados pelos componentes internos do Lucene.
Consulta é uma classe base abstrata para procuras. Procurar por uma palavra ou frase especificada
envolve agrupá-la em um termo, incluir os termos em um objeto de consulta e transmitir esse
objeto de consulta para os métodos de procura do IndexSearcher.
O Lucene é fornecido com vários tipos de implementações de consulta concretas, como
TermQuery, BooleanQuery, PhraseQuery, PrefixQuery, RangeQuery, MultiTermQuery,
FilteredQuery, SpanQuery, etc.
3
TÉCNICAS DE PESQUISA E RECUPERAÇÃO DE INFORMAÇÃO
IndexSearcher retorna uma matriz de referências nos resultados de procura classificados, como
documentos que correspondem a uma determinada consulta. As classes primárias envolvidas na
recuperação dos resultados de procura são ScoreDoc e TopDocs.
ScoreDoc
Um ponteiro simples para um documento contido nos resultados de procura. Isso engloba
a posição de um documento no índice e a pontuação calculada pelo Lucene.
TopDocs
4
TÉCNICAS DE PESQUISA E RECUPERAÇÃO DE INFORMAÇÃO
Plataforma IR Terrier
Terrier é uma plataforma de mecanismo de busca de código aberto, altamente flexível e eficiente.
Pronta para implementação em coleções de documentos em larga escala, implementa o mais alto
nível de desenvolvimento de funcionalidades em indexação e recuperação da informação.
Também é uma plataforma compreensiva e flexível para pesquisa e expetimentação em
recuperação de texto. A pesquisa pode ser facilmente realizada em coleções de teste TREC e CLEF
padrão. Escrita em Java e desenvolvida pela School of Computing Science, na Universidade de
Glasgow.
1
Técnica de processamento de grandes coleções de dados, empregando o poder da computação distribuída/paralela,
bem como propondo um modelo de programação que simplifica o desenvolvimento de aplicações BigData.
5
TÉCNICAS DE PESQUISA E RECUPERAÇÃO DE INFORMAÇÃO
Para corpus em outros formatos, será necessário mudar o objeto Colletion que está sendo usado
pela configuração da propriedade “trec.collection.class”. Abaixo estão algumas opcões:
TRECCollection – analisa o corpus TREC formatado, delimitado pelas tags “<DOC></DOC>”.
TRECWebCollection – mesmo que TRECColletction, embora adiciona a análise das tags
“DOCHDR”, as quais contém corpus TREC Web e Blog tal como WT2G, WT10G, .GOV, .GOV2,
Blogs06 a Blogs08 são suportados.
WARC09Collection – analisa corpus na versão 0.9 no formato WARC, tal como, UK-2006.
2
Coletânea ou conjunto de documentos sobre determinado tema.
6
TÉCNICAS DE PESQUISA E RECUPERAÇÃO DE INFORMAÇÃO
O TRECCollection pode ser usado para todos os corpus TREC de Disks 1&2 até Blogs08, incluindo
WT2G, .GOV, .GOV2, entre outros. Além disso, ela pode ser configurada.
A utilização de tags especificadas são case sensitive, mas podem ser flexibilizadas configurando a
propriedade “TrecDocTags.casesensitive” como falsa. Também suporta a adiçãod e conteudos de
tags para o índice meta. Isto é util para apresental, e. g., a URL de um documento, ou a data, durante
a recuperação.
Terrier tem a habilidade de gravar a frequência com a qual termos ocorrem em varios campos de
documentos. Para isso, os campos requeridos são especificados pela propriedade
“Fieldtags.process”. Por exemplo, quando um termo ocorre no TITLE ou H1, tags HTML, de um
documento, configura-se com “Fieldtags.process=TITLE,H1”.
7
TÉCNICAS DE PESQUISA E RECUPERAÇÃO DE INFORMAÇÃO
O indexador iterage através da coleção de documentos e envia cada termo encontrado através do
“TermPipeline” (transforma os termos, e pode remover termos que não serão indexados). A cadeia
“TermPipeline” em uso é “termpipelines=Stopwords,PorterStemmer”, que remove termos de um
documento usando o objeto “Stopwords”, e então aplica o algorítmo Stemming de Porter para os
termos em inglês (PorterStemmer). Podendo também ser utilizado um Stemmer diferente.
O term pipeline também pode ser configurado em tempo de indexação para pular vários
indentificadores/termos (palavras chaves), configurando uma propriedade que apresenta uma lista
destes termos delimitados como virgula. A mesma propriedade também trabalha a recuperação em
tempo de execução.
Várias propriedades são utilizadas para configurar classes dos indexadores. Uma vez que os termos
tenham sido processados através do TermPipeline, eles são adicionados pleo DocumentPostingList
e o LexixonMap, que também possui suas propriedades.
Os metadados dos documentos são gravador em uma estrutura MetaIndex. Por exemplo, tais
metadados podem incluir o DOCNO e a URL de cada documento, que o sistema pode usar para
representar o documento durante a recuperação. O MetaIndex pode ser configurado para anotação
de vários atributos de documentos durante a indexação. Os atributos disponíveis dependem
daqueles disponibilizados pela implementação do documentos. Além disso o MetaIndex pode ser
configurado utilizando algumas propriedades.
Para maiores entendimentos sobre a apresentação do resultado para o usuário, para o qual
configurações de indexação adiconais são requeridas, deve-se consultar Terrier Web-based.
Escolha de indexadores
Terrier suporta três tipos de indexadores, que são:
Classical two-pass – indexação clássica de palavras pela criação de um índice direto, e então
invertendo a estrutura criando um índice invertido.
Single-pass indexing – este tipo de indexação é implementado pelas classes
BasicSinglePassIndexer e BlockSinglePassIndexer, que ao invez de construir um arquivo
direto da coleção, as listas de lançamento de termo são mantidas na memória e gravadas no
disco quando a memória está esgotada. O passo final mescla os arquivos temporários para
formar o léxico e o arquivo invertido.
8
TÉCNICAS DE PESQUISA E RECUPERAÇÃO DE INFORMAÇÃO
Todos os três métodos criam um índice invertido identico, que produz identica eficácia na
recuperação. Entretanto, eles diferem em outras características, p. e., quanto à expansão da
consulta, escalabilidade e eficiência ao indexar corpus grandes. A escolha do método de indexação
provavelmente será direcionada pela necessidade de expansão de consulta e pela escala dos dados
com os quais se deseja trabalhar.
Além do exposto, Terrier também suporta indexação em tempo real de coleções de documetos
usando as estruturas MemoryIndex e IncrementalIndex, permitindo que novos documentos sejam
adicionados ao índice em um ponto xxxxx
Compressão
Por padrão, Terrier, utiliza os algoritmos Elias-Gama e Elias-Unary para avaliar alta compressão de
índices diretos e invertidos. Acima da versão 4.0 tem suporte para vários esquemas de
compressão.
Bibliografia
Lucene https://lucene.apache.org/core/
MARTINS, C.. Fundamentos sobre MapReduce. Discponível em:
http://www.devmedia.com.br/fundamentos-sobre-mapreduce/28644. Acesso em: 02/05/2017.