Я работаю с R на Ubuntu, я хочу использовать пакет CoreNLP, и у меня странное поведение. Когда я использую оболочку, все нормально, например, я могу запустить:CoreNLP в R, не работает в RStudio, но хорошо работает на оболочке
$ R
R version 3.2.2 (2015-08-14) -- "Fire Safety"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
[Previously saved workspace restored]
> library(rjava)
Error in library(rjava) : there is no package called ‘rjava’
> library(rJava)
> library(coreNLP)
> 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 [2.4 sec].
Adding annotator lemma
Adding annotator ner
Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz ... done [6.1 sec].
Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz ... done [4.1 sec].
Loading classifier from edu/stanford/nlp/models/ner/english.conll.4class.distsim.crf.ser.gz ... done [3.3 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 [4.1 sec].
Adding annotator dcoref
Adding annotator sentiment
> library(rJava)
> .jinit()
[1] 0
> .jcall("java/lang/System","S","getProperty","java.version")
[1] "1.8.0_91"
>
Но если я использую RStudio сервер на той же машине, с тем же пользователем, я получаю это:
> library(rJava)
> library(coreNLP)
> initCoreNLP()
Error in rJava::.jnew("edu.stanford.nlp.pipeline.StanfordCoreNLP", basename(path)) :
java.lang.UnsupportedClassVersionError: edu/stanford/nlp/pipeline/StanfordCoreNLP : Unsupported major.minor version 52.0
> .jinit()
[1] 0
> .jcall("java/lang/System","S","getProperty","java.version")
[1] "1.7.0_67"
Во-первых, это не работало ни на терминале, ни на RStudio Server. Для того, чтобы сделать его работу в терминале я последовал за следующие действия:
- Я скачал Java из http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, файл JDK-8u91-линукс-x64.tar.gz.
- Распакуйте его в /usr/lib/jvm/jdk1.8.0_91
- Наконец запустить
sudo JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91 R CMD javareconf
Таким образом, я не могу понять, почему это работает в терминале, но не в RStudio Server. Кажется, что RStudio Server не может загрузить правильную Java, кто-нибудь знает, почему?
Большое спасибо за ваши ценные комментарии.
Все лучшее
Агустин