在 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);