Я использую CoreNLP для аннотации NE в многострочном тексте на английском языке. При осуществлении следующих действий:CRFClassifier не распознает варианты разделителя предложений
Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner");
props.put("ssplit.newlineIsSentenceBreak", "always");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
String contentStr = "John speaks with Martin\n\nJeremy talks to him too.";
Annotation document
= new Annotation(contentStr);
pipeline.annotate(document);
List<CoreMap> sents = document.get(SentencesAnnotation.class);
for (int i = 0; i < sents.size(); i++) {
System.out.println("sentence " + i + " "+ sents.get(i));
}
Отказ расщепления прекращается и признает два предложения. Однако, когда я использую классификацию NER следующим образом:
CRFClassifier classifier = CRFClassifier.getClassifier("edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz", props);
String classifiedStr = classifier.classifyWithInlineXML(contentStr);
Я получаю следующее сообщение об ошибке:
Unknown property: |ssplit.newlineIsSentenceBreak| Unknown property: |annotators|
и классификатор, кажется, рассмотреть весь текст как одно предложение в результате ложного признания лица «Мартин Джереми» вместо двух разных сущностей.
Любая идея, что не так?
Спасибо @Mohamed Selim. Это был только ответ! – Bahaa