Tema 2. Indexación y Búsqueda

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

description

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)? - PowerPoint PPT Presentation

Transcript of Tema 2. Indexación y Búsqueda

Page 1: Tema 2. Indexación y Búsqueda

1

Tema 2.Indexación y Búsqueda

Sistemas de Gestión Documental

Page 2: Tema 2. Indexación y Búsqueda

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?

Page 3: Tema 2. Indexación y Búsqueda

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.

Page 4: Tema 2. Indexación y Búsqueda

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.

Page 5: Tema 2. Indexación y Búsqueda

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.

Page 6: Tema 2. Indexación y Búsqueda

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.

Page 7: Tema 2. Indexación y Búsqueda

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.

Page 8: Tema 2. Indexación y Búsqueda

8

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.

traducción

búsquedacontextualtérminos adyacentes

and and

and

or

Page 9: Tema 2. Indexación y Búsqueda

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.

Page 10: Tema 2. Indexación y Búsqueda

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)

Page 11: Tema 2. Indexación y Búsqueda

11

Patrones

schwarzeneggersuarseneguer

scuarseneguer (+c)schuarseneguer (+h)schwarseneguer (uw)schwarzeneguer (sz) schwarzenegger (ug)

Page 12: Tema 2. Indexación y Búsqueda

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

Page 13: Tema 2. Indexación y Búsqueda

13

Consultas estructuradas Estructura fija: campo Hipertexto Estructura jerárquica

Page 14: Tema 2. Indexación y Búsqueda

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)

Page 15: Tema 2. Indexación y Búsqueda

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

Page 16: Tema 2. Indexación y Búsqueda

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.

Page 17: Tema 2. Indexación y Búsqueda

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)

Page 18: Tema 2. Indexación y Búsqueda

18

Ficheros invertidos

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

1 6 9 12 19 22 28 34 41 51 55 64 70 81 84

CompuestasDeEsEstánEstoLasLetrasMuchasPalabrasTextoTieneUn

70...81...6...64...1...51...84...34...41, 55...12, 22...28...9, 19...

Vocabulario Ocurrencias

FicheroInvertido

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

13...14...2...12...1...10...15...8...9, 11...4, 6...7...3, 5...

Page 19: Tema 2. Indexación y Búsqueda

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

Page 20: Tema 2. Indexación y Búsqueda

20

Ficheros invertidos Se puede reducir el tamaño de las ocurrencias

utilizando la técnica de direccionamiento de bloques:

Esto es un texto.

Bloque 1 Bloque 2 Bloque 3 Bloque 4

CompuestasDeEsEstánEstoLasLetrasMuchasPalabrasTextoTieneUn

Vocabulario Ocurrencias

FicheroInvertido

4...4...1...3...1...3...4...2...3...1, 2...2...1, 2...

Un texto tiene muchas palabras. Las palabras están compuestas de letras.

Page 21: Tema 2. Indexación y Búsqueda

21

Ficheros invertidos

INDICE COLECCIÓN PEQUEÑA

(1Mb)

COLECCIÓN MEDIANA(200 Mb)

COLECCIÓN GRANDE(2 Gb)

PALABRAS 45% 73% 36% 64% 35% 63%

DOCUMENTOS 19% 26% 18% 32% 26% 47%

BLOQUES (64K)

27% 41% 18% 32% 5% 9%

BLOQUES (256)

18% 25% 1.7% 2.4% 0.5% 0.7%

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.

Page 22: Tema 2. Indexación y Búsqueda

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.

Page 23: Tema 2. Indexación y Búsqueda

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.

Page 24: Tema 2. Indexación y Búsqueda

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.

Page 25: Tema 2. Indexación y Búsqueda

25

Ficheros invertidos Construcción: Ejemplo

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

1 6 9 12 19 22 28 34 41 51 55 64 70 81 84

letras: 84

compuestas: 70

muchas: 34

texto: 12,22

palabras: 41,55

tiene: 28

‘c’

‘l’

‘m’

‘p’

‘t’

‘e’

‘i’

Page 26: Tema 2. Indexación y Búsqueda

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.

Page 27: Tema 2. Indexación y Búsqueda

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.

Page 28: Tema 2. Indexación y Búsqueda

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.

Page 29: Tema 2. Indexación y Búsqueda

29

Vectores de sufijos

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

1 6 9 12 19 22 28 34 41 51 55 64 70 81 84

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.

Page 30: Tema 2. Indexación y Búsqueda

30

Vectores de sufijos

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

1 6 9 12 19 22 28 34 41 51 55 64 70 81 84

84

70

34

22

55

28

‘c’

‘l’

‘m’

‘p’

‘t’

‘e’

‘i’

41

12

‘x’ ‘t’ ‘o’ ‘ ’

‘.’

‘a’ ‘l’ ‘a’ ‘a’‘b’ ‘r’ ‘s’

‘ ’

‘.’

Arbol de sufijos

Page 31: Tema 2. Indexación y Búsqueda

31

Vectores de sufijos

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

1 6 9 12 19 22 28 34 41 51 55 64 70 81 84

1

2

84

70

34

22

55

28

‘c’

‘l’

‘m’

‘p’

‘t’

‘e’

‘i’

41

8

6

12

‘ ’

‘.’

‘ ’

‘.’

Arbol PAT (Patricia)

Page 32: Tema 2. Indexación y Búsqueda

32

Vectores de sufijos

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

1 6 9 12 19 22 28 34 41 51 55 64 70 81 84

8470 34 2255 2841 12

Vector de sufijos

8470 34 2255 2841 12

compuestas muchas texto

Page 33: Tema 2. Indexación y Búsqueda

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.

Page 34: Tema 2. Indexación y Búsqueda

34

Vectores de sufijos Buscar ‘palabras’.

84

70

34

22

55

28

‘c’

‘l’

‘m’

‘p’

‘t’

‘e’

‘i’

41

12

‘x’ ‘t’ ‘o’ ‘ ’

‘.’

‘a’ ‘l’ ‘a’ ‘a’‘b’ ‘r’ ‘s’

‘ ’

‘.’

Arbol de sufijos

Page 35: Tema 2. Indexación y Búsqueda

35

Vectores de sufijos Buscar ‘palabras’.

1

2

84

70

34

22

55

28

‘c’

‘l’

‘m’

‘p’

‘t’

‘e’

‘i’

41

8

6

12

‘ ’

‘.’

‘ ’

‘.’

Arbol PAT (Patricia)

Page 36: Tema 2. Indexación y Búsqueda

36

Vectores de sufijos Buscar ‘palabras’.

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

1 6 9 12 19 22 28 34 41 51 55 64 70 81 84

8470 34 2255 2841 12

Vector de sufijos

8470 34 2255 2841 12

compuestas muchas texto

Page 37: Tema 2. Indexación y Búsqueda

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.

Page 38: Tema 2. Indexación y Búsqueda

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.

Page 39: Tema 2. Indexación y Búsqueda

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.

Page 40: Tema 2. Indexación y Búsqueda

40

Ficheros de firmas

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

Bloque 1 Bloque 2 Bloque 3 Bloque 4

h(texto) = 000101h(muchas) = 110000 h(palabras) = 100100h(compuestas) = 001100h(letras) = 100001

000101 110101 100100 101101

Page 41: Tema 2. Indexación y Búsqueda

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.

Page 42: Tema 2. Indexación y Búsqueda

42

Ficheros de firmas

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

Bloque 1 Bloque 2 Bloque 3 Bloque 4

h(texto) = 000101h(muchas) = 110000 h(palabras) = 100100h(compuestas) = 001100h(letras) = 100001

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

Page 43: Tema 2. Indexación y Búsqueda

43

Ficheros de firmas

Esto es un texto. Un texto tiene muchas palabras. Las palabras están compuestas de letras.

Bloque 1 Bloque 2 Bloque 3 Bloque 4

h(texto) = 000101h(muchas) = 110000 h(palabras) = 100100h(compuestas) = 001100h(letras) = 100001

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

Page 44: Tema 2. Indexación y Búsqueda

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.

Page 45: Tema 2. Indexación y Búsqueda

45

Consultas booleanas Evaluación completa frente a evaluación perezosa:

AND AND

OR1 4 6

2 4 6 2 3 7

1 4 6 2 3 4 6 7

4 6

AND

OR1

4 3

AND

OR4

4 3

AND

OR6

6 7

...

Page 46: Tema 2. Indexación y Búsqueda

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.

Page 47: Tema 2. Indexación y 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.

Page 48: Tema 2. Indexación y Búsqueda

48

Autómatas de estados finitos

S0 S1 S2 S3 Salida

CPU

=C

=P =U=C

=CC

C, P

C, U

S0 S1 S2 S3 Salida

CPU

=C

=P =U=C

=CC

C, P

C, U

Problema: Buscar la palabra CPU

Page 49: Tema 2. Indexación y Búsqueda

49

Autómatas de estados finitos Algoritmo

Algoritmo Busqueda Secuencial Autómata FinitoEmpezarEstado S0Carácter Primer carácter del textoMientras (! 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 textoFin MientrasFin

Page 50: Tema 2. Indexación y Búsqueda

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.

Page 51: Tema 2. Indexación y Búsqueda

51

Fuerza Bruta

desvalijar una valijavalija valija valija valija valija valija valija valija valija valija valija valija valija valija valija valija

Page 52: Tema 2. Indexación y Búsqueda

52

Knuth-Morris-Prat El proceso de búsqueda no depende de la

longitud de la cadena a buscar. No necesita hacer comparaciones para

todos los caracteres en el documento de entrada.

Cuando se produce una discordancia, los caracteres analizados con anterioridad definen el número de posiciones que se debe avanzar para continuar la búsqueda.

Page 53: Tema 2. Indexación y Búsqueda

53

Knuth-Morris-Prat El funcionamiento del algoritmo es el

siguiente: Cuando se produce una discordancia en un

carácter, se salta toda la cadena de búsqueda hasta la siguiente posición en la que se produjo el fallo, excepto en el caso en que se repitan patrones en los caracteres que ya han coincidido.

El salto dependerá de la cadena de búsqueda, de forma que el salto será una función de la posición donde se produzca la discordancia.

Page 54: Tema 2. Indexación y Búsqueda

54

Knuth-Morris-Prat

D E S D E S D E Ñ A R . . .

D E S D E Ñ A R

D E S D E Ñ A R

D E S D E Ñ A R

D E S D E Ñ A R . . .

D E S D E N

D E S D E N

Page 55: Tema 2. Indexación y Búsqueda

55

Knuth-Morris-Prat

D E S D E Ñ A M I E N T O . . .

D E S D E Ñ A R

D E S D E Ñ A R

D E S D E Ñ A R???

Page 56: Tema 2. Indexación y Búsqueda

56

Knuth-Morris-Prat

POSICION CARACTER COINCIDEN REPETICION SALTO

1 A 0 0 1

2 B 1 0 1

3 C 2 0 2

4 A 3 0 3

5 B 4 1 3

6 C 5 2 3

7 A 6 3 3

8 C 7 4 3

9 A 8 0 8

10 B 9 1 8

A B C A B C A C

SALTO = COINCIDEN - REPETICION

Page 57: Tema 2. Indexación y Búsqueda

57

Knuth-Morris-Prat

b a b c b a b c a b c a a b c aa b c a b c a b a c1 

El fallo se produce en la primera posición. Salto=1

b a b c b a b c a b c a a b c a a b c a b c a b a c  4

El fallo se produce en la posición 4. Salto=3

b a b c b a b c a b c a a b c a a b c a b c a b a c  1

El fallo se produce en la posición 1. Salto=1

b a b c b a b c a b c a a b c a a b c a b c a b a c  8

El fallo se produce en la posición 8. Salto=3

b a b c b a b c a b c a a b c a a b c a b c a b a c  5

El fallo se produce en la posición 5, pero se ha sobrepasado el final de la cadena. Fin del proceso. Cadena no encontrada.

Page 58: Tema 2. Indexación y Búsqueda

58

Boyer-Moore El algoritmo de búsqueda se puede

mejorar si el proceso de comparación comenzase por la derecha en lugar de por la izquierda, y el avance en caso de fallo se produjese como en casos anteriores hacia la derecha.

La ventaja es que se pueden generar grandes saltos cuando el carácter que no coincide en el texto de entrada no existe en el patrón de búsqueda.

Page 59: Tema 2. Indexación y Búsqueda

59

Boyer-Moore

ES MAS FACIL DETERMINAR EL SALTOSALTO SALTO SALTO SALTO SALTO SALTO SALTO

Page 60: Tema 2. Indexación y Búsqueda

60

Boyer-Moore Métodos para calcular el salto:

Algoritmo 1. Ante una discordancia de un carácter, el carácter del texto se compara con el patrón de búsqueda para determinar el salto hacia la derecha. Si el carácter no existe en el patrón de búsqueda se salta la cadena completa.

Algoritmo 2. Si la discordancia se produce tras varias coincidencias, se salta en función de la repetición de patrones en la secuencia de búsqueda, y se alinea de nuevo usando ese valor.

Se toma como salto el mayor de los dos valores.

Page 61: Tema 2. Indexación y Búsqueda

61

Boyer-Moore

R L T D A B C D A B CA B C D A B C A B C D A B C A B C D A B C

Algorimto 1

Algorimto 2

Page 62: Tema 2. Indexación y Búsqueda

62

Boyer-Moore

f a b f a a b b d a b d a a ba b d a a b 

Algoritmo1=1Algoritmo2=0Salto=1

f a b f a a b b d a b d a a b a b d a a b 

Algoritmo1=3Algoritmo2=4Salto=4

f a b f a a b b d a b d a a b a b d a a b 

Algoritmo1=1Algoritmo2=4Salto=4

f a b f a a b b d a b d a a b a b d a a b 

Hay completa concordancia. Fin del proceso. Cadena encontrada.

Page 63: Tema 2. Indexación y Búsqueda

63

Búsqueda secuencial

Patrones cortos en inglés

Page 64: Tema 2. Indexación y Búsqueda

64

Búsqueda secuencial

Patrones largos de ADN

Page 65: Tema 2. Indexación y Búsqueda

65

Búsqueda secuencial

Patrones cortos en texto aleatorio

Page 66: Tema 2. Indexación y Búsqueda

66

Ejercicios1. Dibujar los autómatas de estados finitos para la búsqueda de las siguientes cadenas:

a) CIENb) CENCERROc) COCOLOCOd) DIENTEe) TONTOSe) DINADINO

2. Utilizando el algoritmo KMP, realizar las siguientes búsquedas de cadenas de texto:

a) TERFTERA en TEDTHRETETERTERFTERFTERFTERAb) ACIECIACIEN en AACCIIAACIACIEACIECIACIENc) KGRHRHKGH en KGRHKGRHRHKGKGRHRHKGH

3. Utilizando el algoritmo BM, realizar las siguientes búsquedas de cadenas de texto:

a) PERCOPE en TERMOPERMIDOSPERCOPEb) AASLETDAAA en AAAAAATAAAAAASLETDAAAc) COMIDA en NO SIRVE DE NADA COMER EN ESTE RESTAURANTE SI NO TE GUSTA LA COMIDA

Page 67: Tema 2. Indexación y Búsqueda

67

Feedback Los SRI no son perfectos en cuanto a

precisión y exhaustividad. Es necesario repetir un proceso de

consulta para alcanzar un resultado deseado para resolver NIOPs... ... ampliando la consulta (+ exhaustividad) ... reduciendo la consulta (+ precisión)

En ambos casos, trabajar sin ayuda del sistema para mejorar la consulta es una tarea poco efectiva.

Page 68: Tema 2. Indexación y Búsqueda

68

Feedback La ayuda del sistema para mejorar las

consultas se conoce como ‘Relevance Feedback’.

El Relevance Feedback conlleva la modificación automática de la consulta.

El principal problema a resolver es encontrar términos que son relevantes (han sido indexados en documentos relevantes) pero que no se utilizan en la consulta.

Page 69: Tema 2. Indexación y Búsqueda

69

FeedbackFormulación de la consulta

Mostrar hits

Reformular la consulta o mostrar

Mostrar información recuperada

Decidir el paso siguiente

no hits

Nueva consulta

Nueva consulta

Reformular consulta

Page 70: Tema 2. Indexación y Búsqueda

70

Feedback La evolución del relevance feedback se

ha llevado por dos vías: Asignación de nuevos pesos (reweighting)

para los términos de la consulta basado en la distribución de estos términos en los documentos relevantes y no relevantes que han sido obtenidos para esa consulta.

Modificación de los términos de la consulta, para contemplar nuevos términos que aparecen en documentos relevantes y eliminación de términos que aparecen en documentos no relevantes.

Page 71: Tema 2. Indexación y Búsqueda

71

Feedback Primeros pasos

Maron y Kuhns (1960). Los términos relacionados con la consulta original deberían ser añadidos a la consulta.

Salton (1971). Experimentos de relevance feedback sobre el sistema SMART.

Rocchio (1965, 1971). Experimentos sobre reasignación de pesos y expansión de la consulta.

Page 72: Tema 2. Indexación y Búsqueda

72

Feedback Primeros pasos

Fórmula de Rocchio (modelo EV):

21

121101

11 n

ii

n

ii S

nR

nQQ

Q0 = Vector de la consulta inicialRi = El vector del documento relevante iSi = El vector del documento no relevante in1 = Número de documentos relevantesn2 = Número de documentos no relevantes

Page 73: Tema 2. Indexación y Búsqueda

73

Feedback Evaluación del feedback

Comparación de datos compuestos de precisión – exhaustividad con y sin relevance feedback

Poco realista, puesto que sobre los mismos documentos vistos antes y después, seguro que hay mejora.

Comparación de datos compuestos de precisión – exhaustividad, eliminando los documentos que el usuario ya ha visualizado (para la evaluación inicial se utilizan los x documentos más relevantes).

Page 74: Tema 2. Indexación y Búsqueda

74

Feedback Reasignación de pesos.

Basado en modelo probabilístico.

rRnNrnrR

r

Wij

2log

Wij = Peso del término i en la consulta jr = Número de documentos relevantes para la consulta j que tienen el término iR = Número total de documentos relevantes para la consulta jn = Número de documentos en la colección que tienen el término iN = Número de documentos de la colección

Page 75: Tema 2. Indexación y Búsqueda

75

Feedback Expansión de la consulta.

Idealmente, se debería utilizar tesauros para buscar palabras relacionadas.

La construcción manual de tesauros es costosa y poco efectiva.

Se suele abordar el problema con la construcción automática de tesauros, aplicando técnicas de clustering y asociaciones término-término.

Page 76: Tema 2. Indexación y Búsqueda

76

Feedback Expansión de la consulta.

Asociaciones de términos. Co-ocurrencia de términos. Se suele dar en los

mismos documentos, y serán estos los que aparezcan en lo alto del nuevo ranking. Se mejora más la precisión que la exhaustividad.

Clustering de términos. No da buenos resultados, y hay que limitar la expansión a los términos fuertemente relacionados.

Nearest neighbor. Tampoco da buenos resultados. Se puede pedir al usuario que seleccione los términos a expandir, lo que mejora un poco el resultado.

Page 77: Tema 2. Indexación y Búsqueda

77

Feedback Expansión de la consulta con reasignación de

pesos. Es la técnica más utilizada. Para el modelo EV, existen 3 métodos que son los

estándares clásicos, combinan reasignación y expansión:

Ide Regular

Ide dec-hi

Standard Rocchio

21

121101

11 n

ii

n

ii S

nR

nQQ

SRQQn

ii

1

101

21

1 21 101

n

i

in

i

i

n

S

n

RQQ

Q0 = Vector de la consulta inicialRi = El vector del documento relevante iSi = El vector del documento no relevante iS = El vector del documento menos relevanten1 = Número de documentos relevantesn2 = Número de documentos no relevantes = 0,75 = 0,25

El mejor

Page 78: Tema 2. Indexación y Búsqueda

78

Feedback Otras aproximaciones:

Considerar el(los) documento(s) relevante(s) para la primera consulta como una nueva consulta. Da buenos resultados, y se puede aplicar a cualquier sistema.

Producción de lista de términos en todos los documentos recuperados en la primera iteración, ordenados por la frecuencia de aparición en el conjunto, para que el usuario seleccione.

En sistemas booleanos, utilizar términos de documentos previamente recuperados para construir una nueva consulta, pero no para el nuevo ranking.

Page 79: Tema 2. Indexación y Búsqueda

79

Feedback Cuando utilizar feedback

En sistemas booleanos se mejora bastante el rendimiento. Opciones:

Modificación automática de la consulta Producción de listas de términos ordenadas de importancia para que el

usuario seleccione términos en la consulta siguiente. En sistemas EV.

Se recomienda la formula de Ide dec-hi. Se aporta tanto reasignación de pesos como expansión de

consulta. Hay que decidir cuanta expansión se realiza, pues en caso de

exceso o defecto, los resultados empeoran. En sistemas probabilísticos, la reasignación de pesos y la

expansión de la consulta son dos procesos separados sin ninguna interdependencia.

Page 80: Tema 2. Indexación y Búsqueda

80

Feedback Proceso de adaptación:

Caracterizar una NIOP para repetir una consulta hasta alcanzar un grado de satisfacción por parte del usuario.

Proceso de optimización: Selección de la mejor forma de obtener

automáticamente una consulta en base a la evaluación del usuario.

Selección de los mejores algoritmos para cada usuario y situación en concreto.

Page 81: Tema 2. Indexación y Búsqueda

81

Feedback Ejemplo de algoritmos de feedback para

sistemas booleanos: Colecciones estáticas:

Algoritmo de feedback adaptativo Algoritmo de feedback selectivo

Colecciones dinámicas: Algoritmo de feedback adaptativo Algoritmo de feedback selectivo

Utilizando técnica de documentos marcados.

Page 82: Tema 2. Indexación y Búsqueda

82

Feedback Algoritmo de feedback adaptativo

para colecciones estáticas:1. Se seleccionan los documentos pertinentes del resultado de la consulta anterior (PQ).

2. Se construye un nuevo conjunto de documentos marcados combinando los documentos pertinentes del paso 1 con los documentos usados para la formulación de consultas anteriores (CM).

3. Se construye una consulta auxiliar (AQ) usando como entrada el conjunto de documentos marcados del paso 2 (CM) y aplicando algún algoritmo de indexación de consultas como el Algoritmo-M.

4. Se considera la formulación de una nueva consulta (NQ) eliminando de AQ todas las subconsultas que aparezcan en PQ y todas las subconsultas que contienen subconsultas incluidas en PQ.

5. Se realiza la consulta y se eliminan del resultado aquellos documentos que se hubiesen obtenido y mostrado al usuario en consultas previas.

6. El proceso finaliza cuando

6.1. AQ es una consulta vacía, o6.2. No hay nuevos documentos, o6.3. El usuario decide finalizar

Page 83: Tema 2. Indexación y Búsqueda

83

Feedback Algoritmo de feedback adaptativo

para colecciones dinámicas:1. Selección de los documentos pertinentes de la última consulta.

2. Se construye un nuevo conjunto de documentos marcados combinando los obtenidos en el paso 1 con los de la consulta previa.

3. Se construye una consulta auxiliar AQ usando el conjunto marcado del paso 2 y las nuevas frecuencias de descriptores en la nueva colección, esto es, con datos actualizados para aplicar el algoritmo de indexación de consultas.

4. Se crea una consulta modificad MQ añadiendo a PQ las nuevas subconsultas de AQ: MQ=PQ U AQ.

5. Se seleccionan los documentos no pertinentes de la consulta anterior.

6. Las subconsultas de PQ que se usaron para encontrar los documentos no pertinentes se eliminan de MQ si no aparecen en AQ.

7. El resultado final se obtiene de la búsqueda en la nueva colección con la consulta final del paso 6.

8. El proceso finaliza cuando:

8.1. No existen documentos pertinentes nuevos, o8.2. No existen documentos no pertinentes nuevos, o8.3. AQ es una consulta vacía o no existe variación en MQ, o8.4. Si el usuario decide finalizar

+E

+P

Page 84: Tema 2. Indexación y Búsqueda

84

Feedback Optimización

Criterio de selección del mejor algoritmo: max (r2/n), siendo r el número de docs pertinentes, n el número total de documentos devueltos.

No se puede utilizar el criterio: P + E = ( r/c + r/n) – no se conoce c.

Se utiliza el criterio EP

Page 85: Tema 2. Indexación y Búsqueda

85

Feedback Justificacion:

K(k1,k2,...,kN), evaluación del usuario a la consulta

V(v1,v2,...,vN), evaluación del sistema a la consulta

Si es el ángulo entre K y V, veremos que cos = (E * P)½

(Ki)2 = c

i=1

N(Ki)

2 = ci=1

N

i=1

N(vi)

2 = ni=1

N(vi)

2 = ni=1

N

i=1

N

(ki *vi) = ri=1

N(ki *vi) = r

i=1

N

i=1

N

(ki * vi)r r2 r r

cos = = = = * = P * Ec * n c * n c n

ki2 * vi

2

i=1

N

i=1

N

i=1

N

(ki * vi)r r2 r r

cos = = = = * = P * Ec * n c * n c n

ki2 * vi

2

i=1

N

i=1

N

i=1

N

i=1

N

i=1

N

i=1

N

Page 86: Tema 2. Indexación y Búsqueda

86

Feedback Justificacion:

Veamos ahora que (E * P)½ no depende de c. Supongamos que q1 y q2 son dos consultas de la misma representación de la NIOP. El número de documentos relevantes para cada consulta es el mismo, luego c será invariante para cada variación de la formulación de la consulta:

riEi =

c

riPi =

ni

ri2

E i * Pi = c * ni

riEi =

c

riPi =

ni

ri2

i * Pi = c * ni

ri2 rj

2 ri2 rj

2

Si > >c * ni c * nj ni nj

ri

2 rj2 ri

2 rj2

Si > >c * ni c * nj ni nj

Page 87: Tema 2. Indexación y Búsqueda

87

Feedback Algoritmo de feedback selectivo

para colecciones estáticas:

1. Se seleccionan los documentos relevantes de la última respuesta del sistema

2. Si la consulta anterior se basó en una consulta combinada de varios algoritmos, se comparan los algoritmos usando el criterio r2/n y se selecciona el mejor algoritmo

3. Se utiliza el mejor algoritmo para construir una consulta auxiliar AQ

4. Se construye una nueva consulta NQ eliminando de AQ todas las subconsultas que aparecen en PQ y las subconsultas que incluyen subconsultas de PQ.

5. Si NQ no está vacío, la búsqueda se realiza y se obtiene la salida preliminar

6. Se obtiene una nueva salida eliminando de la salida preliminar los documentos que aparecían en salidas anteriores. Esta nueva salida es la que se presenta al usuario.

Page 88: Tema 2. Indexación y Búsqueda

88

Feedback Algoritmo de feedback selectivo

para colecciones dinámicas:1. Se seleccionan los documentos relevantes de la última respuesta del sistema, basándose en la evaluación del usuario de esta salida.

2. Si la consulta anterior se basó en una consulta combinada, construida por más de un algoritmo, se comparan los algoritmos usando el criterio r2/n y se selecciona el mejor algoritmo.

3. Usando el mismo criterio, se seleccionan las mejores subconsultas entre las consultas que no son la mejor, y si el valor del criterio para tales subconsultas es mayor que el valor máximo, entonces se seleccionan para ser usadas en la búsqueda sobre la nueva colección de documentos.

4. Los documentos relevantes encontrados en la consulta previa son añadidos a aquellos en base a los cuales se construyó la anterior consulta, es decir, se obtiene una consulta más precisa.

5. En base al nuevo conjunto marcado, se construye una consulta preliminar utilizando los mejores algoritmos.

6. La consulta final se construye añadiendo las mejores subconsultas originales (paso 3) a la consulta preliminar.

7. Se realiza la búsqueda usando la consulta final, y el resultado se presenta al usuario.