0

スタンフォード CoreNLP を使用して質問を解析することから始まる QA パイプラインを実装しています。私の Linux インストールでは完全に動作しますが、同僚の Windows では失敗します。他の誰かが以前にこの問題に遭遇し、解決策を持っていますか?

2 つのセットアップの相違点のリストから始め、最後に Windows での失敗のスタック トレースを提供します。どのような情報が必要なのかわからないので、明らかな何かを見逃していたらご容赦ください!

O/S:
Linux: Linux Mint 15: Olivia (x86-64) 3.8.0-30-generic
Windows: Windows 7 Professional Service Pack 1

Java バージョン:
Linux: OpenJDK ランタイム環境 (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
Windows: Java(TM) SE ランタイム環境 (ビルド 1.7.0_25-b17)

IDE:
Linux: NetBeans 7.3.1
Windows: Eclipse Indigo (3.7) Service Release 1

Stacktrace:
    edu.stanford.nlp.parser.lexparser.NoSuchParseException
     at edu.stanford.nlp.parser.lexparser.LexicalizedParserQuery.getBestParse(LexicalizedParserQuery.java:381)
     at edu.stanford.nlp.parser.lexparser.LexicalizedParserQuery.getBestParse(LexicalizedParserQuery.java:353)
     at edu.stanford.nlp.pipeline.ParserAnnotator.doOneSentence(ParserAnnotator.java:263)
     at edu.stanford.nlp.pipeline.ParserAnnotator.doOneSentence(ParserAnnotator.java:235)
     at edu.stanford.nlp.pipeline.ParserAnnotator.annotate(ParserAnnotator.java:217)
     at edu.stanford.nlp.pipeline.AnnotationPipeline.annotate(AnnotationPipeline.java:70)
     at edu.stanford.nlp.pipeline.StanfordCoreNLP.annotate(StanfordCoreNLP.java:852)
     ...
4

2 に答える 2

1

メモリの問題であることが判明しました。私は -Xms2G -Xmx2G を割り当てていましたが、同僚はデフォルトから変更していませんでした。

スタンフォード CoreNLP は、メモリが不足していることを明らかに警告しないことに注意してください!

于 2013-10-08T09:17:35.253 に答える
0

最善の策は、2 つのプラットフォームの違いを忘れることだと思います。代わりに、同僚のマシンで問題を再現および/またはデバッグすることに集中してください。なぜその例外がスローされているのかを理解してください。

そして旅の始まりは getBestParse の javadoc で、次のように書かれています。

「最後に解析された文の最適な解析を返します。これは、使用されて成功した場合は因数分解されたパーサーからのものであり、使用されて成功した場合は PCFG からのものであり、そうでない場合は依存関係パーサーからのものです。」

スロー: NoSuchParseException 以前に正常に解析された文がない場合


スタンフォード CoreNLP は、メモリが不足していることを明らかに警告しないことに注意してください!

そうであれば、それは CoreNLP がError例外をキャッチして押しつぶしていることを意味します。それは完全に悪いことです。

実際、私はあなたのコードに何か問題があると信じたいと思っています。たとえば、これは、ワーカー スレッドを生成し、未チェックの例外を報告/記録するデフォルトのキャッチされない例外ハンドラをインストールしなかった場合に発生する可能性があります。ワーカー スレッドの 1 つが OOME をトリガーした場合、それを報告するものは何もありません。

于 2013-10-08T09:08:11.663 に答える