0

这更像是一个推测性的问题,关于你们都认为是解决我遇到的特定问题的最佳方法或最聪明的方法。

我目前正在开发一个 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 树绝对巨大的事实,我需要一种智能的方式来执行相似性检查。

非常感谢任何想法、意见或指导。我已经为此寻找了解决方案,但到目前为止几乎没有。

提前致谢!

4

1 回答 1

1

相当大,一个 8.5 MB 的文件!...您打算即时使用它吗?这就是为什么我说数据映射/属性标记并将其全部存储在数据库中会更有效。

我看到每个<synset>都有一个wnid和单词,并包含所有<synset>标签,这些标签是它的一个子集。建议就是这样来的。说,Shark被选中...然后我们可以搜索sysnet在其属性中包含该单词的最顶层节点(gloss?),然后从该sysnet标签内的标签中选择所有单词...可以用作“相似项”.. .

于 2013-01-22T11:39:07.340 回答