Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Patrique

[Resolvido] você quiz dizer...

Recommended Posts

Fala ae galera, você certamente já devem ter se deparado com aquela frase "você quiz dizer" lá no google, ela aparece sempre que você erroneamente coloca uma palavra, dai o google sugere uma palavra que provavelmente você tentou escrever.

 

Estou quebrando a cuca aqui, poré não consigo achar uma lógica ou uma maneira de começar a fazer uma função que faça isso.

 

Alguém ae, sabe por onde começar, como fazer.... tem alguma idéia?

 

desde já agradeço,

 

[]'s

Patrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma das formas é você ter uma tabela para armazenar o maior número de relevância das palavras pesquisadas.

 

No caso a palavra com maior relevância de resultados é sugerida mesmo que a busca tenha retornado algum resultado para a palavra buscada.

 

Se não me engano banco de dados, como SQLServer e Oracle, possuem funções para facilitar esse tipo de comparação entre palavras parecidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um legal, mais no caso eu gostaria de saber se existe ou como eu posso fazer uma função no asp que faça este tipo de comparação e imprima a palavra mais lógica, no caso não queria depender do bd para fazer isso.

 

Você saberia me dizer se no proprio asp existe alguma função que seja capaz de fazer esta comparação.

 

Sera que o asp é capaz de fazer este tipo de ação?

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao existe nao

 

isso camba mais para o lado de IA pois as vezes troca-se uma unica letra e muda completamente a busca

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, função nativa nunca vi. Talvez já exista uma função pronta, teria que pesquisar.

 

Sobre usar no banco de dados, são várias possibilidades. Vamos supor que você vai comparar a 100 mil palavras. Se você fizer direto na execução do script, vai ficar lento e pode até cair por timeout.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu nao sei, mas em termos logicos o google deve ter uma base de palavras provaveis e ae quando alguem digita algo na caixa de pesquisa deve ir procurar na bd nessa mesma base se existe uma palavra com quase todas as letras escritas, ou seja por exemplo o usuario escreve astournautsa, entao o sistema vai a uma tabela por exemplo onde contem astronauta e faz a comparacao com a palavra escrita e entao como a palavra e identica escreve sera que nao quis dizer astronauta? rsrsrsrs nao sei se e assim que fazem mas poderia ser

Compartilhar este post


Link para o post
Compartilhar em outros sites

no caso do google deve sim existir essa base comparação gigantesca

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um saquei, o problema é que estava pensando em fazer isso utilizando mysql como bd, no caso eu pensei da mesma maneira do webmind, no caso a minha base de dados não iria ser gigantesca pois seria apenas para um guia comercial, dai o sistema verificava letra por letra se encontrasse alguma igual saberia que aquela palavra existe, se não encontrasse iria verificar uma palavra no bd com a maior compatibilidade da palavra escrita pelo usuário, caso encontrasse apresentava a sugestão, caso não achasse não mostraria nada.

 

O problema nesta caso é fazer o sistema comparar o máximo de compatibilidade entre a palavra buscada e a palavra com maior compatibilidade achada no bd, certamente a que tivesse maior compatibilidade era a verdadeira.

 

Vou continuar pesquisando, caso encotre algo eu posto aqui, tive uma idéia não sei se vai funfar qualquer coisa eu posto aqui.

 

Tópico Resolvido!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara pra falar a verdade ainda nem comecei a fazer, porém vou fazer utilizando texto, ontem estive tentando bolar alguma lógica mais é sinistro ehheheheh, melhor mesmo seria que o mysql tivesse uma funçã propria para fazer isso, como o sqlserver e o oracle assim como o hargon falou.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai desisto, mais desta maneira não ficaria 100% deste jeito muitas palavras seriam iguinoradas sendo assim não teria uma compatibilidade boa.

 

Eu estou pesquisando e achei a seguinte função em php

 

<?PHP
$array = array('crayo','cachorro','cadela','cão','carinho','carneiro','carne','cor','leonardo','leopardo','guepardo');
print('Você quis dizer: <b>'.voce_quis_dizer('l30nard0',$array).'</b> ?');
function voce_quis_dizer($output,$library){
   for($i=0;$i<count($library);$i++){
	  $suggestion[$i]['proximity'] = levenshtein(soundex($output),soundex($library[$i]))*100/strlen($library[$i]);
	  $suggestion[$i]['word'] = $library[$i];
   }
   sort($suggestion);
   return $suggestion[0]['word'];
}
?>

Neste caso ela faz uma contagem de compatibilidade de letras em uma palavra e em base disso seleciona a palavra mais compativel e da como sugestão, note que esta função é feita nativamente pelo php não precisando intercalar com o bd.

 

O canal agora é fazer uma função que faça isto em asp hehehe, ser possivel eu tenho quase a certeza que é, to na luta na pior das ipoteses terei que utilizar php para gerar um xml da sugestão e fazer a pesquisa das palavras no bd e o asp para pegar o resultado no xml e jogar ao user.

 

Bem que o google podia criar um webservice disso, seria uma mão na roda para muitos programadores já que no bd do google certamente existe uma infinidade de palavras e concerteza o resultado é o mais proximo possivel.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa funcao em php ta errada

 

se você escrever 'cravo' ele retorna 'carinho'

e deveria retornar crayo por ser a mais proxima

 

 

deve ter alguma coisa em asp, so precisa procurar

vou ver se encontro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste exemplos de palavras a ser buscadas... rs

 

Aos interessados, 1.000 pelo script

Nem comento. ¬¬

Compartilhar este post


Link para o post
Compartilhar em outros sites

hahahahahah tu quer demais né hahahaha vai lá no google e veja se ele retorna algum resultado rsrsrsrsrsrs

 

ele serve mesmo é mais para os analfas hehehehe por exemplo se o candango digita "dijita" o sistema corrigi perguntando se ele não quiz dizer "digita" sacou sendo assim a busca retorna valores validos.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

rs.. tentei aqui. Sem sucesso hein. Todas as palavras retornou como não encontrado e nem sugeriu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.