【问题标题】:R's coreNLP::initCoreNLP() throws java.lang.OutOfMemoryErrorR 的 coreNLP::initCoreNLP() 抛出 java.lang.OutOfMemoryError
【发布时间】:2016-05-01 04:54:28
【问题描述】:

coreNLP 是一个 R 包,用于连接 Standford 的 CoreNLP Java 库。必须执行的第一行(在使用library() 命令加载适当的包之后)是initCoreNLP()。不幸的是,这会导致以下错误:

从 edu/stanford/nlp/models/ner/english.conll.4class.distim.crf.ser.gz 加载分类器 ... rJava::.jnew("edu.stanford.nlp.pipeline.StanfordCoreNLP) 中的错误“,基本名称(路径)): java.lang.OutOfMemoryError: 超出 GC 开销限制

注意,这与此处列出的问题相同:(initCoreNLP() method call from the Stanford's R coreNLP package throws error)。但是,在这种情况下,OP 发现重新启动他的机器会使问题消失。这对我来说不是;即使在重新启动后我仍然会遇到这种情况。

有没有其他人遇到过这个问题并可以提供解决方案或建议?

提前致谢, 危险品

配置细节:

R 版本 3.2.3 (2015-12-10)

rJava 0.9-7 版

coreNLP 0.4-1 版

机器:8GB RAM 的 Win 7

【问题讨论】:

    标签: r stanford-nlp rjava


    【解决方案1】:

    这是我找到的一些文档:

    https://cran.r-project.org/web/packages/coreNLP/coreNLP.pdf

    (特别是第 7 页)

    您可以指定使用多少内存(来自文档):

    initCoreNLP(libLoc, parameterFile, mem = "4g", annotators)
    

    添加更多内存,我想问题会消失。

    【讨论】:

    • 感谢您的回复。我实际上已经尝试过了,它并没有解决问题。我使用过 mem = 6g、8g、12g、16g 和 32g(注意我的机器只有 8g 的 RAM,所以我不知道为什么它甚至会尝试使用比这更大的参数运行)。
    • 哎呀。 太快了... :) 无论如何,如果你们是斯坦福 NLP 的官方帮助并且您的建议没有奏效,我想我真的搞砸了。也许我会看看是否可以在不使用 coreNLP 包的情况下从 R 调用斯坦福 Java 库。再次感谢您提供帮助。
    • 您可能会查看斯坦福 CoreNLP 服务器。如果你启动了一个斯坦福 CoreNLP 服务器,你就可以发出 POST 请求并获得结果。我不知道如何在 R 中做到这一点,但我认为 R 会有一些工具。这是链接:stanfordnlp.github.io/CoreNLP/corenlp-server.html
    • 另外你确定你给 R 足够的内存吗?看起来 Java 进程正在获得适当数量的内存,但可能是 R 遇到了问题。
    • 此链接包含有关 R 的 RAM 限制的一些信息:cran.r-project.org/bin/windows/base/rw-FAQ.html
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 2018-07-24
    • 2019-12-31
    • 2014-09-01
    • 2018-09-02
    相关资源
    最近更新 更多