Vous êtes sur la page 1sur 5

Listas invertidas

Las listas invertidas son una herramienta bsica para bsqueda por contenido en
texto. Consiste en '' factorizar'' las palabras del texto, guardando las referencias a
ocurrencias en documentos relevantes.

Conforme las grandes carreteras de la informacin proliferan y crecen en


capacidad, proporcionan acceso a un creciente nmero de repositorios
electrnicos de documentos. En cada repositorio, el nmero de documentos
disponible en linea aumenta rpidamente. Al mismo tiempo, el nmero de usuarios
finales con accesos de red crece rpidamente y una variedad de herramientas
como WWW (World Wide Web) y WAIS (Wide Area Information Servers or
Service) hacen posible siempre tener alcance a ms fuentes de informacin. Esto
incrementa rpidamente el nmero de documentos, sitios y los usuarios tienen
pensado renovar el inters en las tcnicas de indexacin para la documentacin
eficiente.

La estructura de datos bsica para la mayora de los sistemas IR son las Listas
Invertidas originalmente diseadas por Donald Knuth. La lista invertida para un
palabra en particular w contiene una secuencia de ligas, para cada ocurrencia de
w en algn documento. Cada referencia debe incluir una variedad de informacin,
por ejemplo el ``offset'' (desplazamiento) de la palabra (dentro de cada
documento) por cada una de sus ocurrencias y la zona donde esta ocurre (ttulo,
resumen, lista de autores, etc.). En un ndice completamente de texto, cada una
de las palabras del texto (con algunas excepciones, como palabras comunes el, la,
los, si, no, etc.) tiene una lista invertida. Como una regla general, el tamao de las
listas invertidas para ndices de texto es del mismo tamao que los documentos de
texto de las bases de datos. En un ndice de resmenes (abstracts), solo las
palabras que aparecen en la informacin bibliografica (ttulo, resumen) tienen
listas
Listas invertidas
Es una estructura que puede describirse como una tabla que contiene en cada fila
un trmino (palabra) que existe en la BD. A cada file se le asocia una lista de
identificadores de documentos y ocurrencias del trmino en cada documento en
que aparece.
Se ha paralelizado de dos formas:
a) Indice Local
b) Indice Global

Indice Local: los documentos se distribuyen uniformemente entre los P


procesadores. Una lista invertida se construye en cada P, referente a los trminos
almacenados en el respectivo P. Se tienen P listas invertidas. Para resolver una
consulta debe buscarse simultneamente en cada Procesador, puesto que un
mismo trmino puede estar en varios ndices.
Implementacin BSP:
1. La mquina front-end rutea 1 trmino de la consulta al procesador i
2. El procesador i hace el broadcast, la consulta se enva a todos los dems
procesadores en el superstep actual
3. En el siguiente superstep todos los procesadores examinan sus ndices
locales para obtener la lista invertida
4. Estas sublistas se envan al procesador i
5. en el prximo superstep el procesador i produce la lista final

Indice Global: Se hace un solo ndice con sus respectivas listas invertidas con
todos los documentos de la BD. (idem secuencial) Luego los trminos con sus
respectivas listas son distribuidos uniformemente en los P procesadores. Luego de
este mapeo cada procesador tienen un ndice de T/P trminos y listas. (T es el
total de palabras de toda la BD o vocabulario)
Implementacin BSP: Dado que un trmino esta en un nico ndice en un
determinado procesador, la mquina front-end sabe a que procesador enviar la
consulta. Si la consulta es de mas de un trmino, se envan de la misma forma y
luego se obtiene el resultado final.

Experimento:
Web site de 50MB de texto.
Consultas random de 1-4 trminos.
P: 2, 4, 8, 16
Funcin hash para el mapeo y bsqueda del ndice en P procesadores.
El balance ptimo se logra en todos los casos.
Valores: promedio del mximo observado en cada superstep
En forma random se determina el procesador que computa una consulta: dado
un superstep se supone que P procesadores componen en paralelo resultados

Costo de la ejecucin de estas estrategias (usando el modelo de costo BSP):


W: largo promedio de las lista invertida
D: costo promedio de accesos a disco

Las tablas de trminos estn en memoria principal y las listas en memoria


secundaria.

Indice Local:
Todos los procesadores procesan el mismo conjunto de consultas Q = q*P
1. Costo de Broadcast de Q: P(q + qG)+L
2. Computacin de los P procesadores para determinar las listas de
identificadores de documentos y enviar listas de tamao W/P, a sus procesadores
origen donde se componen las listas de tamao W: q W D +q W G + L
3. Finalmente en el ltimo superstep las lista final de tamao W es compuesta
y enviada a P mquinas front-end a un costo q W + q W G + L
Para P mquinas front-end el costo es: q W D + q(P + W) G + L

Indice Global:
1. Costo de distribuir q*P consultas en P procesadores: P (q +q G) + L
2. Cada procesador toma sus q consultas y construye en paralelo las listas de
identificadores para cada consulta a un costo q W D y enva sus resultados a un
costo q W G
Para P mquinas front-end el costo final es: q W D + q W G + L

Secuencial: q P W D + q P(1 + W) G +L (considerando una o mas mquinas front-


end, separadas del servidor secuencial)
La performance de la paralelizacin de listas invertidas esta severamente limitada
por los costos de comunicacin (cuando hay 1 sola mquina. front-end)

Arreglo de Sufijos
Es una estrategia que permite hacer bsqueda binaria para encontrar las
posiciones (documento y ubicacin dentro de este) en que se encuentra una
determinada palabra o rango expresado como una expresin regular. Si vemos la
base de documentos como un simple gran documento podemos construir un
arreglo que almacena posiciones de palabras en el gran texto. El arreglo se
encuentra ordenado lexicogrficamente segn las palabras apuntadas por los
elementos del arreglo, como se muestra en la siguiente figura:

As, por ejemplo, para saber en qu posiciones del texto se encuentran las
palabras que comienzan con tex se hace una bsqueda binaria para determinar
el inicio del rango de posiciones en el arreglo donde se encuentran los punteros a
dichas palabras (posicin 7 del arreglo en el ejemplo).

Se ha paralelizado de dos formas:


a) Indice Local
b) Indice Global

Indice Global: el arreglo considera todos los documentos (como el de la figura


anterior) y ste se distribuye en los procesadores de manera balanceada como en
la siguiente figura:

Note que cada procesador representa un intervalo en el rango de palabras y que


los punteros pueden referenciar a documentos ubicados en otros procesadores.
Los documentos se distribuyen uniformemente en los procesadores.

Bsqueda de Q=q*P consultas


1.Cada procesador toma sus q consultas y realiza en paralelo q bsquedas
binarias. Para un arreglo global de dimensin N, esto tiene un costo de: q + q
log(N/P)+ q W D
2.Las listas de identificadores de documentos se envan a P mquinas front-end a
un costo q W G + L
3.En esta estrategia es necesario determinar en que procesador (intervalo) rutear
una consulta dada. Para hacer esto la mquina front-end hace P-1 pivotes para
delimitar los respectivos intervalos. El ruteo se hace a un costo de: q P G + L
Costo final: q (1 + log(N/P) + W D) +q W G + L

Indice Local: en cada procesador se forman ndices independientes considerando


slo los documentos ubicados en el procesador, sin hacer referencia a
documentos de ubicados en otros procesadores.

Indice Local:
1. Cada procesador toma sus q consultas y hace el broadcast a los dems
procesadores a un costo: q + q P G + L
2. En el siguiente superstep cada procesador hace en paralelo q*P bsquedas
binarias para obtener las listas de identificadores parciales. Para un array global
de dimensin N el costo es: q P log (N/P) + q W D
3. Estos identificadores son enviados a los procesadores origen a un costo q
WG
4. La lista final se forma con un costo q W y se enva a las P mquinas front-
end a un costo q W G + L

Costo final para P mquinas front-end: q (1 + P log(N/P (W+D) + q (P + W) G + L

Secuencial: q P log(N) + q P W D

Vous aimerez peut-être aussi