Académique Documents
Professionnel Documents
Culture Documents
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.
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 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
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
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).
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
Secuencial: q P log(N) + q P W D