1 / 88

Tema 2. Indexación y Búsqueda

Tema 2. Indexación y Búsqueda. Sistemas de Gestión Documental. Introducción. ¿Qué tipos de consulta puedo realizar? ¿Cómo puedo tratar (indexar) el texto para poder realizar mis consultas? ¿Necesito realizar alguna tarea previa a la indexación (preprocesado)?

raja
Télécharger la présentation

Tema 2. Indexación y Búsqueda

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tema 2.Indexación y Búsqueda Sistemas de Gestión Documental

  2. Introducción • ¿Qué tipos de consulta puedo realizar? • ¿Cómo puedo tratar (indexar) el texto para poder realizar mis consultas? • ¿Necesito realizar alguna tarea previa a la indexación (preprocesado)? • ¿Cómo se van a resolver las consultas? ¿Tengo alguna alternativa de ayuda?

  3. Lenguajes de consulta • Cada modelo de RI responderá a distintos tipos de consultas. • Veremos QUE consultas se pueden hacer, y COMO se resuelven. • Modelos básicos: consultas basadas en palabras clave (keywords). • Modelos avanzados: consultas con procesamiento del lenguaje natural.

  4. Palabras clave • La consulta se compone de palabras clave que se deben buscar dentro de los documentos. • Son intuitivas, fáciles de expresar, y permiten un ranking rápido. • Constan de una sola palabra o de una combinación más o menos compleja de palabras.

  5. Palabras clave • Consultas de una palabra • Aceptada por todos los modelos. Algunos modelos permiten la separación de palabra en letras. • Detección de palabras: letras y separadores  problema de identificación de separadores (válidos sólo en algunos casos). • El resultado de la consulta es el conjunto de documentos que contienen la palabra. • El ranking se soporta con medidas estadísticas como la frecuencia de términos y la frecuencia de documento inversa.

  6. Palabras clave • Consultas contextuales • Permiten búsquedas de palabras en ciertos contextos del documentos (proximidad). • Operaciones contextuales: • Frases. Secuencia de palabras. Permite la inclusión de palabras vacías dentro de la frase. • Proximidad. Especificación de la distancia entre los términos o frases, según distintas unidades (palabras, párrafos) y características (unidireccional, bidireccional). • El ranking de consultas de frases es similar al de consultas de términos. El ranking de proximidad no está muy claro como hacerlo.

  7. Palabras clave • Consultas booleanas • La forma más antigua de combinar términos. • Sintaxis: términos combinados con operadores booleanos. • Es un esquema composicional: los operandos pueden ser los resultados de otras operaciones. • Producen conjuntos de documentos.

  8. and or traducción and and términos adyacentes búsqueda contextual Palabras clave • Consultas booleanas • Arbol de consulta • Operadores: • OR (a or b) • AND (a and b) • NOT (not b) • BUT (a but b) • No hay ranking en sistemas booleanos puros.

  9. Palabras clave • Lenguaje natural • Eliminación completa de operadores. • Simple enumeración de términos y contextos. • Se recuperan documentos que satisfagan parcialmente la consulta. • El ranking será mayor cuanto más partes de la consulta se satisfagan. • Completamente aplicable al modelo de RI de espacios vectoriales.

  10. Patrones • Se permiten búsquedas parciales de términos • Palabras completas (preservar) • Prefijos (preser*) • Sufijos (*cación) • Subcadenas (*cans*) • Rangos (1027 < x < 2077) • Fallos permitidos (fuzzy) (~suarseneguer) (Distancia Levenshtein – mínimo número de inserciones, sustituciones y borrados necesario para igualar las dos cadenas)Ejercicio: (schwarzenegger || suarseneguer)

  11. Patrones schwarzeneggersuarseneguer scuarseneguer (+c)schuarseneguer (+h)schwarseneguer (uw)schwarzeneguer (sz)schwarzenegger (ug)

  12. Patrones • Expresiones regulares(pro(blema|teina)(s|)(0|1|2|)*)problema02, proteinas, proteina00121, ... • Unión (a|b) • Concatenación (ab) • Repetición (*) • Patrones extendidos. Particularizaciones de los patrones extendidos, con un lenguaje de consulta más sencillo. • Clases de caracteres (dígitos, posiciones, etc.) • Expresiones condicionales • Truncamientos • Combinaciones de encaje exacto, encaje con errores

  13. Consultas estructuradas • Estructura fija: campo • Hipertexto • Estructura jerárquica

  14. Protocolos de Consulta • En red (on-line) • Z39.50 • WAIS (Wide Area Information Service) • CDs (off-line) • CCL (Common Command Language) • CD-RDx (Compact Disc Read Only Data exchange) • SFQL (Structured Full-text Query Language)

  15. Indexación y búsqueda • Vamos a ver las principales técnicas que permiten resolver las consultas. • Consultas compuestas de palabras  documentos que las contienen • Operaciones booleanas • Algoritmos de búsqueda secuencial y búsqueda de patrones

  16. Indexación • Opciones de búsqueda • Recorrido del texto • No hay preprocesamiento. • Textos pequeños. • Colecciones volátiles. • Utilización de estructuras de apoyo (índices) • Grandes colecciones. • Colecciones estáticas. • Ficheros invertidos, vectores de sufijos y ficheros de firmas.

  17. Ficheros invertidos • Es un mecanismo orientado al término para indexar una colección. • Se compone de: • Vocabulario (conjunto de palabras que aparecen en un texto). • Ocurrencias (lista de las apariciones de cada palabra en el texto, una por cada palabra). • Posiciones de palabras (facilitan las búsquedas de proximidad y de frases) • Posiciones de caracteres (facilitan los accesos a las posiciones de los textos)

  18. Ficheros invertidos 1 6 9 12 19 22 28 34 41 51 55 64 70 81 84 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Vocabulario Ocurrencias Compuestas De Es Están Esto Las Letras Muchas Palabras Texto Tiene Un 70... 81... 6... 64... 1... 51... 84... 34... 41, 55... 12, 22... 28... 9, 19... 13... 14... 2... 12... 1... 10... 15... 8... 9, 11... 4, 6... 7... 3, 5... Fichero Invertido

  19. Ficheros invertidos • Fichero invertido / Lista invertida • El primero hace referencia (apunta) a documentos, y el segundo a términos. • Espacio que necesita el vocabulario • Crecimiento: O(n), 0.4<  <0.6, n es el número de palabras en la base de datos • Ejemplo: 1Gb de una colección de TREC-2 ocupa 5Mb. • Espacio que necesitan las ocurrencias • Crecimiento: O(n) • En la práctica, 30% o 40% sobre el tam. del texto

  20. Ficheros invertidos • Se puede reducir el tamaño de las ocurrencias utilizando la técnica de direccionamiento de bloques: Bloque 1 Bloque 2 Bloque 3 Bloque 4 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. Vocabulario Ocurrencias Compuestas De Es Están Esto Las Letras Muchas Palabras Texto Tiene Un 4... 4... 1... 3... 1... 3... 4... 2... 3... 1, 2... 2... 1, 2... Fichero Invertido

  21. Ficheros invertidos Tamaños de un fichero invertido como porcentajes del total de la colección. La columna de la izquierda indica que no se han indexado stopwords. La columna de la derecha indica que se han indexado todos los términos.

  22. Ficheros invertidos • Búsqueda en ficheros invertidos (algoritmo) • Búsqueda de vocabulario • Se buscan las palabras de la consulta en el vocabulario, separando en palabras las frases y búsquedas de proximidad. • Recuperación de ocurrencias • Manipulación de ocurrencias • Se resuelven frases, proximidad u operaciones booleanas. • Si se usa indexación de bloques, habrá que buscar posiciones exactas dentro de los bloques.

  23. Ficheros invertidos • Búsqueda de vocabulario • Búsqueda secuencial, Búsqueda binaria, Arboles B, Tablas Hash • Las búsquedas de prefijos y rangos no se puede hacer con tablas hash. • Las búsquedas contextuales se resolverán de forma distinta según el tipo de indexación utilizado. • Un ejemplo: la búsqueda de una palabra en un fichero de 250Mb puede costar 0.08 s., mientras que la búsqueda de una frase (3 a 5 palabras) de 0.25 s a 0.35 s.

  24. Ficheros invertidos • Construcción • Una de las formas más utilizadas de implementación son los árboles • Se mantienen 2 ficheros separados: • Vocabulario, que se puede mantener en memoria y referencia a las ocurrencias. • Ocurrencias, almacenadas de forma contigua. • Se parte de un estado previo del índice. • Se busca si el término existe • SI  Se añade la entrada en las ocurrencias • NO  Se añade al vocabulario, y se actualizan las ocurrencias.

  25. Ficheros invertidos • Construcción: Ejemplo 1 6 9 12 19 22 28 34 41 51 55 64 70 81 84 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. compuestas: 70 ‘c’ letras: 84 ‘l’ ‘m’ muchas: 34 ‘p’ palabras: 41,55 ‘t’ ‘e’ texto: 12,22 ‘i’ tiene: 28

  26. Vectores de sufijos • Los ficheros invertidos asumen que los textos son secuencias de palabras  se limita el tipo de búsquedas. • Las consultas de tipo frases son más difíciles de resolver. • Los vectores de sufijos permiten resolver de forma más eficiente consultas de tipo complejo.

  27. Vectores de sufijos • El inconveniente es que construirlos es un proceso costoso. • Permite indexar palabras y caracteres. • Se pueden aplicar a un mayor rango de aplicaciones. • Para aplicaciones que utilizan exclusivamente palabras, los ficheros invertidos funcionan mejor, sin considerar la resolución de consultas complejas.

  28. Vectores de sufijos • ¿Cómo funciona? • Se considera el texto como una cadena de caracteres. • Cada posición del texto se considera como un sufijo. • Cada sufijo se identifica unívocamente por su posición. • No es necesario indexar todas las posiciones del texto (por ejemplo, se pueden indexar sólo comienzos de palabras). • Los elementos no indexados NO serán recuperables.

  29. Vectores de sufijos 1 6 9 12 19 22 28 34 41 51 55 64 70 81 84 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. texto tiene muchas palabras. Las palabras están compuestas de letras. tiene muchas palabras. Las palabras están compuestas de letras. muchas palabras. Las palabras están compuestas de letras. palabras. Las palabras están compuestas de letras. palabras están compuestas de letras. compuestas de letras. letras.

  30. Vectores de sufijos 1 6 9 12 19 22 28 34 41 51 55 64 70 81 84 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. 70 ‘c’ Arbol de sufijos 84 ‘l’ ‘m’ 34 55 ‘ ’ ‘p’ ‘a’ ‘l’ ‘a’ ‘b’ ‘r’ ‘a’ ‘s’ ‘t’ ‘.’ 41 ‘e’ ‘ ’ ‘x’ ‘t’ ‘o’ 22 ‘i’ ‘.’ 28 12

  31. Vectores de sufijos 1 6 9 12 19 22 28 34 41 51 55 64 70 81 84 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. 70 ‘c’ Arbol PAT (Patricia) 84 ‘l’ ‘m’ 1 34 55 ‘ ’ ‘p’ ‘t’ 8 ‘.’ 41 ‘ ’ ‘e’ 22 2 ‘i’ 6 ‘.’ 28 12

  32. Vectores de sufijos 1 6 9 12 19 22 28 34 41 51 55 64 70 81 84 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. compuestas muchas texto 70 84 34 55 41 22 12 28 70 84 34 55 41 22 12 28 Vector de sufijos

  33. Vectores de sufijos • Búsquedas • Se pueden buscar prefijos, frases y palabras en los árboles de sufijos. • Las búsquedas en vectores de sufijos se pueden realizar de la misma manera, pero más rápidamente. • Las búsquedas en los árboles determinan el subárbol que satisface la consulta. • Las búsquedas en los vectores determinan el conjunto de valores que satisfacen la consulta.

  34. Vectores de sufijos • Buscar ‘palabras’. 70 ‘c’ Arbol de sufijos 84 ‘l’ ‘m’ 34 55 ‘ ’ ‘p’ ‘a’ ‘l’ ‘a’ ‘b’ ‘r’ ‘a’ ‘s’ ‘t’ ‘.’ 41 ‘e’ ‘ ’ ‘x’ ‘t’ ‘o’ 22 ‘i’ ‘.’ 28 12

  35. Vectores de sufijos • Buscar ‘palabras’. 70 ‘c’ Arbol PAT (Patricia) 84 ‘l’ ‘m’ 1 34 55 ‘ ’ ‘p’ ‘t’ 8 ‘.’ 41 ‘ ’ ‘e’ 22 2 ‘i’ 6 ‘.’ 28 12

  36. Vectores de sufijos • Buscar ‘palabras’. 1 6 9 12 19 22 28 34 41 51 55 64 70 81 84 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. compuestas muchas texto 70 84 34 55 41 22 12 28 70 84 34 55 41 22 12 28 Vector de sufijos

  37. Ejercicio • Crear un fichero invertido, un arbol de sufijos y un arbol PAT para el siguiente texto. (Nota: Extraer sólo información relevante, es decir, eliminar stopwords) La defensa de una idea comienza por la defensa de las ideas básicas que componen la idea principal.

  38. Ficheros de firmas • Son estructuras de índice orientadas a palabras, basadas en técnicas de hashing. • Ocupan poco espacio (10%-20% sobre el tamaño del texto). • Contrapartida: hay que hacer búsqueda secuencial sobre el índice. • Apropiada para textos no excesivamente largos, su coste es lineal, con una constante bastante pequeña. • Son menos eficientes que los ficheros invertidos para la mayoría de aplicaciones.

  39. Ficheros de firmas • Funcionamiento: • Se divide el texto en bloques • Se determina una función de hash • A cada bloque se asigna una máscara de bits que lo identifica unívocamente. • Se crea una tabla hash que asigna a cada bloque el resultado de una función OR a nivel de bit para los términos en el bloque.

  40. Ficheros de firmas Bloque 1 Bloque 2 Bloque 3 Bloque 4 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. 000101 110101 100100 101101 h(texto) = 000101h(muchas) = 110000 h(palabras) = 100100h(compuestas) = 001100h(letras) = 100001

  41. Ficheros de firmas • Búsquedas • Se compara el resultado de una función de hash W con la máscara correspondiente a una entrada en el índice Bi. Si W & Bi = W entonces el término se encuentra en el bloque. • False drop. Hay que conseguir una buena función de hash para evitarlo.

  42. Ficheros de firmas Bloque 1 Bloque 2 Bloque 3 Bloque 4 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. 000101 110101 100100 101101 BUSQUEDA DE MUCHAS h(muchas) = 110000 h(muchas) & B1 = 110000 & 000101 = 000000  110000 h(muchas) & B2 = 110000 & 110101 = 110000 = 110000 h(muchas) & B3 = 110000 & 100100 = 100000  110000 h(muchas) & B4 = 110000 & 101101 = 100000  110000 h(texto) = 000101h(muchas) = 110000 h(palabras) = 100100h(compuestas) = 001100h(letras) = 100001

  43. Ficheros de firmas Bloque 1 Bloque 2 Bloque 3 Bloque 4 Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras. 000101 110101 100100 101101 BUSQUEDA DE TEXTO h(texto) = 000101 h(texto) & B1 = 000101 & 000101 = 000101 = 000101 h(texto) & B2 = 000101 & 110101 = 000101 = 000101 h(texto) & B3 = 000101 & 100100 = 000100  000101 h(texto) & B4 = 000101 & 101101 = 000101 = 000101 h(texto) = 000101h(muchas) = 110000 h(palabras) = 100100h(compuestas) = 001100h(letras) = 100001

  44. Consultas booleanas • Primero hay que recuperar los documentos según los términos. • Posteriormente hay que resolver la relevancia de los documentos. • Por último, hay que resolver las operaciones de conjuntos a través de los árboles sintácticos de la consulta.

  45. Consultas booleanas • Evaluación completa frente a evaluación perezosa: AND AND 4 6 1 4 6 OR 1 4 6 2 3 4 6 7 2 4 6 2 3 7 AND AND AND 1 OR 4 OR ... 6 OR 4 3 4 3 6 7

  46. Búsqueda secuencial • Algoritmos para búsqueda de cadenas cuando el texto no tiene ningún tipo de estructura de apoyo asociada. • Trataremos la búsqueda exacta de cadenas. • Problema: dado un patrón P de longitud m y un texto T de longitud n (n>m), se trata de encontrar las posiciones del texto que contienen el patrón de búsqueda.

  47. Búsqueda secuencial • Es un problema informático tradicional • Existen multitud de algoritmos que se pueden aplicar. Sólo veremos los más importantes. • En comparación, los algoritmos tendrán costes espaciales y temporales, de modo que a mayor coste temporal, menor coste espacial, y a la inversa.

  48. Autómatas de estados finitos Problema: Buscar la palabra CPU

  49. Autómatas de estados finitos • Algoritmo Algoritmo Busqueda Secuencial Autómata Finito Empezar Estado  S0 Carácter  Primer carácter del texto Mientras (! Final de texto) Caso (Estado) S0: si (Carácter = C) entonces Estado  S1 fin si S1: si (Carácter = P) entonces Estado  S2 sino si (Carácter = C) entonces Estado  S1 sino Estado  S0 fin si fin si S2: si (Carácter = U) entonces Estado  S3 (ENCONTRADO + TERMINAR) sino si (Carácter = C) entonces Estado  S1 sino Estado  S0 fin si fin si Fin Caso Carácter  Leer siguiente carácter del texto Fin Mientras Fin

  50. Fuerza Bruta • Es el algoritmo más simple posible. • Consiste en probar todas las posibles posiciones del patrón en el texto. • Se sitúa el patrón en la primera posición, y se compara carácter a carácter hasta encontrar un fallo o llegar al final del patrón. • Se pasa a la siguiente posición y se repite el proceso. • El proceso finaliza al alcanzar el final del texto.

More Related