美文网首页
简单树匹配算法STM-理论篇

简单树匹配算法STM-理论篇

作者: ltochange | 来源:发表于2021-07-21 14:46 被阅读0次

内容来自论文

@article{何昕2007基于简单树匹配算法的,
  title={基于简单树匹配算法的Web页面结构相似性度量},
  author={何昕 and 谢志鹏},
  journal={计算机研究与发展},
  number={z3},
  pages={1--6},
  year={2007}
}

简单树匹配算法SimPle Tree Matching 最初在软件工程上用于比较两个计算机程序,后引入网页结构相似度计算。主要考虑页面的结构信息,假设含有相似信息的页面也具有相似的结构。

将HTML网页表示成树结构

原始的HTML文档可以通过深度优先遍历树重构出来

文档 1 和 2 对应的网页表示:


在这里插入图片描述

文档 1 和 2 对应的html表示:


在这里插入图片描述
文档 1 和 2 对应的网页结构树表示:
在这里插入图片描述

简单树匹配不允许结点的替换和跨层匹配,从而大大提高了算法的运行效率。

简单树匹配算法

两棵树的匹配定义为:

对于映射M,任意的结点对(i,j),(i, j) \in M (i, j 是非根结点),(parent(i), parent(j)) \in M成立,则结点对(i,j)匹配.

最大匹配是指匹配到的结点对数目最多的匹配.

算法流程

AB为两棵树, ij 分别为AB上的结点.

A=\left(R_{\mathrm{A}}, A_{1}, \cdots, A_{m}\right) \\ B=\left(R_{\mathrm{B}}, B_{1}, \cdots,B_{n}\right)

其中,R_{\mathrm{A}}R_{\mathrm{B}}AB的根结点,A_{i}B_{j}分别是AB的第i个和第j个第1层子树.

(1)当R_{A}R_{B}的标记相同时, AB的最大匹配为M_{{A}, {B}}+1, 其中M_{{A}, {B}}\left\langle A_{1}, A_{2}, \cdots, A_{m}\right\rangle\left\langle B_{1},B_{2}, \cdots, B_{n}\right\rangle 的最大匹配。M_{\mathrm{A}, \mathrm{B}} 可以通过动态规划算法得到。
(2)当R_{A}R_{B}的标记不相同时,返回0

在这里插入图片描述

计算网页结构相似度

给定两个HTML文档,它们对应的结构树为 T_{1}T_{2}T_{1}T_{2} 中每一个结点标记对应HTML文件中一个标签.
定义T_{1}T_{2} 的相似度为:

\text { Similarity }\left(T_{1}, T_{2}\right)=\frac{\text { Simple TreeMatching }\left(T_{1}, T_{2}\right)}{\left(\left|T_{1}\right|+\left|T_{2}\right|\right) / 2}

其中,\left|T_{1}\right|,\left|T_{2}\right| 分别表示两棵树中结点数目,SimpleTreeMatching\left(T_{1}, T_{2}\right) 表示这两棵树的最大匹配结点数.

两棵树的最大匹配结点数越多,则两颗树越相似,它们所代表的 HTML文档也就越相似。

相关文章

  • 简单树匹配算法STM-理论篇

    内容来自论文 简单树匹配算法SimPle Tree Matching 最初在软件工程上用于比较两个计算机程序,后引...

  • 简单树匹配算法STM-实践篇

    简单树匹配的算法介绍见博客[https://blog.csdn.net/ltochange/article/det...

  • SGBM算法详解(一)

    上一篇文章简单介绍了立体匹配算法相关的资源,这里简单总结一下立体匹配算法,总体来讲包含以下6个步骤: 1. ...

  • KMP算法理解

    KMP的由来 在KMP算法之前,对文本进行匹配时使用的是朴素模式匹配算法,也就是最简单匹配算法.当然运行效率也是让...

  • 字符串匹配算法总结

    字符串匹配算法总结 所有代码集合 在一个主串中匹配模式串 BF算法   最简单的使用strcmp逐个匹配的算法, ...

  • python面试笔记

    知识点: 红黑树和AVL树 floyd算法(延申:动态规划+贪心算法) 修饰器 生成器 朴素匹配法和kmp匹配法 ...

  • KMP字符串匹配算法

    KMP字符串匹配算法 先总结一下之前的几种字符串匹配算法 1 BF算法, 最简单的字符串匹配算法, 可以直接使用s...

  • KMP字符串查找算法

    关于 oc NSString 的 rangeOfString方法实现算法。 个人想法:(简单匹配算法) 例如: 有...

  • 6.4 字符串模式匹配

    1. 朴素模式匹配算法(又叫 简单模式匹配算法) 基本思路:暴力匹配,从第一个字符开始,挨个匹配,如果不符合,则从...

  • 简单匹配算法-2

网友评论

      本文标题:简单树匹配算法STM-理论篇

      本文链接:https://www.haomeiwen.com/subject/ytejmltx.html