这更像是一个推测性的问题,关于你们都认为是解决我遇到的特定问题的最佳方法或最聪明的方法。
我目前正在开发一个 Web 应用程序,它主要由一个巨大的 XML 树驱动。该应用程序的重点是根据节点之间的关系随机生成适当的节点序列。
节点的分类非常好,但初始选择需要很大程度上是随机的,接下来的选择需要基于第一个节点。选择应该是随机的,但每个选择之间不应有明显的逻辑相似性。
例如给定以下树:
<things>
<foods>
<fruits>
<fruit>apple</fruit>
<fruit>orange</fruit>
<fruit>melon</fruit>
<fruit>banana</fruit>
<fruit>grape</fruit>
</fruits>
<vegetables>
<vegetable>potato</vegetable>
<vegetable>carrot</vegetable>
<vegetable>onion</vegetable>
<vegetable>leek</vegetable>
</vegetables>
</foods>
<animals>
<birds>
<bird>penguin</bird>
<bird>ostrich</bird>
<bird>parrot</bird>
<bird>crow</bird>
<bird>emu</bird>
</birds>
<fish>
<fish>cod</fish>
<fish>plaice</fish>
<fish>salmon</fish>
<fish>shark</fish>
<fish>tuna</fish>
</fish>
</animals>
</things>
...如果选择的第一个项目是鲨鱼,那么金枪鱼是近亲,尽管鸟类类别中的一个项目也可以访问,因为它具有一定的相似性 - 它是一种生物。但是,蔬菜是完全不相关的,不应选择。
考虑到我的 xml 树绝对巨大的事实,我需要一种智能的方式来执行相似性检查。
非常感谢任何想法、意见或指导。我已经为此寻找了解决方案,但到目前为止几乎没有。
提前致谢!