我使用 MALLET 进行主题建模。
http://mallet.cs.umass.edu/topics.php

首先,我尝试按照说明导入训练文档集。

bin/mallet import-dir --input /data/topic-input --output topic-input.mallet --keep-sequence --remove-stopwords

我总是得到 OutOfMemoryError ,尽管我根据以下页面更改了 "bin/mallet.bat"
Mallet topic modelling

我设置了 set MALLET_MEMORY=32G

我的数据集大小是 30GB。

电脑内存够用。

我收到以下错误。
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
    at java.util.Arrays.copyOfRange(Arrays.java:3658)
    at java.lang.String.<init>(String.java:201)
    at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:909)
    at java.lang.StringBuffer.subSequence(StringBuffer.java:473)
    at cc.mallet.extract.StringSpan.constructTokenText(StringSpan.java:49)
    at cc.mallet.extract.StringSpan.<init>(StringSpan.java:33)
    at cc.mallet.pipe.CharSequence2TokenSequence.pipe(CharSequence2TokenSequence.java:68)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:294)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
    at cc.mallet.types.InstanceList.addThruPipe(InstanceList.java:267)
    at cc.mallet.classify.tui.Text2Vectors.main(Text2Vectors.java:312)
$ bin/mallet import-dir --input ../Text --output topic-input.mallet --keep-sequence --remove-stopwords
Labels =
   ../Text
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Arrays.java:3658)
    at java.lang.String.<init>(String.java:201)
    at java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:909)
    at java.lang.StringBuffer.subSequence(StringBuffer.java:473)
    at cc.mallet.extract.StringSpan.constructTokenText(StringSpan.java:49)
    at cc.mallet.extract.StringSpan.<init>(StringSpan.java:33)
    at cc.mallet.pipe.CharSequence2TokenSequence.pipe(CharSequence2TokenSequence.java:68)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:294)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:290)
    at cc.mallet.pipe.Pipe$SimplePipeInstanceIterator.next(Pipe.java:282)
    at cc.mallet.types.InstanceList.addThruPipe(InstanceList.java:267)
    at cc.mallet.classify.tui.Text2Vectors.main(Text2Vectors.java:312)

我该如何解决这个问题?谢谢你。

最佳答案

您可以增加 mallet 使用的内存。你的 mallet 主目录在哪里?在 mallet 的主目录中,您有 bin 目录。
bin 目录中,在文本编辑器中打开 mallet 文件并将“MEMORY”设置为上限值。 “MEMORY”的默认值为 1g 。您可以将其设置为 4g

关于java - MALLET 主题建模 OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24664979/

10-10 23:34