2016-06-22 30 views
0

Ich arbeite mit R auf Ubuntu, ich möchte das CoreNLP-Paket verwenden und ich habe ein seltsames Verhalten. Wenn ich eine Shell verwenden, alles ist in Ordnung, zum Beispiel kann ich laufen:CoreNLP in R, funktioniert nicht in RStudio, funktioniert aber gut auf 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" 
> 

Aber wenn ich RStudio Server auf der gleichen Maschine zu verwenden, mit dem gleichen Benutzer, bekomme ich diese:

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

In erster Linie funktionierte das weder im Terminal noch in RStudio Server. Um es im Terminal arbeiten zu lassen, gefolgt ich vor:

  1. ich heruntergeladen Java aus http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html, JDK-8u91-linux-x64.tar.gz Datei.
  2. Dekomprimieren es in /usr/lib/jvm/jdk1.8.0_91
  3. Schließlich sudo JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91 R CMD javareconf

So läuft, kann ich nicht verstehen, warum es im Terminal aber nicht in RStudio Server funktioniert. Scheint, dass RStudio Server das richtige Java nicht laden kann, weiß jemand warum?

Vielen Dank für Ihre wertvollen Kommentare.

Alles Gute

Agustin

Antwort

1

Sie möchten RStudio Unterstützung bitten. Das Skript R legt die Umgebung für Java fest, also würde ich meinen, dass der RStudio-Server das nicht tut. Ich weiß nicht, wie Sie es starten, aber Sie haben möglicherweise mehr Glück durch Bootstrapping durch das R-Skript wie

R CMD <command to start the server>