【发布时间】:2013-10-01 13:58:15
【问题描述】:
作为搜索引擎的一部分,我开发了倒排索引。
所以我有一个包含以下类型元素的列表
public struct ForwardBarrelRecord
{
public string DocId;
public int hits { get; set; }
public List<int> hitLocation;
}
现在这个记录是针对一个词的。 hitLocation 包含在文档中找到特定单词的位置。
现在我想要计算List<int> hitLocation 中的元素与另一个List<int> hitLocation 的接近程度,然后如果列表中的元素相邻,则增加两条记录的权重。
我遇到的问题是为此目的找到合适的算法。任何帮助表示赞赏
【问题讨论】:
-
您已经有了命中位置列表,如果您以离散函数查看它们怎么办 - 您可以将每个命中转换为一个范围(以每个索引为中心并下降到两侧,总宽度取决于如何关闭你想要的话)。然后,您基本上可以通过每两个“列表”之间的点积来获得邻近分数
-
我认为这是我需要的。虽然这是一个简明的评论,但没有得到我需要的完整答案,但我真的很感激一些关于进一步获取知识的一般指示:)
-
好吧,不管它的价值——我在这里写了一个更详细的解释——stackoverflow.com/questions/19034271/…
标签: algorithm indexing search-engine information-retrieval inverted-index