es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Modelo de SparkNLP Pipeline que incluye el enfoque de Anotador en etapas.

En un PipelineModel de SparkNLP, todas las etapas deben ser del tipo AnnotatorModel. Pero ¿qué pasa si uno de esos AnnotatorModels requiere una determinada columna en el conjunto de datos como entrada y esta columna de entrada es la salida de un AnnotatorApproach?

Por ejemplo, tengo un modelo entrenado para NER (como la última etapa del pipeline) que requiere tokens y etiquetas POS como dos de las entradas. Los tokens también son requeridos por el etiquetador POS. Pero el Tokenizer es un AnnotatorApproach y no puedo agregarlo al pipeline.

Así es como se instancia el Tokenizer (en Java):

AnnotatorApproach tokenizer = new Tokenizer();

Esto funciona:

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

Pero esto no funciona, porque el Tokenizer no es un Transformer:

List list;
list.add(tokenizer);
PipelineModel pipelineModel = new PipelineModel(“ID42”, list);

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    En este caso, puede utilizar el AnnotatorApproach como un Transformer envolviéndolo en un JavaModel. Esto se hace utilizando el método AnnotatorModel.pretrained().

    AnnotatorModel tokenizerModel = AnnotatorModel.pretrained("tokenizer", "en", "clinical", "tokenizer");
    List<transformer> list;
    list.add(tokenizerModel);
    PipelineModel pipelineModel = new PipelineModel("ID42", list);

Comments are closed.