3 ms·
Damn Cool Algorithms: BK-Trees
- chwolfe 19y agoVery cool. Has anyone here used BK-Trees in their work?
- enonko 19y agoI don't see why this would be much better than simply doing fuzzy match on a trie.
- aswanson 19y agoHow 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.
- henning 19y agoNeeds more code.
- shahper 19y agoI couldn't understand what this means -- Say we take an arbitary string, test and compare it to query. Call the resultant distance d. Because we know the triangle inequality holds, all our results must have at most distance d+n and at least distance d-n from test. Can anyone please explain me in more simpler terms.
- shiro 19y agoIt'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.
- shahper 19y agothanks dude, for clearing it up. I don't know why I always get confused on easy things like this..
- machine 19y agoMetric 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.