Ich habe ein großes Datenkorpus (Text), das ich in eine spärliche Term-Dokument-Matrix umgewandelt habe (ich verwende scipy.sparse.csr.csr_matrix
, um Sparse-Matrix zu speichern). Ich möchte für jedes Dokument die nächsten Nachbarn finden. Ich hatte gehofft, dass NearestNeighbor
Routine in Python scikit-learn
Bibliothek (sklearn.neighbors.NearestNeighbor
, um genau zu sein) würde mein Problem lösen, aber effiziente Algorithmen, die Raum Partitionierung Datenstrukturen wie KD trees
oder Ball trees
arbeiten nicht mit dünn besetzten Matrizen. Nur der Brute-Force-Algorithmus arbeitet mit spärlichen Matrizen (was in meinem Fall unmöglich ist, da ich mit einem großen Korpus zu tun habe).Effiziente Nächste-Nachbarn-Suche nach dünn besetzten Matrizen
Gibt es eine effiziente Implementierung der Nearest Neighbor Suche nach dünn besetzten Matrizen (in Python oder in einer anderen Sprache)?
Danke.
Sind Sie sicher, dass sich ein Ball-Tree gut mit der SVD-Ausgabe verhält? Normalerweise möchten Sie, dass SVD einige 100-200 Dimensionen beibehält ... –