我一直在使用Mallet来推断包含10万行(在Mallet格式下大约为34 MB)的文本文件的主题。但现在我需要对包含100万行(大约180MB)的文件进行运行,但是我遇到了java.lang.outofmemory异常。是否有一种方法将文件分成较小的文件,并为所有文件中存在的数据构建模型?
提前致谢。
我一直在使用Mallet来推断包含10万行(在Mallet格式下大约为34 MB)的文本文件的主题。但现在我需要对包含100万行(大约180MB)的文件进行运行,但是我遇到了java.lang.outofmemory异常。是否有一种方法将文件分成较小的文件,并为所有文件中存在的数据构建模型?
提前致谢。
set MALLET_MEMORY=1G
java.lang.outofmemory 异常主要是由于堆空间不足导致的。 您可以使用 -Xms 和 -Xmx 设置堆空间,以便它不会再次出现。
我不确定Mallet在处理大数据方面的可扩展性,但是项目http://dragon.ischool.drexel.edu/可以将其数据存储在磁盘支持的持久化中,因此可以扩展到无限的语料库大小(当然性能会降低)
即使从多个文件中读取,该模型仍然会非常庞大。您尝试过增加Java虚拟机的堆大小吗?
根据当前PC的内存大小,使用最大为2GB的堆应该很容易。 在考虑使用集群之前,您应该尝试单机方案。