【发布时间】:2016-06-22 22:36:12
【问题描述】:
我在 Ubuntu 上使用 R,我想使用 CoreNLP 包,但我的行为很奇怪。当我使用 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"
>
但是,如果我在同一台机器上使用 RStudio Server,使用相同的用户,我会得到:
> 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 中都不起作用。为了使它在终端中工作,我按照以下步骤操作:
- 我从 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载了 Java,即 jdk-8u91-linux-x64.tar.gz 文件。
- 解压到/usr/lib/jvm/jdk1.8.0_91
- 终于运行
sudo JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91 R CMD javareconf
所以,我不明白为什么它在终端中有效,但在 RStudio Server 中无效。似乎 RStudio Server 无法加载正确的 Java,有人知道为什么吗?
非常感谢您所有宝贵的 cmets。
一切顺利
奥古斯丁
【问题讨论】:
标签: r rjava rstudio-server stanford-nlp