1

Rには、サンプル用に30レコードのデータがあり、メインデータには20000レコードがあります。レコードはツイートです。ツイートからバイグラムを抽出し、postagger から使用します。サンプルデータの場合、エラーが表示されました

.jnew("opennlp.tools.postag.POSModel"、.jcast(.jnew("java.io.FileInputStream"、:
java.lang.OutOfMemoryError: Java ヒープ スペース)

また

.jnew("opennlp.tools.tokenize.TokenizerModel", .jcast(.jnew("java.io.FileInputStream", :
java.lang.OutOfMemoryError: GC オーバーヘッド制限を超えました)

この問題を解決するにはどうすればよいですか?

私のコードは次のとおりです:この問題を解決するにはどうすればよいですか?

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

1 に答える 1

4

この問題は通常、スクリプトが R で rJava を使用している場合に発生します。私の場合、リリースするパッケージ関数の直後にoptions(java.parameters = "- Xmx1024m")追加したライブラリをロードする前に次の行を追加することで、JVM のメモリ サイズを変更してスクリプトをより処理できるようにしました。gc()メモリー。詳細については、このリンクを確認してください。

于 2016-06-11T14:48:32.133 に答える