Дата, обнаруженная в моей следующей программе, делится на два отдельных упоминания, тогда как обнаруженная дата на выходе NER CoreNLP demo является такой же, как и должно быть. Что мне следует изменить в моей программе, чтобы исправить это.Почему мои примечания NamedEntityAnnotator для даты отличаются от вывода демонстрации CoreNLP?
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, entitymentions");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
String text = "This software was released on Februrary 5, 2015.";
Annotation document = new Annotation(text);
pipeline.annotate(document);
List<CoreMap> sentences = document.get(SentencesAnnotation.class);
for(CoreMap sentence: sentences) {
List<CoreMap> mentions = sentence.get(MentionsAnnotation.class);
if (mentions != null) {
for (CoreMap mention : mentions) {
System.out.println("== Token=" + mention.get(TextAnnotation.class));
System.out.println("NER=" + mention.get(NamedEntityTagAnnotation.class));
System.out.println("Normalized NER=" + mention.get(NormalizedNamedEntityTagAnnotation.class));
}
}
}
Выход из этой программы:
== Token=Februrary 5,
NER=DATE
Normalized NER=****0205
== Token=2015
NER=DATE
Normalized NER=2015
Какую версию CoreNLP вы используете? Онлайн-демонстрационный трек тщательно отслеживает Git HEAD проекта; есть вероятность, что разница в выходе - это просто ошибка, которая была исправлена. –
Mine v3.6.0 из [здесь] (http://stanfordnlp.github.io/CoreNLP/#download). – crackjack