2012-02-07 9 views
0

私は自分のコードでスタンフォードパーサーを使用しています。プロジェクトにすべての関連ライブラリを追加しました。コンソール上でコードを実行すると、正常に動作します。NoSuchMethodError in MaxentTagger

Exception in thread "Thread-2" java.lang.NoSuchMethodError:
edu.stanford.nlp.process.DocumentPreprocessor.(Ljava/io/Reader;)V at edu.stanford.nlp.tagger.maxent.MaxentTagger.tokenizeText(MaxentTagger.java:852) at edu.stanford.nlp.tagger.maxent.MaxentTagger.tokenizeText(MaxentTagger.java:837) at I have provided all the required libraries in classpath. Also the method tokenizeText is present in the MaxentTagger. Please suggest some solution.

答えて

1

これはほぼ確実な手段:しかし、commmandで同じように「次の生成されたJARにサブフォルダにコピーし、必要なライブラリ」オプションを使用して、ソースの「実行可能なjarファイル」を作成し、実行した後、PROMTそれはエラーをスローします互換性のないリリースのパーサーとタグを組み合わせたことを示します。たとえば、jarファイルに挿入されているタグャーのバージョンが、コマンドラインでコードを実行したときに取得されたものと異なる場合があります。パーサとタガのどのバージョンを使用していますか?スタックトレースの行番号から、最新のバージョンではないようです。

+0

私はmaxent-2.5.2とstanford-parser-2010-08-20を使用しています。これらはコンソールで完全に正常に動作しているので互換性があります。また、私はrunnable jarのライブラリに同じjarをコピーしました。 –

+1

?? "maxent-2.5.2"は私たちのPOSタガーのバージョン番号ではありませんが、あなたが表示するスタックトレースはスタンフォードPOSタガーから明らかです。しかし、この情報により、問題がより明確になります。2010年と2011年のツールのリリースの間に、DocumentPreprocessorのAPIに互換性のない変更が加えられました。特に、Reader引数を取るコンストラクタが追加されました。タガーの現在の(かなり)現在のバージョンがそのコンストラクタを呼び出していますが、2010バージョンのパーサjarのDocumentPreprocessorクラスにはそのコンテナはありません。一般に、互換性のあるパーサーとタグ・リリースを使用する必要があります。 –

関連する問題