Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在前缀树中查找最相似的位向量进行NN搜索?_Java_Python_Algorithm_Prefix Tree_Approximate Nn Searching - Fatal编程技术网

Java 如何在前缀树中查找最相似的位向量进行NN搜索?

Java 如何在前缀树中查找最相似的位向量进行NN搜索?,java,python,algorithm,prefix-tree,approximate-nn-searching,Java,Python,Algorithm,Prefix Tree,Approximate Nn Searching,这个问题解释了我试图解决的问题: 我的问题是关于该问题页面中建议的解决方案部分。在这一节中,我们提到了通过从节点开始遍历树,从每个前缀树中找到最近的邻居。查找前缀树中是否存在密钥很简单,但获取最相似的密钥我一点也不懂。如何做到这一点 我希望如果有人能向我解释这一点,如果不是图形化的(这是首选),那么至少有一些细节 编辑: 这是报纸的代码。它是用python编写的,不幸的是,我以前从未使用过python。如果有人熟悉python,并且可以查找代码,看看他们如何使用前缀树找到最近的邻居 首先要知道

这个问题解释了我试图解决的问题:

我的问题是关于该问题页面中建议的解决方案部分。在这一节中,我们提到了通过从节点开始遍历树,从每个前缀树中找到最近的邻居。查找前缀树中是否存在密钥很简单,但获取最相似的密钥我一点也不懂。如何做到这一点

我希望如果有人能向我解释这一点,如果不是图形化的(这是首选),那么至少有一些细节

编辑:

这是报纸的代码。它是用python编写的,不幸的是,我以前从未使用过python。如果有人熟悉python,并且可以查找代码,看看他们如何使用前缀树找到最近的邻居


首先要知道它们会遍历整个树。通过对整个树进行迭代,可以保证找到最相似的邻居

为了在一般情况下更有效,请对树使用DFS图遍历。请注意,因为它是一棵树,所以访问的节点不需要着色方案

以最接近的对象为null并位于树的根开始

对于每个节点,您应该按照子节点添加到编辑距离的多少来遍历子节点,如果添加的编辑距离不大于到最近对象的距离,则只遍历。例如,使用汉明距离,首先遍历将在总距离中添加“O”的子对象,然后遍历将在总距离中添加“1”的子对象。但如果“1”子对象会使编辑距离大于当前最近距离,则不要遍历该子对象


当您在前缀树中遇到一个“单词”时,请检查它与查询对象的距离是否小于最近的对象,并将其指定给最近的对象。

但是在整个树上迭代会使使用前缀树而不是排序列表的想法变得毫无意义。这仍然需要很多时间。我添加了从作者那里获得的代码。它是用python编写的。你能看一下吗,因为我以前从未使用过python;其中L是前缀树高度