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:
- 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.
- Décompresser dans /usr/lib/jvm/jdk1.8.0_91
- 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