2016-06-07 14 views
1

In R habe ich eine Daten mit 30 Datensätze für Probe, Hauptdaten hat 20000 Datensätze. Datensätze sind Tweets. Ich extrahiere Bigramme aus jedem Tweet und ich benutze Postagger. Für die Probendaten, mir, dass Fehler angezeigtIn R: Wie löse ich "Out of memory" Fehler in POS-Tagger?

.jnew("opennlp.tools.postag.POSModel", .jcast(.jnew("java.io.FileInputStream", :
java.lang.OutOfMemoryError: Java heap space

oder

.jnew("opennlp.tools.tokenize.TokenizerModel", .jcast(.jnew("java.io.FileInputStream", :
java.lang.OutOfMemoryError: GC overhead limit exceeded

Wie löse ich dieses peroblem?

Mein Code ist: Wie löse ich dieses Problem?

for(i in 1:nrow(data1)) 
{ 
. 
. 
. 

for(k in 1:length(bigrams)) 
{ 
    s = as.String(bigrams[k]) 
    sent_token_annotator =openNLP:: Maxent_Sent_Token_Annotator() 
    word_token_annotator = openNLP::Maxent_Word_Token_Annotator() 
    a2 = annotate(s, list(sent_token_annotator, word_token_annotator)) 
    pos_tag_annotator = openNLP::Maxent_POS_Tag_Annotator() 
    a3 = annotate(s, pos_tag_annotator, a2) 
    a3w = subset(a3, type == "word") 
    tags = sapply(a3w$features, `[[`, "POS") 
    if(tags[1]=="JJ") 
    { 
     if(tags[2]=="NN"||tags[2]=="NNS") 
     { 
     bigram_final[j]=bigrams[k] 
     j=j+1; 
     } 
    . 
    . 
    . 
    } 
} 

Antwort

3

Dieses Problem tritt in der Regel, wenn ein Skript rjava in R verwendet, und in meinem Fall änderte ich die Speichergröße für JVM mehr zu verarbeiten mein Skript der Lage sein, durch die folgende Zeile vor dem Laden Bibliotheken auch das Hinzufügen options(java.parameters = "- Xmx1024m") I gc() direkt nach der Paketfunktion hinzugefügt, um Speicher freizugeben. Bitte überprüfen Sie this link für weitere Informationen.

+0

Ich verwende von Optionen (java.parameters = "- Xmx1024m"), aber dieser Fehler hat sich nicht geändert. Vielen Dank für die Beantwortung dieser Frage –