在 AllenNLP 中访问实例的字段值

问题描述

我将 AllenNLP 用于组合分类器(其任务之一是 NER 标记),在设计一些测试时,我遇到了这个疑问:如何访问我的 AllenNLP 实例的不同字段的值?我想将它们与引入的值进行比较,以确保在预处理中没有丢失任何东西。

我设法使用 instance.__getitem__("text") 访问了实例的文本字段,但我不知道如何从那里获取值,或者是否有任何更快的直接从 Instance 类获取

我想要做的是类似于 assert instance.getValueFromField("text) == training_dataset["text"][0]

解决方法

您是对的,instance.__getitem__("text") 将允许您访问名为“text”的字段,但您不应直接使用此方法。相反,只需执行 instance["text"]

无论哪种方式,这都会为您提供一个 TextField,您可以使用它通过查看 instance["text"].tokens 来检查用于构造该字段的标记。