【发布时间】:2017-11-19 00:44:54
【问题描述】:
我正在尝试使用 stanford-nlp library 训练 NER 模型。我有一个所需格式的文件,大小为 6GB。配置文件:
usePrevSequences=true
useClassFeature=true
useTypeSeqs2=true
useSequences=true
wordShape=chris2useLC
useTypeySequences=true
useDisjunctive=true
noMidNGrams=true
serializeTo=ner-model50.ser.gz
maxNGramLeng=6
useNGrams=true
usePrev=true
useNext=true
maxLeft=1
trainFile=trainData
map=word=0,answer=1
useWord=true
useTypeSeqs=true
按照文档中的建议,每个句子都用空行分隔。所以当我用mx25g运行命令时:
java -mx25g -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop config.prop
我得到了错误:
线程“主”java.lang.OutOfMemoryError 中的异常:Java 堆空间
从库的FAQ page 建议将文件拆分为多个文件以防内存错误。
为此,您需要使用trainFileList 选项而不是trainFile 选项来更改配置文件。现在我有多个文件,每个文件大约 250MB。运行相同的命令时出现以下错误:
线程“主”java.lang.OutOfMemoryError 中的异常:超出 GC 开销限制
因此,拆分文件似乎没有帮助。你认为分割成更小的文件会有帮助吗?还是没关系?有什么办法可以解决这个问题吗?任何见解都是有用的。提前致谢。
【问题讨论】:
标签: stanford-nlp