Looking for nlp Answers? Try Ask4KnowledgeBase
Looking for nlp Keywords? Try Ask4Keywords

nlpnlpを使い始める


備考

このセクションでは、nlpの概要と、なぜ開発者がそれを使いたいのかを概説します。

また、nlp内の大きなテーマについても言及し、関連するトピックにリンクする必要があります。 nlpのドキュメントは新しくなっているので、それらの関連トピックの初期バージョンを作成する必要があります。

スタンフォードCoreNLP

Stanford CoreNLPは、多くのコアNLPタスクをサポートする一般的なNatural Language Processingツールキットです。

プログラムをダウンロードしてインストールするには、リリースパッケージをダウンロードし、必要な*.jar ファイルをクラスパスに組み込むか、Mavenの依存関係を追加します。詳細は、ダウンロードページを参照してください 。例えば:

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

CoreNLPツールを実行するには、(1) 完全にカスタマイズ可能 な基本 APIを使用する方法、(2) Simple CoreNLP APIを使用する方法、(3) CoreNLPサーバーを使用する方法があります 。それぞれの簡単な使用例を以下に示します。動機付けのユースケースとして、これらの例は、文の構文解析を予測するためのものです。

  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. シンプルな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サーバー

    次のようにサーバーを起動します(クラスパスを適切に設定します)。

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

    指定されたアノテーターのセットに対してJSON形式の出力を取得し、それを標準出力に出力します。

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

    私たちの解析木をJSONから得るために、JSONをsentences[i].parse ナビゲートすることができます。