Empezando con la PNL

Programa básico de PNL de Stanford

Stanford CoreNLP es un conjunto de herramientas de procesamiento de lenguaje natural popular que admite muchas tareas básicas de NLP.

Para descargar e instalar el programa, descargue un paquete de lanzamiento e incluya los archivos *.jar necesarios en su classpath, o agregue la dependencia fuera de Maven central. Consulte la página de descarga para obtener más detalles. Por ejemplo:

curl http://nlp.stanford.edu/software/stanford-corenlp-full-2015-12-09.zip -o corenlp.zip
unzip corenlp.zip
cd corenlp
export CLASSPATH="$CLASSPATH:`pwd`/*

Hay tres formas admitidas de ejecutar las herramientas de CoreNLP: (1) usando la API base totalmente personalizable, (2) usando Simple CoreNLP API, o (3) usando el [servidor CoreNLP] (http://stanfordnlp.github.io/CoreNLP/corenlp-server.html). A continuación se proporciona un ejemplo de uso simple para cada uno. Como caso de uso motivador, estos ejemplos servirán para predecir el análisis sintáctico de una oración.

  1. API CoreNLP

    public class CoreNLPDemo {
      public static void main(String[] args) {
    
        // 1. Set up a CoreNLP pipeline. This should be done once per type of annotation,
        //    as it's fairly slow to initialize.
        // creates a StanfordCoreNLP object, with POS tagging, lemmatization, NER, parsing, and coreference resolution 
        Properties props = new Properties();
        props.setProperty("annotators", "tokenize, ssplit, parse");
        StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
    
        // 2. Run the pipeline on some text.
        // read some text in the text variable
        String text = "the quick brown fox jumped over the lazy dog"; // Add your text here!
        // create an empty Annotation just with the given text
        Annotation document = new Annotation(text);
        // run all Annotators on this text
        pipeline.annotate(document);
    
        // 3. Read off the result
        // Get the list of sentences in the document
        List<CoreMap> sentences = document.get(CoreAnnotations.SentencesAnnotation.class);
        for (CoreMap sentence : sentences) {
          // Get the parse tree for each sentence
          Tree parseTree = sentence.get(TreeAnnotations.TreeAnnotation.class);
          // Do something interesting with the parse tree!
          System.out.println(parseTree);
        }
    
      }
    }
    
  2. Núcleo simple de PNL

    public class CoreNLPDemo {
      public static void main(String[] args) {
        String text = "The quick brown fox jumped over the lazy dog");  // your text here!
        Document document = new Document(text);  // implicitly runs tokenizer
        for (Sentence sentence : document.sentences()) {
          Tree parseTree = sentence.parse();  // implicitly runs parser
          // Do something with your parse tree!
          System.out.println(parseTree);
        }
      } 
    }
    
  3. Servidor CoreNLP

Inicie el servidor con lo siguiente (configurando su classpath apropiadamente):

   java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer [port] [timeout]

Obtenga una salida con formato JSON para un conjunto determinado de anotadores e imprímala de forma estándar:

    wget --post-data 'The quick brown fox jumped over the lazy dog.' 'localhost:9000/?properties={"annotators":"tokenize,ssplit,parse","outputFormat":"json"}' -O -

Para obtener nuestro árbol de análisis del JSON, podemos navegar el JSON a sentences[i].parse.