R Ошибка с openNLPmodels.pt для португальского
Я сталкиваюсь с ошибкой, пытаясь работать с openNLPmodels.pt для POS тегов португальского предложения. Однако модель для английского языка, то есть openNLPmodels.en, отлично работает с английскими предложениями.
Ценю любую помощь.
Код R
# R Code #
install.packages("openNLPmodels.pt", repos = "http://datacube.wu.ac.at/", type="source")
library(openNLP)
library(NLP)
library(openNLPmodels.pt)
s <- paste("Um esquilo preto raro se tornou um visitante regular de um jardim suburbano.")
# For reference here is the English version of sentence #
# s <- paste("A rare black squirrel has become a regular visitor to a suburban garden.")
###
## Sentence token annotations.
sent_token_annotator <- Maxent_Sent_Token_Annotator(language = "pt", probs = FALSE, model ='openNLPmodels.pt')
# Code End #
ошибка
# Error #
Error in .jnew("java.io.FileInputStream", model) :
java.io.FileNotFoundException: openNLPmodels.pt (The system cannot find the file specified)
2 ответа
Я нашел глупое решение, хотя работает:
1) скачать португальскую модель отсюда (я взял pt-pos-maxent.bin): http://opennlp.sourceforge.net/models-1.5/
2) и затем замените английскую модель в пути: зависит от вашего компьютера \R\win-library\3.4\openNLPdata\models\en-pos-maxent.bin
После этих шагов, затем запустите команду:
word_token_annotator <- Maxent_Word_Token_Annotator(language = "en")
как указано здесь: Как использовать OpenNLP для получения POS-тегов в R?
Тогда классификаторы плохо работают для английского и хорошо для португальского;)
Я попытался изменить код, который вы послали, и проблема, кажется, "model ='openNLPmodels.pt'
Если вы установите его в "модель = NULL", он может работать, как в
sent_token_annotator <- Maxent_Sent_Token_Annotator(language = "pt", probs = FALSE, model =NULL)
Когда вы используете опцию "NULL" в модели, используются опции по умолчанию для выбранного вами языка, поэтому все должно быть в порядке.
Обратите внимание, что второй и третий аргументы, которые вы использовали, являются параметрами по умолчанию, поэтому вы можете просто их опустить.
У меня проблема с командой Parse_Annotator, но это еще одна проблема, которую я скоро опубликую здесь.