2

これが初心者の質問である場合は申し訳ありません。CoreNLP パーサーを構築するために、Netbeans で maven を使用しようとしていました。

最初に stanford-corenlp 1.2.0 の依存関係を追加しました。ただし、コードのコンパイル中に常にエラーが発生しました。コードを簡略化して StanfordCoreNLP オブジェクトを作成しようとしましたが、それでも同じエラー メッセージで機能しませんでした。だとすると、ここが一番のトラブルスポットになるのではないかと思います。

私の簡略化されたコードは次のように表示されます。

import java.util.Properties;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;

Properties props = new Properties();
props.put("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);

エラーメッセージ:

Exception in thread "main" java.lang.NoSuchMethodError: 
edu.stanford.nlp.process.PTBTokenizer.factory
(Ledu/stanford/nlp/process/LexedTokenFactory;Ljava/lang/String;)Ledu/stanford/nlp/objectbank/TokenizerFactory;
        at edu.stanford.nlp.pipeline.PTBTokenizerAnnotator.<init>(PTBTokenizerAnnotator.java:42)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP$1.create(StanfordCoreNLP.java:365)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP$1.create(StanfordCoreNLP.java:355)
        at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:62)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:328)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:194)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:184)
        at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:176)
        at com.mycompany.hellocore.App.main(App.java:26)

私もEclipseでmavenを介して同じことを試みましたが、エラーメッセージは同じです。誰か私にいくつかの提案をしてもらえますか? ありがとう!

OS: Mac Lion / Java バージョン: 1.6.0_29


[更新] 2012 年 1 月 6 日 Sri Sankaran の提案に基づいて、次のことを試しましたmvn dependency: tree

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building hellocore 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ hellocore ---
[INFO] com.mycompany:hellocore:jar:1.0-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] \- edu.stanford.nlp:stanford-corenlp:jar:1.2.0:compile
[INFO]    +- xom:xom:jar:1.2.5:compile
[INFO]    |  +- xml-apis:xml-apis:jar:1.3.03:compile
[INFO]    |  +- xerces:xercesImpl:jar:2.8.0:compile
[INFO]    |  \- xalan:xalan:jar:2.7.0:compile
[INFO]    \- joda-time:joda-time:jar:2.0:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.483s
[INFO] Finished at: Fri Jan 06 08:55:06 EST 2012
[INFO] Final Memory: 5M/81M
[INFO] ------------------------------------------------------------------------

私のNetbeansの設定:

ここに画像の説明を入力

しかし、必要なライブラリは、Netbeans に既にダウンロードされているものと同じように見えます。プロジェクトはまだ停止している間Adding annotator tokenize.


[更新] 2012 年 1 月 9 日

システムを再インストールした後、問題はなくなりました。したがって、コードとモジュールはどちらも正しいと思います。クラスパスディレクトリは、私が台無しにしただけかもしれません。すべての人々の助けに感謝します。

Netbeans 経由で corenlp を使用している人々への穏やかなリマインダーです。stanford-corenlp.jar の標準依存関係に加えて。プロジェクトに stanford-corenlp-models.jar を含める場合。<classifier>モデルを依存関係リポジトリに追加するには、 も指定する必要があるようです。

<dependency>
  <groupId>edu.stanford.nlp</groupId>
  <artifactId>stanford-corenlp</artifactId>
  <version>1.2.0</version>
  <classifier>models</classifier>
</dependency>
4

2 に答える 2

1

モデル(POSタグ、NER、Corefなど)を含める必要があるため、アノテーターは機能します。ここで
入手できます

ここに画像の説明を入力してください

于 2012-01-09T06:15:42.507 に答える
0

Standford NLPの使用は、他の依存関係があることを示唆しています。依存関係が明示されているためにそれらがクラスパスに推移的に含まれていない場合は、stanford-corenlp 1.2.0これらの他の依存関係も明示的に記述する必要があります。コマンドmvn dependency:treeは、有効な依存関係ツリーを表示する必要があります。

于 2012-01-06T04:10:21.277 に答える