nlp - 使用 OpenIE 从命令行中提取三元组
问题描述
我有一个大小适中的自由文本文件(~1.5 GB),我希望使用 OpenIE 来提取三元组,但我目前遇到了一些问题。
我使用以下命令调用它:
java -mx2g -cp "*" edu.stanford.nlp.naturalli.OpenIE ./my_file.txt
第一个问题是这会占用大量内存。即使我允许 50GB 使用-mx50g
.
第二个问题是它似乎没有将输出写入文件,它只是将其转储到控制台。将结果写入文件的唯一方法是将输出重定向到文件中。
这是我第一次使用这个包,所以我不确定我是否只是在做一些愚蠢的事情。这种内存使用是否正确,如何将结果保存到文件中?
解决方案
那么,首先,1.5G“适中”的定义是什么!?
但更重要的是,我建议 (1) 将文件分解为较小的文档,然后 (2) 使用该-filelist
选项对较小的文档进行注释。-output
然后,您可以 (3) 使用该选项将输出重定向到文件。更详细地说:
拆分文件的最简单方法是使用
split
命令之类的东西。如果您想保持句子或段落的边界,我建议您通过 CoreNLP 的标记器运行文档并以这种方式拆分(将注释器设置为tokenize,ssplit
)。这将需要比完整管道更少的空间,尽管对于一个 1.5GB 的文件来说可能仍然需要几十 GB。如果您构建一个列出所有要注释的文件的文件,每行一个,您可以通过
-filelist
选项将它们传递给 OpenIE。例如,一个包含以下内容的文件:file1 file2 file3
将使用 OpenIE 提取注释 file1、file2 和 file3。
-output
您可以使用该选项将输出元组保存到文件中。您还可以使用 、 、 或 中的一种来指定您想要的-format
格式。提供最多信息(但也是最占用空间)的格式是. 如果您想要跨越尽可能大的主题+对象的最小提取集,请使用.default
ollie
reverb
qa_srl
reverb
qa_srl
推荐阅读
- python - Braintree Django 异常“只能将 str(不是“元组”)连接到 str”
- reactjs - React Hook clean/show Errors message while typing
- c# - 使用 SignalR 在 blazor 服务器中实现全局通知系统
- r - 从 acf 输出列表中提取特定元素
- python - Python中的@运算符是什么?
- javascript - 页面加载时如何触发javascript事件
- python - 程序如何以低电平输出声音?
- database - Terraform 布尔变量 true - 基于映射值
- python-3.x - (Django) 会话中设置的值在我第二次通过同一视图呈现请求后消失
- laravel - Laravel Sactum 和 Fortify - 如何同时使用它们?