Este repositorio consiste en el mini proyecto realizado como parte de la recuperación y extracción de información del curso - Primavera de 2014. El curso fue instruido por el Dr. Vasudeva Varma.
## Requisitos Python 2.6 o más
Bibliotecas de Python:
## Problema El mini proyecto implica construir un motor de búsqueda en el volcado de datos de Wikipedia sin usar ningún índice externo. Para este proyecto, utilizamos el volcado de datos de 2013 del tamaño 43 GB. Los resultados de búsqueda regresan en tiempo real. Se implementa la búsqueda de múltiples palabras y de campo múltiple en Wikipedia Corpus. El analizador de saxo se usa para analizar el corpus XML. Después de analizar se implementan las siguientes operaciones morfológicas:
El índice, que consiste en palabras de vástago y una lista de publicaciones, se construye para el corpus después de realizar las operaciones anteriores junto con el título y el mapeo único que he usado para cada documento. Por lo tanto, se ignora la ID de documento de la página Wikipedia. Esto ayuda a reducir el tamaño ya que la ID del documento no comienza con un número de dígitos de un solo dígito en el corpus. Dado que el tamaño del corpus no cabe en la memoria principal se generan varios archivos de índice. A continuación, estos archivos de índice se fusionan utilizando K-Way Merge junto con la creación de archivos de índices basados en campo.
Por ejemplo, se generan index0.txt, index1.txt, index2.txt. Estos archivos pueden contener la misma palabra. Por lo tanto, se aplica K Way Merge y los archivos basados en el campo se generan junto con sus respectivas compensaciones. Estos archivos basados en campo se generan utilizando múltiples subprocesos. Esto ayuda a hacer múltiples E/S simultáneamente. Junto con esto, el archivo de vocabulario también se genera.
Junto con estos, también he almacenado las compensaciones de cada uno de los archivos de campo. Esto reduce el tiempo de búsqueda a O (logm * logn) donde M es el número de palabras en el archivo de vocabulario y M es el número de palabras en el archivo de campo más grande.
La carpeta SRC contiene los siguientes archivos:
### Funciones principales:
Para ejecutar este código, ejecute lo siguiente: Python wikiindexer.py ./sampletext ./outputfolderpath
Para ejecutar este código, ejecute lo siguiente: Python Search.py ./outputfolderpath
### Funciones de ayuda:
TextProcessing.py Esta función de ayuda hace todo el preprocesamiento. Actúa como ayudante para Search.py, wikiindexer.py
fileHandler.py Esta función realiza todo el preprocesamiento de archivos. Actúa como ayudante para wikiindexer.py