稀疏矩阵的高效近邻搜索



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

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

谢谢。

迟来的答案:看看位置敏感哈希

支持scikit学习已经在这里和这里提出。

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

最新更新