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

Tamaño: px
Comenzar la demostración a partir de la página:

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

Transcripción

1 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

2 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

3 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

4 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

5 Índice general I. Introducción Motivación Un poco de historia Recuperación de la información Vista lógica de los documentos y usuario Motor de búsqueda Objetivos II. Marco Teórico Recuperación de la información Caracterización de la Web Métodos de muestra Dinámica de la Web Estructura de los Links Modelos Modelo Booleano Modelo Vectorial Modelo Probabilístico Comparación de los modelos clásicos Modelos Alternativos ii

6 Expansión de Consultas Retroalimentación Evaluación: Precisión y Recuperación Indexación y consulta de páginas Índice Invertido Consultas en Modelo Booleano Consultas en Modelo Vectorial Consultas con frases Espacio extra: Ley de Heaps - Ley de Zipf Construcción del Índice Invertido Índices invertidos distribuidos Generación Distribuida de Índices Invertidos Otros tipos de índices Ranking basado en texto Conectividad basada en el ranking Consulta dependiente del ranking III. La Web Chilena Características de la Web Chilena IV. Un motor de búsqueda para umag.cl Recolección en umag.cl Normalización Ranking Indexador Buscador Memoria compartida Proceso de búsqueda: iii

7 4.6. Comportamiento y resultados V. Conclusiones Trabajos Futuros VI. Anexo WIRE Archivos - Scripts iv

8 Índice de figuras 2.1. Ejemplo de un grafo aleatorio y scale-free, cada grafo tiene 32 nodos e igual número de enlaces Estructura macroscópica Coseno del ángulo entre los dos vectores Cercanía entre términos que aparecen en los mismo documentos Precisión - Recuperación Procesos off-line y on-line Índice invertido simple Restricciones Búsqueda de información sobre las consecuencias de la crisis de los misiles cubanos en el desarrollo de la guerra fría Ejemplo: Camiones de ocasión [con errores] Ley de Heap - Ley de Zipf Mezcla de índices parciales Mezcla de índices parciales Pasos de mensajes entre procesadores para generar el índice invertido central 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 v

9 2.16. Árbol de sufijos - Arreglo de sufijos Sufijos del texto Arreglo de sufijos Arreglo de sufijos, búsqueda Arreglo de sufijos usando supraíndice Arreglo de sufijos usando el vocabulario como supraíndice Diagrama del diseño de un motor de búsqueda para umag.cl Distribución de los enlaces en umag.cl Normaliza1: normaliza el texto Normaliza2: separa texto 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 vi

10 Capítulo I Introducción

11 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 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

12 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 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

13 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 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

14 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

15 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 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

16 Capítulo II Marco Teórico

17 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

18 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 Caracterización de la Web 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

19 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 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

20 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

21 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

22 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 s. 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

23 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 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

24 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

25 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 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

26 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

27 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 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

28 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 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

29 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

30 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 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

31 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

32 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 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

33 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

34 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 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

35 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 Í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

36 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

37 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 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

38 Figura 2.8: Restricciones 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

39 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 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

40 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] 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

41 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

42 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) 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

43 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

44 Figura 2.12: Mezcla de índices parciales Í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

45 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 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

46 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

47 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

48 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 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

49 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

50 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

51 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

52 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

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

Bases de Datos Textuales, Una Herramienta en el Trabajo de la Recuperación de Información Bases de Datos Textuales, Una Herramienta en el Trabajo de la Recuperación de Información UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides Un Acercamiento a las Bases

Más detalles

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

Modelos Clásicos de RI. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides Modelos Clásicos de RI UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides Características de los Modelos Clásicos Los documentos se describen a través de un conjunto de

Más detalles

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

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 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 Funcionamiento de un Buscador Motor de Búsqueda Índice Interface

Más detalles

Análisis y Recuperación de Información

Análisis y Recuperación de Información Análisis y Recuperación de Información 1 er Cuatrimestre 2017 Página Web http://www.exa.unicen.edu.ar/catedras/ayrdatos/ Prof. Dra. Daniela Godoy ISISTAN Research Institute UNICEN University Tandil, Bs.

Más detalles

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

Motores de Búsqueda Web Tarea Tema 3: Limitaciones de la recuperación de información tradicional en la Web Motores de Búsqueda Web Tarea Tema 3: Limitaciones de la recuperación de información tradicional en la Web 71454586A Motores de Búsqueda Web Máster en Lenguajes y Sistemas Informáticos - Tecnologías del

Más detalles

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

Índices de RI. UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides Índices de RI UCR ECCI CI-2414 Recuperación de Información Prof. M.Sc. Kryscia Daviana Ramírez Benavides Qué es un Índice? Es la segunda etapa para abordar el tema de la RI. Es un archivo que contiene

Más detalles

Minería de Datos Web. Cursada 2018

Minería de Datos Web. Cursada 2018 Minería de Datos Web Cursada 2018 Proceso de Minería de Texto Clustering de Documentos Clasificación de Documentos Es un método supervisado para dividir documentos en base a categorías predefinidas Los

Más detalles

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

Introducción a Minería de Texto. Fabián Latorre Introducción a Minería de Texto Fabián Latorre fabian.latorre@quantil.com.co Contenido Qué es la minería de texto? Por qué es relevante? Por qué la estudiamos? Aplicaciones La complejidad del texto no

Más detalles

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

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo. FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 4. Técnicas de Dispersión. Definición y Manejo. 1.- Introducción. 2.- Funciones de Dispersión. 3.- Saturación Progresiva. 4.- Empaquetado

Más detalles

Recuperación de información

Recuperación de información Recuperación de información Motores de búsqueda, clasificación de documentos - 14/11/2015 Índice Motivación Objetivo Introducción Representación de un documento TF-IDF Más cosas... Búsquedas en internet

Más detalles

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

Modelos de RI. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides Modelos de RI UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides Qué es un Modelo? Es la primera etapa para abordar el tema de la RI. Representación matemática para resolver

Más detalles

PARADIGMA y LENGUAJES DE PROGRAMACIÓN

PARADIGMA y LENGUAJES DE PROGRAMACIÓN CATEDRA CARRERA: PARADIGMA y LENGUAJES DE PROGRAMACIÓN LICENCIATURA EN SISTEMAS DE INFORMACION FACULTAD DE CIENCIAS EXACTAS QUIMICAS Y NATURALES UNIVERSIDAD NACIONAL DE MISIONES Año 2017 2do Cuatrimestre

Más detalles

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

Modelos Alternativos de RI. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides Modelos Alternativos de RI UCR ECCI CI-244 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides Aspectos Generales de los Modelos Alternativos Estos modelos son en general bastante costosos

Más detalles

Sistemas de Archivos. Unidad 2 Almacenamiento y Estructuras de Archivos

Sistemas de Archivos. Unidad 2 Almacenamiento y Estructuras de Archivos Sistemas de Archivos Unidad 2 Almacenamiento y Estructuras de Archivos Introducción Archivo Un archivo es un conjunto de datos que el usuario ve como una sola unidad o entidad Sistemas de Archivos Sistema

Más detalles

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

Archivos Indice. Indexación y. Asociación. Conceptos Básicos Indices Ordenados Arboles. Asociación. Docente: Albert A. Docente: Albert A. Osiris Sofía 1º Cuatrimestre 2002 Conceptos Básicos Indices Ordenados Arboles Asociación Indexación y Asociación Archivos Indice 1 2 3 1 Archivos Indice Ordenados Asociativos Primario

Más detalles

Registros Un campo: Registro:

Registros Un campo: Registro: Agenda 1) 2) registros ordenados registros desordenado Agenda 3) Organización de. 4) desordenado Organización de. Un campo: es el elemento de datos básico. Un campo individual contiene un valor único.

Más detalles

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

Análisis Global y Local. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daiana Ramírez Benaides Análisis Global Realiza la expansión basado en la construcción de tesauros utilizando la colección completa de documentos

Más detalles

Ingeniería en Computación

Ingeniería en Computación Universidad Autónoma del Estado de México Centro Universitario UAEM Valle de México Ingeniería en Computación Unidad de Aprendizaje: Programación Paralela y Distribuida Tema: Introducción a los Sistemas

Más detalles

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

Compiladores: Ambientes para Ejecución. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Compiladores: Ambientes para Ejecución Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Procedimientos Definición de un Procedimiento: es una declaración

Más detalles

Bases de Datos Multimedia

Bases de Datos Multimedia Bases de Datos Multimedia Capítulo 3 Algoritmos de búsqueda por similitud Este material se basa en el curso de Base de Datos Multimedia del DCC de la Universidad de Chile (Prof. Benjamín Bustos). 3.1 Conceptos

Más detalles

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL. AIEP PROGRAMACIÓN COMPUTACIONAL FUNDAMENTOS DE PROGRAMACIÓN INFORME MEMORIA CACHE Y MEMORIA VIRTUAL. Por:Diego Menéndez Introducción. Ante la inmensa velocidad de los procesadores que a medida del tiempo

Más detalles

Indexación y Asociación

Indexación y Asociación Bases de Datos Indexación y Asociación Contenidos Conceptos básicos Indices Ordenados Árboles B+ ArbolesB Asociación estática Bases de Datos Indexación y Asociación 2 Conceptos básicos Los Indices se utilizan

Más detalles

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

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje. Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe

Más detalles

Tarea 5 Gestión de Archivos

Tarea 5 Gestión de Archivos 1 Tarea 5 1. Cuál es la diferencia entre un campo y un registro? Un campo es el elemento de datos básico. Un campo individual contiene un valor único, como el apellido de un empleado, una fecha o el valor

Más detalles

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

localizar de un dato con un acceso directo y en una sola comparación de la llave. HASH HASH Un conjunto es una colección de objetos, los cuales no necesariamente tienen relación entre sí, como de orden, descendencia, etc.; tampoco están obligados a compartir atributos. En el área computacional,

Más detalles

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

Implementación de Máquinas de Búsqueda I: Indices y Compresión Implementación de Máquinas de Búsqueda I: Indices y Compresión Gonzalo Navarro Centro de Investigación de la Web Universidad de Chile Mapa de la Charla Modelo booleano de Recuperación de Información (RI)

Más detalles

Capítulo 3. Clasificación en Memoria Secundaria

Capítulo 3. Clasificación en Memoria Secundaria Capítulo 3. Clasificación en Memoria Secundaria INTRODUCCIÓN Las memorias secundarias (cintas magnéticas, discos duros, ) se caracterizan en general porque el acceso es secuencial. Es decir, en un instante

Más detalles

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

Operaciones sobre Consultas. UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides UCR ECCI CI-2414 Recuperación de Información Prof. Kryscia Daviana Ramírez Benavides Tipos de Consulta Texto: Palabra única. En contexto: Frase. Proximidad. Booleana. Lenguaje natural. Tipos de Consulta

Más detalles

Análisis y Recuperación de Información

Análisis y Recuperación de Información Análisis y Recuperación de Información 1 er Cuatrimestre 2017 Página Web http://www.exa.unicen.edu.ar/catedras/ayrdatos/ Prof. Dra. Daniela Godoy ISISTAN Research Institute UNICEN University Tandil, Bs.

Más detalles

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

La organización lógica y física de los sistemas de archivo y sus mecanismos de acceso de archivo. La organización lógica y física de los sistemas de archivo y sus mecanismos de acceso de archivo. Se refiere a las diferentes maneras en las que puede ser organizada la información de los archivos, así

Más detalles

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

Sistema Manejador de Bases de Datos Paralelas. Integrantes: Stephanie Piñero Fátima Santos Rosangela Sarno Sistema Manejador de Bases de Datos aralelas Integrantes: Stephanie iñero Fátima Santos Rosangela Sarno 1 Definición Agenda Medidas de rendimiento Ganancia de velocidad Ampliabilidad Factores que afectan

Más detalles

BASE DE DATOS Modelos de Datos

BASE DE DATOS Modelos de Datos BASE DE DATOS Modelos de Datos Autor: Lic. Jaquelina E. Escalante Desarrollo de una Base de datos 1 Análisis de requisitos, es decir, el estudio del sistema que se pretende modelar de la forma más precisa

Más detalles

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

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que: Instituto Universitario de Tecnología Industrial Rodolfo Loero Arismendi I.U.T.I.R.L.A. ÁRBOLES Sección 3DA Asignatura: Estructura de Datos Lenguaje (C). Ciudad Bolívar _ abril_ 2006. Introducción El siguiente

Más detalles

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

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria Estructura de datos y Algoritmos Tema III Clasificación en memoria secundaria 3.1. Clasificación externa basada en mezcla 3.1.1. Mezcla directa. 3.1.2. Mezcla natural. 3.1.3. Mezcla balanceada múltiple.

Más detalles

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

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Función

Más detalles

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

BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES BUSQUEDA SECUENCIAL Y DIRECTA, MARCELA MARQUEZ REBECA NAVARRO FONSECA GUADALUPE RUIZ ANGULO JONATHAN ALEXIS TOPETE ESTRUCTURA Y OPERACIONES BUSQUEDA Cuando se realizan operaciones de búsqueda es preciso

Más detalles

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

Métodos de Diseño y Análisis de Experimentos 1 / 28 Métodos de Diseño y Análisis de Experimentos Patricia Isabel Romero Mares Departamento de Probabilidad y Estadística IIMAS UNAM marzo 2018 Ideas básicas del diseño experimental Capítulo 4 de Analysis

Más detalles

Estructuras Dinámicas de datos.

Estructuras Dinámicas de datos. Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos

Más detalles

BASES DE DATOS DISTRIBUIDAS

BASES DE DATOS DISTRIBUIDAS BASES DE DATOS DISTRIBUIDAS Una Base de Datos Distribuida entonces es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se encuentra físicamente esparcido en varios "sitios" de

Más detalles

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

J. Vilares El Modelo Probabilístico: Características y Modelos Derivados p. 1 El Modelo Probabilístico: Características y Modelos Derivados Jesús Vilares Grupo de Lengua y Sociedad de la Información (LYS) Universidade da Coruña jvilares@udc.es J. Vilares El Modelo Probabilístico:

Más detalles

Complejidad computacional (Análisis de Algoritmos)

Complejidad computacional (Análisis de Algoritmos) Definición. Complejidad computacional (Análisis de Algoritmos) Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de los recursos requeridos durante la ejecución

Más detalles

GLOSARIO DE TÉRMINOS

GLOSARIO DE TÉRMINOS Apéndice A, Apartado 3: Glosario de términos!401" APÉNDICE A, APARTADO 3 GLOSARIO DE S Administración de la calidad Conjunto de actividades de la función general de administración que determina la política

Más detalles

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

UNIVERSIDAD CARLOSIII DE MADRID. BUSCADOR DE ESCRITORIO MULTIMEDIA: CIII Desktop Search UNIVERSIDAD CARLOSIII DE MADRID BUSCADOR DE ESCRITORIO MULTIMEDIA: CIII Desktop Search Proyecto fin de carrera Escuela politécnica superior Ingeniería técnica en informática de gestión 1 Índice Introducción

Más detalles

SISTEMAS OPERATIVOS: SISTEMAS DE FICHEROS. Ficheros

SISTEMAS OPERATIVOS: SISTEMAS DE FICHEROS. Ficheros SISTEMAS OPERATIVOS: SISTEMAS DE FICHEROS Ficheros Objetivos 2 Conocer los conceptos de fichero y directorio así como sus características. Utilizar los servicios de gestión de Ficheros y directorios ofrecidos

Más detalles

1 INTRODUCCIÓN AL PROYECTO

1 INTRODUCCIÓN AL PROYECTO 1 INTRODUCCIÓN AL PROYECTO 1.1 Marco teórico Una de las innovaciones tecnológicas más sobresalientes es el microprocesador, el cual se ha desarrollado rápidamente a partir de su invención. Los procesadores

Más detalles

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

Algoritmos y Estructuras de Datos Ingeniería en Informática 2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas

Más detalles

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios 35. Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas

Más detalles

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

La Máquina de Acceso Aleatorio (Random Access Machine) La Máquina de Acceso Aleatorio (Random Access Machine) Nuestro modelo de cómputo secuencial es la máquina de acceso aleatorio (RAM, Random Access Machine) mostrada en la Figura 2.1, y que consiste de:

Más detalles

Análisis y Recuperación de Información

Análisis y Recuperación de Información Análisis y Recuperación de Información 1 er Cuatrimestre 2016 Página Web http://www.exa.unicen.edu.ar/catedras/ayrdatos/ Prof. Dra. Daniela Godoy ISISTAN Research Institute UNICEN University Tandil, Bs.

Más detalles

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

Introducción al Procesamiento de Lenguaje Natural. Grupo PLN - InCo 2017 Introducción al Procesamiento de Lenguaje Natural Grupo PLN - InCo 2017 Recuperación de Información Recuperación de Información Dada una colección de documentos: cómo podemos recuperar información relevante

Más detalles

OPTIMIZACIÓN DE CÓDIGO

OPTIMIZACIÓN DE CÓDIGO OPTIMIZACIÓN DE CÓDIGO INTRODUCCION La finalidad de la optimización de código es producir un código objeto lo más eficiente posible. En algunos casos también se realiza una optimización del código intermedio.

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Contenidos del Tema Gestión de procesos Modelos de sistema Asignación de procesadores Estrategias dinámicas Estrategias estáticas Ejecución remota de procesos Modelos de sistema Organización de los procesadores

Más detalles

EXAMEN EXTRAORDINARIO Informática y Computación IV

EXAMEN EXTRAORDINARIO Informática y Computación IV Nombre del alumno: EXAMEN EXTRAORDINARIO Informática y Computación IV Lee cada una de las preguntas y contesta con una V para verdedero o una F en caso de que sea falso lo que se propone. Una base de datos

Más detalles

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

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías: Taxonomía de las arquitecturas 1 Introducción Introducción En este trabajo se explican en detalle las dos clasificaciones de computadores más conocidas en la actualidad. La primera clasificación, es la

Más detalles

PROCESAMIENTO DISTRIBUIDO

PROCESAMIENTO DISTRIBUIDO Pág. 1 INTRODUCCIÓN PROCESAMIENTO DISTRIBUIDO Arquitectura de comunicaciones: Software básico de una red de computadoras Brinda soporte para aplicaciones distribuidas Permite diferentes Sistemas Operativos

Más detalles

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

TIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software: SOFTWARE Software es un término informático que hace referencia a un programa o conjunto de programas de cómputo que incluye datos, procedimientos y pautas que permiten realizar distintas tareas en un

Más detalles

MicroSoft Access (2 de 4)

MicroSoft Access (2 de 4) Gestor de bases de datos MicroSoft Access (2 de 4) Departament d Informàtica de Sistemes i Computadors 1 Preliminares Instrucciones para el estudio: Leer detenidamente el material Realizar los ejemplos

Más detalles

Taxonomía de las arquitecturas

Taxonomía de las arquitecturas Taxonomía de las arquitecturas 1 INTRODUCCIÓN 2 2 CLASIFICACIÓN DE FLYNN 3 2.1 SISD (SINGLE INSTRUCTION STREAM, SINGLE DATA STREAM) 3 2.2 SIMD (SINGLE INSTRUCTION STREAM, MULTIPLE DATA STREAM) 4 2.2.1

Más detalles

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

Métodos de Ordenamiento. Unidad VI: Estructura de datos Métodos de Ordenamiento Unidad VI: Estructura de datos Concepto de ordenación La ordenación de los datos consiste en disponer o clasificar un conjunto de datos (o una estructura) en algún determinado orden

Más detalles

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

1. Crawler. 1.1 Qué es un Crawler. 1.2 Cómo trabaja 1. Crawler 1.1 Qué es un Crawler Se denomina crawler (del inglés, oruga) al programa informático que recorre la web en busca de información para indexamiento. Este programa es un elemento que siempre está

Más detalles

Almacenamiento y gestión de datos

Almacenamiento y gestión de datos página 1 de 5 Estudios de Seguridad Pública y Detective Privado Almacenamiento y gestión de datos Departamento de Lenguajes y Sistemas Informáticos UNIVERSIDAD DE ALICANTE ÍNDICE PRINCIPAL Introducción

Más detalles

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

Asignatura: Informática Documental Código: Año académico: Centro: Asignatura: Informática Documental Código: 41007308 Año académico: 2007-2008 Centro: Escuela Politécnica Superior Departamento: Lenguajes y Computación Área: Lenguajes y Sistemas Informáticos Titulación:

Más detalles

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

Gestor de bases de datos MicroSoft Access (2 de 4) Gestor de bases de datos MicroSoft Access (2 de 4) Departament d Informàtica de Sistemes i Computadors 1 Contenido Conceptos generales Diseño de tablas Propiedades de los campos Ordenación, filtrado e

Más detalles

Sistemas Operativos. Curso 2016 Sistema de Archivos

Sistemas Operativos. Curso 2016 Sistema de Archivos Sistemas Operativos Curso 2016 Sistema de Archivos Agenda Interfaz. Archivos. Directorios. Seguridad en archivos. Implementación. Definiciones. Sistema de archivos virtual. Estructura de los directorios.

Más detalles

Redes y Sistemas Complejos

Redes y Sistemas Complejos UNIVERSIDAD DE GRANADA E.T.S.I. INFORMÁTICA Y TELECOMUNICACIÓN Departamento de Ciencias de la Computación e Inteligencia Artificial Redes y Sistemas Complejos Guión de Prácticas Práctica 4: Caso Práctico

Más detalles

Capítulo 5. Conclusiones

Capítulo 5. Conclusiones Capítulo 5 Conclusiones En este trabajo se desarrolló un sistema capaz de clasificar enunciados dependiendo de la opinión que cada uno expresa acerca de una película. Se cumplió entonces con el objetivo

Más detalles

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

TEMA 0 REPASO DE CONCEPTOS BÁSICOS TEST PARA AUTOEVALUACIÓN DEL ALUMNO TEMA 0 REPASO DE CONCEPTOS BÁSICOS TEST PARA AUTOEVALUACIÓN DEL ALUMNO NOTA: Sólo hay una respuesta válida. Responder a las preguntas justo en el orden en que están planteadas. A) Fundamentos de Matemáticas:

Más detalles

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

Según estos párrafos, responder en un documento de texto de Google Drive las siguientes preguntas: Semana del 14 al 18 de julio de 2014. Segundo básico Activación de conocimientos previos. Observamos el siguiente video que nos explica el proceso de minería http://www.youtube.com/watch?v=w0txd4n3on4

Más detalles

Introducción a las Redes Neuronales

Introducción a las Redes Neuronales Introducción a las Redes Neuronales Excepto en las tareas basadas en el cálculo aritmético simple, actualmente, el cerebro humano es superior a cualquier computador: Reconocimiento de imágenes, Interpretación

Más detalles

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

CAPÍTULO 6 PROGRAMACIÓN DINÁMICA. Programación Dinámica CAPÍTULO 6 PROGRAMACIÓN DINÁMICA Programación Dinámica Programación Dinámica En muchos casos las decisiones del pasado afectan los escenarios del futuro. En estos casos se pueden tomar 2 opciones: asumir

Más detalles

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

CI-5313: Arquitectura y Administración de Base de Datos I Apuntes del curso INDICES (II y III) CI-5313: Arquitectura y Administración de Base de Datos I Apuntes del curso INDICES (II y III) Soraya Abad Mota Versión 1: Septiembre 2002 Actualizaciones: Enero 2005 y Septiembre 2007 1. Tópico 4: Lineamientos

Más detalles

Unidad 2. Bases de Datos Relacionales

Unidad 2. Bases de Datos Relacionales Unidad 2 Bases de Datos Relacionales El Modelo Relacional Origen Fue propuesto por E.F. Codd en los laboratorios de IBM Es un modelo lógico que establece una cierta estructura sobre los datos para luego

Más detalles

webir /08/2018

webir /08/2018 webir - 2018 20/08/2018 webir Libertad Tansini libertad@fing.edu.uy [webir] Lunes y Miércoles 14:30 a 16:00 2 webir Metodología y Evaluación Teórico Proyecto Investigación sobre un tema relacionado con

Más detalles

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

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM UNIDAD II Metodología de programación paralela UNIDAD II: Metodología de programación paralela Metodología de programación paralela Algunos conceptos que nos ayudarán a entender mejor el tema. Modelos

Más detalles

Diagrama de Flujo de Datos (DFD)

Diagrama de Flujo de Datos (DFD) Diagrama de Flujo de Datos (DFD) El objetivo del diagrama de flujo de datos es la obtención de un modelo lógico de procesos que represente el sistema, con independencia de las restricciones físicas del

Más detalles

Análisis de algoritmos

Análisis de algoritmos Tema 02: Complejidad de los algoritmos M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom 1 Contenido Algoritmo Algoritmo vs. Proceso Computacional

Más detalles

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

UNIDAD I. Universidad del Zulia Costa Oriental del Lago. Conceptos Básicos Costa Oriental del Lago UNIDAD I Conceptos Básicos Comandos internos y externos. Estructura básicas: entidad, atributo, base de datos, clave primaria y secundaria, registro y archivo de datos empresas

Más detalles

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

Manual de prácticas del Laboratorio de Dispositivos de Almacenamiento y de Entrada/Salida Secretaría/División: Área/Departamento: Manual de prácticas del Laboratorio de Dispositivos de Almacenamiento y de Entrada/Salida División de Ingeniería Eléctrica Departamento de Computación Memorias direccionables

Más detalles

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

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,

Más detalles

Estructura de Google

Estructura de Google Recuperación de Información en Internet: Estructura de Google Martín Llamas Nistal Nuevos Servicios Telemáticos Curso 2003-2004 Contenidos Introducción Características de Google Arquitectura de Google

Más detalles

Sistemas operativos. Tema 10: Sistemas de ficheros

Sistemas operativos. Tema 10: Sistemas de ficheros Sistemas operativos Tema 10: Sistemas de ficheros Sistemas de ficheros El sistema de ficheros suele ser el aspecto más m visible de un SO para los usuarios. Objetivos: Ofrecer una visión n uniforme del

Más detalles

2.5.1. Procesamiento de documentos XML.

2.5.1. Procesamiento de documentos XML. 2.5.1. Procesamiento de documentos XML. Un analizador o parser XML es una herramienta encargada de leer documentos XML [17], poder acceder a sus elementos y comprobar si el documento es sintácticamente

Más detalles

Modelo y Análisis 179

Modelo y Análisis 179 Modelo y Análisis 179 2.6 Análisis Funcional Por medio del análisis funcional: Se muestra las operaciones de los objetos y sus dependencia de datos por medio de los diagramas de flujo de datos. Se descompone

Más detalles

Capítulo 8. Árboles. Continuar

Capítulo 8. Árboles. Continuar Capítulo 8. Árboles Continuar Introducción Uno de los problemas principales para el tratamiento de los grafos es que no guardan una estructura establecida y que no respetan reglas, ya que la relación entre

Más detalles

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

OPENCOURSEWARE REDES DE NEURONAS ARTIFICIALES Inés M. Galván José M. Valls. Tema 6: Redes de Neuronas Recurrentes OPENCOURSEWARE REDES DE NEURONAS ARTIFICIALES Inés M. Galván José M. Valls Tema 6: Redes de Neuronas Recurrentes En este tema se estudian las redes de neuronas recurrentes. Se presentan en primer lugar

Más detalles

Cristian Blanco

Cristian Blanco UNIDAD DIDÁCTICA 8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMAS DE COMPORTAMIENTO En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML.: http://jms32.eresmas.net/tacticos/uml/umlindex.html

Más detalles

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

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 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 Tareas de la minería de datos: clasificación Clasificación (discriminación) Empareja

Más detalles

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

Módulo 1. Introducción a los lenguajes de programación Módulo 1. Introducción a los lenguajes de programación Objetivo - Definir qué es un lenguaje de programación e identificar cómo es su forma de clasificación. Introducción a los lenguajes de programación

Más detalles

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

INSTITUTO POLITECNICO NACIONAL SECRETARIA ACADEMICA DIRECCION DE ESTUDIOS PROFESIONALES EN INGENIERIA Y CIENCIAS FISICO MATEMATICAS ESCUELA: UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS CARRERA: LICENCIATURA EN CIENCIAS DE LA INFORMÁTICA LÍNEA CURRICULAR: COORDINACIÓN: ACADEMIAS DE COMPUTACIÓN

Más detalles

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos

Más detalles

CC52D - DCC/Univ. de Chile

CC52D - DCC/Univ. de Chile Objetivos del Curso Comprender los principales desafíos de RI y sus diferencias con otras disciplinas relacionadas. CC52D - DCC/Univ. de Chile Recuperación de la Información: Modelos, Estructuras de Datos,

Más detalles

Ideas básicas del diseño experimental

Ideas básicas del diseño experimental Ideas básicas del diseño experimental Capítulo 4 de Analysis of Messy Data. Milliken y Johnson (1992) Diseño de experimentos p. 1/23 Ideas básicas del diseño experimental Antes de llevar a cabo un experimento,

Más detalles

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

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

Más detalles

Administración de sistemas gestores de bases de datos

Administración de sistemas gestores de bases de datos Administración de sistemas gestores de bases de datos S TAR BOOK Pablo Valderrey Sanz Administración de sistemas gestores de bases de datos Pablo Valderrey Sanz Contenido Capítulo 1. Tipos de almacenamiento

Más detalles

Buscador de escritorio multimedia CIII Desktop Search

Buscador de escritorio multimedia CIII Desktop Search Universidad Carlos III de Madrid Repositorio institucional e-archivo Trabajos académicos http://e-archivo.uc3m.es Proyectos Fin de Carrera 2009-10 Buscador de escritorio multimedia CIII Desktop Search

Más detalles