9

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

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

谢谢。

4

2 回答 2

4

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

已在此处此处提出了对 scikit-learn 的支持。

于 2014-10-14T09:11:42.123 回答
3

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

于 2013-08-13T05:45:18.830 回答