Logo de La Coctelera

Garbage In, Garbage Out

Diseño web, tecnología, e internet.

15 Junio 2006

Soundex: Quizás quiso decir... (Did you mean...)

¿Os habéis preguntado alguna vez qué algoritmo emplea Google cuando te sugiere una búsqueda que has escrito mal?

Por ejemplo, si te equivocas escribiendoy en lugar de teclear "libros", buscas "lirbos", Google te saca el siguiente mensaje:

Quizás quiso decir: libros

Bien, no sé el algoritmo exacto que Google emplea, pero yo he encontrado uno que creo que sienta la base de todos: el algoritmo Soundex (mejor ver la explicación en ingles del algoritmo)

Básicamente, trata de indexar palabras parecidas a través de su pronunciación. El psudocódigo es el siguiente:

1. Retain the first letter of the string
2. Remove all occurrences of the following letters, unless it is the first letter: a, e, h, i, o, u, w, y
3. Assign numbers to the remaining letters (after the first) as follows:
* b, f, p, v = 1
* c, g, j, k, q, s, x, z = 2
* d, t = 3
* l = 4
* m, n = 5
* r = 6
4. If two or more letters with the same number were adjacent in the original name (before step 1), or adjacent except for any intervening h and w (American census only), then omit all but the first.
5. Return the first four bytes padded with 0.

Y aquí hay una implementación en Java y otra implementación en Java.

servido por gigo 4 comentarios compártelo favorito

4 comentarios · Escribe aquí tu comentario

jorge

jorge dijo

Hola gigo,

Soy el del JSF :)

Que te recomiento también si estas interesado en estas cosas mires Lucene de apache hace lo mismo que ese algoritmo has encontrado.

En Lucene in action podras ver que posee un analizador sintactico para varios idiomas que recoge esa funcionalidad que nos muestras.

Un saludo

16 Junio 2006 | 02:26 PM

gigo

gigo dijo

Muy bien, muchas gracias.
Le echaré un vistazo en cuanto pueda.

16 Junio 2006 | 04:38 PM

Miguel

Miguel dijo

Habra alguno haco en .net??

Saludos
miguel

12 Noviembre 2007 | 09:48 PM

Escribe tu comentario


Sobre mí

Avatar de gigo

Garbage In, Garbage Out

ver perfil »
contacto »
Desarrollador web con ganas de aprender y enseñar, porque aún queda mucho por aprender y por enseñar. Uso esta bitácora para hacer mis apuntes profesionales y de paso contribuir a ayudar a mis compañeros de, ésta, mi profesión. [guiño]

Sindicación

Buscar

suscríbete

Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):

¿Qué es esto?

Crea tu blog gratis en La Coctelera