2016-01-11 2 views
2

Я, следуя инструкциям на этой ссылке, чтобы использовать coreNLP https://github.com/statsmaths/coreNLPУстановка coreNLP в R

Однако, я нашел эту ошибку

> library(coreNLP) 

Error in get(method, envir = home) : 
lazy-load database '/Users/apple/Library/R/3.2/library/coreNLP/R/coreNLP.rdb is corrupt 
In addition: Warning messages: 
1: In .registerS3method(fin[i, 1], fin[i, 2], fin[i, 3], fin[i, 4], : 
restarting interrupted promise evaluation 
2: In get(method, envir = home) : 
restarting interrupted promise evaluation 
3: In get(method, envir = home) : internal error -3 in R_decompress1 
Error: package or namespace load failed for ‘coreNLP’ 

ответ

3

Столкнувшись сообщение о java.lang.UnsupportedClassVersionError: edu/stanford/nlp/pipeline/StanfordCoreNLP : Unsupported major.minor version 52.0 ошибке:

Вы должны

  • установить Java 8, (как суперпользователь),
  • изменения JVM по умолчанию операционная система использует для этой виртуальной машины Java (* см. ниже),
  • запустить R CMD javareconf в командной строке, а затем
  • установить env переменную глажения LD_LIBRARY_PATH в каталог, где хранится libjvm.so.
  • рестарт R/RStudio

Я использую Ubuntu, моя ява 8 libjvm.so здесь: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so

Вы можете сделать это в вашем .Rprofile файле.Добавьте эту строку, возможно, в нижней части файла:

Sys.setenv(LD_LIBRARY_PATH=paste0(Sys.getenv("LD_LIBRARY_PATH"), ":", "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/"))

Когда я делаю это в R:

R> Sys.getenv("LD_LIBRARY_PATH") 
[1] "/usr/local/lib64/R/lib:/usr/local/lib64:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/" 
R> library(coreNLP) 
R> initCoreNLP() 

Я получаю этот результат:

Searching for resource: config.properties 
Adding annotator tokenize 
TokenizerAnnotator: No tokenizer type provided. Defaulting to PTBTokenizer. 
Adding annotator ssplit 
Adding annotator pos 
Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger ... done [1.1 sec]. 
Adding annotator lemma 
Adding annotator ner 
Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz ... done [5.6 sec]. 
Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz ... done [2.1 sec]. 
Loading classifier from edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz ... done [3.8 sec]. 
Initializing JollyDayHoliday for SUTime from classpath: edu/stanford/nlp/models/sutime/jollyday/Holidays_sutime.xml as sutime.binder.1. 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/defs.sutime.txt 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/english.sutime.txt 
Reading TokensRegex rules from edu/stanford/nlp/models/sutime/english.holidays.sutime.txt 
Adding annotator parse 
Loading parser from serialized file edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ... done [0.6 sec]. 
Adding annotator dcoref 
Adding annotator sentiment 

R> example(getSentiment) 

gtSntmR> getSentiment(annoEtranger) 
    id sentimentValue sentiment 
1 1    1 Negative 
2 2    2 Neutral 

gtSntmR> getSentiment(annoHp) 
    id sentimentValue sentiment 
1 1    4 Verypositive 

(*) Как увидеть jvm по умолчанию для Linux:

update-alternatives --display java 

Результат

java - auto mode 
    link currently points to /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 

Показать все доступные альтернативы, используйте

update-alternatives --list java 

Результат (на моей машине):

/usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java 
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 

Изменить альтернативы:

update-alternatives --set /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 

Просто поиграйте с альтернативами обновления.

+0

Я попытался установить путь к /usr/lib/jvm...but, но я не могу найти папку jvm. У меня уже есть java 8 на моем компьютере – Lucia

+0

попробуйте команды оболочки 'updatedb; найдите libjvm.so', если необходимо, установите его из репозитория ubuntu. – knb

2
> install.packages('devtools') 
> devtools::install_github("statsmaths/coreNLP") 
> download.file("http://nlp.stanford.edu/software/stanford-corenlp-full-2015-01-29.zip", '/path/to/save/stanford-corenlp-full-2015-01-29.zip') 
> unzip('/path/to/save/stanford-corenlp-full-2015-01-29.zip') 

Приведенные выше инструкции из https://github.com/statsmaths/coreNLP работ, возможно, что-то Пошел он, установил библиотеку в R

Повторно запустите эту команду, чтобы переустановить обертку corenlp:

> install.packages('devtools') 
> devtools::install_github("statsmaths/coreNLP") 

Вы должны увидеть это, если пакет не поврежден:

> devtools::install_github("statsmaths/coreNLP") 
Downloading GitHub repo statsmaths/[email protected] 
Installing coreNLP 
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore CMD \ 
    INSTALL '/tmp/RtmpFS9LWl/devtools667a3cdbc084/statsmaths-coreNLP-3a667c6' \ 
    --library='/home/expert/R/x86_64-pc-linux-gnu-library/3.2' --install-tests 

* installing *source* package ‘coreNLP’ ... 
** R 
** data 
*** moving datasets to lazyload DB 
** inst 
** preparing package for lazy loading 
** help 
*** installing help indices 
** building package indices 
** testing if installed package can be loaded 
* DONE (coreNLP) 
Reloading installed coreNLP 

В противном случае devtools должны сделать переустановку пакета.

+0

Хм, странно, я следую вашему коду и видел те же строки, но я устанавливаю библиотеку: library ("coreNLP", lib.loc = "~/Library/R/3.2/library"). IT показывает ту же ошибку снова – Lucia

+0

какая ОС вы используете? Каков вывод 'lsb_release -a' на терминале? – alvas

+0

Сделайте «rm -rf/Users/apple/Library/R/3.2/library/coreNLP» на терминале, затем попробуйте повторно запустить «devtools :: install_github» («statsmaths/coreNLP») 'в R. – alvas

Смежные вопросы