Dieses Repository besteht aus dem Mini -Projekt, das im Rahmen des Abrufs und der Extraktion des Kursinformationen durchgeführt wurde - Frühjahr 2014. Der Kurs wurde von Dr. Vasudeva Varma angewiesen.
## Anforderungen Python 2.6 oder höher
Python -Bibliotheken:
## Problem Das Mini -Projekt beinhaltet das Erstellen einer Suchmaschine auf dem Wikipedia Data Dump, ohne einen externen Index zu verwenden. Für dieses Projekt verwenden wir den Data Dump von 2013 von Größe 43 GB. Die Suchergebnisse geben in Echtzeit zurück. Multi Word- und Multi -Feld -Suche auf Wikipedia Corpus wird implementiert. Der SAX -Parser wird verwendet, um den XML -Korpus zu analysieren. Nach der Parsen werden die folgenden morphologischen Operationen implementiert:
Der Index, bestehend aus Stammwörtern und Posting -Liste, ist für den Korpus erstellt, nachdem die oben genannten Operationen zusammen mit dem Titel und der eindeutigen Zuordnung, die ich für jedes Dokument verwendet habe, durchgeführt wird. Somit wird die Dokument -ID der Wikipedia -Seite ignoriert. Dies hilft bei der Reduzierung der Größe, da die Dokument -ID im Korpus nicht mit einer Ziffernnummer beginnt. Da die Größe des Korpus nicht in den Hauptspeicher passt, werden mehrere Indexdateien generiert. Als nächstes werden diese Indexdateien mit K-Way-Zusammenführungen zusammen mit dem Erstellen feldbasierter Indizesdateien zusammengeführt.
Beispielsweise werden Index0.txt, Index1.txt, Index2.txt generiert. Diese Dateien können dasselbe Wort enthalten. Daher wird K Way Merge angewendet und feldbasierte Dateien werden zusammen mit ihren jeweiligen Offsets generiert. Diese feldbasierten Dateien werden mit Multi-Threading generiert. Dies hilft dabei, mehrere I/O gleichzeitig zu machen. Zusammen mit diesem wird auch die Wortschatzdatei generiert.
Zusammen mit diesen habe ich auch die Offsets jeder Felddateien gespeichert. Dies reduziert die Suchzeit auf O (logM * logn), wobei m die Anzahl der Wörter in der Vokabulardatei und M die Anzahl der Wörter in der größten Felddatei ist.
Der SRC -Ordner enthält die folgenden Dateien:
### Hauptfunktionen:
Um diesen Code auszuführen, führen Sie Folgendes aus: python wikiindexer.py ./sampletext ./outputfolderPath
Um diesen Code auszuführen, führen Sie Folgendes aus: python such.py ./outputfolderPath
### Helferfunktionen:
textprocessing.py Diese Helferfunktion erfüllt die gesamte Vorverarbeitung. Es fungiert als Helfer für Search.py, WikiIndexer.py
DateiHandler.py Diese Funktion erstellt alle Dateivorverarbeitung. Es fungiert als Helfer für WikiIndexer.py