代码之家  ›  专栏  ›  技术社区  ›  Aaron Anodide

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

  •  0
  • Aaron Anodide  · 技术社区  · 16 年前

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

    我意识到这不是我可以希望做的事情。我怀疑可能有一个解决方案的原因已经来自最近的“diff算法”,该算法处理常见序列。我不确定这是不是从“普通”到“重复”的飞跃。。。

    2 回复  |  直到 16 年前
        1
  •  0
  •   Gian    16 年前

    “相关”是一个非常笼统的术语,因为它在很大程度上取决于实际数据是什么,以及您试图推断的关系是什么。我不太明白你为什么说“重复序列”是“关联性”的衡量标准。严格地说,DOM中并没有真正的“序列”——它是一棵树,所以您只能讨论父/子关系或兄弟关系的排序(因此也就是排序)。我不确定你是不是指这些。

    也就是说,关于DOMs,你可以说一些事情。它们是树,所以你基本上是在寻找形状相似的子树,我猜?

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

    除此之外,如果没有更完整的问题描述,我不确定有没有更具体的方法可以推荐。

        2
  •  0
  •   jkff    16 年前

    你只需要选择一个“绝对有趣”的节点,并创造一个良好的相似关系;那么所有相似的节点都会很有趣。相似性可能基于以下因素:到根的路径高度、属性值、标记名、兄弟节点之间的位置,以及多个级别的父节点的所有这些因素。我使用了这种方法,效果出人意料地好。