Algoritmo, "você quis dizer..."

5 respostas
paulopatto

Caros colegas, boa noite.

Venho mais um avez até vocês questionar, se alguem sabe como implementar em java durante uma busca ele implementar algo como aquele “você quis dizer …” do Google. Vamos supor que quero obter informações sobre o Framework Mentwai e digito no google mentaway. Ele irá retornar a mensagem Você quis dizer mentawai com o link para a pesquisar correta.

Procurei na internet mas nada muito favorável, ou talvez eu não tenha buscado de forma correta. Alias achar até achei mas não da forma que eu queria, achei uma função do COBOL que usava a fonética do idioma inglês e uma do PHP mas nada que resolve-se o problema. Assim se tiver o algoritmo puro bom que eu implemento em várias linguagens mas se tiver função (método heeee progrmação procedural) JAVA tudo bem.

Desde já agradeço.

PS.: Não sei se criei o tópico no forum correto caso não favor moderadores redirecionar para a área correta.

EDIT: Achei algo com o Lucene mas poxa usar um framework inteiro só para isso?

5 Respostas

renzonuccitelli

Bom saber o algoritmo do Google seria um pouco difícil.
Mas se fosse um trabalho que fosse pra eu fazer, tentaria algo do gênero:

  1. Baseado na palavra a ser procurada, veria palavras com letras parecidas (pra isso vc poderia fazer um tipo de função que retornasse um valor de acordo com quanto a palavra é parecida).
  2. Dentre as palavras parecidas, ver qual delas retorna maior resultado para a função criada.
  3. Como poderia ser difícil de definir a função, vc poderia fazê-la com memória, de forma que se o usuário escolhesse a palavra sugerida pelo seu algoritmo, a função retornasse um maior valor da próxima vez que fosse utilizada. Isso traria uma adaptabilidade ao seu algoritmo.

Bom, essa seria a solução que eu faria mais intuitiva. Agora, se vc precisa de algo mais elaborado, poderia fazer uma rede neural para fazer a busca, ou usar alguma outra técnica de IA…

pcalcado

Depende. Você quer sugerir uma palavra dentro do seu conteúdo ou apenas sugerir uma palavra parecida?

paulopatto

Então to meio que desenhando a solução aqui e qualquer coisa eu posto asolução,

Mas ai respondedno o SHOES, é de acordo com o conteúdo do meu Banco de dados.

pcalcado

Paulo, a menos que você esteja criando sua própria solução para aprender como se faz é melhor você usar o Lucene, creio. Não é algo impossível mas dificilmente se justifica perder tempo criando algo assim (que ainda tem que se testado, documentado, etc.) quando você pode usar uma ferramenta que é usada no mundo todo e é livre.

paulopatto

É tens razão Shoes.

Bem então vamos de Lucene! Tópico por mim resolvido se o moderador quiser fechar por mim tudo bem.

Criado 10 de outubro de 2008
Ultima resposta 11 de out. de 2008
Respostas 5
Participantes 3