嗨,我正在尝试使用 MALLET 获取 500 个主题,但我在 MALLET 中遇到了以下异常。 这是一个已知问题,是否有任何解决方法?
overflow in merging on type 4975
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at cc.mallet.topics.ParallelTopicModel.sumTypeTopicCounts(ParallelTopicModel.java:453)
at cc.mallet.topics.ParallelTopicModel.estimate(ParallelTopicModel.java:825)
at cc.mallet.topics.tui.TopicTrainer.main(TopicTrainer.java:245)
我正在使用木槌-2.0.8RC2。
最近,我用两个不同的数据集运行了Mallet(一个是100M的数据集,另一个是1G的数据集)。通常,这种异常发生在较大的数据集上,并且当我想并行运行较大的迭代次数(例如较大的数据集的 100)时。它抛出了 Exception:ArrayIndexOutOfBoundsException,保存在两个不同的文件中:WorkerRunnable 和 ParallelTopicModel。所以问题是当数组到达数组的末尾时,它会将"在类型上合并溢出"打印到记录器,在那之后,程序不会做任何事情来摆脱这种情况。在访问数组之前,我能够通过索引检查修补这些边缘情况。它可以帮助我运行它而不会破坏它,但我不确定它无论如何都会如何更改输出,并且它还像往常一样不断打印相同的消息"在类型上合并溢出",但它继续并且不会引发异常。
我已经在我的 Github 上上传了补丁并按照说明进行操作。它已经能够为我解决问题,因为我在不同的情况下没有再次看到这种突破。如果它不能解决您的问题,您可能应该从他们的 Github 下载最新版本并自己调试和构建它。
我还上传了这两个数据集; 两者都是四年的数据;(2015年1月1日至2019年1月1日),较小的是StackExchange(数据科学),较大的是Reddit(9个DataScience Subreddits)(数据集),你想玩它。
祝你好运。