0

Gateの学習中に、次の問題に遭遇しました。

Minipar は、Ö、Ü、Ä などの非共通文字を検出すると、例外をスローします。

たとえば、「バッテン病 (シュピールマイヤー・フォークト・シェーグレン・バッテン病とも呼ばれる) は、小児期に発症する、まれで致命的な常染色体劣性神経変性疾患です。」(ウィキ記事より) Minipar が動作を停止する前に付けられた注釈は「バテン病 (Spielmeyer-Vogt-Sj とも呼ばれる)」であり、これはöの文字の直前にあるため、これは使用中に注意が必要なケースであると推測できます。ゲート: 同じパイプラインが他のいくつかの記事をそよ風のように処理したためです。

[メッセージ] タブでは、次のように表示されます。


gate.util.InvalidOffsetException
    at gate.annotation.AnnotationSetImpl.getNodes(AnnotationSetImpl.java:773)
    at gate.annotation.AnnotationSetImpl.add(AnnotationSetImpl.java:802)
    at minipar.Minipar.runMinipar(Minipar.java:419)
    at minipar.Minipar.execute(Minipar.java:527)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.creole.ConditionalSerialController.runComponent(ConditionalSerialController.java:154)
    at gate.creole.SerialController.executeImpl(SerialController.java:153)
    at gate.creole.ConditionalSerialAnalyserController.executeImpl(ConditionalSerialAnalyserController.java:129)
    at gate.creole.AbstractController.execute(AbstractController.java:75)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1619)
    at java.lang.Thread.run(Unknown Source)
gate.creole.ExecutionException: gate.util.InvalidOffsetException
    at minipar.Minipar.runMinipar(Minipar.java:491)
    at minipar.Minipar.execute(Minipar.java:527)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.creole.ConditionalSerialController.runComponent(ConditionalSerialController.java:154)
    at gate.creole.SerialController.executeImpl(SerialController.java:153)
    at gate.creole.ConditionalSerialAnalyserController.executeImpl(ConditionalSerialAnalyserController.java:129)
    at gate.creole.AbstractController.execute(AbstractController.java:75)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1619)
    at java.lang.Thread.run(Unknown Source)
Caused by: gate.util.InvalidOffsetException
    at gate.annotation.AnnotationSetImpl.getNodes(AnnotationSetImpl.java:773)
    at gate.annotation.AnnotationSetImpl.add(AnnotationSetImpl.java:802)
    at minipar.Minipar.runMinipar(Minipar.java:419)
    ... 9 more
gate.creole.ExecutionException: Document doesn't have sentence annotations. please run tokenizer, sentence splitter and then Minipar
    at minipar.Minipar.saveGateSentences(Minipar.java:194)
    at minipar.Minipar.execute(Minipar.java:525)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.creole.ConditionalSerialController.runComponent(ConditionalSerialController.java:154)
    at gate.creole.SerialController.executeImpl(SerialController.java:153)
    at gate.creole.ConditionalSerialAnalyserController.executeImpl(ConditionalSerialAnalyserController.java:129)
    at gate.creole.AbstractController.execute(AbstractController.java:75)
    at gate.util.Benchmark.executeWithBenchmarking(Benchmark.java:291)
    at gate.gui.SerialControllerEditor$RunAction$1.run(SerialControllerEditor.java:1619)
    at java.lang.Thread.run(Unknown Source)

Ian の温かいサポートに改めて感謝いたします。

マット

4

1 に答える 1

0

これは何らかのエンコーディング関連の問題のようですが、残念ながら、ミニパー パーサー バイナリが通常のダウンロード ページから入手できないように見えるため、自分でデバッグを行うことはできません。小さい (2kB 未満) グレースケールが表示されます。マルチ MB の .tgz の代わりに JPEG 画像。

私の頭の上から試してみることができることがいくつかあります。GATE Minipar ラッパーは、パーサーの入力ファイルを書き込み、実行しているシステムのデフォルトのエンコーディングを使用してパーサーの出力を読み取ります。私の推測では、パーサーは別のエンコーディングで出力を生成しています (元のトレーニング データのエンコーディングに関連している可能性があります)。

GATE ラッパーは、GATE Developer をバックグラウンドで実行している限り、一時ディレクトリにある一時ファイルに入力を書き込みます (一時ファイルは、Developer が終了すると削除されます)。コマンド ラインからそのファイルに対して minipar-windows.exe を実行し、出力がどのように見えるかを確認します。

C:\path\to\minipar-windows.exe -p C:\path\to\minipar\data -file GATESentencesNNNNNN.txt

出力は、何が失敗したかについての手がかりを与えるかもしれません。それが正しく見え、使用しようとしているエンコーディングを判断できる場合は、GATE 開発者がそれをデフォルトのエンコーディングとして使用するように設定できます (開始に使用している場合は、行などgate.exeを に追加してこれを行います) 。それが役立つ場合。その場合は、PR にパラメーターを追加して、パーサー実行可能ファイルとデータを交換するときに使用するエンコーディングを指定することを検討できます。-Dfile.encoding=ISO-8859-1gate.l4j.ini

于 2013-03-28T12:22:13.680 に答える