【问题标题】:How to parse large data with nltk stanford pos tagger in Python如何在 Python 中使用 nltk stanford pos tagger 解析大数据
【发布时间】:2016-01-15 00:09:12
【问题描述】:

我正在开发一个带有 nltk 和 stanford pos tagger 的程序来解析包含大量单词的文件。我的一些文件可以正常执行,但很少会出现以下错误。

OSError: Java command failed : ['C:\\Program Files\\Java\\jdk1.8.0_60\\bin\\java.exe', '-mx1000m', '-cp',

经过一些研究,我发现问题在于运行时程序内存较少。一种可能的解决方案是将一个文件分成两个,然后分别处理它们。但是,这不是我的程序的永久长期解决方案。所以,现在我想增加进程内存。

我发现这篇文章是通过 over-commit 分配内存的。似乎解决方案适用于linux。我在 Windows 8 上工作,找不到文件 sysctl.conf 。所以任何人都可以为我提供如何在我的 Windows 环境中增加内存的解决方案。

谢谢

【问题讨论】:

  • 问题不在于如何获得更多内存,而在于你在做什么?
  • 我只是用 ntlk pos 标记器标记数据。它适用于其他文件。只有少数它不起作用。如果您甚至在 stackoverflow 上对此错误进行研究,您会发现问题出在内存使用上。我已经尝试将文件分成两部分,然后分别处理它并且它可以工作。那么还有什么问题呢?
  • 问题,如@caot 回答的那样,内存过多。

标签: java memory


【解决方案1】:

如果可能,在数据处理期间尝试将输出数据持久化到文件中。

【讨论】:

    【解决方案2】:

    经过一番搜索,我增加了 java 运行 stanford POS tagger 所需的最大 RAM。命令是:

    nltk.internals.config_java(options='-xmx2G')
    

    重新启动程序,它工作了

    【讨论】:

    • 这似乎不再起作用了。这样做:StanfordParser(java_options='-Xmx2g')
    猜你喜欢
    • 2017-11-05
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2013-05-23
    相关资源
    最近更新 更多