該存儲庫由作為課程信息檢索和提取的一部分完成的迷你項目組成 - 2014年春季。該課程由Vasudeva Varma博士指示。
##要求Python 2.6或更高
Python圖書館:
##問題迷你項目涉及在Wikipedia數據轉儲上構建搜索引擎,而無需使用任何外部索引。對於這個項目,我們使用2013年43 GB的數據轉儲。搜索結果實時返回。在Wikipedia語料庫上進行了多個字和多字段搜索。 SAX解析器用於解析XML語料庫。解析以下形態操作後:
由詞幹單詞和發布列表組成的索引在執行上述操作以及標題以及我用於每個文檔的唯一映射後為語料庫構建。因此,Wikipedia頁面的文檔ID被忽略了。這有助於減小大小,因為文檔ID並未從語料庫中的單位數字開始。由於語料庫的大小不會適合主存儲器,生成了幾個索引文件。接下來,使用K-Way合併以及創建基於字段的索引文件,將這些索引文件合併。
例如,生成index0.txt,index1.txt,index2.txt。這些文件可能包含相同的單詞。因此,應用K Way合併並生成基於現場的文件以及它們各自的偏移。這些基於字段的文件是使用多線程生成的。這有助於同時進行多個I/O。隨之而來的是詞彙文件也會生成。
除此之外,我還存儲了每個字段文件的偏移。這將搜索時間縮短為O(logM * logn),其中m是詞彙文件中的單詞數,M是最大字段文件中的單詞數。
SRC文件夾包含以下文件:
###主要功能:
為了運行此代碼,運行以下內容: python wikiindexer.py ./sampletext./outputfolderpath
為了運行此代碼,運行以下內容: python search.py ./outputfolderpath
###輔助功能:
textProcessing.py此輔助功能可以完成所有預處理。它充當搜索的助手,wikiindexer.py
fileHandler.py此功能完成所有文件預處理。它充當Wikiindexer.py的助手