2016-06-07 41 views
1

在R中,我有一個30個記錄樣本的數據,主要數據有20000條記錄。記錄是推文。 我從任何推文中提取bigrams,並使用postagger。對於樣本數據,所顯示我的錯誤在R:我如何解決POS標記器中的「內存不足」錯誤?

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

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

我如何解決這個peroblem?

我的代碼是: 我該如何解決這個問題?

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; 
     } 
    . 
    . 
    . 
    } 
} 

回答

3

當腳本在R使用rJava這個問題通常發生,在我的情況下,我通過之前加載庫options(java.parameters = "- Xmx1024m")我還添加以下行改變了內存大小JVM更能夠處理我的腳本添加gc()後包功能釋放內存。請查詢this link瞭解更多信息。

+0

我使用options(java.parameters =「 - Xmx1024m」),但是這個錯誤沒有改變。謝謝你回答這個問題 –

相關問題