我正在尝试添加一种新语言到自动语言检测工具Apache的tika。它需要构建一个语言配置文件来添加新语言。所以我使用nutch语言标识符插件来构建此配置文件。
命令如下:
bin/nutch plugin language-identifier 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)时。我有内存不足(堆空间)的问题,比如
Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.nutch.plugin.PluginRepository.main(PluginRepository.java:421) Caused by: java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2882) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390) at java.lang.StringBuilder.append(StringBuilder.java:119) at org.apache.nutch.analysis.lang.NGramProfile.create(NGramProfile.java:374) at org.apache.nutch.analysis.lang.NGramProfile.main(NGramProfile.java:484) ... 5 more
有谁知道如何为nutch的插件指定堆空间大小?感谢。
编辑: 在Mikaveli的帮助下。 在Ubuntu中: 设置
if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then NUTCH_OPTS="$NUTCH_OPTS -Djava.library.path=$JAVA_LIBRARY_PATH -Xmx2048m" fi
答案 0 :(得分:1)
假设您正在开发Windows框,请编辑nutch.bat并在rem NUTCH_OPTS
行之后添加以下内容:
set NUTCH_OPTS=%NUTCH_OPTS% -Xmx1024m
显然将RAM的数量设置在机器的物理极限范围内 - 请注意,Nutch可以轻松地需要4g,具体取决于您使用它的情况。