Я пытаюсь выполнить модель OpenNLP, которую я подготовил для своих индивидуальных имен. Я выполнил команду ниже, чтобы сделать настраиваемую модель:Как обращаться с ExtensionNotLoadedException при использовании пользовательской модели NER в OpenNLP?
OpenNLP TokenNameFinderTrainer -Кодирование UTF-8 -lang ан -data C: \ Users \ nshah \ Desktop \ ан-нер-person.train -модели ан-ner- personName.bin
Я могу успешно создать модель под названием ан-нер-personName.bin.
Теперь я пытаюсь выполнить свою программу, как показано ниже:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import opennlp.tools.namefind.NameFinderME;
import opennlp.tools.namefind.TokenNameFinderModel;
import opennlp.tools.util.InvalidFormatException;
import opennlp.tools.util.Span;
public class NameFinder {
public String nameFind(String inputText){
String finalNames = "";
try {
TokenNameFinderModel tokenNameFinderModel = new TokenNameFinderModel(new FileInputStream("D://NISUM_OFFICIAL_WORKSPACE//opennlp//src//models//en-ner-personName.bin"));
NameFinderME nameFinderME = new NameFinderME(tokenNameFinderModel);
Tokenization tokenize = new Tokenization();
String[] tokens = tokenize.tokenization(inputText);
Span drugSp[] = nameFinderME.find(tokens);
String [] sp = Span.spansToStrings(drugSp, tokens);
StringBuilder string = new StringBuilder();
if(sp.length!=0){
for(int i=0;i<=sp.length;i++){
string = string.append(sp[i]+"\n");
}
finalNames = string.toString();
}
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return finalNames;
}
}
, но после выполнения выше программы я получаю ниже исключение на консоль, как упоминалось:
Could not instantiate the opennlp.tools.namefind.TokenNameFinderFactory. The initialization throw an exception.
opennlp.tools.util.ext.ExtensionNotLoadedException: Unable to find implementation for opennlp.tools.util.BaseToolFactory, the class or service opennlp.tools.namefind.TokenNameFinderFactory could not be located!
at opennlp.tools.util.ext.ExtensionLoader.instantiateExtension(ExtensionLoader.java:97)
at opennlp.tools.util.BaseToolFactory.create(BaseToolFactory.java:106)
at opennlp.tools.util.model.BaseModel.initializeFactory(BaseModel.java:254)
at opennlp.tools.util.model.BaseModel.loadModel(BaseModel.java:237)
at opennlp.tools.util.model.BaseModel.<init>(BaseModel.java:181)
at opennlp.tools.namefind.TokenNameFinderModel.<init>(TokenNameFinderModel.java:110)
at com.naimesh.opennlp.DrugNameFinder.drugNameFind(DrugNameFinder.java:19)
at com.naimesh.opennlp.TextFinder.main(TextFinder.java:18)
Exception in thread "main" java.lang.IllegalArgumentException: opennlp.tools.util.InvalidFormatException: Could not instantiate the opennlp.tools.namefind.TokenNameFinderFactory. The initialization throw an exception.
at opennlp.tools.util.model.BaseModel.initializeFactory(BaseModel.java:256)
at opennlp.tools.util.model.BaseModel.loadModel(BaseModel.java:237)
at opennlp.tools.util.model.BaseModel.<init>(BaseModel.java:181)
at opennlp.tools.namefind.TokenNameFinderModel.<init>(TokenNameFinderModel.java:110)
at com.naimesh.opennlp.DrugNameFinder.drugNameFind(DrugNameFinder.java:19)
at com.naimesh.opennlp.TextFinder.main(TextFinder.java:18)
Caused by: opennlp.tools.util.InvalidFormatException: Could not instantiate the opennlp.tools.namefind.TokenNameFinderFactory. The initialization throw an exception.
at opennlp.tools.util.BaseToolFactory.create(BaseToolFactory.java:117)
at opennlp.tools.util.model.BaseModel.initializeFactory(BaseModel.java:254)
... 5 more
Caused by: opennlp.tools.util.ext.ExtensionNotLoadedException: Unable to find implementation for opennlp.tools.util.BaseToolFactory, the class or service opennlp.tools.namefind.TokenNameFinderFactory could not be located!
at opennlp.tools.util.ext.ExtensionLoader.instantiateExtension(ExtensionLoader.java:97)
at opennlp.tools.util.BaseToolFactory.create(BaseToolFactory.java:106)
... 6 more
Пожалуйста, кто-то может мне помочь по этому вопросу я много пробовал и читал блоги, но не мог найти что-то полезное. Это будет действительно оценено, если кто-то может дать полезное решение.