UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN

Documentos relacionados
Bases de Datos Textuales, Una Herramienta en el Trabajo de la Recuperación de Información

Modelos Clásicos de RI. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides

Sistema de Recuperación de Información (SRI) UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides

Análisis y Recuperación de Información

Motores de Búsqueda Web Tarea Tema 3: Limitaciones de la recuperación de información tradicional en la Web

Índices de RI. UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides

Minería de Datos Web. Cursada 2018

Introducción a Minería de Texto. Fabián Latorre

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

Recuperación de información

Modelos de RI. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

Modelos Alternativos de RI. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides

Sistemas de Archivos. Unidad 2 Almacenamiento y Estructuras de Archivos

Archivos Indice. Indexación y. Asociación. Conceptos Básicos Indices Ordenados Arboles. Asociación. Docente: Albert A.

Registros Un campo: Registro:

Análisis Global y Local. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides

Ingeniería en Computación

Compiladores: Ambientes para Ejecución. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón

Bases de Datos Multimedia

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

Indexación y Asociación

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Tarea 5 Gestión de Archivos

localizar de un dato con un acceso directo y en una sola comparación de la llave. HASH

Implementación de Máquinas de Búsqueda I: Indices y Compresión

Capítulo 3. Clasificación en Memoria Secundaria

Operaciones sobre Consultas. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides

Análisis y Recuperación de Información

La organización lógica y física de los sistemas de archivo y sus mecanismos de acceso de archivo.

Sistema Manejador de Bases de Datos Paralelas. Integrantes: Stephanie Piñero Fátima Santos Rosangela Sarno

BASE DE DATOS Modelos de Datos

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES

Métodos de Diseño y Análisis de Experimentos

Estructuras Dinámicas de datos.

BASES DE DATOS DISTRIBUIDAS

J. Vilares El Modelo Probabilístico: Características y Modelos Derivados p. 1

Complejidad computacional (Análisis de Algoritmos)

GLOSARIO DE TÉRMINOS

UNIVERSIDAD CARLOSIII DE MADRID. BUSCADOR DE ESCRITORIO MULTIMEDIA: CIII Desktop Search

SISTEMAS OPERATIVOS: SISTEMAS DE FICHEROS. Ficheros

1 INTRODUCCIÓN AL PROYECTO

Algoritmos y Estructuras de Datos Ingeniería en Informática

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios

La Máquina de Acceso Aleatorio (Random Access Machine)

Análisis y Recuperación de Información

Introducción al Procesamiento de Lenguaje Natural. Grupo PLN - InCo 2017

OPTIMIZACIÓN DE CÓDIGO

Sistemas Operativos Distribuidos

EXAMEN EXTRAORDINARIO Informática y Computación IV

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

PROCESAMIENTO DISTRIBUIDO

TIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software:

MicroSoft Access (2 de 4)

Taxonomía de las arquitecturas

Métodos de Ordenamiento. Unidad VI: Estructura de datos

1. Crawler. 1.1 Qué es un Crawler. 1.2 Cómo trabaja

Almacenamiento y gestión de datos

Asignatura: Informática Documental Código: Año académico: Centro:

Gestor de bases de datos MicroSoft Access (2 de 4)

Sistemas Operativos. Curso 2016 Sistema de Archivos

Redes y Sistemas Complejos

Capítulo 5. Conclusiones

TEMA 0 REPASO DE CONCEPTOS BÁSICOS TEST PARA AUTOEVALUACIÓN DEL ALUMNO

Según estos párrafos, responder en un documento de texto de Google Drive las siguientes preguntas:

Introducción a las Redes Neuronales

CAPÍTULO 6 PROGRAMACIÓN DINÁMICA. Programación Dinámica

CI-5313: Arquitectura y Administración de Base de Datos I Apuntes del curso INDICES (II y III)

Unidad 2. Bases de Datos Relacionales

webir /08/2018

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

Diagrama de Flujo de Datos (DFD)

Análisis de algoritmos

UNIDAD I. Universidad del Zulia Costa Oriental del Lago. Conceptos Básicos

Manual de prácticas del Laboratorio de Dispositivos de Almacenamiento y de Entrada/Salida

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Estructura de Google

Sistemas operativos. Tema 10: Sistemas de ficheros

Procesamiento de documentos XML.

Modelo y Análisis 179

Capítulo 8. Árboles. Continuar

OPENCOURSEWARE REDES DE NEURONAS ARTIFICIALES Inés M. Galván José M. Valls. Tema 6: Redes de Neuronas Recurrentes

Cristian Blanco

Tareas de la minería de datos: clasificación. CI-2352 Intr. a la minería de datos Prof. Braulio José Solano Rojas ECCI, UCR

Módulo 1. Introducción a los lenguajes de programación

INSTITUTO POLITECNICO NACIONAL SECRETARIA ACADEMICA DIRECCION DE ESTUDIOS PROFESIONALES EN INGENIERIA Y CIENCIAS FISICO MATEMATICAS

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas

CC52D - DCC/Univ. de Chile

Ideas básicas del diseño experimental

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 3. Estructuras de Almacenamiento. Básicas. Definición y Manejo.

Administración de sistemas gestores de bases de datos

Buscador de escritorio multimedia CIII Desktop Search

Transcripción:

UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN IMPLEMENTACIÓN DE UN MOTOR DE BÚSQUEDA PARA EL DOMINIO UMAG.CL Bozydaj Andrés Biskupovic Trujillo 2008

La presente Memoria de Titulación ha sido aprobada con la siguiente calificación: Bozydaj Andrés Biskupovic Trujillo Memoria : Examen de Título : Nota Final : Dra. Patricia Maldonado Cárdenas Directora Departamento De Ingeniería En Computación 30 de abril de 2008 2

UNIVERSIDAD DE MAGALLANES FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN IMPLEMENTACIÓN DE UN MOTOR DE BÚSQUEDA PARA EL DOMINIO UMAG.CL Trabajo de titulación presentado en conformidad a los requisitos para obtener el título de Ingeniero en Computación e Informática.. Profesor Guía: José Canumán Bozydaj Andrés Biskupovic Trujillo 2008

RESUMEN Desde su creación, la Web ha vivido un acelerado crecimiento, convirtiéndose en un gran recurso de información. Debido a esto se hace muy complicado recuperar la información si no se dispone de una herramienta y/o modelo para lograrlo. La principal herramienta para la recuperación de la información es una máquina o motor de búsqueda. Por esta razón, en esta tesis se desarrolló y implementó un modelo de motor de búsqueda para recuperar los documentos del dominio que alberga la Web en la Universidad de Magallanes. La principal motivación para este trabajo fue cubrir la ausencia de un buscador de este tipo en la Web de esta universidad. Para entender los conceptos necesarios a la hora de implementar primero se estudió la teoría de cómo está compuesto y cómo funcionan los motores de búsqueda en general, lo que se describe en el comienzo del presente trabajo. Luego para la implementación, se usó un sistema de recolección de información, que genera una colección de páginas, que luego de ser analizadas, parametrizadas y rankeadas, dieron paso a formar un índice invertido y así posteriormente consultar sobre los documentos de la colección. La eficacia de esta herramienta fue evaluada con distintos tipos de consultas. Las que permitieron descubrir resultados interesantes y de gran valor para realizar mejoras tanto en la estructura como en los algoritmos utilizados. i

Índice general I. Introducción 1 1.1. Motivación..................................... 2 1.2. Un poco de historia................................ 2 1.3. Recuperación de la información......................... 3 1.4. Vista lógica de los documentos y usuario.................... 4 1.5. Motor de búsqueda................................ 4 1.6. Objetivos..................................... 6 II. Marco Teórico 7 2.1. Recuperación de la información......................... 8 2.2. Caracterización de la Web............................ 9 2.2.1. Métodos de muestra........................... 9 2.2.2. Dinámica de la Web........................... 10 2.2.3. Estructura de los Links.......................... 12 2.3. Modelos...................................... 14 2.3.1. Modelo Booleano............................. 15 2.3.2. Modelo Vectorial............................. 16 2.3.3. Modelo Probabilístico.......................... 18 2.3.4. Comparación de los modelos clásicos.................. 19 2.3.5. Modelos Alternativos........................... 21 ii

2.3.6. Expansión de Consultas......................... 22 2.3.7. Retroalimentación............................ 23 2.3.8. Evaluación: Precisión y Recuperación.................. 24 2.4. Indexación y consulta de páginas........................ 25 2.4.1. Índice Invertido.............................. 26 2.4.2. Consultas en Modelo Booleano..................... 28 2.4.3. Consultas en Modelo Vectorial...................... 29 2.4.4. Consultas con frases........................... 30 2.4.5. Espacio extra: Ley de Heaps - Ley de Zipf............... 31 2.4.6. Construcción del Índice Invertido.................... 33 2.4.7. Índices invertidos distribuidos...................... 35 2.4.8. Generación Distribuida de Índices Invertidos.............. 36 2.4.9. Otros tipos de índices........................... 39 2.4.10. Ranking basado en texto......................... 44 2.5. Conectividad basada en el ranking........................ 45 2.5.1. Consulta dependiente del ranking.................... 46 III. La Web Chilena 49 3.1. Características de la Web Chilena........................ 50 IV. Un motor de búsqueda para umag.cl 53 4.1. Recolección en umag.cl.............................. 55 4.2. Normalización................................... 58 4.3. Ranking...................................... 59 4.4. Indexador..................................... 61 4.5. Buscador...................................... 63 4.5.1. Memoria compartida........................... 64 4.5.2. Proceso de búsqueda:........................... 65 iii

4.6. Comportamiento y resultados.......................... 66 V. Conclusiones 72 5.0.1. Trabajos Futuros............................. 74 VI. Anexo 75 6.1. WIRE....................................... 76 6.2. Archivos - Scripts................................. 78 iv

Índice de figuras 2.1. Ejemplo de un grafo aleatorio y scale-free, cada grafo tiene 32 nodos e igual número de enlaces................................. 13 2.2. Estructura macroscópica.............................. 14 2.3. Coseno del ángulo entre los dos vectores.................... 17 2.4. Cercanía entre términos que aparecen en los mismo documentos....... 22 2.5. Precisión - Recuperación............................. 24 2.6. Procesos off-line y on-line............................. 25 2.7. Índice invertido simple............................... 27 2.8. Restricciones.................................... 29 2.9. Búsqueda de información sobre las consecuencias de la crisis de los misiles cubanos en el desarrollo de la guerra fría..................... 30 2.10. Ejemplo: Camiones de ocasión [con errores].................. 31 2.11. Ley de Heap - Ley de Zipf............................ 33 2.12. Mezcla de índices parciales............................ 35 2.13. Mezcla de índices parciales............................ 36 2.14. Pasos de mensajes entre procesadores para generar el índice invertido central. 37 2.15. Indexación de la Web: (1) Se analizan y extraen los links de las páginas. (2) Se crean índices parciales en caso de ausencia de memoria principal. (3) Los índices son fusionados para formar el índice invertido completo. (4) Análisis off-line para rankear los enlaces.......................... 39 v

2.16. Árbol de sufijos - Arreglo de sufijos........................ 40 2.17. Sufijos del texto.................................. 41 2.18. Arreglo de sufijos................................. 42 2.19. Arreglo de sufijos, búsqueda........................... 42 2.20. Arreglo de sufijos usando supraíndice...................... 43 2.21. Arreglo de sufijos usando el vocabulario como supraíndice........... 43 4.1. Diagrama del diseño de un motor de búsqueda para umag.cl......... 54 4.2. Distribución de los enlaces en umag.cl...................... 57 4.3. Normaliza1: normaliza el texto.......................... 59 4.4. Normaliza2: separa texto............................. 60 4.5. Proceso de búsqueda. 1: se recupera los términos de la consulta usando CGI. 2: búsqueda binaria de cada uno de los términos y son almacenados en estructura respuesta. 3: Se ordenan de acuerdo a relevancia y cantidad de aciertos de los términos para luego entregar respuesta HTML.................. 65 vi

Capítulo I Introducción

Introducción 1.1. Motivación La información, en su significado general es un conjunto de datos organizados que proporcionan sentido o significado a alguna cosa, pero para esto primero debe ser localizada. Cuando se dispone de un universo con gran cantidad de datos estructurados, en forma de información, y solo se necesita un determinado tema, surge el problema de como alcanzar lo deseado entre basto lote de recursos. Es por esto que surge la ciencia, recuperación de la información, que cubre desde la misma recolección hasta la búsqueda de información en particular, tanto en documentos, bases datos, imágenes, etc. Para este caso, el interés será la recuperación de la información en los documentos de la Web, y en forma particular, la información existente bajo el dominio umag.cl. Siendo que este dominio no posee de una herramienta de búsqueda, se ha generado la motivación de implementar un motor de búsqueda. De esta manera el presente informe dará cuenta de los pasos a seguir en la implementación, como también los conceptos, estructuras de datos y algoritmos a utilizar. 1.2. Un poco de historia La tecnología, motor de búsqueda ha tenido que mejorar rápidamente debido al crecimiento de la Web. En 1994, uno de los primeros motores de búsqueda, el World Wide Web Worm (WWWW) tuvo un índice de 110,000 páginas Web y documentos Web accesibles. Así, en Noviembre de 1997, se indexaba de 2 millones de páginas Web (WebCrawler) a 100 millones (de Search Engine Watch). Y para el año 2000 se predecía, que la Web contendría sobre mil millones de documentos [2]. Y en forma paralela, el número de consultas en los motores de búsqueda crecía muchísimo. En Marzo y Abril de 1994, el World Wide Web Worm recibió como promedio unas 1500 consultas por día. En Noviembre de 1997, Altavista 2

aseguro haber manejado 20 millones de consultas por día, aproximadamente. Teniendo en cuenta el creciente número de usuarios en la Web, y los sistemas automatizados de consulta en buscadores, para el 2000 ya se preveía alcanzar los cien millones de consultas por día. Y en la actualidad, Google uno de los buscadores mas popular y usado recibe mas de 200 por día, teniendo en cuenta que hoy en día existe una gran cantidad de buscadores. Todo lo anterior habla por si solo de la creciente cantidad de documentos y usuarios que existen en la actualidad, y por lo mismo nace la necesidad del estudio de recuperación de la información. 1.3. Recuperación de la información Es una ciencia, también, y mas conocida en ingles como information retrieval (IR), la cual consiste básicamente en la búsqueda de información en documentos, búsqueda de los mismo documentos, o datos dentro de los documentos. Considerada un estudio interdisciplinario, pues cubre muchas disciplinas, tales como la sicología cognitiva, la arquitectura de la información, diseño de la información, el comportamiento humano frente a la información, la lingüística, la semiótica, informática, entre otras. Viendo la recuperación de la información como un proceso de búsqueda, este proceso tiene como herramienta única y principal, un motor de búsqueda, a quien a través de una consulta se le solicita una determinada información para así en forma respectiva responderla. La Web crea nuevos desafíos para la recuperación de la información. La cantidad de información en la Web va aumentando rápidamente, como también su número de usuarios. La personas en general acostumbran a navegar pasando de enlaces a enlaces, o usando la respuestas de los motores de búsqueda. Los distintos enlaces que entrega un buscador para una respectiva consulta tienden a ser muy subjetivos en su relevancia. Es por eso que la recuperación de la información se enfoca en entregar respuestas con buena calidad. 3

1.4. Vista lógica de los documentos y usuario Teniendo en cuenta que a nivel de computadores, para que un documento presente un sentido de lenguaje natural, este debe ser expresado como un conjunto de palabras. La efectividad en la recuperación de la información esta directamente ligada tanto al usuario como a la vista lógica que tienen los documentos. Por parte del usuario pueden existir dos sistemas de recuperación de la información, a través de exploración o por búsqueda. En el primer caso, esto es, el usuario dispone de directorios con nombres, normalmente separados por tema, luego el usuario para encontrar lo que busca debe ir explorando hasta llegar a lo que busca, siendo esto una analogía a la forma en que ordenamos nuestros archivos en los distintos directorios de los sistemas operativos. Y para el sistema de búsqueda, el usuario debe abstraerse a la vista lógica de los documentos, es decir, pensar en un conjuntos de palabras, y de esta manera a través de palabras claves el usuario debe tratar de ubicar lo que desea en las respuestas de un buscador. Si se considera una gran cantidad de documentos la primera opción se hace muy tediosa y costosa, mientras que la segunda es mucho mas eficiente en tiempo. Este trabajo se focalizar en la segunda opción. 1.5. Motor de búsqueda De igual modo que se ha mencionado antes, el motor de búsqueda es la herramienta por la que es posible recuperar información de la Web, para este caso. De manera general, el motor de búsqueda se separa en 3 partes o procesos: Recolección Estructuración Búsqueda 4

Recolección: El primer proceso consiste en recorrer y conocer toda la información que se desea abarcar. Para esto primero se debe definir nuestro universo de información, es decir, decidir cuanta información será tomada en cuenta y considerada como el total, por ejemplo el universo podría ser, solo el dominio.cl, o solo los documentos bajo.org, o como para el caso de este proyecto, solo los documentos bajo el dominio.umag.cl. Una vez definido el dominio, se procede a copiar toda la información de igual forma en que esta estructurada, para su posterior análisis. En el capítulo 2 se tomara nuevamente el tema con mayor énfasis describiendo las características que tiene la Web. Estructuración: Este proceso se realiza una vez terminada la recolección, y debe realizar el análisis de los documentos descargados. Dentro del análisis, existen funciones de quitar etiquetas HTML para el caso y contenido demás que correspondan a la información en si, quitar palabras de baja relevancia, formar estructuras de datos con la información de manera de poder ser guardada con un formato específico, para luego poder ser leídas fácilmente. Esta etapa será estudiada en el capítulo 2 y descrita con mayor profundidad en el capítulo 3. Búsqueda: Este tercer proceso, es el encargado de llevar acabo la búsqueda de la información, dentro de la estructuras formadas en la etapa anterior. Esta es la única parte del motor de búsqueda que interactúa en forma directa con el usuario, ya que el procesamiento y ejecución es en tiempo real o online. En el capítulo 2 se explican los algoritmos de búsqueda y métodos que se usan para la implementación de motores de búsqueda. Y en el capítulo 4, el método que fue usado para este trabajo. Este informe en el capítulo 2 da inicio a la descripción del universo de los documentos, la Web; revisando el modelo que tiende a seguir, su distribución, cualidades, la caracterización de la Web, y también cada uno de los factores que deben de ser considerados para realizar una buena muestra, a la hora de recolectar la información. Luego se estudiara el motor de 5

búsqueda y cada una las 3 etapas, describiendo cuales son sus características, procesos, funciones, algoritmos y su forma general de funcionar. En el capítulo 3, se vera como es la Web en Chile. Y finalmente en el capítulo 4, se será mas específico, explicando la implementación del motor de búsqueda en cuestión y los resultados obtenidos. Para el capítulo 4 se ha dejado, el estudio y explicación de este caso particular de motor de búsqueda implementado en el presente trabajo. Y finalmente en el capítulo 5 se obtienen las conclusiones del caso. 1.6. Objetivos Con el fin de acotar y declarar posibles metas de la implementación del motor de búsqueda, se plantean los siguientes objetivos: Objetivo General: Implementar un Motor de búsqueda para el dominio umag.cl, que permita la recuperación de información de los documentos HTML que aloja este dominio. Y a la vez, servir como herramienta para análisis y gestión de la Web bajo umag.cl. Objetivos Específicos: Implementar un algoritmo de búsqueda que responda cada una de las consultas, entregando resultados en función de la relevancia de un documentos con respecto a resto de los documentos. Permitir consultas de múltiples términos 6

Capítulo II Marco Teórico

Marco Teórico 2.1. Recuperación de la información Para empezar cabe aclarar las diferencias existentes entre recuperar datos (RD) y recuperar información (RI). Para el primer caso es simple, los datos acostumbran a tener un formato y orden específico el cual se conoce, mientras que la información no tiene una estructura clara y tampoco es fácil crearla. Cuando se recuperan datos, existe una respuesta exacta, pero en la recuperación de la información no existe una respuesta correcta. El la RI, cada documento puede ser mas o menos relevante, y esto puede cambiar según el usuario y la situación Para la RD, lo que prima es la eficiencia (velocidad de la respuesta y espacio), mientras que en RI, lo que mas importa es la calidad de la respuesta. Dado que comprender cabalmente el significado de un texto en forma automática es imposible en la practica, RI busca una aproximación a responder lo que el usuario busca. El problema formal: El problema de RI se puede definir como: Dada una necesidad de información (consulta + perfil del usuario +...) y un conjunto de documentos, ordenar los documentos de mas a menos relevantes para esa necesidad y presentar un subconjunto de los mas relevantes. Como solución se plantean tres etapas 1. Tomar una buena muestra de la Web. 8

2. Diseñar algoritmos y estructuras de datos para dar orden a la información. 3. Elegir un modelo que permita calcular la relevancia de un documento frente a una consulta, con el uso de la estructuras implementadas. 2.2. Caracterización de la Web 2.2.1. Métodos de muestra Cuando se desea tener una colección de estampillas, para evitar las repeticiones se debe saber cual tenemos y cual no, también importa el tamaño, su origen, por lo que existe todo un seguimiento de como llevar a cabo una buena colección. De la misma manera sucede cuando se realiza un censo de población, se mantiene un registro de los hogares contados, tampoco se puede entrevistar un mismo hogar en forma simultanea, aunque los hogares pueden ser muy similares, estos son únicos, etc. De una forma muy similar ocurre con la recolección en la Web, debido a que una de las mayores dificultades en la caracterización de la Web es como obtener una buena muestra. Ya que hay pocas páginas relevantes en un gran conjunto de páginas no importantes, no basta con elegir una URL en forma aleatoria. Muchas veces aplicaciones o páginas con poca relevancia deben ser descartadas, es por esto ultimo que la asignación de importancia es un tema muy delicado de tratar, inclusive cuando solo tenemos un tema a tratar. Principalmente se distinguen dos métodos para el muestreo de páginas Web: Muestreo Vertical, se realiza un recorrido de las páginas de acuerdo a sus dominios. Los dominios se traducen en una estructura jerárquica, de tal modo que el muestreo se hace en niveles, por ejemplo, por países luego por tipo de dominios de cada país, edu,org etc.. así sucesivamente... 9

Muestreo Horizontal, criterio de muestreo que no se basa en los nombre de dominio. En este caso, existen dos tipos de aproximación a la información a ser recolectada: usando los registros (logs) de los servidores proxy de grandes organizaciones o ISP (Proveedor de Servicio a Internet); y la segunda usando un Web Crawler. Estas dos opciones presentan ciertas ventajas y desventajas: cuando se monitorea un servidor proxy es fácil de encontrar las páginas mas populares, pero su visita periódica es imposible ya que esta depende de los usuarios; por otro lado usando un Crawler la popularidad de las páginas debe ser estimada a priori, pero si pueden ser fácilmente revisadas. 2.2.2. Dinámica de la Web Existen dos áreas en la dinámica de la Web: primero, el estudio de como crece la Web; y segundo, el estudio de la actualización de sus sitios [8]; en este caso nos enfocaremos en la frescura de la Web, es decir, en términos de la creación, actualización y eliminación de documentos. Con respecto a como la Web crece existe un modelo estudiado por Huberman y Adamic [8]. Cuando se estudia la actualidad de los documentos, la información es obtenida por repetidos accesos a un conjuntos de páginas en un tiempo determinado. Para cada página p y cada visita, se dispone de la siguiente información: La hora de acceso a la página, time-stamp : visit p. La hora de la ultima modificación del documento (dada por la gran mayoría de los servidores Web). El texto de la página, el cual puede ser comparado con copias antiguas, para detectar cambios: modified p La siguiente información puede ser reconocida a la hora de revisar una página en un periodo corto de tiempo: 10

La hora de la primera aparición de una página : created p. La hora en que la página o documento dejo de ser alcanzable : deleted p. Según Koehler [8] las páginas que son inalcanzables en el futuro, serán alcanzables por lo cual el prefieres llamarlas páginas en coma. en vez de páginas muertas En todo caso los resultados antes mencionados son solo estimaciones de los valores actuales de una página determinada ya que estos son obtenidos por asignación de eventos y no notificaciones de eventos, por lo cual una página Web que es accedida dos veces puede haber cambiado mas de dos veces entre medio de las 2 revisiones. Estimación de frescura y vida Existen diferentes métricas relativas al tiempo que nos dan información de una Web, las mas usadas : Age : visit p modified p. Lifespan: deleted p created p. Número de cambios durante el trecho de vida: changes p Promedio de cambios : lifespan p /changes p. Una vez teniendo los valores anteriores se pueden obtener útiles mediciones de por ejemplo: Distribución del intervalo de cambios. Promedio del trecho de vida de las páginas La media de vida de las páginas Web, llamado vida promedio 11

2.2.3. Estructura de los Links Con respecto a las redes de computadores, Barabási [8] dice Tal como el diseño del ser humano, las redes emergentes parecen tener mas en común con la célula o el sistema ecológico que con el reloj suizo. La representación gráfica de las conexiones entre sitios web tiene una topología escalarlibre (Scale-free) y una estructura macroscópica que es diferente a la distribución completamente aleatoria de un grafo. Por esto ultimo un Web Crawler debe estar dotado de capacidades especiales para la recolección. Redes Scale-Free, Escalarmente libres Las redes scale-free, a diferencia de las redes aleatorias, se caracterizan por tener una distribución desigual constante de sus enlaces. Estas redes han sido tema de estudio por Barabásí [8], y son distinguidas como redes donde su número de links Γ(p) a una página p se rige de la siguiente ley: P r(γ(p) = k) k Θ Una red de este tipo se caracteriza por tener unos pocos nodos mas enlazados que otros, actuando como hubs. La diferencia con la red aleatoria es mostrada en la figura 2.1 Las redes scale-free son usadas en una gran cantidad de contextos, por lo que existe una infinidad de documentación al respecto. A continuación algunos ejemplos fuera del ámbito de los computadores: Amigos y la popularidad en los humanos. Económicamente hablando algunas personas arrastran toda la suerte mientras que otras no [8]. Las proteínas en la interacción con el metabolismo La colaboración de los actores en las películas 12

Figura 2.1: Ejemplo de un grafo aleatorio y scale-free, cada grafo tiene 32 nodos e igual número de enlaces Citas en las publicaciones de científicos Y otro ejemplos relacionados a la computación son: La ínter conectividad de nodos para Internet geográficamente y físicamente hablando. Número de enlaces a páginas web. La participación de usuarios a grupos y comunidades. Intercambio de e-mails. Estructura Macroscópica La mayoría de los estudios de la Web y su estructura, se enfocan en un subconjunto de millones de páginas del motor de búsqueda Altavista, al cual definen como un grafo conexo, ignorando la dirección de los enlaces [8]. Estos estudios identifican un solo componente que esta fuertemente interconectado, a quien llaman el componente principal o MAIN. Empezando en MAIN, y siguiendo los enlaces que apuntan hacia afuera, de encuentran los OUT, y a los que llegan a MAIN, se les denomina IN. También existen documentos que no salen ni entran de MAIN, sino que están conectados con IN o OUT, a estos se les llama tentácu- 13

los, TENTACLES. Y finalmente existen las islas, ISLANDS, aquellos archivos que no están enlazados con ningún otro documento. MAIN: Sitios que están fuertemente ligados, y que se puede llegar de cualquier sitio a cualquier otro dentro del mismo componente. IN: Sitios de donde se puede llegar a main pero no al revés. OUT: Sitios que se llega desde MAIN, pero no es posible llegar de ellos a MAIN. Otros sitios que se pueden alcanzar desde IN o solo llegar a OUT (TENTACLES), y lugares en ambos sentidos llamados túneles, TUNNEL, y los sin conexión alguna, ISLANDS. Figura 2.2: Estructura macroscópica. 2.3. Modelos Los modelos corresponden a los métodos utilizados para intentar adivinar lo que el usuario desea encontrar. De acuerdo a la documentación en libros y en la Web existe una gran cantidad de tipos pero todos ellos nacen de la combinación o variantes de tres modelos clásicos, siendo el modelo Booleano, modelo vectorial y el modelo probabilístico. 14

2.3.1. Modelo Booleano Este modelo corresponde al mas simple de los tres. De igual manera que su nombre lo da a entender, este trabaja con valores booleanos, es decir, su relevancia es binaria, un documento es relevante o no lo es. Al momento de hacerle consultas, un documento es importante solo si contiene la palabra. Este tipo de modelo se hace uso de operadores lógicos, AND y OR. Cuando se hace uso del AND en una consulta, los documentos resultantes deben poseer todas las palabras. Consultas con OR, los documentos deben contener alguna palabra. Y para consultas A BUTNOT B: los documentos deben ser relevantes para A pero no para B. Ejemplo: Maradona AND Mundial AND ((México OR Italia) BUTNOT U.S.A.) Siendo uno de los modelos mas conocidos, es el mas primitivo, y se le considera bastante malo para RI, por las siguientes razones: No discrimina entre documentos mas y menos relevantes. Da lo mismo que un documento contenga una o cien veces las palabras de la consulta Da lo mismo que cumpla una o todas las cláusulas de un OR No considera un calce parcial de un documento (Ej. que cumpla con casi todas las cláusulas de un AND). No permite siquiera ordenar los resultados. El usuario promedio no lo entiende: Se necesita investigar sobre los Aztecas y los Incas, entonces busca Aztecas AND Incas (se perderán excelentes documentos que traten una sola de las culturas en profundidad, debió ser Aztecas OR Incas) Y es el mas famoso debido a que, 15

Es el primero que se viene a la mente a la hora de implementación. Es la opción favorita para manejar texto en una base de datos. Es simple de formalizar y eficiente de implementar. Puede usar combinación con otro modelo, Ej. para excluir documentos (Google usa AND como filtro). Puede ser útil con mejores interfaces. 2.3.2. Modelo Vectorial Este modelo en forma contraria al Booleano, asigna pesos no binarios a los términos para asimilar la relevancia. De hecho no se hace uso de todos los términos, sino que se selecciona un conjunto de palabras útiles para discriminar, las cuales son términos que no otorgan mayor sentido a la información, a este conjunto se les llama palabras vacías o stopwords. Por lo general corresponden a preposiciones, pronombres, etc. Hay veces que lo anterior se enriquece con procesos de lematización o stemming, etiquetado e identificadores de frases. Sea {t 1,...t k } el conjunto de términos y {d 1,...d N } el de documentos, entonces un documento se modela como vector d i d i = (w(t 1, d i ),..., w(t k, d i )) donde w(t r, d ) es el peso del termino t r, en el documento d i Para calcular el peso existen varias fórmulas, pero las mas conocida es: tf r,i log N nr w(t r, d i ) = w r,i = tf r,i idf r d = i k s=1 (tf s,i log N ns )2 donde tf r,i (frecuencia del termino), es la cantidad de veces que t r, aparece en d i, y n i es la cantidad de documentos donde aparece t r Si un termino aparece mucho en un documento, se supone que es importante en ese documento (tf crece). 16

Pero si aparece en muchos documentos, entonces no es útil para distinguir ningún documento de los otros (tf decrece). Además se puede normalizar las frecuencias para no favorecer documentos más largos (por ejemplo tf norm = tf r,d /max k (tf k,d )). Lo que se intenta medir es cuánto ayuda este término a distinguir ese documento de los demás. Se calcula la similaridad entre dos documentos mediante la distancia coseno: sim(d i, d j ) = d i d j = k r=1 w r,i w r,j (que geométricamente corresponde al coseno del ángulo del ángulo entre los dos vectores). Figura 2.3: Coseno del ángulo entre los dos vectores La similaridad es un valor entre cero y uno. 17

Los documentos iguales tienen valor 1, y ortogonales (si no comparten términos) tienen similaridad 0. En particular, una consulta se puede ver como un documento(formado por esas palabras) y por lo tanto como un vector Dado que en general cada palabra aparece solo una vez en la consulta y esta es muy corta, se puede en general calcular la relevancia de d i para q con la fórmula: sim (d i, q) = k r=1 w r,i w r,q t r q w r,i idf r La última fórmula no es idéntica a sim pero genera el mismo orden en los documentos (falta dividir por q ) La fórmula anterior se puede simplificar aún más definiendo w r,i = tf r,i d i El primer peso se llama factor de impacto. y w r,q = idf r. Pero el modelo es más general, y permite cosas como: Que la consulta sea un documento. Hacer clustering de documentos similares. Retroalimentación (Relevance feedback) Este modelo es, de lejos, el más popular en RI pura hoy en día. 2.3.3. Modelo Probabilístico Otro modelo clásico de la recuperación de la información, donde la base principal de su funcionamiento es el cálculo de la probabilidad de un documentos de ser relevante a una pregunta dada. Se usa un modelo de probabilidad de independencia en términos binarios. La probabilidad de los términos es independiente (un término es independiente de los otros). 18

Los pesos asignados a los términos son binarios. La equiparación probabilística se basa en que, dados un documento y una pregunta, es posible calcular la probabilidad de que ese documento sea relevante para esa pregunta. Si un documento es seleccionado aleatoriamente de la base de datos hay cierta probabilidad de que sea relevante a la pregunta. Si una base de datos contiene N documentos, n de ellos son relevantes, entonces la probabilidad se estima en: P (relevancia) = n/n En concordancia con la teoría de la probabilidad, la de que un documento no sea relevante a una pregunta dada viene expresada por la siguiente fórmula: P ( relevancia) = 1 P (relevancia) = N n/n Obviamente, los documentos no son elegidos aleatoriamente, sino que se eligen sobre la base de la equiparación con la pregunta basado en el análisis de los términos contenidos en ambos casos. Así, la idea de relevancia está relacionada con los términos de la pregunta que aparecen en el documento. Una pregunta dada divide la colección de documentos en dos conjuntos: los que responden a la pregunta y los que no. Se considera que a través de este modelo se obtienen buenos resultados, de cualquier forma, los resultados no son mucho mejores que los obtenidos en el modelo booleano y en el vectorial Sin embargo, todos los documentos seleccionados no son realmente relevantes. 2.3.4. Comparación de los modelos clásicos El modelo clásico más popular es el vectorial, por ser simple, fácil y eficiente de implementar, y entregar eficientes resultados. En muchos casos las aplicaciones suelen llegar hasta aquí. 19

Hay modelos más sofisticados. Pero sin duda lo que se gana no justifica su esfuerzo. Todos los modelos clásicos tienen ciertas falencias comunes, la más notoria es la incapacidad para capturar las relaciones entre los términos. Por ejemplo: Si se busca : guerra fría se desea recuperar información sobre la crisis de los misiles cubanos. Sin embargo, el sistema no tiene idea que ambas cosas están relacionadas y la intersección de vocabulario podría ser nula. La solución pasa por el análisis linguístico : lematizar (para no perder variantes de la misma palabra) etiquetar (para distinguir verbos de sustantivos) detectar frases comunes. Otro elemento es el uso de tesauros y sinóminos para expandir la consulta, de modo de poder recuperar: se vende auto usado frente a la consulta: autos de segunda mano Sin embargo mantener tesauro en muy costoso en términos de trabajo manual y no suele ser posible mantenerlo al día con las expresiones que van apareciendo. El uso un tesauro global no siempre funciona bien, por ejemplo estrella puede ser una generalización de supernova, pero no en un contexto que se refiere a estrellas de televisión. 20

Se puede usar información del texto como la estructura para refinar mejor la consulta (Ej. un término que aparece en la cabecera o título debe ser mas importante que en un pie de página.) Se pueden usar distintas técnicas para descubrir que ciertos términos están correlacionados. A esto apuntan los modelos alternativos y las técnicas de expansión de consultas que se veras a continuación. 2.3.5. Modelos Alternativos Los modelos usados como alternativa a los clásicos, son en general costosos de implementar y no siempre dan grandes resultados. Por ello son en general poco populares, LSI, las redes neuronales y Bayesianas. Extensiones al modelo Booleano Booleano Extendido. Conjuntos Difusos. Extensiones al modelo Vectorial Vectorial generalizado. LSI: Latent Semantic Indexing. Redes Neuronales. Extensiones al modelo Probabilístico Redes Bayesianas. Redes de inferencia Bayesiana. 21

2.3.6. Expansión de Consultas Con el fin de mejorar la relevancia del resultado de una consulta, es posible expandir una consulta sin alterar el modelo original. Para llevar esto a cabo, un modelo posible es considerar un espacio vectorial donde los términos son los puntos y los documentos las coordenadas del espacio: t r t r = (w 1,r,..., w N,r ) Para este caso, la similaridad entre términos se define exactamente como la de los documentos: sim(t r, t s ) = t r t s = N i=1 w i,r w i,s Si dos términos tienden a aparecer en los mismos documentos sus vectores serán cercanos. Figura 2.4: Cercanía entre términos que aparecen en los mismo documentos Dada una consulta formada por términos, éstos se consideran vectores y la consulta se expande con todos los vectores(términos) cercanos a los de la consulta. 22

También es posible usar diccionarios o tesauros para agregar sinónimos y/o términos relacionados (un OR de ellos). Otra forma de usar la distancia 2.3.7. Retroalimentación Es la función que usan algunos sistemas de recuperación de la información, por el cual recuperan información de similar relevancia con respecto a un documento o un conjunto de ellos. La idea tras este método, es tomar los resultados que inicialmente fueron dados a una determinada consulta y sobre parte de estos realizar una nueva consulta, donde el valor de relevancia será similar a los documentos iniciales. Esta función es común verla en los buscadores, tal es el caso de Google donde en cada uno los documentos de la respuesta, existe una opción llamada Páginas similares, la cual da la opción al usuario de buscar documentos similares. De este modo, puede preguntársele al usuario cuales documentos de los recuperados son relevantes o no, y volver a empezar todo de nuevo, en función de la respuesta del usuario. Sea V el conjunto de documentos recuperados que el usuario divide en V r (relevantes) y V n (no relevantes). La fórmula clásica de Rochio modifica el vector q de la siguiente forma: q m = α q + β V r d j V r di - γ V n d i V n di La idea es acercar el vector q al conjunto de documentos relevantes y alejarlo del conjuntos de documentos no relevantes. Se puede particularizar según el caso. Por ejemplo puede ser mucho pedir que el usuario marque los documentos no relevantes. En ese caso se puede usar γ (retroalimentación positiva). El uso de páginas similares de varios buscadores Web es la versión sencilla de esto. 23

2.3.8. Evaluación: Precisión y Recuperación Cuando se responde una consulta, es recuperada la información y generada la respuesta, pero como evalúa esta salida, pues bien, existen muchas medidas pero de momento solo se abarcara la mas popular, la cual corresponde a un diagrama precisión-recuperación (precisiónrecall). Precisión: cuantos documentos recuperados son relevantes. Recuperación: cuantos documentos relevantes se recuperaron ( también conocido como exhaustividad). Figura 2.5: Precisión - Recuperación Según la cantidad que se elige como relevantes, se puede hacer aumentar una a costa de reducir la otra. Para evaluar un modelo de recuperación de la información se debe tener en cuenta todo el gráfico. En la figura, A o B pueden ser preferibles según la aplicación. Es fácil tener alta precisión: basta con retornar el documento mas relevante, pero entonces la recuperación es cercana a cero. Es fácil tener alta recuperación: basta retornar todos los documentos, pero ahora la precisión se hace cero. El objetivo es tratar de aumentar ambos al mismo tiempo. 24

Para comparar dos sistemas se debe decidir que precisión y/o recuperación se necesita. Además se necesita una colección de referencia: documentos, preguntas y respuestas correctas. 2.4. Indexación y consulta de páginas La búsqueda en la Web tiene dos partes: off-line y on-line. La parte off-line se realiza periódicamente por el motor de búsqueda y se encarga de descargar un subconjunto de sitios para luego formar una colección de páginas, que luego es transformada en una estructura aplicable a búsquedas. Mientras que la parte on-line es ejecutada cada vez que un usuario hace una consulta al motor de búsqueda, y usa la estructura o index para seleccionar posibles candidatos referenciándose por una estimación de la relevancia que posee sobre el resto de los documentos. Figura 2.6: Procesos off-line y on-line. Los archivos en la Web están en distintos formatos tales como texto plano, páginas HTML, documentos PDF, y otro formatos propietarios. Es por esto que para la indexación se debe considerar una vista lógica de los documentos, siendo la mas usaba, el modelo de una bolsa de palabras, donde cada página es visto como un conjunto desordenado de palabras. En 25

lo buscadores modernos esta vista es fortalecida y optimizada añadiendo información extra como, frecuencia de las palabras, los atributos del texto, y información de las cabeceras de los HTML. Existen varias operaciones de normalización para la extraer palabras de los documentos, siendo las mas usadas: tokenización, remover stopwords, lematización o stemming Tokenización es la descomposición de un texto en unidades mínimas de información, palabras. Stopwords son palabras que acarrean poca información semántica, que tienen un bajo poder de discriminación a la hora de asignar la relevancia de un documento. En el castellano, por los general estos stopwords corresponden a preposiciones, artículos, adverbios, etc. Usualmente en la recolección de la información estas palabras son descartadas por razones de eficiencia, y también por el espacio de almacenamiento que estas ocuparían, debido a su alta taza de frecuencia. Stemming, operación o método usado para reducir las palabras a su raíz morfológica. Existen otros métodos de normalización que son mas complejos como, traducción y búsqueda por sinónimos, detección de expresiones de múltiples palabras, identificación de frases, etc. que son usadas por algunos buscadores. Siendo estas ultimas muy costosas y pocas precisas en caso de tener una taza de error alta. 2.4.1. Índice Invertido Es la estructura de datos mas elemental usada para relacionar, asociar e identificar palabras o términos a una posición de un documento o un conjunto de estos, la recuperación de palabras. El índice invertido en su forma mas básica esta compuesto por dos partes: vocabulario y una lista de ocurrencia. Vocabulario : es una conjunto de palabras distintas de un texto, llamadas llaves, 26

donde a cada uno de estos términos se le asocia una lista de ocurrencias dentro de un documento o un conjunto de documentos. Lista de ocurrencias o posteo : corresponde a la posición de una palabra. Existen distintas variantes dependiendo del modelo de recuperación a utilizar. índice invertido de archivos y índice invertido de palabras, respectivamente. Figura 2.7: Índice invertido simple. Variante para modelo Booleano: Es conveniente almacena la lista de ocurrencia de cada termino en orden creciente de documento. Variante para modelo Vectorial: Se almacena el tf correspondiente en cada entrada de posteo (puede ser el factor de impacto tf/ d i ) Debe almacenar el idf correspondiente en cada entrada del vocabulario. Es conveniente guardar el máximo tf de cada uno de los términos en el vocabulario. 27

La lista de ocurrencia se cada termino, de ordena en forma decreciente de tf. Variante para búsqueda de frases: Se debe almacena la inversión: para cada termino y documento, las lista de sus posiciones exactas en el documento. Con el fin de reducir espacio, se puede tener un índice de bloques: se corta el texto en grandes bloques y se guarda sólo los bloques donde ocurre cada termino. 2.4.2. Consultas en Modelo Booleano Para este modelo las palabras de la consulta se buscan en el vocabulario (cargado en memoria), por ejemplo usando la función hashing. Se recuperan del disco las listas de posteo de cada palabra involucrada (restricciones de metadatos). Se realizan las operaciones de conjuntos sobre ellas (unión, intersección, diferencia, etc). Las lista están ordenadas crecientemente, de modo que se puede operar recorriéndolas secuencialmente. Los documentos se recuperan ordenados por número de documentos. Si una lista es muy corta y la otra muy larga, es mas rápido buscar en forma binaria la corta en la larga (O(1) por Zipf). Se complica si las listas están representadas por diferencias, pero se puede almacenar cada tanto un valor absoluto. Se puede usar evaluación compleja o parcial (restricciones AND, BUTNOT). 28

Figura 2.8: Restricciones. 2.4.3. Consultas en Modelo Vectorial La consulta puede tener varias palabras y sólo interesa recuperar los R documentos mas importantes o relevantes. Los documentos de cada termino están almacenados en orden decreciente de tf. La idea es mantener un ranking de los R documentos d i con mayor sim(d i, q). Se comienza con el término de la consulta de mayor idf (lista de ocurrencia mas corta), y se trae los R primeros documentos de su lista(almacenados en ese mismo orden). Si no se logra juntar R, se sigue con el segundo término de mayor idf y así... Una vez que se obtienen R candidatos, se sigue recorriendo las listas de los términos, de mayor a menor idf. Sin embargo, como el tf en cada lista decrece, se puede en cierto momento determinar que no es necesario seguir recorriendo la lista pues los candidatos no pueden entrar al ranking de los R mejores. Si se almacena el máximo tf en el vocabulario, es posible eliminar términos completos sin siquiera ir al disco una vez. Puede hacerse incluso mas eficiente cortando las listas donde se considere improbable que modifiquen el ranking. 29

Este tipo de relajamiento esta permitido en la recuperación de la información y es muy utilizado en las maquinas de búsqueda de la Web. En particular, en la Web la recuperación no sólo es difícil de medir sino que ya viene condicionada por el crawling, que raramente alcanza a recolectar el 50 % del total. De modos que las maquinas de búsquedas se concentran más en la precisión. Es decir, que lo que se recupera sea bueno más que recuperar todo lo bueno. Figura 2.9: Búsqueda de información sobre las consecuencias de la crisis de los misiles cubanos en el desarrollo de la guerra fría. 2.4.4. Consultas con frases Para búsquedas por frase o proximidad, se obtienen las listas de las ocurrencias exactas de las palabras involucradas y se realiza una pseudo inserción(inversión, secuencial o combinado). Si se tiene solo un índice de bloques, este permitirá determinar que el patrón no aparece en algunos bloques del texto, pero en los demás se deberá recurrir a búsqueda secuencial (compresión). Eligiendo correctamente el tamaño del bloque se puede obtener un índice que sea sublineal en espacio extra y tiempo de búsqueda simultáneamente. 30

Esta alternativa es aceptable para colecciones medianas (200MB) y necesita tener acceso al texto (Ej. no sirve para indexar la Web pero si para un buscador interno del sitio Web) Para búsquedas mas complicadas se puede realizar una búsqueda secuencial en el vocabulario. Esto es tolerable por la ley de Heaps Luego se realiza la unión de las listas de posteo de todas las palabras del vocabulario que calzaron con el patrón de la búsqueda. Se observa que esto puede ser costoso si la consulta tiene poca precisión. Figura 2.10: Ejemplo: Camiones de ocasión [con errores]. 2.4.5. Espacio extra: Ley de Heaps - Ley de Zipf Estas dos leyes empíricas son ampliamente aceptadas por la ciencia de recuperación de la información. Ley de Heaps : El vocabulario de un texto de largo n crece como: 31

k = C n β donde C y 0 < β < 1 dependen del tipo de texto. En la practica, 5 < C < 50 y 0, 4 β 0, 6 y k es menos del 1 % de n En la practica el vocabulario entra en la memoria RAM (ejemplo, 5MB para 1GB). Ley de Zipf : Si se ordenan los términos de un texto de más a menos frecuente, entonces: donde n r = N r α H N (α) H n (α) = k r=1 1 r α lo que significa que la distribución es muy sesgada: unas pocas palabras (stopwords) aparecen muchas veces y muchas palabras apareces pocas veces. En particular, los stopwords se llevan entre el 40 % y 50 % de las ocurrencias y aproximadamente la mitad de las palabras aparecen solo una vez. Notar que la Ley de Heap puede deducirse a partir de la Ley de Zipf y entonces α = 1/β Posteo/Inversión: Caso Booleano: los números de documentos son crecientes, se pueden almacenar las diferencias (Elías). Así comprimiendo, requiere un 10 % - 25 % extra sobre el texto. Caso Vectorial: eso ya no ocurre, pero todos los documentos con el mismo tf (muchos por Zipf) pueden aún ordenarse. El índice requiere 15 % - 30 % extra. 32

Figura 2.11: Ley de Heap - Ley de Zipf Búsqueda de frases: la inversión lleva el espacio total al 25 % - 45 % extra (posiciones crecientes). Con direccionamiento de bloques esto puede bajar hasta 4 % para colecciones no muy grandes, al costo de mayor búsqueda secuencial Se puede comprimir el texto a 25 % - 30 % del espacio original (Huffman sobre palabras). 2.4.6. Construcción del Índice Invertido Se recorre la colección secuencialmente Para cada término leído, se busca en el vocabulario(que se mantiene en memoria) Si el término no existe aún, se agrega al vocabulario con una lista de posteo vacía. Se agrega el documento que se esta leyendo al final de las lista de posteo del término. Una vez leída toda la colección, el índice se graba en disco. 33

En caso de usar índices de bloques, se construye sólo el posteo considerado a los bloques como documentos. En caso de necesitar inversión, se almacena además de la lista de ocurrencias de cada término una de inversión, donde se debe almacenar la posición de cada ocurrencia de ese termino. Para el caso de los índices en el modelo vectorial, la lista de posteo está ordenada por tf y dentro del tf por número de documento. A medida que se va encontrando más y más veces el término en el mismo documento su entrada va siendo promovida más adelante en las lista del término. Otro método: generar tuplas (t r, tf r,i, i) y luego ordenar, pero no se puede comprimir hasta el final. El mayor problema que se presenta en la practica es que, obviamente, a medida que el vocabulario se procesa, la lista de ocurrencia también crece, de tal forma, el índice puede llegar a ocupar demasiada RAM e incluso no disponer de memoria primaria. Cada vez que la memoria primaria se agota, se graba en disco un índice parcial, se libera la memoria y se comienza de cero. Luego de haber procesado todo el texto, se realiza un merge de los índices parciales. Esta mezcla no requiere demasiada memoria porque es un proceso secuencial, y resulta relativamente rápido en I/O porque el tamaño a procesar es bastante menos que el texto original. Debe existir un orden en la mezcla de los índices parciales. El método este se adapta fácilmente para realizar actualizaciones de índice. 34

Figura 2.12: Mezcla de índices parciales 2.4.7. Índices invertidos distribuidos En muchos casos, por bueno que sea el algoritmo de indexación o de búsqueda, no es suficiente para cubrir la demanda, debido a las siguientes razones: El texto es demasiado grande. La frecuencia de actualizaciones es demasiado alta. Llegan demasiada consultas por segundo. La velocidad de los discos no está creciendo al ritmo necesario. Una de las alternativa para remediar esto es el uso del paralelismo. Bien diseñado, puede expandir la capacidad de procesamiento tanto como se desee. El uso de redes muy rápidas formadas por unas pocas maquinas muy potentes se ha convertido en una alternativa de bajo costo. En estas redes el acceso remoto cuesta aproximadamente los mismo que el acceso al disco local. Normalmente todos los procesadores pueden comunicarse de a pares sin producir congestión. Para la paralización, la RAM total se considera como una gran memoria distribuida. 35

Figura 2.13: Mezcla de índices parciales Este procesamiento en paralelo se puede usar de distintas formas: Para construir o actualizar el índice en paralelo. Replicar el índice (si no es muy grande), con el fin de poder responder las consultas en paralelo. Para particionar el texto. Para las consultas existen dos medidas de interés: 1. Concurrencia (Throughput): que es la cantidad de consultas respondidas por segundo. 2. Tiempo de respuesta: tiempo que demora una consulta particular. Cuando existe una alta concurrencia se debe replicar el índice, y si existe el índice ocupa mucho volumen, se particiona el índice. 2.4.8. Generación Distribuida de Índices Invertidos Para la construcción de índices invertidos en forma distribuida, existen distintas variantes de como hacerlo, algunas son: 1. Se distribuye el texto entre las maquinas equitativamente. 36

2. Cada máquina construye su índice invertido local. 3. Luego, se aparean de a dos, jerárquicamente, hasta que una zona contiene el vocabulario 4. Esa máquina calcula qué parte del vocabulario será responsabilidad de cada procesador, y distribuye esa información. 5. Los procesadores se aparean todos con todos intercambiando las listas de ocurrencias. 6. Secuencialmente transmiten su parte del índice a un disco central, donde se concatenan para formar un índice globalizado. Figura 2.14: Pasos de mensajes entre procesadores para generar el índice invertido central. Tipos de Índice Invertidos Distribuidos Para el caso (2), se tiene un índice particionado por documentos Para consultar de debe distribuir la consulta a todos los procesadores y luego integrar los resultados. El trabajo se reparte bien, pero como el tiempo es sublineal, la concurrencia no se escala idealmente. El tiempo de respuesta se reduce un poco. 37

Para el modelo booleano es ideal porque no transmite información redundante por la red. Para el modelo vectorial se debe seleccionar lo mejor de todos los ranking, pero presenta un gran detalle: los ranking locales no son los mismos con el ranking global. Otro problema que se puede presentar son los documentos muy populares que pueden generar una carga mal repartida. En el punto (4), se tiene una versión de lo anterior que resuelve la inconsistencia en el ranking. El (5) es un índice particionado por léxico. Para consultar se pide a cada procesador que resuelva las palabras de las es responsable y luego coopera para integrar los resultados Para consultas cortas maximizar la cantidad de respuestas posibles en un segundo, pero el tiempo de respuesta puede no variar porque toda la consulta la sigue resolviendo un procesador. Para el caso de consultas complejas, tiene el problema de enviar demasiada información por la red ( caso modelo booleano). Mismo algoritmo que con las listas. En el modelo vectorial es problemático con exactitud por la misma razón que cuando se cortaba el recorrido de las listas invertidas Para la Web es bueno porque la mayoría de las consultas son cortas y suele haber congestión, de modo que escala en forma casi ideal. Un problema posible son los términos muy populares que pueden generar una carga mal repartida. La ultima variante es un índice centralizado (construido en forma distribuida), que puede ser replicado en todos los procesadores. 38

Solo es factible si una máquina puede manejar toda la colección Permite repartir idealmente el trabajo y es tolerable a fallas. Figura 2.15: Indexación de la Web: (1) Se analizan y extraen los links de las páginas. (2) Se crean índices parciales en caso de ausencia de memoria principal. (3) Los índices son fusionados para formar el índice invertido completo. (4) Análisis off-line para rankear los enlaces. 2.4.9. Otros tipos de índices El índice invertido suele imaginarse y implementarse con el uso de lista enlazadas y arreglos. Pero estas estructuras no son muy eficientes a la hora de buscar sobre ellas. Es por ello que existen otras estructuras con las cuales se puede implementar índices, con mejor eficiencia en la búsqueda. Estas son: Trie (árbol digital) y árbol de sufijos Se forma un árbol binario, con todos los sufijos del texto. Búsqueda simple en tiempo O(m). Cada nodo es un intervalo en el arreglo de sufijos. 39

El árbol comprime caminos unarios, O(n) espacio y tiempo de construcción (árboles Patricia). Ocupan mucho espacio, 8 a 12 veces el tamaño del texto. Malos en memoria secundaria. Puede utilizarse la idea para búsqueda secuencial en el vocabulario. Solución : eliminar el árbol y quedarse con las hojas (espacio 1 a 4 veces el texto). Figura 2.16: Árbol de sufijos - Arreglo de sufijos. Arreglos de sufijos Es un índice que no necesita que es texto esté formado por palabras. Es capaz de recuperar subcadenas del texto, buscar expresiones regulares y realizar búsquedas aproximada en tiempo sublineal. Es ideal para la biología computacional, lenguajes orientales, etc. En la recuperación de la información, puede ser útil para: Análisis lingüístico especializado (por ejemplo, encontrar la autocorreción mas larga de una colección) 40

Búsqueda de frases de varias palabras, siendo mas rápido que un índice invertido Búsqueda de patrones que trascienda palabras (por ejemplo el índice invertido no permite detectar errores que involucren separadores) El espacio que requiere es cercano al 40 % del texto. Es mas costoso de construir y mantener que el índice invertido. Es superior al índice invertido para búsqueda de patrones, pero no para el resto de operaciones típicas en RI. Arreglo de sufijos: Estructura El arreglo de sufijos es simplemente un arreglo con los punteros a todas las posiciones de interés en el texto. Cada posición define un sufijo del texto. Figura 2.17: Sufijos del texto En el arreglo, las posiciones están ordenadas lexicográficamente por los sufijos. Arreglos de sufijos: Búsqueda Todo substring del texto es el prefijo de un sufijo. 41

Figura 2.18: Arreglo de sufijos La relación prefijo se puede traducir a relaciones de orden lexicográfico: x : a prefijo de y (x : a y) (y < x : (a + 1)) Por lo tanto, basta un par de búsquedas binarias en el arreglo de sufijos para obtener el rango del arreglo que contiene todas las ocurrencias de x (en tiempo logarítmico). Figura 2.19: Arreglo de sufijos, búsqueda En memoria secundaria la búsqueda binaria puede resultar costosa. El problema no es tanto el acceso al arreglo sino a las posiciones aleatorias del texto. Se puede usar supraìndice en RAM para reducir ese costo. Un supraíndice interesante puede ser el mismo vocabulario. 42

Figura 2.20: Arreglo de sufijos usando supraíndice Figura 2.21: Arreglo de sufijos usando el vocabulario como supraíndice. En este caso la estructura es muy similar a un índice invertido para la búsqueda de patrones (con inversión). Arreglo de sufijos: Construcción En principio no es mas que ordenar un arreglo. Sin embargo, se puede aprovechar la estructura del problema: los sufijos son sufijos de otros sufijos. Existen algoritmos (Manber Myers) que en promedio toman tiempo O(n log log n). 43