Ich versuche Text-Mining auf große Daten in R mit tm
zu tun.Verwenden Sie die Corpus-Funktion von tm mit großen Daten in R
ich in den Speicher Probleme laufen häufig (wie can not allocation vector of size....
) und verwenden Sie die etablierten Methoden der diese Probleme beheben, wie
- 64-Bit-R mit
- verschiedenen OS versucht (Windows, Linux, Solaris etc)
memory.limit()
auf seine maximale- dafür sorgen, dass ausreichend Einstellung RAM und Rechen auf dem Server verfügbar ist (der es)
- mak ing großzügigen Einsatz von
gc()
- den Code für Engpässe Profilierungs
- großen Operationen in mehrere kleinere Operationen
jedoch oben brechen, wenn sie versuchen, Corpus
auf einem Vektor von einer Million oder so Textfelder zu laufen, ich begegne ein etwas anderer Speicherfehler als üblich und ich bin mir nicht sicher, wie ich das Problem lösen soll. Der Fehler ist:
> ds <- Corpus(DataframeSource(dfs))
Error: memory exhausted (limit reached?)
kann (und sollte) ich Corpus
auf Blöcke von Reihen schrittweise ausgeführt werden von dieser Quelle Datenrahmen dann die Ergebnisse kombinieren? Gibt es eine effizientere Möglichkeit, dies auszuführen?
Die Größe der Daten, die diesen Fehler verursachen, hängt von dem Computer ab, auf dem sie ausgeführt wird. Wenn Sie jedoch den integrierten Datensatz crude
verwenden und die Dokumente replizieren, bis sie groß genug sind, können Sie den Fehler replizieren.
UPDATE
Ich habe mit dem Versuch, kleinen corpa zu kombinieren experimentiert, das heißt
test1 <- dfs[1:10000,]
test2 <- dfs[10001:20000,]
ds.1 <- Corpus(DataframeSource(test1))
ds.2 <- Corpus(DataframeSource(test2))
und während ich nicht erfolgreich war, habe ich tm_combine
zu entdecken, die supposed to solve this exact problem ist. Der einzige Haken ist, dass mein 64-Bit-Build von R 3.1.1 mit der neuesten Version von tm
aus irgendeinem Grund die Funktion tm_combine
nicht finden kann. Vielleicht wurde es aus irgendeinem Grund aus dem Paket entfernt? Ich untersuche ...
> require(tm)
> ds.12 <- tm_combine(ds.1,ds.2)
Error: could not find function "tm_combine"
Ist Ihr gesamter Code in einer einzigen Funktion? Oder ein Skript? –
es ist ein Skript im Moment –
Ich vermute, dass Ihr Code möglicherweise zu viele Kopien macht ... aber ich warte auf die Experten. –