Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

27
Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción http://www.inf.udec.cl/~andrea

Transcript of Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Page 1: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Indexación M. Andrea Rodríguez Tastets

DIIC - Universidad de Concepciónhttp://www.inf.udec.cl/~andrea

Page 2: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Introducción

Cómo recuperar información?

Una altenativa simple es buscar en todo el texto

Otra alternativa es construir estructuras de datos sobre el texto (llamdos índices) para celerar la búsqueda

Page 3: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Introducción

Técnicas de indexación:• Archivos invertidos• Arreglo de sufijos• Archivos de firma (signature files)

Page 4: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Notación

n: el tamaño del texto m: el largo del patrón v: el tamaño del vocabulario M: la cantidad de memoria principal

disponible

Page 5: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Inverted Files

Definición: es un mecanismo orientado a la palabra para indexar una colección de archivos.

Estructura:• Vocabulario: es un conjunto de todas las

palabras distintas en el texto • Ocurrencias: listas conteniendo toda la

información necesaria para cada palabra de vocabulario ( posición en el texto,frecuencia, documentos donde aparece,..)

Page 6: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Ejemoplo Texto:

Inverted file

1 6 12 16 18 25 29 36 40 45 54 58 66 70

That house has a garden. The garden has many flowers. The flowers are beautiful

beautiful

flowers

garden

house

70

45, 58

18, 29

6

Vocabulario Ocurrencias

Page 7: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Requerimientos de espacio

El espacio requerido para un vocabulario es más bien pequeño. De acuerdo a Heaps’ law, el vocabulario crece en un orden O(n), donde es una constante entre 0.4 y 0.6 in practica y n es la cantidad de documentos

• Las ocurrencias demandan mayor espacio. Debido a que cada palabra que aparece en el texto es referenciada una vez en la estructura, el espacio extra es O(n)

• Para reducir espacio, se usa una técnica de direccionamiento de bloque (block addressing)

Page 8: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Block Addressing El texto se divide en bloques Los puntos de ocurrencia son a los

bloques donde las palabras aparecen Ventajas:

• Los bloques son menores que las posiciones• Todas las referencias dentro de un bloque se

reducen a una sola ocurrencia Desventaja:

• búsqueda en línea sobre los bloques pre-seleccionados si las posiciones exactas son requeridas

Page 9: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Ejemplo Text:

Inverted file:

Block 1 Block 2 Block 3 Block 4

That house has a garden. The garden has many flowers. The flowers are beautiful

beautiful

flowers

garden

house

4

3

2

1

Vocabulario Ocurrencias

Page 10: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Búsqueda

El algoritmo de búsqeda en un archivo invertido sigue los siguientes pasos:• Búsqueda en el vocabulario• Recuperación de ocurrencias• Manipulación of ocurrencias

Page 11: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Búsqueda Tarea de búsqueda en archivos

invertidos siempre comienza en la vocabulario ( Es mejor tener elvocabulario en un archivo separado)

Las estructuras más usadas para el vocubulario son hashing, tries o B-trees

Una alternativa simple es mantener el vocabulario en orden (O(log v) costo )

Page 12: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Btree

P

C G M T X

A B N O

U V D E F J K L Q R S Y Z

Page 13: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Tries

19 35 45Este es un ejemplo de árboles extendidos

árboles:35a

j ejemplo:19e

x extendido:45

Page 14: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Construcción

Todo el vocabulario es mantenido en una estructura de datos adecuada para mantener por cada palabra una lista de ocurrencias

Cada palabra del texto es leída y buscada en el vocabulario

Si no se encuentra, se agrega con una lista de ocurrencia vacía y la nueva ocurrencia en agregada a la lista

Page 15: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Construcción

• Una vez el texto es revisado, el vocabulario es escrito en disco. Dos archivos son creados

• en el primer archivo, la lista de ocurrencias en almacenada contiguamente

• en el segundo, el vocabulario es almacendao en orden con un puntero a lista en el primer archivo

• El proceso tiene un tiempo en el peor caso de orden O(n)

Page 16: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Construcción• Una opción es usar el algoritmo previo hasta

que la memoria principal se agota. Cuando esto ocurre, el índice parcial Ii obtenido hasta ahora es grabado en disco y borrado de memoria antes de continuar con el resto del texto.

• Cuando el texto se acaba, un número parcial de índices Ii existen en disco

Ls índices parciales son mezclados para obtener el índice final

Page 17: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Ejemplo

I 1...8

I 1...4 I 5...8

I 1...2 I 3...4 I 5...6 I 7...8

I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8

1 2 4 5

3 6

7

final index

initial dumps

level 1

level 2

level 3

Page 18: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Construcción El tiempo total para generar el índice

parcial O(n) El número índices parciales O(n/M) Para mezclar los O(n/M) índices

parciales, se necesitan log2(n/M) noveles de mezcla

El costo total es de O(n log(n/M))

Page 19: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Arreglo de Sufijos

El índice ve el texto como una larga cadena de palabras (string). Las mayores desventajas de un arreglo de sufijo son su costo de construcción, el texto debe estar disponible al tiempo de consulta, y los resultados son entregados sin seguir el orden en el texto. Este índice puede organizar palabras y texto de caracteres.

Cada posición en el texto es vista como un sufijo (un string que va desde la posición hasta el final del texto). Sufijos partiendo de diferentes posición son siempre diferentes.

Page 20: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Arreglo de Sufijos: Ejemplo

4 22 37 52 62

Un texto con palabras y letras que forman párrafos.

texto con palabras y letras que forman párrafos.palabras y letras que forman párrafos.letras que forman párrafos.forman párrafos.párrafos.

Page 21: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Arreglo de Sufijos: Ejemplo

4 22 37 52 62

Un texto con palabras y letras que forman párrafos.

Un arreglo de suf ijos es un arreglo que contiene todos los punteros al listadode suf ijos en orden léxico.

for pal

52 37 22 62 4

Page 22: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Arreglo de Sujifo: Búsqueda

Para textos grandes arreglos de sufijos responden en el orden de O(log n), con n el tamaño de la base de datos textual, para búsqueda binarias.

El proceso de búsqueda es el siguiente: el patrón de búsqueda S origina dos "patrones

límites" P1 y P2 tal que cualquier sufijo es P1 S P2.

La búsqueda es binaria entre los dos patrones límites en el arreglo de sufijos.

Todas las consultas recuperan un intervalo del arreglo sufijo.

Page 23: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Arreglo de Sufijo: Construcción

• Se dividen los sufijos por bloques de acuerdo al orden dado por la primera letra. Luego, se sigue con la segunda letra y así. El tiempo promedio de construcción de un arreglo sufijo en memoria es O(nlog log n).

• Para texto muy largos, se construye un arreglo sufijo para un primer bloque que se combina con un segunda y con un tercero a medida que se construyen los arreglos sufijos de sucesivos bloques.

Page 24: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Archivos de Firmas

Los archivos signatura son estructuras de índices orientadas a la palabra basadas en hashing. Poseen un consumo extra de espacio de 10% a un 20% del texto al costo de forzar una búsqueda secuencial sobre el índice. La función hash traduce las palabras a mascaras de B bits.

Un archivo signatura divide el texto en bloques de b palabras. Para cada bloque de palabras una máscara de B bits es asignada. La máscara es asignada al "bitwise ORing" la signatura de todas las palabras en el bloque.

Page 25: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Archivos de Firmas

Bloque 1 Bloque 2 Bloque 3

El texto es largo. El texto es irregular, compuesto de palabras.

110101 100101 101001

Signatura de palabras:Texto: 000101Largo: 110000Irr egular: 100100Compuesto: 001001Palabras: 100001

Page 26: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Archivos de Firmas

El problema de este índice es cuando un máscara indica que una palabra existe aunque no se así (debido a la operación OR sobre las signaturas). Este es llamado "falso drop." La probabilidad de este error esta determinada por el tamaño B y b, es decir, por el "overhead" del sistema.

Este esquema mejora para búsqueda de frases ya que todos las palabras deben ser encontradas dentro del bloque reduciendo la probabilidad de "false drop."

Page 27: Indexación M. Andrea Rodríguez Tastets DIIC - Universidad de Concepción andrea.

Conclusiones

Archivos invertidos es probablemente el índice más adecuado para base de datos textuales

Los índices son adecuados cuando la colección de texto es grande y semi-estáctica

Si la colección de texto es volátil, búsqueda en línea es la única opción

Algunas ténicas combinan búsqueda online con indexación