小编Pet*_*lor的帖子

使用rJava包中的R中的Stanford NLP库

有没有人有使用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文件:

  • 乔达-time.jar
  • 斯坦福大学corenlp-1.3.4.jar
  • 斯坦福大学corenlp-1.3.4-javadoc.jar
  • 斯坦福大学corenlp-1.3.4-models.jar
  • 乔达时间 - 2.1 sources.jar
  • jollyday-0.4.7-sources.jar
  • 斯坦福大学corenlp-1.3.4-sources.jar
  • xom.jar
  • jollyday.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)

java r stanford-nlp rjava

6
推荐指数
1
解决办法
3493
查看次数

标签 统计

java ×1

r ×1

rjava ×1

stanford-nlp ×1