Der Datensatz ist wie folgt:Wie wird diese Dokumentensammlung gespeichert?
39861 // number of documents
28102 // number of words of the vocabulary (another file)
3710420 // number of nonzero counts in the bag-of-words
1 118 1 // document_id index_in_vocabulary count
1 285 3
...
2 46 1
...
39861 27196 5
Wir beraten werden nicht, dass in der Matrix zu speichern (der Größe 39861 x 39861 glaube ich), da es nicht * und von here in Speicher passen Ich kann davon ausgehen, dass für jede Ganzzahl 24 Byte gespeichert werden müssen, also 27 Gb (= 39861 * 28102 * 24 Byte) mit einer dichten Matrix. Welche Datenstruktur sollte ich verwenden, um den Datensatz zu speichern?
Ein Array von Listen?
- Wenn ja (jede Liste Knoten mit zwei Daten-Mitglieder haben wird, die
index_in_vocubulary
und diecount
), um nur positive Antwort posten. Wenn ich davon ausgehen, dass jedes Dokument im Durchschnitt 200 Worte hat, dann wäre der Raum sein:
NO_OF_DOCUMENTS x words_per_doc * no_of_datamembers * 24 = 39861 * 200 * 2 * 24 = 0,4 Gb
- Wenn nicht, welche würden Sie vorschlagen (die würde weniger Platz benötigen)?
Nach dem Datensatz speichert, werden wir mit brutalen Gewalt und LSH k-nächste Nachbarn (k ähnliche Dokumente), finden erforderlich.
* Ich habe 3,8 GiB in meinem persönlichen Laptop, aber ich habe Zugriff auf einen Desktop mit ~ 8 Gb RAM.
Wer uns geraten, nicht die Daten in einer Matrix zu speichern? Vielleicht sollten wir sie einfach fragen. –
Der Professor @ Robᵩ, ich aktualisiert. Der Grund ist, dass es nicht in den Speicher passt. Der Kurs hat jedoch keine TA (!?!?), Also sind wir in unserem eigenen, wörtlich. – gsamaras
Nach dem Speichern der Daten, was als nächstes? Müssen Sie die Daten abrufen? Suche darin? Grafikoperationen durchführen? –