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

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

我正在利用业余时间开发一个仿照 Google 的搜索引擎。

我正在使用位于http://infolab.stanford.edu/~backrub/google.html的原始谷歌研究论文作为我的指导方针。

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

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

现在我正在尝试开发一个查询引擎。然而,我发现很难识别多 token 查询最相关的文档。

具体来说,假设我在计算文档中查询词之间的相似度时遇到困难。

我想到了一种算法,可以扫描每个文档中的查询词,并根据查询词彼此接近的程度来计算邻近度分数,但我怀疑这会花费很长时间,而且我认为有一个更好的方法,我不知道,而且研究论文太笼统,无法得到答案。

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

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

最佳答案

查看维基百科“搜索引擎索引”的倒排索引部分http://en.wikipedia.org/wiki/Search_engine_indexing#Inverted_indices

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

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

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

关于machine-learning - 识别信息检索系统中最相关的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18878544/

相关文章:

lucene - Solr 和 ElasticSearch 的优缺点是什么?

curl - 来自专用服务器的 HTTPS 网站的 wget

android - 为什么tensorflow lite示例在向数组添加像素值时使用image_mean和image_std?

python - 使用 scikit.mlpregressor 训练多个数据集

machine-learning - 逻辑回归分类器训练计数

python - 如何将自己的数据集提供给keras image_ocr

构建正确英语句子的 C# 库

algorithm - 实现极小极大算法

artificial-intelligence - 具有原始Ghost AI的吃 bean 人模板(帮助)

php - 按关键字搜索多个