有没有人有使用StanfordCoreNLP的经验(http://nlp.stanford.edu/software/corenlp.shtml通过r中的rJava?我现在一直在努力让它工作两天,并且认为我已经筋疲力尽了Google和之前关于StackOverflow的问题.
本质上我正在尝试使用R中的StanfordNLP库.我没有Java经验,但有其他语言的经验,所以要了解有关类和对象等的基础知识.
从我所看到的,随库提供的演示.java文件似乎表明,要使用Java中的类,您需要导入库然后创建一个新对象,类似于:
import java.io.*;
import java.util.*;
import edu.stanford.nlp.io.*;
import edu.stanford.nlp.ling.*;
import edu.stanford.nlp.pipeline.*;
import edu.stanford.nlp.trees.*;
import edu.stanford.nlp.util.*;
public class demo {
etc.
etc.
StanfordCoreNLP pipeline = new StanfordCoreNLP();
etc.
Run Code Online (Sandbox Code Playgroud)
从R内部,我试过调用一些标准的java函数; 这工作正常,这让我觉得这是我试图访问导致问题的斯坦福图书馆的方式.
我将斯坦福ZIP解压缩到h:\ stanfordcore,因此.jar文件都在此目录的根目录中.除了zip中包含的各种其他文件外,它还包含主要的.jar文件:
如果我尝试从命令行访问NLP工具,它可以正常工作.
在R中,我初始化了JVM并设置了classpath变量:
.jinit(classpath = " h:/stanfordcore", parameters = getOption("java.parameters"),silent = FALSE, force.init = TRUE)
Run Code Online (Sandbox Code Playgroud)
在此之后,如果我使用该命令
.jclassPath()
Run Code Online (Sandbox Code Playgroud)
这表明已添加包含所需.jar文件的目录,并在R中提供此输出:
[1]"H:\ RProject-2.15.1\library\rJava\java""h:\ stanfordcore"
但是,当我尝试创建一个新对象(不确定这是否是正确的Java术语)时,我收到一个错误.
我试过用几十种不同的方式创建对象(虽然基本上是在黑暗中拍摄),但最有希望的(因为它似乎实际上找到了类):
pipeline <- .jnew(class="edu/stanford/nlp/pipeline/StanfordCoreNLP",check=TRUE,silent=FALSE) …Run Code Online (Sandbox Code Playgroud)