我有一大堆数据(文本),我已将其转换为稀疏的术语 - 文档矩阵(我使用scipy.sparse.csr.csr_matrix
来存储稀疏矩阵)。我想找到,对于每个文件,前n个最近邻居匹配。我希望NearestNeighbor
库中的Python scikit-learn
例程(sklearn.neighbors.NearestNeighbor
是精确的)可以解决我的问题,但是使用空间分区数据结构的有效算法,例如KD trees
或{ {1}}不适用于稀疏矩阵。只有蛮力算法适用于稀疏矩阵(在我处理大型语料库时,这种情况不可行)。
稀疏矩阵的最近邻搜索是否有效(Python或其他任何语言)?
感谢。
答案 0 :(得分:4)
迟到的答案:看看Locality-Sensitive-Hashing
答案 1 :(得分:3)
您可以尝试使用TruncatedSVD将高维稀疏数据转换为低维密集数据,然后执行球树。