En el área de recuperación de información, la idea es obtener una serie de documentos considerados relevantes con respecto a ciertas palabras o expresiones. En términos generales, la idea es encontrar los documentos que más se acerquen a una búsqueda realizada con palabras clave o con expresiones más complicadas (como lenguaje natual propiamente). Ejemplo: una búsqueda en Google. Ponemos lo que estamos buscando y Google muestra una serie de resultados que calcula como importantes para esa búsqueda.
Es evidente que no existe una sola forma de encontrar los documentos, y más que encontrarlos, de asignarles un orden. Es muy fácil tener una colección de documentos y hacer una especie de consulta SQL donde regresemos solamente los documentos que contienen al menos una de las palabras buscadas, pero esto solo nos va a regresar los documentos en el orden que la base de datos los encuentra (o en el que le asignemos en el SELECT). Esta forma de búsqueda es la más simple de todas: búsqueda binaria. Pero, ¿se imaginan que ésta fuera la técnica que Google usara? ¿Cuántos documentos no tendríamos que revisar hasta encontrar (si es que lo hacemos) uno que en verdad contiene la información que se desea encontrar?

Google reporta 850,000 resultados para la búsqueda “Vacaciones en Cancún”, pero en la realidad solo muestra hasta el número 1,000. No obstante, son pocas y contadas las veces en las que revisamos más de 100 documentos. El orden importa, y es justamente lo que la recuperación de información trata de resolver.
Una búsqueda binaria no analiza más allá de si un documento contiene o no una o varias palabras; por tanto, así como regresa documentos en los que la palabra X aparece 1 vez, también regresa otros donde aparece 100 veces, por poner un ejemplo. ¿Cuál documento es entonces más importante?
La asignación de orden se puede realizar de distintas maneras: fecha, autor, número total de palabras en el documento, etc. Entre las muchas formas de llevar a cabo esta tarea, existe la de asignarle peso a las palabras, es decir, de tratar de calcular qué palabras son más relevantes en un texto, y con base en eso decidir cuál documento es más probable que contenga la información buscada.
Continue reading “TF-IDF: pesando las palabras”