Извличане на именувани обекти

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

Опитах всички, за всяко предложение, пишете ми или оставете съобщение тук.

Малка демонстрация за openNLP

public void findName(String sentence) хвърля IOException {
InputStream is = new FileInputStream(“C:\\Users\\Syed\\workspace3\\marjES\\src\\nlp\\en-ner-person.bin ”);
InputStream inputStreamTokenizer = нов FileInputStream(“C:\\Users\\Syed\\workspace3\\marjES\\src\\nlp\\en-token.bin”);

TokenNameFinderModel модел = нов TokenNameFinderModel(is);
is.close();

// захранване на модела, за да наименува клас за търсене
NameFinderME nameFinder = нов NameFinderME(модел);
TokenizerModel tokenModel = нов 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(токени[индекс]+ “ “);


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/