我正在使用Win7 x64系统。 我将MiniparBinaryFile指向gate / plugin / parser-minipar中的exe文件,将MiniparDataDir指向提取的minipar-0.5-windows32下的数据文件夹。
Gate启动以运行minipar但启动后没有更多活动。我必须杀死minipar-windows32.exe进程。
使用它的正确方法是什么?
欢呼声
马特
---- ----更新
感谢Ian的建议,这里是一个VisualVM转储的剪辑,希望它是正确的部分:
"ApplicationViewer1" prio=2 tid=0x000000000c0ad000 nid=0x1fb8 runnable [0x000000000f39e000]
java.lang.Thread.State: RUNNABLE
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
- locked (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.read(Unknown Source)
- locked (a java.io.InputStreamReader)
at gate.util.BomStrippingInputStreamReader.stripBomIfPresent(BomStrippingInputStreamReader.java:93)
at gate.util.BomStrippingInputStreamReader.(BomStrippingInputStreamReader.java:78)
at gate.util.BomStrippingInputStreamReader.(BomStrippingInputStreamReader.java:45)
at minipar.Minipar.runMinipar(Minipar.java:276)
at minipar.Minipar.execute(Minipar.java:518)
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)
Locked ownable synchronizers:
- None
=====更新2 ======
感谢积极的发展社会,我在几个小时内安装了新版本(Snapshot 4586)。
现在它有效!
然而,我遇到了另一个小问题。 当处理以下句子时,门报告错误“Batten disease(也称为Spielmeyer-Vogt-Sjögren-Batten病)是一种罕见的,致命的常染色体隐性遗传性神经退行性疾病,始于儿童时期。” (维基文章) 在Annotation视图中,我看到minipar注释了句子,直到uncommen字符ö。 那么,有没有办法跳过这些?在“消息”选项卡中,它重新打印:
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)
再次感谢!
答案 0 :(得分:1)
这是由Minipar包装器PR中的一个错误导致的,试图从错误的线程中读取外部minipar进程的“错误流”。这应该在subversion(revision 16615)中修复,现在位于nightly build。