R でrJavaを介してStanfordCoreNLP ( http://nlp.stanford.edu/software/corenlp.shtml )を使用した経験がある人はいますか?私はそれを 2 日間動作させるのに苦労しており、疲れ果てたと思います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.
R 内から、いくつかの標準的な Java 関数を呼び出してみました。これは問題なく動作するため、問題の原因となっているスタンフォード ライブラリにアクセスしようとしている方法だと思います。
スタンフォード ZIP をh:\stanfordcoreに展開したので、.jar ファイルはすべてこのディレクトリのルートにあります。zip に含まれる他のさまざまなファイルと同様に、メインの .jar ファイルが含まれています。
- joda-time.jar
- スタンフォード-corenlp-1.3.4.jar
- スタンフォード-corenlp-1.3.4-javadoc.jar
- スタンフォード-corenlp-1.3.4-models.jar
- joda-time-2.1-sources.jar
- jollyday-0.4.7-sources.jar
- スタンフォード-corenlp-1.3.4-sources.jar
- xom.jar
- jollyday.jar
コマンド ラインから NLP ツールにアクセスしようとすると、正常に動作します。
R 内から、JVM を初期化し、クラスパス変数を設定しました。
.jinit(classpath = " h:/stanfordcore", parameters = getOption("java.parameters"),silent = FALSE, force.init = TRUE)
この後、コマンドを使用すると
.jclassPath()
これは、必要な .jar ファイルを含むディレクトリが追加されたことを示しており、R で次の出力が得られます。
[1] "H:\RProject-2.15.1\library\rJava\java" "h:\スタンフォードコア"
ただし、新しいオブジェクトを作成しようとすると (これが正しい Java 用語かどうかはわかりません)、エラーが発生します。
私は何十もの異なる方法でオブジェクトを作成しようとしましたが(基本的には暗闇で撮影します)、最も有望な方法です(単に実際にクラスを見つけているように見えるからです):
pipeline <- .jnew(class="edu/stanford/nlp/pipeline/StanfordCoreNLP",check=TRUE,silent=FALSE)
クラス パラメータを API にリストされていないものに変更すると、クラスが見つからないというエラーが発生するため、これでクラスが検出されることはわかっています。
ただし、現状では、次のエラーが表示されます。
.jnew(class = "edu/stanford/nlp/pipeline/StanfordCoreNLP" のエラー、チェック = TRUE、: java.lang.NoClassDefFoundError: クラス edu.stanford.nlp.pipeline.StanfordCoreNLP を初期化できませんでした
私のグーグルは、これが必要な.jarファイルを見つけられないことに関係している可能性があることを示していますが、私は完全に立ち往生しています. 明らかな何かが欠けていますか?
誰かが私を正しい方向に少しでも向けることができれば、私は信じられないほど感謝しています.
前もって感謝します!
ピーター