一个简洁的近邻查找界面
simpleneighbors的Python项目详细描述
简单邻居
简单邻居是执行最近邻居的干净且简单的接口 从语料库中查找项目。例如,以下是如何找到 与xkcd colors list中的颜色相似:
>>> from simpleneighbors import SimpleNeighbors >>> import json >>> color_data = json.load(open('xkcd.json'))['colors'] >>> hex2int = lambda s: [int(s[n:n+2], 16) for n in range(1,7,2)] >>> colors = [(item['color'], hex2int(item['hex'])) for item in color_data] >>> sim = SimpleNeighbors(3) >>> sim.feed(colors) >>> sim.build() >>> list(sim.neighbors('pink', 5)) ['pink', 'bubblegum pink', 'pale magenta', 'dark mauve', 'light plum']
在这里阅读文档:https://simpleneighbors.readthedocs.org。
近似最近邻查找是找到你的项目的一种快速方法。 与数据中任何其他项最接近(或最相似)的数据集,或 数据定义的空间中的任意点。您的数据项可能 是a(r,g,b)空间中的颜色,或a(x,y)空间中的精灵,或词向量 在一个300维的空间里。
您总是可以执行成对距离计算以找到最近的 数据中的邻居,但对于任何明显的大小和复杂性的数据, 这种计算速度太慢了。该库在场景后面使用Annoy进行近似处理。 最近邻查找,其最终精度略低于 成对计算,但要快得多。
该库还跟踪您的数据,为您节省了 将数据中的每一项映射到invoin中的整数索引(可能 数据存储中某些冗余的成本,具体取决于您的应用程序)。
我做了简单的邻居,因为我总是用烦恼来找自己 一遍又一遍地编写和重写相同的包装器代码。我 想隐藏一点使用恼人的复杂性让它更容易 利用最近邻查找建立小型原型并教授研讨会。
安装
使用pip安装,如下所示:
pip install simpleneighbors
您还可以下载源代码并手动安装:
python setup.py install
历史记录
0.0.1(2018-07-13)
- 初次发布。