该存储库由作为课程信息检索和提取的一部分完成的迷你项目组成 - 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的助手