我正在尝试使用Mallet在~1GB文本文件上运行主题建模,其中包含11403956行。从mallet目录,我cd
到bin
并将内存要求升级到1024GB:
set MALLET_MEMORY=1024G
bin/mallet import-file --input combined_bios.txt --output dh_size.mallet --keep-sequence --remove-stopwords
但是,这会引发内存错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at gnu.trove.TObjectIntHashMap.rehash(TObjectIntHashMap.java:170)
at gnu.trove.THash.postInsertHook(THash.java:359)
at gnu.trove.TObjectIntHashMap.put(TObjectIntHashMap.java:155)
at cc.mallet.types.Alphabet.lookupIndex(Alphabet.java:115)
at cc.mallet.types.Alphabet.lookupIndex(Alphabet.java:123)
at cc.mallet.types.FeatureSequence.add(FeatureSequence.java:131)
at cc.mallet.pipe.TokenSequence2FeatureSequence.pipe(TokenSequence2FeatureSequence.java:44)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:294)
at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
at cc.mallet.types.InstanceList.addThruPipe(InstanceList.java:267)
at cc.mallet.classify.tui.Csv2Vectors.main(Csv2Vectors.java:290)
这种情况有解决方法吗?任何其他人可以提供的帮助将不胜感激!
答案 0 :(得分:2)
如果您使用的是Linux或OS X,我认为您可能正在改变错误的变量。您正在更改的那个可以在bin / mallet.bat中找到,但是您想要在bin / mallet中更改可执行文件中的那个(即没有 .bat 文件扩展名):
MEMORY=1g
此Mallet教程中的“大数据问题”中也对此进行了描述:
http://programminghistorian.org/lessons/topic-modeling-and-mallet