2016-06-22 2 views
0

Je travaille avec R sur Ubuntu, je veux utiliser le package CoreNLP et j'ai un comportement étrange. Lorsque j'utilise une coquille, tout va bien, par exemple, je peux courir:CoreNLP dans R, ne fonctionne pas dans RStudio, mais fonctionne bien sur le shell

$ 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" 
> 

Mais si j'utilise rstudio Server sur la même machine, avec le même utilisateur, je reçois ceci:

> 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" 

En premier lieu, cela ne fonctionnait pas dans le terminal ou dans RStudio Server. Pour le faire fonctionner dans le terminal que je suivais les étapes suivantes:

  1. J'ai téléchargé Java à partir http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, le fichier jdk-8u91-linux-x64.tar.gz.
  2. Décompresser dans /usr/lib/jvm/jdk1.8.0_91
  3. Enfin exécuter sudo JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91 R CMD javareconf

Alors, je ne comprends pas pourquoi cela fonctionne dans le terminal, mais pas dans rstudio Server. Il semble que RStudio Server ne peut pas charger le Java correct, est-ce que quelqu'un sait pourquoi?

Merci beaucoup pour vos précieux commentaires.

Tous les meilleurs

Agustin

Répondre

1

Vous pouvez demander un soutien rstudio. Le script R est en train de définir l'environnement pour Java, donc je suppose que le serveur RStudio ne le fait pas. Je ne sais pas comment vous démarrez, mais vous pouvez avoir plus de chance en amorçant par le script R tel que

R CMD <command to start the server>