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;
}