aplicação da medida tfidf em bancos de dados relacionais
TRANSCRIPT
Aplicação da Medida TfIdf em Bancos de Dados Relacionais
para Ordenação de Consultas por Termos
Daniel Pereira Lima1, Naziane Alves Pinto
2, Carla Oran Fonseca de Souza
3 , Francisca
Sancha Azevedo da Silva4
Centro Universitário do Norte – UNINORTE – Manaus – AM – Brazil [email protected] [email protected],[email protected],
Abstract. In Relational Database (RDB), indexes are structures used for
improving the performance of data search. In the Information Retrieval (IR)
area, there are also structures of search optimization, known as inverted
indexes. Besides search optimization, another source in IR is the ordination of
result according to their relevance. A way of calculating this relevance is
using Tfidf measure. The goal of this paper is to apply the concepts of inverted
index and the Tfidf measure in RDB, with the objective of allowing the
optimization and ordination of searches for key-words.
Resumo. Em Bancos de Dados Relacionais (BDR), os índices são estruturas
utilizadas para melhorar a performance de busca de dados. Na área de
Recuperação de Informação (RI) também existem estruturas de otimização de
busca, conhecida como índices invertidos. Outra fonte de estudos em RI além
da otimização de busca, é a ordenação dos resultados de acordo com a
relevância dos mesmos. Uma forma de calcular essa relevância é por meio da
medida Tfidf. Este artigo tem por objetivo aplicar os conceitos de índice
invertidos e a medida Tfidf em BDR, com o intuito de permitir a otimização e
ordenação de buscas por termos.
1. Introdução
Dentro da área de banco de dados (BD) existem recursos de software, cujo
propósito é auxiliar na manipulação de grandes volumes de dados garantindo a
segurança das informações e permitindo armazenar, modificar e extrair informações
conforme as especificações pré-definidas. Esses recursos são conhecidos como Sistema
de Gerenciamento de Banco de Dados (SGBD).
Esse tipo de software disponibiliza mecanismos para otimização de consultas, os
quais são chamados índices e são responsáveis por tornar as consultas mais eficientes,
melhorando assim o desempenho do SGBD. Segundo Barão et.al. (2009), a criação de
índices é uma forma das bases de dados melhorarem a performance, por meio da
localização mais ágil dos dados que interessam aos usuários.
A área de Banco de Dados não é a única que dedica esforços para pesquisa e
implementação de estruturas de otimização de buscas de dados. No campo da
Recuperação da Informação (RI) também existem estruturas para essa finalidade como é
o caso dos índices invertidos, o qual melhora a performance das consultas baseadas em
palavras-chaves.
Manaus, 25 a 27 de abril de 2013 1 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
Visto que a necessidade do usuário final é obter a resposta de suas consultas de
uma forma rápida e eficiente e que o resultado seja realmente o que se esteja buscando,
é possível unir as características de busca oferecidas pela área de RI aos recursos
disponibilizados pelo SGBD. Além disso, é possível agregar ainda mais valor a essas
buscas por meio da ordenação das respostas encontradas de acordo com a projeção
adequada das colunas e a relevância das mesmas em relação aos parâmetros da busca.
Na literatura são apresentados vários métodos para melhorar a ordenação das
respostas ao usuário, dentre eles, encontra-se o Modelo Vetorial, o qual utiliza uma
medida de similaridade TfIdf para permitir o cálculo de relevância dos resultados
retornados.
Assim, o objetivo deste trabalho é aplicar em banco de dados relacionais a
estrutura de índice invertido associada à medida TfIdf, com o intuito de otimizar o
processo de busca por palavras-chaves, além de permitir a ordenação dos resultados de
acordo com a sua relevância para a busca.
2. Referencial Teórico
2.1 Recuperação de Informação
Devido à grande necessidade de armazenamento dos dados, o processo de recuperação
dos mesmos tornou-se cada vez mais importante e desafiador. Para lidar com esses
desafios surge a área de Recuperação da Informação.
Segundo Silberschatz (2006), Recuperação de Informação (RI) é uma área da
Ciência da Computação que busca soluções para consultas a dados textuais não
estruturados. Já o processo de recuperação de informação consiste em localizar
documentos relevantes, com base em um critério de busca (palavra-chave ou termo)
fornecido pelo usuário.
Um dos principais problemas tratados pelos modelos de Recuperação da
Informação é dizer quais documentos são mais relevantes para a busca realizada. Em
outras palavras, retornar os documentos que têm a maior chance de conter as
informações que o usuário espera encontrar. Para isso, foram definidos os modelos de
recuperação de informação.
Para Miranda (2003), modelos de recuperação de informação são formas que
definem como o sistema irá fazer os cálculos de relevância dos documentos. Para tanto,
de um modo geral, os modelos de RI propõem a associação de um valor aos documentos
candidatos, os quais podem ser as respostas para o que se está buscando. No resultado
de uma pesquisa, tais documentos são ordenados com base nesse valor e os que estão no
topo são de maior relevância para a busca do usuário.
Os principais modelos utilizados em Recuperação da Informação são Booleano,
Vetorial e Probabilístico. Nesse trabalho, foram empregados os conceitos utilizados no
Modelo Vetorial, o qual é descrito a seguir.
2.2 Modelo Vetorial
Segundo Dantas (2002), no modelo vetorial, as distâncias entre um documento e a
consulta indicam seu grau de similaridade, ou seja, documentos que possuem os
Manaus, 25 a 27 de abril de 2013 2 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
mesmos termos acabam sendo colocados em uma mesma região do espaço e, em teoria,
tratam de assuntos similares. Para cálculo dessa similaridade entre documentos, é
utilizado o cosseno, conforme fórmula apresentada abaixo.
Para Matos (2009), no modelo vetorial os resultados são ordenados de acordo
com o grau de similaridade, ou seja, os termos informados pelo usuário no processo de
busca devem constar na coleção de documentos disponíveis. Com isso, os documentos
que tiverem o maior grau de similaridade estarão no topo do ranking e, portanto, terão
maior relevância para o resultado da busca realizada.
Uma parte importante desse cálculo é a chamada medida Tfidf, a qual é usada
para calcular os pesos dos termos buscados nos documentos, a partir da frequência em
que os mesmos ocorrem em tais documentos e da raridade dele na coleção. O cálculo
dessa medida é dado pela fórmula apresentada a seguir:
Wi,d = tf x idf = tfi,d x log(n/dfi)
Onde, tfi,d é a frequência do termo i no documento d, ou seja, a quantidade de
vezes que o termo i aparece no documento d; log(n/dfi), onde n é o número de
documentos na coleção e dfi é a quantidade de documentos da coleção em que o termo i
ocorre.
Como o objetivo desse trabalho é obter a estrutura de uma consulta e não os
dados da consulta, foi possivel utilizar os valores retornados pela medida Tfidf para
ordenar os resultados das consultas estruturadas e precisas em bancos de dados
relacionais. Portanto, essa ordenação leva em consideração o peso dos termos na
coleção de dados analisados e, consequentemente, a sua relevância para a busca.
Destaca-se que esse processo de ordenação realiza um somatório do Tfidf quando mais
de um termo buscado ocorre no mesmo atributo.
2.3 Índices Invertidos
Na área de recuperação de informação, os índices invertidos são muito utilizados para a
otimização do processo de busca. De acordo com Harman et. al. (1992), os índices
invertidos contêm, para cada termo ou palavra-chave, um apontador para cada
documento que contém tal palavra.
Assim, levando-se em consideração o seguinte conjunto de textos, onde d[n]
representa o documento no qual cada palavra ocorre:
d[0] = “curso de matemática” d[1] = “exercícios de matemática”
Ao construir o índice invertido para cada termo existente nos textos
apresentados, tem-se que ocorrem nos seguintes documentos:
“curso” = {0} “de” = {0, 1} “matemática” = {0, 1} “exercícios” = {1}.
Dessa forma, ao realizar uma busca pelo termo “matemática”, sabe-se que o
mesmo encontra-se nos documentos d[0] e d[1].
Manaus, 25 a 27 de abril de 2013 3 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
3. Trabalhos Relacionados
Na literatura há diversos trabalhos disponíveis referentes à Recuperação de Informação,
tais como Costa et. al. (2010), no qual é feita a análise do comportamento do método
TFIDF em documentos de especificação de requisitos de software. Os testes
demonstraram que na aplicação do modelo vetorial foram obtidos resultados com
considerável similaridade conceitual entre os documentos analisados.
Outra fonte bastante relevante para pesquisadores interessados no tema é o
trabalho de Filho (2001), o qual realiza buscas por páginas Web utilizando um robô para
varrer as páginas que contenham um determinado assunto que está sendo buscado. Essas
páginas são indexadas no banco de dados e através do modelo vetorial são retornadas as
páginas relevantes para o usuário.
Outro trabalho relevante é o de Pereira (2012), o qual trata-se de um estudo de
caso avaliando a performance da indexação dos arquivos, fazendo comparações entre os
métodos de busca utilizando índices invertidos e os métodos utilizando os índices
tradicionais (Hash e Btree) de banco de dados relacionais. O presente artigo utilizou a
estrutura de indexação de arquivos proposto nesse trabalho, para obter uma performance
mais rápida e eficaz na indexação dos termos e assim tornar as buscas mais rápidas.
Ressalta-se que o presente trabalho difere-se dos demais, pois é um estudo a
respeito da medida TfIdf, aplicada ao índice invertido proposto por Pereira (2012),
visando o retorno de consultas estruturadas, as quais são ordenadas pela medida. Assim
reduzindo o esforço do desenvolvedor sem que o mesmo tenha conhecimento prévio da
estrutura da base de dados.
4. Metodologia de Pesquisa
Primeiramente foi realizado um levantamento bibliográfico para compreensão dos
conceitos empregados em Recuperação de Informação, especialmente relacionados a
índices invertidos e medida Tfidf. Além disso, como a proposta do trabalho em questão
é a aplicação prática de tais conceitos ao Modelo Relacional de Banco de Dados (MR),
foi necessário fazer um mapeamento dos mesmos para os conceitos usados em MR.
Uma vez feita a fundamentação teórica da pesquisa e o mapeamento dos
conceitos, foi possível desenvolver o Modelo Proposto, por meio da implementação da
estrutura de índice invertido e do algoritmo para cálculo da medida TfIdf em banco de
dados relacional, para garantir a eficácia na ordenação dos resultados de busca.
Para a avaliação do modelo de busca proposto nesse trabalho, foi utilizada
pesquisa experimental. Para tanto, foram executados experimentos para avaliar dois
aspectos: a performance de execução das buscas com e sem o uso do modelo proposto
com índice invertido; e a ordenação do resultado das buscas de acordo com a relevância
da medida Tfidf. Destaque-se que o método desenvolvido foi padronizado para fazer
buscas somente em bases de dados que contenham atributos do tipo texto.
Em relação à performance, foram levados em consideração três variáveis,
conforme apresentadas no Quadro 1 para a avaliação dos experimentos.
Manaus, 25 a 27 de abril de 2013 4 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
Quadro 1 - Variáveis usadas na avaliação dos experimentos.
Critério Entradas Avaliadas
Massa de dados na base de dados 1000, 10.000 e 100.000 registros
Quantidade de termos buscados 01, 02 e 03 termos
Frequência dos termos buscados na
base de dados
Não ocorre na base de dados
Ocorre em metade dos atributos
Ocorre em todos os atributos
Nos experimentos relacionados à ordenação das consultas, foi utilizada a métrica
MRR - Mean Reciprocal Rank, a qual é tradicionalmente utilizada para medir a
qualidade da lista de respostas previstas de um sistema de RI.
Finalmente, ressalta-se que as massas de dados utilizadas para realização dos
experimentos foram extraídas do site archive.ics.uci.edu/ml/datasets.html e foram
importados para o SGBD PostgreSQL 9.2, o qual foi usado nos experimentos. A
configuração da máquina emprega nos testes foi Windows 7 Ultimate 64 bits,
Processador Intel Core i5 2,67 Ghz, 4 GB de memória e 500 GB de HD.
5. Modelo Proposto
Para a composição do modelo de busca proposto nesse trabalho foi fundamental definir
uma estrutura composta por tabelas, funções e triggers, que possibilitassem a
implementação de um índice invertido, bem como para a realização dos cálculos
necessários da medida Tfidf. Assim, esta seção tem o propósito de apresentar a estrutura
definida.
5.1 Mapeamento dos Conceitos
Como o trabalho emprega conceitos da área de RI em banco de dados, foi necessário
traçar um mapeamento entre essas áreas de conhecimento, especialmente no que diz
respeito às definições de documentos e coleção de documentos, as quais não existem em
BD.
Assim, ficou estabelecido que um documento em banco de dados corresponderia
a um atributo e a coleção de todos os documentos seria mapeada para o total de atributos
do tipo texto existente em toda a base de dados. Desta forma, o cálculo da medida Tfifd
representa, nesse caso, o peso de um determinado termo nos atributos que fazem parte
da coleção.
5.2 Estrutura de Índices Invertidos
Os índices invertidos utilizados em RI foram implementados nesse trabalho, como um
conjunto de tabelas relacionadas, as quais têm por objetivo armazenar os termos
inclusos na base de dados e os atributos nos quais tais termos foram inseridos. A Figura
1 ilustra a estrutura desenvolvida, a qual foi baseada no modelo definido por Pereira
(2012).
Manaus, 25 a 27 de abril de 2013 5 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
Figura 1 – Estrutura de índice invertido do Modelo Proposto.
Destaca-se que nesse trabalho, foi adicionada a frequência de cada termo
(nb_termo_frequencia) em um determinado documento (atributo) e o valor da medida
Tfidf (nb_tfidf), a qual representa o peso do termo no atributo (documento) identificado
na coluna id_atributo. Essas alterações em relação à estrutura proposta por Pereira
(2012), foram necessárias para otimizar a busca e o processo de ordenação do resultado
por relevância.
5,3 Implementação do Cálculo da Medida Tfidf
O cálculo da medida TfIdf nesse trabalho foi implementada na forma de triggers. Assim,
supondo uma base de dados com a estrutura apresentada na Figura 2, o modelo proposto
requer uma trigger de inclusão, uma de exclusão e uma de alteração para cada tabela.
Figura 2 - Representação das tabelas da base de dados.
Essas triggers têm por finalidade disparar as funções que irão povoar as tabelas
ilustradas na Figura 1, calculando a frequência dos termos e a medida TfIdf dos mesmos.
Foram implementadas 6 funções, as quais são: fn_insere_termo_atributo (), fn_termo
(), fn_atributo (), fn_termo_frequência (), fn_excluir_termo () e fn_tfidf ().
A função principal fn_insere_termo_atributo () recebe os parâmetros passados
pela trigger, que são: o valor do atributo, esquema, tabela e o próprio atributo. A mesma
é responsável por realizar a separação do valor do atributo em termos (cada palavra
corresponde a um termo) e inserir na estrutura de índice invertido do modelo proposto.
Está função passa parâmetros de entrada para todas as funções citadas anteriormente,
possibilitando a verificação do esquema, tabela, atributo, termo e calcular a frequência
do termo e o valor do Tfidf. Exceto a fn_excluir_termo (), pois está é acionada quando é
feita a exclusão de um termo e assim decrementar o valor do tf e recalcular o tfidf.
Manaus, 25 a 27 de abril de 2013 6 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
Para um melhor entendimento do fluxo de processamento descrito, a Figura 3
ilustra como as triggers e as funções são disparadas. De acordo com a ilustração, quando
um registro, contendo atributo do tipo texto é inserido, alterado ou excluído, as triggers
vinculadas à tabela que está sendo manipulada são disparadas. Essas triggers invocam a
função principal do modelo proposto e esta, por sua vez, chama as demais funções para
atualização das tabelas tb_termo, tb_atributo e tb_termo_frequencia.
Figura 3 – Fluxo de processamento do modelo de busca proposto.
6. Resultados Experimentais
Os dados obtidos durante os experimentos relacionados à avaliação de performance
foram tabulados e apresentados na forma de gráficos do tipo barras, a fim de permitir a
visualização comparativa entre o modelo de busca proposto e o modelo de busca
tradicional. Os experimentos realizados foram agrupados levando-se em consideração as
variáveis apresentadas no Quadro 1. Os nove tipos de experimentos que foram
realizados são descritos no Quadro 2
Quadro 2 – Experimentos realizados.
Experimento Massa de Dados Qtde de Termos Frequência dos Termos
Experimento 01 1000, 10.000 e 100.000 01 Não ocorre na base de dados
Experimento 02 1000, 10.000 e 100.000 01 Ocorre em metade dos atributos
Experimento 03 1000, 10.000 e 100.000 01 Ocorre em todos os atributos
Experimento 04 1000, 10.000 e 100.000 02 Não ocorre na base de dados
Experimento 05 1000, 10.000 e 100.000 02 Ocorre em metade dos atributos
Experimento 06 1000, 10.000 e 100.000 02 Ocorre em todos os atributos
Experimento 07 1000, 10.000 e 100.000 03 Não ocorre na base de dados
Experimento 08 1000, 10.000 e 100.000 03 Ocorre em metade dos atributos
Experimento 09 1000, 10.000 e 100.000 03 Ocorre em todos os atributos
A Figura 4 apresenta o tempo médio, em segundos, coletado durante a execução
dos três primeiros experimentos, os quais utilizaram como entrada da busca apenas um
(01) termo fornecido pelo usuário. Pelos gráficos, pode-se observar que a performance
do modelo proposto foi melhor que do modelo tradicional. Essa diferença de
performance é mais notória para a massa de dados de 100.000 registros.
Manaus, 25 a 27 de abril de 2013 7 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
Figura 4 – Resultado dos experimentos realizados com a busca de um termo.
Em relação aos experimentos realizados com a busca de dois (02) termos
fornecidos pelo usuário, o modelo proposto também demonstrou ser mais eficiente que
o modelo tradicional, conforme pode ser analisado pelos gráficos ilustrados na Figura 5.
De acordo com os dados coletados, o desempenho do modelo proposto foi em média
49,30% melhor quando os termos não existiam na base, 48,20% quando os termos
pesquisados existiam em metade da coleção de atributos da base e 50,60% quando os
termos podiam ser encontrados em todos os atributos da base.
Figura 5 – Resultado dos experimentos realizados com a busca de dois termos.
Finalmente, o modelo proposto também apresentou melhor eficiência quando
realizadas buscas com três (03) termos passados por parâmetro. Assim como também
ocorreu nos experimentos anteriores, nesses três últimos testes pode-se observar que a
eficiência do modelo proposto torna-se cada vez melhor à medida que a massa de dados
aumenta.
Manaus, 25 a 27 de abril de 2013 8 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
Figura 6 - Resultado dos experimentos realizados com a busca de três termos.
Quanto à análise da ordenação das respostas levando em consideração a medida
Tfidf, os dados obtidos durante os experimentos foram apresentados de forma tabulada,
permitindo a comparação entre as buscas realizadas com um (01), dois (02) e três (03)
termos onde os mesmos ocorrem na metade dos atributos e em todos os atributos da
base de dados, para uma massa de 100.000 registros. O Quadro 3 mostra os critérios que
foram usados para os experimentos.
Quadro 3 – Experimentos realizados na ordenação dos resultados.
Experimento Massa de Dados Qtde de Termos
Experimento 01 100.000 01
Experimento 02 100.000 02
Experimento 03 100.000 03
O Quadro 4 apresenta a média coletada para a medida MRR durante a execução
dos três experimentos, os quais utilizaram como entrada da busca um (01), dois (02) e
três (03) termos fornecido pelo usuário. Essa medida indica que quanto mais próximo
do valor 1, melhor a eficácia da ordenação calculada no modelo proposto.
De acordo com os resultados obtidos, pode-se observar que a busca é mais
eficiente quando os termos buscados ocorrem em um único atributo na base de dados. Já
nos casos em que os termos buscados ocorrem em mais de um atributo, a eficácia
chegou a 0,25.
Quadro 4 – Experimentos da ordenação dos resultados usando a medida TfIdf.
Experimento da ordenação dos resultados usando a medida TfIdf
Quantidade de termos
buscados
Em 1
atributo
Em 1 ou mais
atributos 1 termo 1,0 0,33
2 termos 1,0 0,50
3 termos 1,0 0,25
7. Considerações Finais
A análise experimental realizada nesse trabalho procurou traçar um comparativo entre
um novo modelo de busca proposto para bancos de dados relacionais e o modelo de
Manaus, 25 a 27 de abril de 2013 9 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo
busca tradicional. Ressalta-se que essa proposta apresentada utiliza como recursos de
otimização de pesquisa a estrutura de índice invertido e como mecanismo de ordenação
dos resultados a medida Tfidf.
Com os resultados obtidos, pode-se notar que em todos os experimentos
realizados o novo modelo foi mais eficiente que o tradicional em relação ao tempo, em
segundos, para localizar o termo buscado na base de dados. Destaca-se, que essa
eficiência torna-se melhor à medida que a quantidade de registros aumenta. Como
consequência, surge uma oportunidade de melhoria para o algoritmo de busca
implementado quando for utilizado com massas de dados menores.
Quanto aos resultados obtidos nos experimentos de ordenação utilizando a
medida Tfidf, ficou evidenciado que quando empregado para a busca de um único
termo, a ordenação das consultas estruturadas tem 100% de corretude. Porém, também
se nota uma oportunidade de melhoria para esse algoritmo quando se busca termos em
diversos atributos.
Somando-se a isso, também é possível identificar como melhoria futura para o
processo de ordenação do resultado por relevância, o uso de uma lista de stopwords, ou
seja, um conjunto de termos que são muito frequentes nos textos e que não contribuem
para o resultado da busca (ex.: de, para, com, onde, dentre outras). Portanto, podem ser
descartados na execução da pesquisa.
8. Referências Bibliográficas
BARÃO, Bruno et. al. Sistemas de Base de Dados, Análise do SGBD PostgreSQL.
Universidade Nova de Lisboa, 2009.
COSTA, Adriana Cássia da; JUNIOR, Custódio Gastão da SILVA; Similaridade entre
Documentos de Especificação de Requisitos de Software Utilizando o Modelo
Vetorial de Recuperação de Informação, 2010.
DANTAS, Suzana. Introdução à Recuperação de Informação. 2002.
FILHO, Ivan Gesteira Costa; Framework Semi-Automatico de Classificação de
Páginas Web; UFPE; Pernambuco, 2001.
HARMAN, D. et. al. Inverted Files in Information Retrieval – Data Structures &
Algorithms. Prentice Hall, 1992.
MATOS, Tauller Augusto de Araújo. Uma proposta de construção de índice
invertido para recuperação de imagens baseada em conteúdo. Universidade
Federal de Uberlândia. Uberlândia, 2009.
MIRANDA, Oscar Gomes. Uma Estrutura de Índice Invertido em Blocos Baseada
em uma B+-Tree. Universidade Federal de Pernambuco. Recife, 2003.
PEREIRA, Micila Sumária Medeiros. Modelo para Busca por Palavra-Chave em
Bancos de Dados Relacionais Utilizando Listas Invertidas para Otimização da
Pesquisa. Centro Universitário do Norte - UNINORTE. Manaus, 2012.
SILBERSCHATZ, Abrahan; KORTH, Henry F; SUDARSHAN, S. Sistemas de Banco
de Dados. Elsevier. Rio de Janeiro, 2006.
Manaus, 25 a 27 de abril de 2013 10 ISSN 2238-5096 (CDR)
Anais do Encontro Regional de Computaۥo e Sistemas de Informaۥo