Mer*_*ham 6 algorithm edit-distance data-structures levenshtein-distance bk-tree
我正在研究使用编辑距离算法在名称数据库中实现模糊搜索.
我发现了一个数据结构,据说可以通过分而治之的方法来帮助加快速度--Burkhard-Keller Trees.问题是我找不到关于这种特定类型树的非常多的信息.
如果我用任意节点填充我的BK树,我有多大可能有平衡问题?
如果我可能或可能与BK-Trees有平衡问题,有没有办法在构建之后平衡这样一棵树?
算法在适当平衡BK树时会是什么样子?
到目前为止我的想法:
似乎子节点在距离上是不同的,所以我不能简单地旋转树中的给定节点而不重新校准其下的整个树.但是,如果我能找到一个最佳的新根节点,这可能正是我应该做的.我不知道如何找到最佳的新根节点.
我还将尝试一些方法来查看是否可以通过从空树开始并插入预分配数据来获得相当平衡的树.
仅供参考,我目前还不担心名称 - 同义词问题(Bill vs William).我将单独处理,我认为完全不同的策略将适用.