Wie üblich durchquere ich die Sätze eines kommentierten Dokuments in einem for-Schleife (Java):Wie ersetzt man ein Token (CoreLabel) in einem Satz (CoreMap) mit Stanford NLP?
for (CoreMap sentence : document.get(CoreAnnotations.SentencesAnnotation.class)) {
...
}
Dann im Innern, dass ich ein Wort aus dem Satz entfernen (zB „Lehrer“) mit dem Wort Index, habe ich den Text neuen Wort „John“ mit der CoreLabel
Methode setWord()
und am Ende habe ich das erneuerte Wort in dem gleichen Index in dem Satz hinzufügen zu sein:
sentence.get(CoreAnnotations.TokensAnnotations.class).remove(token.get(CoreAnnotations.IndexAnnotation.class));
token.setWord("John");
sentence.get(CoreAnnotations.TokensAnnotation.class).add(token.get(CoreAnnotations.IndexAnnotation.class),token);
das Problem ist, dass der Satz bleibt als ist. Auch wenn ich den Satztext direkt nach dem Entfernen ausdrucke, ändert sich nichts. Mache ich etwas falsch? Gibt es einen vernünftigeren Weg?