Articulo de referencia

Índice de subcadena

En informática , un índice de subcadenas es una estructura de datos que permite la búsqueda de subcadenas en un texto o colección de textos en tiempo sublineal . Una vez constru...

En informática , un índice de subcadenas es una estructura de datos que permite la búsqueda de subcadenas en un texto o colección de textos en tiempo sublineal . Una vez construido a partir de un documento o conjunto de documentos, un índice de subcadenas puede utilizarse para localizar todas las ocurrencias de un patrón en tiempo lineal o casi lineal con respecto al tamaño del patrón, sin dependencia o con una dependencia logarítmica únicamente respecto al tamaño del documento. [ 1 ]

La expresión « índice de texto completo» se usa a menudo para referirse a índices de subcadenas. Sin embargo, esto resulta ambiguo, ya que también se utiliza para índices de palabras comunes, como archivos invertidos y recuperación de documentos . Véase «búsqueda de texto completo» .

Consideraciones generales

Estas estructuras de datos suelen tratar el texto y el patrón como cadenas sobre un alfabeto fijo, y buscan ubicaciones donde el patrón aparece como una subcadena del texto. Los símbolos del alfabeto pueden ser caracteres (por ejemplo, en Unicode ), pero en aplicaciones prácticas para la recuperación de texto puede ser preferible tratar las palabras ( con raíz ) de un documento como los símbolos de su alfabeto, ya que esto reduce la longitud tanto del texto como del patrón, medida en número de símbolos. [ 2 ]

Ejemplos

Entre las estructuras de datos específicas que se pueden utilizar como índices de subcadenas se incluyen:

Referencias

  1. 1 2 3 4 Barsky, Marina; Stege, Ulrike; Thomo, Alex (2012), "Capítulo 1: Estructuras para la indexación de subcadenas", Índices de texto completo (subcadenas) en memoria externa , Synthesis Lectures on Data Management, Springer International Publishing, pp. 1–15 , doi : 10.1007/978-3-031-01885-5_1 , ISBN  9783031018855
  2. Risvik, Knut Magne (1998), "Aproximación de secuencias de palabras sobre árboles de sufijos dispersos", en Farach-Colton, Martin (ed.), Combinatorial Pattern Matching, 9.º Simposio Anual, CPM 98, Piscataway, Nueva Jersey, EE. UU., 20-22 de julio de 1998, Actas , Lecture Notes in Computer Science, vol. 1448, Springer, pp. 65-79 , doi : 10.1007/BFB0030781 , ISBN   978-3-540-64739-3
  3. 1 2 3 Grossi, Roberto; Vitter, Jeffrey Scott (2005), "Matrices de sufijos comprimidos y árboles de sufijos con aplicaciones a la indexación de texto y la coincidencia de cadenas" (PDF) , SIAM Journal on Computing , 35 (2): 378–407 , doi : 10.1137/S0097539702402354 , hdl : 1808/18962 , MR 2191449 
  4. Blumer, Anselm; Blumer, J.; Ehrenfeucht, Andrzej ; Haussler, David ; McConnell, Ross M. (1984), "Construyendo el DFA mínimo para el conjunto de todas las subpalabras de una palabra en línea en tiempo lineal", en Paredaens, Jan (ed.), Autómatas, lenguajes y programación, 11.º Coloquio, Amberes, Bélgica, 16-20 de julio de 1984, Actas , Lecture Notes in Computer Science, vol. 172, Springer, pp. 109-118 , doi : 10.1007/3-540-13345-3_9 , ISBN   978-3-540-13345-2
  5. Manber, Udi ; Myers, Gene (1993), "Suffix arrays: a new method for on-line string searching", SIAM Journal on Computing , 22 (5): 935–948 , doi : 10.1137/0222058 , MR 1237156 
  6. Ferragina, Paolo; Manzini, Giovanni (2005), "Indexación de texto comprimido", Journal of the ACM , 52 (4): 552– 581, doi : 10.1145/1082036.1082039 , MR 2164632