我正在尝试向自动语言检测工具Apache的tika添加新的语言。它需要构建语言配置文件以添加新的语言。因此,我正在使用nutch语言标识符插件来构建此配置文件。

命令如下:

bin / nutch插件语言标识符org.apache.nutch.analysis.lang.NGramProfile -create ./language-detection-profile/jp ./language-detection-profile/japanese4ngram-1.txt utf-8

其中./language-detection-profile/japanese4ngram-1.txt是新的语言语料库。

我已经在小型语料库(1 MB)上进行了测试,并且一切都很好,配置文件已按预期创建。

但是,语料库较大时(> 1 GB)。我有内存不足(堆空间)的问题,例如

线程“主”中的异常java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
在java.lang.reflect.Method.invoke(Method.java:597)
在org.apache.nutch.plugin.PluginRepository.main(PluginRepository.java:421)
引起原因:java.lang.OutOfMemoryError:Java堆空间
在java.util.Arrays.copyOf(Arrays.java:2882)
在java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
在java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
在java.lang.StringBuilder.append(StringBuilder.java:119)
在org.apache.nutch.analysis.lang.NGramProfile.create(NGramProfile.java:374)
在org.apache.nutch.analysis.lang.NGramProfile.main(NGramProfile.java:484)
...另外5个

有谁知道如何为nutch的插件指定堆空间大小?谢谢。

编辑:
在Mikaveli的帮助下。
在Ubuntu中:


如果[“x $ JAVA_LIBRARY_PATH”!=“x”];然后
NUTCH_OPTS =“$ NUTCH_OPTS -Djava.library.path = $ JAVA_LIBRARY_PATH -Xmx2048m”
科幻

最佳答案

假设您正在Windows上进行开发,请编辑nutch.bat并在rem NUTCH_OPTS行之后添加以下内容:

set NUTCH_OPTS=%NUTCH_OPTS% -Xmx1024m

显然,请将RAM的数量设置在计算机的物理限制内-请注意,根据您的操作,Nutch可能很容易需要4g。

关于java - 增加用于语言标识符插件的Java堆空间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7104854/

10-11 23:12
查看更多