正しく使用する方法スタンフォードNLPパイプライン 2フェーズ注釈用?スタンフォードNLPパイプライン逐次処理(Java)
Iはを分割のみ トークン化と 文が必要なので、私はこのコードを使用第一相で:
private Annotation annotatedDocument = null;
private StanfordCoreNLP pipeline = null;
...
public void firstPhase() {
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit");
pipeline = new StanfordCoreNLP(props);
annotatedDocument = new Annotation(textDocument);
}
第二相は任意であるので、私はドン」最初の段階ですべての注釈を使用する。第2の位相コード:
public void secondPhase() {
POSTaggerAnnotator posTaggerAnot = new POSTaggerAnnotator();
posAnot.annotate(annotatedDocument);
// Lemmatization
MorphaAnnotator morphaAnot = new MorphaAnnotator();
morphaAnot.annotate(annotatedDocument);
}
最初の質問:このアプローチは正しい第二段階では、「スタンドアローン」アノテーターを使用していますか?または既存のパイプラインを使用する方法はありますか?
第2の質問:Correference注釈者に問題があります。私は次のように第二段階でそれを使いたい:
CorefAnnotator coref = new CorefAnnotator(new Properties());
しかし、このコンストラクタは決して終わらないようです。プロパティのないコンストラクタは存在しません。それはいくつかのプロパティ設定が必要ですか?
を、** Coref注釈の問題は、** java.langです。 OutOfMemmoryError例外です。 – David