Вы не включили NERAnnotator в свой AnnotationPipeline
. В общем, я рекомендую создавать конвейер с Properties
, а не явно из классов аннотаторов. Это имеет ряд преимуществ:
- Вы получаете кеширование аннотатора бесплатно; будущие аннотаторы с теми же наборами свойств не нужно перезагружать.
- Вы получаете разумные значения по умолчанию для большинства свойств аннотатора.
- Вы можете, если хотите, сохранить файл свойств как файл ресурсов независимо от кода.
- Вы все еще можете настроить аннотаторы, установив соответствующие свойства.
В вашем случае вы должны выполнить:
Properties props = new Properties();
props.setProperty("annotators", "tokenize,ssplit,pos,lemma,ner");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation annotation = new Annotation( "Last summer, Sali and Nadav met every Tuesday afternoon, from 1:00 pm to 3:00 pm." );
pipeline.annotate( annotation );
...
См. официальную документацию для получения дополнительной информации.
Также вы можете попробовать Simple API :
Document doc = new Document("Last summer, Sali and Nadav met every Tuesday afternoon, from 1:00 pm to 3:00 pm.")
doc.sentence(0).ner(3); // returns 'PERSON'
doc.sentence(0).nerTags(); // returns [O, O, O, PERSON, O, PERSON, ...]
Или, если вы знаете, что вы вводите одно предложение, просто:
Sentence sent = new Document("Last summer, Sali and Nadav met every Tuesday afternoon, from 1:00 pm to 3:00 pm.")
sent.ner(3); // returns 'PERSON'