Baixe o app para aproveitar ainda mais
Prévia do material em texto
Apache Lucene Criado por Doug Cutting em 2000, o Lucene é uma das mais utilizadas bibliotecas para indexação e consulta de textos, disponível em código aberto. Sob o domínio da Apache Foundation, a biblioteca, escrita em java, pode ser utilizada em qualquer aplicativo J2SE ou J2EE, de código aberto ou não. Outras linguagens como Delphi, Perl, C#, C++, Python, Ruby e PHP devem usar os ports do Lucene para as referidas linguagens. O Lucene possui uma biblioteca de mecanismo de busca de texto de alto desempenho com muitos recursos. Pode ser utilizada em aplicativos que possua algum modulo para busca de texto LUCENE PROJECT (2020). Em seu sistema de busca utiliza a combinação do modelo Espaço Vetorial com o Modelo Booleano para determinar a relevância de determinados documentos para a consulta dos usuários LUCENE PROJECT (2020). A biblioteca Lucene é composta por duas etapas: indexação e pesquisa. Baseado em palavra-chave o algoritmo processa os dados gerando uma estrutura que torna possível a realização de consultas. A figura 1 demonstra uma típica aplicação que está integrada ao Lucene. Figura 1: Estrutura Funcional do Lucene As etapas ilustradas na figura 1 podem ser assim descritas: Gather Data: Momento em que são recolhidos os conteúdos dos diferentes documentos. Index Documents: Etapa na qual onde é feita a análise do documento, sendo que após esta, tem início o processo de indexação. Index: Base de dados de índices. Get Users’ Query: Uma vez feito o pedido de pesquisa do usuário, a aplicação constrói a query com base no texto de pesquisa, com a finalidade de utilizar a mesma na interrogação às bases de dados de índices. Search Index: Etapa onde se realiza a pesquisa por índices segundo a query construída a partir dos dados de pesquisa introduzidos pelo usuário. Present Search Results: Responsável por apresentar o resultado da pesquisa ao usuário. Para deixar seu processo de busca mais rápido o Lucene indexa o texto e o converte em um formato que o permiti deixá-lo mais fácil de encontrar. Este processo é chamado de indexação, que produz um índice. Enquanto que a busca se refere ao processo de procurar determinadas palavras em um índice para localizar documentos onde as mesmas aparecem. Deste modo podemos afirmar que existem duas funcionalidades importantes: a indexação, acessível através do comando Indexer, e a busca, disponível por meio do comando Searcher. Indexação: De acordo com Martins (2015), Lucene utiliza em seu índice a estrutura de dados chamada de índice invertido, assim cada termo possui uma referência para o documento onde ele ocorre conforme pode ser visualizado na figura O processo de indexação segue alguns passos, sendo que primeiramente ocorre a aquisição dos termos necessários em seguida é construido uma abstração do conteúdo a ser indexado chamado documento, que é constituído por unidades denominadas campos, que são associados aos termos. No entanto antes da indexação ocorre a análise do documento que tem como função separação dos termos em uma série de elementos atômicos chamados tokens. E então o documento é adicionado ao índice seguindo um formato próprio do Lucene (PRADO, 2012). Busca: No Lucene para cada documento retornado como resultado de alguma busca é atribuído uma pontuação que representa a similaridade de tal documento com a consulta. O calculo da similaridade é baseado no modelo de recuperação utilizado de acordo com Machado (2013) Lucene suporta os seguintes modelos: • Modelo Booleano; • Modelo Espaço Vetorial; • Modelo Probabilístico, como Okapi BM25 e DFR; • Modelo baseado em Linguagem Natural. Sendo que por padrão a busca no Lucene ocorre através da combinação de duas técnicas de recuperação de informação: Modelo Espaço Vetorial e Okapi BM25: De acordo com Machado (2013) o Modelo Vetorial é um dos principais algoritmos que deu embasamento a maioria dos Sistemas de Recuperação da Informação. Neste modelo, os documentos são representados como vetores em um espaço n-dimensional, em que n é a totalidade de palavras- chave de todos os documentos armazenados no sistema. Porém não permite a construção de um ranking baseando-se nos graus de relevância dos documentos recuperados BM25 é uma função de recuperação de bag-of-words que classifica um conjunto de documentos com base nos termos de consulta que aparecem em cada documento, independentemente de sua proximidade dentro do documento. É uma família de funções de pontuação com componentes e parâmetros ligeiramente diferentes. A classificação de relevância é baseada na relação entre a frequência do termo e frequência inversa do termo. 2.2.2 Métrica de avaliação Para avaliar os resultados obtidos de um modelo de recuperação de informação, existem algumas métricas. Tais métricas devem ser aplicadas de acordo com cada modelo. Neste trabalhos serão abordadas apenas as métricas que foram utilizadas no experimento em questão, são elas: Matriz de confusão, Acurácia, Precisão, Recall/Revocação. Uma matriz de confusão é uma tabela que indica os erros e acertos do seu modelo, comparando com o resultado esperado. A figura 2 abaixo demonstra um exemplo de uma matriz de confusão. Figura 2: Exemplo de Matriz de Confusão Ao ser feita a contagem de todos esses termos e obter a matriz de confusão, é possível calcular métricas de avaliação para a classificação. Acurácia indica uma performance geral do modelo. Dentre todas as classificações, quantas o modelo classificou corretamente: A precisão é uma métrica que considerando todos os itens que foram classificados como positivos (em uma classificação binária por exemplo), mede quantos realmente eram positivos, ou seja, o quão preciso (ou correto) o modelo é quando ele afirma que um elemento é de determinada classe. A Revocação avalia o modelo sob o ponto de vista de todos os itens verdadeiramente positivos, realiza o calculo de quantos o modelo disse que eram positivos, indicando se o modelo está conseguindo identificar a maior parte dos elementos de determinada classe ou não está conseguindo classificá-los corretamente.
Compartilhar