什么算法有助于识别DOM中的重复序列?

时间:2010-08-31 22:05:38

标签: algorithm

我是否有一个好的算法可以应用于DOM来引导我到可能相关节点的组?最终目标是获得一些有用的东西,以帮助从网站中提取TOC和“博客卷”等内容。如果这样的事情已经存在,如果有人让我知道,我会很高兴。

我意识到这不是我希望确定的事情。我怀疑可能有一个解决方案的原因已经来自最近逐步执行处理常见序列的'diff算法'。我不确定从“共同”到“重复”是否是一次飞跃......

2 个答案:

答案 0 :(得分:0)

“相关”是一个非常通用的术语,因为它总是在很大程度上取决于实际数据是什么以及您要推断的关系是什么。我不太明白为什么你在谈论“重复序列”作为“相关性”的指标。从严格来说,DOM中没有任何“序列” - 它是一棵树,因此您只能谈论关于父/子关系或兄弟关系的排序(以及顺序)。我不确定你的意思是这些。

也就是说,关于DOM,你可以说一些事情。它们是树木,所以你基本上想要识别具有相似形状的子树,我假设?

您可能采取的一种方法是采用两个这样的DOM并尝试通过添加边(使整个事物成为连通图)来关联相似节点(例如具有已知属性或特定节点的节点),然后计算{{3 }}

除此之外,我不确定在没有更完整的问题描述的情况下,我可以提出更具体的方法。

答案 1 :(得分:0)

你只需选择一个“绝对有趣”的节点的例子,并发明一个良好的相似关系;那么所有类似的节点都会很有趣。相似性可能基于以下因素:根路径的高度,属性值,标签名称,兄弟姐妹之间的位置,上述几个父级节点的所有级别等等。我使用这种方法并且效果出奇的好。