Bienvenidos sean a este post, hoy veremos como es este procedimiento para la indexacion.
Cuando hablamos de tokenizacion, nos referimos a dividir algo en la piezas mas pequeñas que se puedan. Esto, por ejemplo, se realiza al momento de la compilacion. Porque toma una linea del codigo y la divide en varias partes:
int a = 42;
Y la version tokenizada de esto es:
int, a, =, 42, ;
Esto no es simplemente dividirlo con espacios sino en elementos individuales que permiten al compilador manejarlos de mejor manera en estructura de datos. Esta misma conducta es realizada por el engine de busqueda en los documentos. Si bien aca no entraremos en muchos detalles de como se realiza, si deben saber que todos los token que se crean al momento de dividir el documento son normalizados. Es decir, todas las palabras se pueden convetir a minusculas para evitar diferencias entre ellas, como se ve en la siguiente tabla:
| Palabra | ID |
| el | 1, 3, 12, 34, 45, 56 |
| unico | 1, 10, 40, 123 |
| sistema | 1, 13, 21, 36, 45, 51, 65, 72, 112 |
| seguro | 1, 4, 11, 15, 21,, 33, 50 |
| … el resto de palabras |
Pero que sucede si el usuario ingresa informacion de otra forma a la que tenemos tokenizada? En este caso, si lo buscamos directamente no lo encontraremos a pesar de existir. Como se soluciona esto? De una manera muy facil, normalizando el texto ingresado por el usuario. Volvamos a ver el texto que usamos como documento de este post:
El único sistema seguro es aquél que está apagado en el interior de un bloque de hormigón protegido en una habitación sellada rodeada por guardias armados
En este texto tenemos algunas palabras como El, el cual es un articulo y estara absolutamente en todos los documentos. Y ni hablar de preposiciones como en, de, un, etc. Entonces para evitar que haya un exceso de tokens, se establece como regla que estos deben ser omitidos y solamente dejar palabras. Por lo tanto, podemos dejar la tabla de la siguiente manera:
| Palabra | ID |
| unico | 1, 10, 56, 75, 125, 243 |
| sistema | 1, 4, 22, 43, 68, 100 |
| seguro | 1, 7, 22, 33, 54, 75, 90, 130 |
| aquel | 1, 12, 25, 30, 45, 80, 110 |
| apagado | 1, 9, 22, 41, 52, 67, 91, 100 |
| interior | 1, 7, 11, 39, 47, 68 |
| … |
Como podran suponer y ver en la tabla, cuando hablamos de normalizar no solo nos referimos a convertirlas en minusculas sino de tambien de eliminar ciertos aspectos como son los acentos, para que si el usuario no los ingrese tambien puedan ser encontrados. Por esto, la tokenizacion es el primer paso para poder realizar la indexacion de los documentos pero al margen de esto, tambien se pueden realizar otras acciones para mejorar la experiencia de busqueda para el usuario.
En resumen, hoy hemos visto como es la tokenizacion de documentos, en que consiste, como nos beneficia, y algunas particularidades mas para mejorar la experiencia de busqueda del usuario. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
