2016-06-22 45 views
0

我在Ubuntu上使用R,我想使用CoreNLP軟件包,並且出現奇怪的行爲。當我使用一個shell,一切都很好,比如我可以運行:R中的CoreNLP,在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-Linux的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服務器。似乎RStudio服務器無法加載正確的Java,有誰知道爲什麼?

非常感謝您的寶貴意見。

所有最優秀的

奧古斯丁

回答

1

您可能要問RStudio支持。 R腳本正在爲Java設置環境,所以我猜測RStudio服務器無法做到這一點。我不知道你是怎麼開始的,但你可能會有更多的運氣通過引導通過R腳本,如

R CMD <command to start the server> 
相關問題