我正在寻找一个库来实现任何看似有据可查的*策略来计算树之间的距离。
例如,库应该显示这两棵树
a a
/ \ / \
b c b c
\
d
比这两个更“相似”
a x
/ \ / \
b c y z
我正在使用 node.js,所以节点实现会很好。我知道“相似”似乎有些模棱两可,但无论您使用什么策略来计算这些树之间的差异,我假设您总是会得到一些最终的“分数”,如果代表编辑距离, 在第二种情况下比在第一种情况下更大。
哪些 node.js 库会做这样的事情?
编辑:关于我的具体案例的一些附加信息:这是用于检测 html 文档中的重复树结构,因此更专门针对该问题的库会更好。
EDIT2:即使是 node.js 的 levenshtein 距离库也会有所帮助,所以我至少可以对树的指纹文本进行比较。
*我是该领域的新手,但scribd.com讨论了 Lu 和 Tai 使用的策略。