ошибка при загрузке файла .bin NER в качестве аргумента модели для openNLP::Maxent_Entity_Annotator()

Я создал модель с помощью инструмента командной строки Apache OpenNLP для распознавания именованных объектов. Приведенный ниже код создал модель, используя файл sentences4OpenNLP.txt в качестве тренировочного набора.

opennlp TokenNameFinderTrainer -type maxent -model C:\Users\Documents\en-ner-org.bin -lang en -data C:\Users\Documents\apache-opennlp-1.6.0\sentences4OpenNLP.txt -encoding UTF-8

Я протестировал модель из командной строки, передав ей предложения в тег, и модель, похоже, работала хорошо. Однако я не могу успешно использовать модель из R. Я использую следующие строки в попытках создать функцию аннотирования организации. Использование того же кода для загрузки модели, загруженной из OpenNLP, работает нормально.

modelNER <- "C:/Users/Documents/en-ner-org.bin"
oa <- openNLP::Maxent_Entity_Annotator(language = "en",
                                  kind = "organization",
                                  probs = TRUE,
                                  model = modelNER)

Когда приведенный выше код запускается, я получаю сообщение об ошибке:

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)
Error in .jnew("opennlp.tools.namefind.TokenNameFinderModel", .jcast(.jnew("java.io.FileInputStream",  : 
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.loadModel(BaseModel.java:237)
     at opennlp.tools.util.model.BaseModel.<init>(BaseModel.java:181)
     at opennlp.tools.namefind.TokenNameFinderModel.<init>(TokenNameFinderModel.java:110)

Любые советы о том, как исправить ошибку, будут большой помощью. Заранее спасибо.


person Adam Spannbauer    schedule 23.02.2016    source источник


Ответы (1)


Устранена ошибка. Функция R openNLP::Maxent_Entity_Annotator не была совместима с моделью распознавания именованных объектов (NER), созданной OpenNLP 1.6.0. Построение модели NER с использованием OpenNLP 1.5.3 привело к тому, что openNLP::Maxent_Entity_Annotator заработало без ошибок.

person Adam Spannbauer    schedule 25.02.2016