3

IKVM.NET を使用して StandordCoreNLP を使用しています。パーサーのモデルへのパスを指定する方法はありますか

   var pipeLine = new StanfordCoreNLP(props);

例外をスローします:

java.lang.RuntimeException: java.io.IOException: Unable to resolve
"edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger"
as either class path, filename or URL
4

4 に答える 4

6

プロパティをどのように定義したかを確認すると役に立ちました。デフォルトのプロパティを使用した場合は、クラスパスに models.jar (バージョン 3.2 の場合など)がない可能性があります。ダウンロードして、ロードされることを確認します。

プロパティを別の方法で構成すると、文字列に構文エラーが発生し、IO エラーが発生する可能性があります。pos.model別の外観をロードするためのカスタム プロパティは次のとおりです。

Properties props = new Properties();
// using wsj-bidirectional model
props.put("pos.model", "edu/stanford/nlp/models/pos-tagger/wsj-bidirectional/wsj-0-18-bidirectional-distsim.tagger");
// using standard pipeline
props.put("annotators", "tokenize, ssplit, pos, lemma, parse");
// create pipeline
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

/パスに先頭のスラッシュがないことに注意することが重要です。

それでも問題が解決しない場合は、Galal Aly のチュートリアルを参照してください。ここでは、タガーがモデル ファイルから抽出され、個別に読み込まれます。

于 2013-08-29T14:56:42.927 に答える
2

IKVM.NET で jar ファイルからリソースにアクセスできるかどうかはわかりませんが、jar ファイルを解凍して通常のオペレーティング システム ファイル ( jar -xf models.jar) を取得し、モデルをファイルとしてロードすることはできます。jar ファイルのディレクトリ構造をミラーリングする必要がある (上記の例のようなパスを使用し、相対パスを使用する) か、props ファイル内のすべてのモデルのプロパティを設定して、それらが使用できるファイル パスを指定する必要があります。見つかった。pos.modelner.modelparse.modelなどを参照してください。

于 2013-02-21T00:57:42.877 に答える
1

同じ問題がありました。私の場合、完全な .jar ファイルを使用するのではなく、.tagger ファイルを抽出しました。次のようにプロパティオブジェクトを作成した後、モデルを手動で追加しました:

Properties props = new Properties();

**props.put("pos.model", "E:\\Documents\\Dependencies\\english-left3words-distsim.tagger");**
于 2014-04-15T22:57:27.137 に答える