2016-06-22 1 views
0

Я работаю с 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. Для того, чтобы сделать его работу в терминале я последовал за следующие действия:

  1. Я скачал Java из http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, файл JDK-8u91-линукс-x64.tar.gz.
  2. Распакуйте его в /usr/lib/jvm/jdk1.8.0_91
  3. Наконец запустить sudo JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91 R CMD javareconf

Таким образом, я не могу понять, почему это работает в терминале, но не в RStudio Server. Кажется, что RStudio Server не может загрузить правильную Java, кто-нибудь знает, почему?

Большое спасибо за ваши ценные комментарии.

Все лучшее

Агустин

ответ

1

Вы можете спросить RStudio поддержку. Сценарий R устанавливает среду для Java, поэтому я предполагаю, что сервер RStudio не сможет этого сделать. Я не знаю, как вы его начинаете, но у вас может быть больше удачи при загрузке через сценарий R, например

R CMD <command to start the server> 
Смежные вопросы