tutorial stanford spanish online corenlp java annotations stanford-nlp

java - spanish - Agregar un nuevo anotador en Stanford CoreNLP



stanford corenlp tutorial (1)

Estoy tratando de agregar un nuevo anotador en Stanford CoreNLP de acuerdo con las instrucciones en http://nlp.stanford.edu/downloads/corenlp.shtml .

"Agregar un nuevo anotador StanfordCoreNLP también tiene la capacidad de agregar un nuevo anotador por reflexión sin alterar el código en StanfordCoreNLP.java . Para crear un nuevo anotador, amplíe la clase edu.stanford.nlp.pipeline.Annotator y defina un constructor con el signature (String, Properties). Luego, agregue la propiedad customAnnotatorClass. FOO=BAR a las propiedades utilizadas para crear el pipeline. Si se agrega FOO a la lista de anotadores, se creará la clase BAR, con el nombre utilizado para crear y el archivo de propiedades pasado ".

Creé una nueva clase para mi nuevo anotador, pero no puedo poner el archivo de propiedades que pasaría. Solo puse el nuevo anotador en la tubería.

props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref, regexner, color"); props.setProperty("customAnnotatorClass.color", "myPackage.myPipeline");

¿Hay algún código de ejemplo para ayudarme?


Puedes tener el mío, si quieres. Lo interesante comienza en // adding our own annotator property :

/** Annotates a document with our customized pipeline. * @param text A text to process * @return The annotated text */ private Annotation annotateText(String text) { Annotation doc = new Annotation(text); StanfordCoreNLP pipeline; // creates a StanfordCoreNLP object, with POS tagging, lemmatization, // NER, parsing, and coreference resolution Properties props = new Properties(); // alternative: wsj-bidirectional try { props.put( "pos.model", "edu/stanford/nlp/models/pos-tagger/wsj-bidirectional/wsj-0-18-bidirectional-distsim.tagger"); } catch (Exception e) { e.printStackTrace(); } // adding our own annotator property props.put("customAnnotatorClass.sdclassifier", "edu.kit.ipd.alicenlp.ivan.analyzers.StaticDynamicClassifier"); // configure pipeline props.put( "annotators", "tokenize, ssplit, pos, lemma, ner, parse, sdclassifier"); pipeline = new StanfordCoreNLP(props); pipeline.annotate(doc); return doc; }