Ich habe ein großes Datenkorpus (Text), das ich in eine spärliche Term-Dokument-Matrix konvertiert habe (ich verwende scipy.sparse.csr.csr_matrix
, um eine spärliche Matrix zu speichern). Ich möchte für jedes Dokument die nächsten Nachbarn finden. Ich hoffte, dass NearestNeighbor
routine in Python scikit-learn
library ( sklearn.neighbors.NearestNeighbor
, um genau zu sein) mein Problem lösen würde, aber effiziente Algorithmen, die Space Partitioning Datenstrukturen wie KD trees
oder Ball trees
verwenden, funktionieren nicht mit dünn besetzten Matrizen . Nur der Brute-Force-Algorithmus arbeitet mit dünnen Matrizen (was in meinem Fall nicht möglich ist, da ich mit einem großen Korpus zu tun habe).
Gibt es eine effiziente Implementierung der Nearest Neighbor Suche nach dünn besetzten Matrizen (in Python oder in einer anderen Sprache)?
Danke.
Späte Antwort: Sehen Sie sich Locality-Sensitive-Hashing
anUnterstützung in scikit-learn wurde vorgeschlagen hier und hier .
Tags und Links python scikit-learn scipy nearest-neighbor