0

在 SparkNLP 中,PipelineModel所有阶段都必须是AnnotatorModel. 但是,如果其中一个注释器模型需要数据集中的某个列作为输入,而该输入列是 的输出,该AnnotatorApproach怎么办?

例如,我有一个训练有素的 NER 模型(作为管道的最后阶段),它需要令牌和 POS 标签作为两个输入。POS 标记器也需要令牌。但是 Tokenizer 是一个AnnotatorApproach,我无法将它添加到管道中。

这就是 Tokenizer 的实例化方式(在 Java 中):

AnnotatorApproach<TokenizerModel> tokenizer = new Tokenizer();

这有效:

Pipeline pipeline = new Pipeline().setStages( new PipelineStage[]{tokenizer} );

但这不起作用,因为 Tokenizer 不是 Transformer:

List<Transformer> list;
list.add(tokenizer);
PipelineModel pipelineModel = new PipelineModel("ID42", list);
4

1 回答 1

0

始终拟合管道将为您返回一个准备好进行推理的管道,即使您适合空数据集也是如此。如果您只依赖不需要培训的注释器,那也没关系。这是推荐的用法,通常不需要操作各个阶段,很麻烦,并且可能导致错误。

于 2021-11-19T21:30:05.077 回答