160 likes | 170 Views
Semana de Sistemas de Informação Faculdade Metropolitana de BH. Busca com semelhança sonora em .NET. Artigo publicado na revista Fórum Access de N° 70 por. Agnaldo Lopes Martins Lourival Luiz Gonzaga. . . Sistema. Banco de Dados. Armazenamento e recuperação de dados.
E N D
Semana de Sistemas de Informação Faculdade Metropolitana de BH Busca com semelhança sonora em .NET Artigo publicado na revista Fórum Access de N° 70 por Agnaldo Lopes Martins Lourival Luiz Gonzaga
Sistema Banco de Dados Armazenamento e recuperação de dados
1) Buscando produtos numa loja famosa na Internet: 2) Buscando livros no site da livraria do artigo: O problema da busca exata Nenhum resultado encontrado
Conceito: É um algoritmo para indexação de palavras a partir da pronúncia. Algoritmos fonéticos • Soundex • Daitch-Mokotoff Soundex • Metaphone • Double Metaphone • New York State Identification and Intelligence System
Pegue a primeira letra da string. • Remova as seguintes letras, exceto quando for a primeira letra: a, e, h, i, o, u, w, y. • Atribua números às letras restantes, da seguinte forma: Algoritmo Soundex 4) Letras duplicadas devem ser tratadas como uma só. 5) Consoantes lado a lado que tiverem o mesmo número na codificação devem ser tratadas como uma só. 6) Retorne: <letra maiuscula><digito><digito><digito>
Alguns bancos de dados possuem a função Soundex: • SQL Server • MySQL • Outros Soundex nos bancos de dados
1°) Novo campo no banco de dados Estratégia de implementação da busca • Conseqüências: • Cuidar de inserções e alterações. • Atenção com outros sistemas que utilizem o banco de dados.
2°) Buscar cada palavra chave em qualquer parte do novo campo Estratégia de implementação da busca Códigos para o livro “Microsoft Visual Basic .NET para Programadores” M262 V201 B201 .501 P601 P626 Palavras digitadas pelo usuário V201 B201 M262
3°) Permitir que o usuário escolha a utilização da busca pelo algoritmo fonético Estratégia de implementação da busca
Calcular o código Soundex de uma palavra qualquer. • Gerar uma seqüência de códigos Soundex para o conjunto de palavras chaves. • Completar a instrução SQL com os critérios necessários. • Exemplo do item 3: • SELECT * FROM Livro WHERE Preco > 100 O que o mecanismo de busca precisa fazer?
Public Class clsSonora Public Function RetornaSoundex(ByVal sTexto As String) As String ... End Function Public Function SoundexFraseComposta(ByVal sTexto As String) As String ... End Function Public Function MontarCriterios (ByVal sCampoSonoro As String, ByVal sBusca As String) As String ... End Function End Class A classe clsSonora.vb
Resultados da clsSonora Exemplo do teste 3: SELECT * FROM Livro WHERE CodigoSonoro Like '*F243*' AND CodigoSonoro Like '*M361*'
1) Uso de triggers em bancos de dados para manutenção automática do campo onde a busca será realizada. • 2) Adaptação das instruções SQL em função do banco de dados utilizado. • 3) Pode-se obter resultados interessantes modificando: • Os grupos de caracteres • O comprimento do código Soundex • Implementação de outras regras • Outro algoritmo fonético Considerações finais
http://en.wikipedia.org • http://www.macoratti.net • Books Online do SQL Server • http://www.via102.com.br • agnaldolopesmartins@hotmail.com • lourivalluiz@hotmail.com Referências