nlpAan de slag met nlp


Opmerkingen

Deze sectie geeft een overzicht van wat nlp is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen nlp vermelden en een link naar de gerelateerde onderwerpen bevatten. Omdat de documentatie voor nlp nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Stanford CoreNLP

Stanford CoreNLP is een populaire toolkit voor verwerking van natuurlijke talen die vele NLP-kerntaken ondersteunt.

Om het programma te downloaden en te installeren, downloadt u een releasepakket en neemt u de benodigde *.jar bestanden op in uw classpath, of voegt u de afhankelijkheid van Maven central toe. Zie de downloadpagina voor meer informatie. Bijvoorbeeld:

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`/*
 

Er zijn drie ondersteunde manieren om de CoreNLP-tools uit te voeren: (1) met de volledig aanpasbare basis-API , (2) met de Simple CoreNLP API of (3) met de CoreNLP-server . Een eenvoudig gebruiksvoorbeeld voor elk wordt hieronder gegeven. Als een motiverende use case zullen deze voorbeelden dienen voor het voorspellen van de syntactische parse van een zin.

  1. CoreNLP API

    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. Eenvoudige CoreNLP

    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. CoreNLP-server

    Start de server met het volgende (het juiste pad instellen):

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

    Download een JSON-geformatteerde uitvoer voor een bepaalde set annotators en druk deze af om er standaard uit te zien:

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

    Om onze parse tree van de JSON te krijgen, kunnen we de JSON naar sentences[i].parse .