识别信息检索系统中最相关的文档

时间:2013-09-18 17:23:38

标签: machine-learning artificial-intelligence search-engine information-retrieval inverted-index

我正在开发一个在业余时间使用谷歌模拟的搜索引擎。

我使用位于http://infolab.stanford.edu/~backrub/google.html的原始Google研究论文作为我的指南。

由于我正在开发一个非常简化的谷歌版本,我现在根本不使用pagerank算法。

到目前为止,我已经开发了一个简单的解析器和索引器,其结果是我有一个倒排索引,包含每个唯一单词的命中数,命中位置和文档哈希值。

现在我正在尝试开发一个查询引擎。但是,我发现很难为多令牌查询确定最相关的文档。

具体来说,我很难计算文档中查询词之间的接近程度。

我想到了一种算法,它扫描每个文档的查询单词,并根据查询单词彼此接近多少计算邻近分数,但我怀疑这需要很长时间,我认为有一个更好的办法,我不知道这一点,研究论文太笼统,无法得到答案。

我只是在寻找正确方向的指针。

非常感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:3)

查看维基百科http://en.wikipedia.org/wiki/Search_engine_indexing#Inverted_indices

上“搜索引擎索引”的倒排索引部分

基本上,您希望保存文档中给定单词的位置信息,这样可以轻松计算邻近度。此信息保存在索引中。

关键是索引您的文档,因此您不需要每次都扫描它们。搜索关键字是在指向包含这些关键字的文档的索引上完成的。

P.S。不要忘记您正试图保持索引尽可能小,因此存储单词位置的间隙或差异将节省相同的内存(如第23页的J. Zobel, A. Moffat - Inverted Files for Search Text Engines中所述)。