樹木間の距離を計算するために、一見十分に文書化された*戦略のいずれかを実装するライブラリを探しています。
たとえば、ライブラリはこれら2つのツリーを表示する必要があります
a a
/ \ / \
b c b c
\
d
これら2つよりも「類似」している
a x
/ \ / \
b c y z
私はnode.jsを使用しているので、ノードの実装がいいでしょう。「類似」はやや曖昧に見えることは承知していますが、これらのツリー間の差異を計算するためにどの戦略を使用する場合でも、編集距離を表す場合は、常に最終的な「スコア」が得られると思います。 、最初のケースよりも2番目のケースの方が大きくなります。
どのnode.jsライブラリがこのようなことをしますか?
編集:私の特定のケースに関するいくつかの追加情報:これは、htmlドキュメント内の繰り返しツリー構造を検出するためのものであるため、その問題に特化したライブラリの方がさらに優れています。
EDIT2:node.jsのレーベンシュタイン距離ライブラリでも役立つので、少なくともツリーの指紋テキストを比較することができます。
*私はこの分野に不慣れですが、scribd.comではLuとTaiが使用する戦略について説明しています。