Funcion google

Funcion google

Postby George » Mon May 01, 2006 12:00 am

Al usar www.google.com, cuando escribimos mal una palabra, por ejemplo

algorithmm, recibimos el siguiente mensaje:

did you mean: algorithm

Algun compañero del foro tendra alguna idea, sugerencia o quizas un algorithmo :) que se pueda implementar en xHarbour para hacer una funcion que haga lo mismo que esa de google.

Saludos


George
George
 
Posts: 725
Joined: Tue Oct 18, 2005 6:49 pm

Idea

Postby goosfancito » Mon May 01, 2006 5:43 am

Estimado,

Se me ocurre:

1) conseguir una base de datos con todas las palabras en castellano.
2) ir buscando caracter por caracter a partir de la izquierda y comparando con la palabras de esta DBF, cuando no encuentra una, avisar la ultima que encontró.

He Dicho.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Postby George » Mon May 01, 2006 4:04 pm

Gossfancito,

Es correcto lo que tu plantea. seria una forma de ir afinando un algorithmo que no parece ser complicado.

Saludos


George
George
 
Posts: 725
Joined: Tue Oct 18, 2005 6:49 pm

Postby George » Mon May 01, 2006 4:33 pm

El problema que hay con usar un diccionario es que esta funcion la quiero implementar con nombres de personas, no con palabras. La base de datos (tabla) de los nombres pudiera incluir nombres en español, ingles, y asiaticos entre otros. No se si la function soundex() pudiera ayudar en algo en este caso. Por ejemplo si yo escribo "lunares" me gustaria generar una lista con apellidos cercanos a "lunares", lo cual me traeria "linares" si este esta en esa base de datos.


George
George
 
Posts: 725
Joined: Tue Oct 18, 2005 6:49 pm

Postby goosfancito » Mon May 01, 2006 4:35 pm

Para las entradas con letras que esten consecutivamente duplicadas:

Yo iria a medida que tomo una letra tomo ademas la de adelante, si son iguales podría ser duplicacion, en tal caso 1 iria al diccionario para ver si esa palabra existe, (por las dudas de multiples idiomas vio?) si no existe entonces volver a la palabra "semilla" y seguir adelante sin tener en cuenta esa duplicacion, esto lo haria para luego decirle al usuario - suponiendo que ingreso en la semilla: aahora "señor estimado amigo mio, usted no habra querido ingresar >>ahora<<"?

Y bueno... asi seguiria, pero lo importante es encontrar una secretaria que comience a pasar las palabras desde el diccionario a una DBF o salir a buscar por ahi, como te decia antes, una DBF con el diccionario de "la real academia".

He dicho.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Postby Antonio Linares » Mon May 01, 2006 7:48 pm

George,

Como te he comentado en el foro en ingés, es preciso implementar un "word rank" del mismo modo que Google usa un "page rank". Así cada palabra tendría un peso que le daría un determinada importancia, y así la propuesta sería válida y no algo sin sentido.

Los mismos usuarios alimentarían el "word rank", como en Google todos lo alimentamos con nuestras búsquedas, selecciones, etc.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42148
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby goosfancito » Mon May 01, 2006 7:55 pm

Concuerdo con vos Antonio,

Me parece mas correcto darle un rango a las palabras, o nombres. En tal caso dicho rango al inicio no tendría validez, a no ser que: por ejemplo, se le de un rango a los nombres mas usado en un determinado idioma.

Esto yo lo vengo queriendo hacer hace tiempo luego que vi el tema de los diccionarios que traen incorporado los CELULARES.

Y el uso lo daria ovbiamente en campos como ser: descripcion de productos, pero por el momento tengo una VAGA idea de hacerlo, nada puesto en práctica aún.

He dicho.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Postby George » Tue May 02, 2006 1:21 am

En el siguiente link hay informacion interesante de como resolver el problema

http://www.merriampark.com/ld.htm


George
George
 
Posts: 725
Joined: Tue Oct 18, 2005 6:49 pm

Postby goosfancito » Tue May 02, 2006 1:48 am

Lei los dos metodos, pero si no me estoy confundiendo te diria que solo
estaría informando cuantos cambios habria que hacer para conseguir
igualar las cadenas, y en realidad lo que estaría buscando es la similitud
de cadenas.

Para mi las cadenas: CASA y Rampa no tienen nada que ver, para esos
algoritmos dirian, para el H ERROR! las cadenas deben ser iguales de longitud

y para L daría ( siendo CASA la semilla ) 4... en sí. no le encuentro utilidad a lo que estaria, tanto yo con mi proyecto, como tampco el tuyo.

He dicho.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 76 guests