1

我想从 Allen NLP Open IE 预测器模型中提取(主题、关系、对象)的元组形式的干净三元组。

目前,我看到步骤如下

OIE_output = predictor_OIE.predict(sentence=sent)
for verb in OIE_output['verbs']:
    srl_output = predictor_OIE.make_srl_string(words,verb['tags'])

srl_output 在打印时会在句子中给出标签,例如:

[ARG0:雷神技术公司研究]、开发和[V:制造] [ARG1:先进技术产品] [ARGM-LOC:在航空航天和国防工业中],[C-ARG1:包括飞机发动机、航空电子设备、航空结构、网络安全] [ARGM-ADV:导弹、防空系统和无人机]。

问题是,我找不到任何代码来将这样的例句转换为形式的多个元组(主题、关系、对象)。特别是 ARGM-LOC 和 ARGM-ADV 等特殊类型的标签使事情变得更加困难。

我已经查看过过时的 Github 存储库https://github.com/gabrielStanovsky/supervised_oie_wrapper(它并不完全生成这些类型的元组),我在 AllenNLP 中找到的最接近的函数是make_srl_string方法,但输出仍然需要进行后处理以创建元组。

是否有任何代码可以从 AllenNLP Open IE 模型创建元组?如果没有,您可以将其添加为功能吗?

github issue中的详细解释https://github.com/allenai/allennlp/issues/4857

4

1 回答 1

2

AllenNLP 目前没有这种能力,但我认为将其添加到SRLPredictor课程中并不困难。如果您这样做,请向我们发送拉取请求!

于 2020-12-12T03:12:56.713 回答