Nlp 使用OpenIE从命令行提取三元组

Nlp 使用OpenIE从命令行提取三元组,nlp,stanford-nlp,Nlp,Stanford Nlp,我有一个大小适中的自由文本文件(~1.5GB),我希望使用OpenIE来提取三元组,但我目前遇到了一些问题 我使用以下命令调用它: java -mx2g -cp "*" edu.stanford.nlp.naturalli.OpenIE ./my_file.txt 第一个问题是,这会占用大量内存。即使使用-mx50g允许50GB,我也会遇到java内存问题 第二个问题是,它似乎没有将输出写入文件,只是将其转储到控制台。将结果放入文件的唯一方法是将输出重定向到文件中 这是我第一次使用这个软件包

我有一个大小适中的自由文本文件(~1.5GB),我希望使用OpenIE来提取三元组,但我目前遇到了一些问题

我使用以下命令调用它:

java -mx2g  -cp "*" edu.stanford.nlp.naturalli.OpenIE ./my_file.txt
第一个问题是,这会占用大量内存。即使使用
-mx50g
允许50GB,我也会遇到java内存问题

第二个问题是,它似乎没有将输出写入文件,只是将其转储到控制台。将结果放入文件的唯一方法是将输出重定向到文件中


这是我第一次使用这个软件包,所以我不确定我是否只是在做一些愚蠢的事情。内存使用是否正确?如何将结果保存到文件中

那么,首先,1.5G“适度大小”是什么定义

但更重要的是,我建议(1)将文件分解为较小的文档,然后(2)使用
-filelist
选项注释较小的文档。然后,您可以(3)使用
-output
选项将输出重定向到文件。更详细地说:

  • 分割文件的最简单方法是使用类似于命令的方法。如果您想保持句子或段落边界,我建议通过CoreNLP的标记器运行文档,并以这种方式拆分(将注释器设置为
    tokenize,ssplit
    )。这将需要比整个管道更少的空间,尽管对于1.5GB的文件,可能仍然需要几十GB的空间

  • 如果构建一个文件,列出所有要注释的文件(每行一个),则可以通过
    -filelist
    选项将它们传递给OpenIE。例如,包含以下内容的文件:

    file1
    file2
    file3
    
    将使用OpenIE提取对文件1、文件2和文件3进行注释

  • 您可以使用
    -output
    选项将输出元组保存到文件中。您还可以使用
    -format
    指定所需的格式:
    default
    ollie
    混响
    qa_srl
    中的一种。提供最多信息的格式(也是空间最密集的格式)是
    混响
    。如果您想要一组尽可能大的主题+对象的最小提取,请使用
    qa_srl