Извлечение именованных сущностей

В литературе существуют различные инструменты и методы для распознавания именованных сущностей (NER). Среди них хороши java openNLP [1], standford nlp [2], spark johnsnowlab [3]. Используйте инструмент GATE [4], чтобы найти тот, который соответствует вашей проблеме.

Я пробовал все, для любого предложения, напишите мне или оставьте сообщение здесь.

Небольшая демонстрация для openNLP

public void findName(строковое предложение) выдает IOException {
InputStream is = new FileInputStream("C:\\Users\\Syed\\workspace3\\marjES\\src\\nlp\\en-ner-person.bin ”);
InputStream inputStreamTokenizer = new FileInputStream(“C:\\Users\\Syed\\workspace3\\marjES\\src\\nlp\\en-token.bin”);

Модель TokenNameFinderModel = new TokenNameFinderModel(is);
is.close();

// передать модель в класс поиска имен
NameFinderME nameFinder = new NameFinderME(model);
TokenizerModel tokenModel = new TokenizerModel(inputStreamTokenizer);
inputStreamTokenizer .close();
TokenizerME tokenizer = new TokenizerME(tokenModel);
String tokens[] = tokenizer.tokenize(sentence);
Span nameSpans[] =nameFinder.find(tokens);

int index;
// nameSpans содержит все возможные обнаруженные сущности
for(Span s: nameSpans){
System.out.print(“(“);
writer.append ("(");
for( index=s.getStart();index‹s.getEnd();index++){
System.out.print(tokens[index]+ " " );
Writer.append(tokens[index]+ " " );

}
System.out.print(“:”+s.getType().toString());
System.out.print(“:”+s.getProb()+”)”) ;
System.out.println();
Writer.append(“:”+s.getType().toString());
Writer.append(“:”+s. getProb()+")");
Writer.append(" : ");

}

}

[1] https://opennlp.apache.org/

[2] https://nlp.stanford.edu/

[3] https://github.com/JohnSnowLabs/spark-nlp

[4] https://gate.ac.uk/