Damn Cool Algorithms: BK-Trees(blog.notdot.net)
blog.notdot.net
Damn Cool Algorithms: BK-Trees
http://blog.notdot.net/archives/30-Damn-Cool-Algorithms,-Part-1-BK-Trees.html
10 comments
It's easiser to understand by using 2D geometry. Pick one point on a paper and call it query, the input, and draw a circle of radius n around that point. Your goal is to find the points in the dataset which are inside the circle. Let's call those points answers.
Pick an arbitrary point (in the dataset) and call it test. The distance between test and query is d. Now, you can see the distance between test and the furthest and closest points in answers are d+n and d-n, respectively (assuming d > n).
Since the dataset is organized by distance, we can quickly narrow the range of search.
Pick an arbitrary point (in the dataset) and call it test. The distance between test and query is d. Now, you can see the distance between test and the furthest and closest points in answers are d+n and d-n, respectively (assuming d > n).
Since the dataset is organized by distance, we can quickly narrow the range of search.
thanks dude, for clearing it up. I don't know why I always get confused on easy things like this..
Metric trees (sometimes called ball trees) are a simple generalization of this to arbitrary metrics. They're also useful for points in a high dimensional euclidean space that have low intrinsic dimensionality.
I don't see why this would be much better than simply doing fuzzy match on a trie.
How do you do a fuzzy match? Are there any sites out there that deal with all the text matching algorithms? I need to do this for a project.
No websites, probably, but lots of papers. A good start might be http://courses.csail.mit.edu/6.851/spring07/lec.html (lectures 8 and 9 or so).
Thanks.
Very cool. Has anyone here used BK-Trees in their work?
Needs more code.
Can anyone please explain me in more simpler terms.