使用Stanford POS Tagger时出现Java内存不足错误

时间:2019-01-03 06:59:02

标签: java python nlp stanford-nlp

我的Jupyter笔记本出现以下错误:

Loading default properties from tagger C:\Users\bdiplus_admin\Desktop\ABSA\stanford-postagger-full-2018-10-16/models/english-bidirectional-distsim.tagger
Loading POS tagger from C:\Users\bdiplus_admin\Desktop\ABSA\stanford-postagger-full-2018-10-16/models/english-bidirectional-distsim.tagger ... done [1.5 sec].
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at edu.stanford.nlp.sequences.ExactBestSequenceFinder.bestSequence(ExactBestSequenceFinder.java:129)
    at edu.stanford.nlp.sequences.ExactBestSequenceFinder.bestSequence(ExactBestSequenceFinder.java:37)
    at edu.stanford.nlp.tagger.maxent.TestSentence.runTagInference(TestSentence.java:341)
    at edu.stanford.nlp.tagger.maxent.TestSentence.testTagInference(TestSentence.java:328)
    at edu.stanford.nlp.tagger.maxent.TestSentence.tagSentence(TestSentence.java:151)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.tagSentence(MaxentTagger.java:1052)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.tagCoreLabelsOrHasWords(MaxentTagger.java:1843)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.tagAndOutputSentence(MaxentTagger.java:1853)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.runTagger(MaxentTagger.java:1764)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.runTagger(MaxentTagger.java:1825)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.runTagger(MaxentTagger.java:1598)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.runTagger(MaxentTagger.java:1554)
    at edu.stanford.nlp.tagger.maxent.MaxentTagger.main(MaxentTagger.java:1897)

它基本上说我的内存不足。

我查找了该错误,最常见的解决方案是尝试使用-Xmx4096M指定最大内存。但是,我的问题是我不知道在哪里提出这一论点?

我在运行于Python 3的Jupyter笔记本中使用以下代码行:

from nltk.tag.stanford import StanfordPOSTagger as POS_Tag
from nltk import word_tokenize

_path_to_model = home + '/models/english-bidirectional-distsim.tagger' 
_path_to_jar = home + '/stanford-postagger.jar'
stanford_tag = POS_Tag(model_filename=_path_to_model, path_to_jar=_path_to_jar)

def posTag(review):
    tagged_text_list=[]
    for text in review:
        tagged_text_list.append(stanford_tag.tag(word_tokenize(text)))
    return tagged_text_list

0 个答案:

没有答案