有效的最近邻搜索稀疏矩阵

abh*_*rni 8 python nearest-neighbor scipy scikit-learn

我有一大堆数据(文本),我已经转换为稀疏的术语 - 文档矩阵(我scipy.sparse.csr.csr_matrix用来存储稀疏矩阵).我想找到,对于每个文件,前n个最近邻居匹配.我希望库中的NearestNeighbor例程Python scikit-learn(sklearn.neighbors.NearestNeighbor确切地说)可以解决我的问题,但是使用空间分区数据结构的高效算法,例如稀疏矩阵KD treesBall trees不适用于稀疏矩阵.只有蛮力算法适用于稀疏矩阵(在我处理大型语料库时,这种情况不可行).

稀疏矩阵的最近邻搜索是否有效(Python或任何其他语言)?

谢谢.

Una*_*dra 5

迟到的答案:看看Locality-Sensitive-Hashing

在此处此处提议对 scikit-learn 的支持。


Mat*_*ieu 3

您可以尝试使用 TruncatedSVD 将高维稀疏数据转换为低维密集数据,然后创建球树。