USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Algorítmo de Semelhança
mrpieroni
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 29/06/2004 15:24 hs            
Galera boa tarde....
 
Estou terminando uma aplicação e necessito de uma ajuda de vocês.
 
Vamos supor que eu tenha um Banco de Dados com 1.000 palavras diversas e em meu sistema eu digite uma palavra qualquer. Gostaria de saber como eu posso trazer desse meu banco de dados as palavras que mais se assemelham com a palavra que eu digitei.
Por exemplo:
No meu sistema eu digitei a palavra "TECNOLOGIA".
Gostaria que ele me retornasse as palavras "TECNOLÓGICO", "TECNÓLOGO", etc... é claro, se essas palavras constassem no meu Banco de Dados.
 
Se alguém tiver uma idéia ou um lugar onde eu possa pesquisar já estaria de bom tamanho.
 
Abraços,
 
Márcio
 
 
   
Naty
SANTOS
SP - BRASIL
ENUNCIADA !
Postada em 29/06/2004 16:11 hs            
Vc pode usar um select ...
("select <campo> from <Tabela> where <Campo> like '" & <Text> & "*'")
 
Assim se vc tem a palavra Tecnologia,tecnologico,tectec,techno ...
 
vc digita "tec" e lista todas as palavras que comece com Tec??
 
Entendeu?? Qualquer coisa posta de nvo...!!!
 
 

Nathalia
   
WaldirJr
POÇOS DE CALDAS
MG - BRASIL
ENUNCIADA !
Postada em 29/06/2004 17:00 hs            
Caramba, Gostei disso.

Me diga, como seria a Lógica da Consulta. Por exemplo, seria como um verficador ortográfico?

E, utilizando seu exemplo, qual seria a Proximidade das Palavras?
TECNOLOGIA > TECNÓLOGO > TECNOLÓGICO
ou
TECNOLOGIA > BIOLOGIA > ZOOLOGIA

Qual radical seria Predominante? Qual seria a Porcentagem de Proximidade?

________________________

Té +

Que NIMB role bons Dados! Emoções

   
WaldirJr
POÇOS DE CALDAS
MG - BRASIL
ENUNCIADA !
Postada em 29/06/2004 17:57 hs            
Dá uma olhada nessa função.
Ela funciona com letras, mas com base nela dá pra fazer por sílabas

É um tanto complicado conseguir o que vc quer, da maneira que vc quer. Mas acho que vc já sabia disso, né?

Public Function fngMudaNome(Nome As String) As String

    Nome = Trim(Nome)

    'elimina letras acentuadas
    Nome = Replace(Nome, "á", "a")
    Nome = Replace(Nome, "à", "a")
    Nome = Replace(Nome, "â", "a")
    Nome = Replace(Nome, "ä", "a")
    Nome = Replace(Nome, "ã", "a")
    Nome = Replace(Nome, "a", "[aáàâäã]")
    Nome = Replace(Nome, "é", "e")
    Nome = Replace(Nome, "è", "e")
    Nome = Replace(Nome, "ê", "e")
    Nome = Replace(Nome, "ë", "e")
    Nome = Replace(Nome, "e", "[eéèêë]")
    Nome = Replace(Nome, "í", "i")
    Nome = Replace(Nome, "ì", "i")
    Nome = Replace(Nome, "î", "i")
    Nome = Replace(Nome, "ï", "i")
    Nome = Replace(Nome, "ý", "i")
    Nome = Replace(Nome, "ÿ", "i")
    Nome = Replace(Nome, "y", "i")
    Nome = Replace(Nome, "i", "[iíìîïyÿý]")
    Nome = Replace(Nome, "ó", "o")
    Nome = Replace(Nome, "ò", "o")
    Nome = Replace(Nome, "ô", "o")
    Nome = Replace(Nome, "ö", "o")
    Nome = Replace(Nome, "õ", "o")
    Nome = Replace(Nome, "o", "[oóòôöõ]")
    Nome = Replace(Nome, "ú", "u")
    Nome = Replace(Nome, "ù", "u")
    Nome = Replace(Nome, "û", "u")
    Nome = Replace(Nome, "ü", "u")
    Nome = Replace(Nome, "u", "[uúùûü]")
    Nome = Replace(Nome, "ñ", "n")
    Nome = Replace(Nome, "n", "[nñ]")

    Nome = Replace(Nome, "'", "''")
    Nome = Replace(Nome, " ", "*")   'ACCESS

    Nome = Replace(Nome, "ç", "c")
    Nome = Replace(Nome, "k", "c")
    Nome = Replace(Nome, "c", "[cçk]")
    Nome = Replace(Nome, "z", "s")
    Nome = Replace(Nome, "s", "[sz]")
    Nome = Replace(Nome, "w", "v")
    Nome = Replace(Nome, "v", "[wv]")

   'ACCESS
    Nome = "*" & Nome & "*"
    Nome = Replace(Nome, "**", "*")
    
   'SQLSERVER
   'modifique todos os * por %

    fngMudaNome = Nome
End Function

________________________

Té +

Que NIMB role bons Dados! Emoções

   
mrpieroni
SAO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 29/06/2004 18:05 hs            
Então...
 
A princípio eu pensei em fazer um algorítimo que pegasse letra a letra e fosse verificando com cada palavra do meu Banco de Dados.
Aí, poderíamos colocar que no mínimo 80% das letras teriam que bater.
Por exemplo:
Tecnologia
Tecnologico
 
Mas pode acontecer, e com certeza vai acontecer, das palavras terem o tamanho diferente. Aí ferrou tudo.
 
E mais, se por exemplo eu digitar a palavra errada.
 
Por exemplo,"Tecnoologia"
 
O algorítimo tem que entender que a palavra parecida é "Tecnologia".
 
Tô precisando de idéias para o algorítimo, rsssss...
 
Marcio
 
   
WaldirJr
POÇOS DE CALDAS
MG - BRASIL
ENUNCIADA !
Postada em 30/06/2004 08:11 hs            
Vc possui um BD com algumas palavras?
Poderia Disponibilizar na seção de Trocas ou Mandar no meu e-mail?

________________________

Té +

Que NIMB role bons Dados! Emoções

   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página