このリポジトリは、コース情報の取得と抽出の一部として行われたミニプロジェクトで構成されています - 2014年春。コースはVasudeva Varma博士によって指示されました。
##要件Python 2.6以上
Pythonライブラリ:
##問題ミニプロジェクトでは、外部インデックスを使用せずにWikipedia Data Dumpに検索エンジンを構築することが含まれます。このプロジェクトでは、2013年のサイズ43 GBのデータダンプを使用します。検索結果はリアルタイムで返されます。 Wikipedia Corpusでのマルチワードとマルチフィールド検索が実装されています。 SAXパーサーは、XMLコーパスを解析するために使用されます。解析後、次の形態学的操作が実装されます。
茎のある単語と投稿リストで構成されるインデックスは、各ドキュメントに使用したタイトルと一意のマッピングとともに上記の操作を実行した後、コーパス用にビルドされます。したがって、ウィキペディアページのドキュメントIDは無視されます。これは、ドキュメントIDがコーパスの単一の数字番号から始まっていないため、サイズを縮小するのに役立ちます。コーパスのサイズはメインメモリに収まらないため、いくつかのインデックスファイルが生成されます。次に、これらのインデックスファイルは、フィールドベースのインデックスファイルの作成とともにK-Wayマージを使用してマージされます。
たとえば、index0.txt、index1.txt、index2.txtが生成されます。これらのファイルには同じ単語が含まれる場合があります。したがって、kウェイマージが適用され、フィールドベースのファイルがそれぞれのオフセットとともに生成されます。これらのフィールドベースのファイルは、マルチスレッドを使用して生成されます。これは、複数のI/Oを同時に行うのに役立ちます。これに加えて、語彙ファイルも生成されます。
これらに加えて、各フィールドファイルのオフセットも保存しました。これにより、検索時間がo(logm * logn)に削減され、mは語彙ファイルの単語数、mは最大のフィールドファイルの単語の数です。
SRCフォルダーには、次のファイルが含まれています。
###メイン関数:
このコードを実行するには、次のことを実行します。
このコードを実行するには、次のことを実行します。PythonSearch.py./OutputFolderPath
###ヘルパー機能:
textProcessing.pyこのヘルパー関数はすべての前処理を行います。 Search.py、wikiindexer.pyのヘルパーとして機能します
filehandler.pyこの関数は、すべてのファイルのプリプロシングを行います。 wikiindexer.pyのヘルパーとして機能します