【发布时间】:2018-05-25 09:54:57
【问题描述】:
我正在研究维基百科类别图 (WCG)。在 WCG 中,每篇文章都关联到多个类别。 例如,文章“Lists_of_Israeli_footballers”链接到多个类别,例如:
Lists of association football players by nationality - Israeli footballers - Association football in Israel lists
现在,如果您回溯类别树,您可能会发现很多路径都爬到“足球”类别,但也至少有一条路径可以通往“科学”类别。
这是有问题的,因为我的最终目标是能够使用与其链接的类别列表来确定一篇文章是否属于给定类别:现在一个简单的祖先搜索会给出误报(例如:识别“以色列足球运动员”作为“科学”类别的一部分——这显然不是预期的结果)。
我想要一个能够找出最可能的祖先是什么的算法。
我想到了两个主要的解决方案:
计算 WCG 中将文章的类别顶点链接到候选祖先类别的不同路径的数量(并使用链接到相同深度的其他类别的路径数量进行比较)
使用某种聚类算法并在孤立的图空间中进行祖先搜索查询
这些选项的问题在于,考虑到 WCG 的大小(200 万个顶点 - 甚至更多边),它们的成本似乎非常高。最终,我可以使用在 O(n) 或更多时间内使用预处理算法的解决方案来实现 O(1),但我需要查询总体上非常快。
我的问题有现成的解决方案吗?接受所有建议。
【问题讨论】:
-
那么如果关于以色列足球运动员的文章匹配到科学,那会是误报吗?我还不清楚您正在寻找的算法的确切规格是什么
-
@Glubus 抱歉。我还在修改我的最后一篇文章,这是我的一个坏习惯。希望现在更清楚了
标签: java algorithm performance graph-theory wikipedia