2013-03-24 3 views
0

Во время обучения Ворота у меня возникла следующая проблема:(GATE) Как разрешить игре Minipar со специальными персонажами, такими как Ö, Ü, Ä?

Minipar исключает исключение, когда он видит символы неприминовения, такие как Ö, Ü, Ä.

Например, в предложении «Болезнь Баттен (известная также как болезнь Шпильмейера-Фогт-Шёгрена-Баттен) - это редкое, фатальное аутосомно-рецессивное нейродегенеративное расстройство, которое начинается в детстве». (из статьи в вики) Аннотации Minipar до того, как она перестала работать, - это болезнь Баттен (также известная как Spielmeyer-Vogt-Sj), которая находится точно перед персонажем ö, поэтому это заставляет меня предположить, что это случай .. Заслуживают внимания при использовании ворот Поскольку же трубопровод обрабатывается несколько других статей, как ветер

в сообщениях Tab, он reprots:


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

Это похоже на проблему, связанную с кодировкой, но, к сожалению, я не могу отлаживать себя, поскольку двоичный файл с мини-парсером больше не доступен из usual download page. Я получаю небольшой (менее 2 КБ) Изображение в формате greyscale JPEG вместо мульти-MB .tgz.

Есть несколько вещей, которые вы могли бы попробовать с моей головы. Оболочка GATE Minipar записывает входной файл для синтаксического анализатора и считывает результат анализатора, используя то, что по умолчанию является кодировкой в ​​системе, в которой вы работаете. Мое предположение заключается в том, что синтаксический анализатор производит свой вывод в другом кодировании (возможно, связанном с кодированием исходных данных обучения?).

Обертка GATE записывает свой вход во временный файл, который вы можете найти во временном каталоге, если вы оставите GATE Developer в фоновом режиме (временные файлы удаляются при выходе разработчика). Я хотел бы попробовать запустить minipar-windows.exe на этот файл из командной строки, и видя, что результат выглядит

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

Выход может дать вам ключ к пониманию того, что не удается. Если он выглядит правильно, и вы можете определить кодировку, которую он пытается использовать, вы можете указать разработчику GATE использовать его в качестве кодировки по умолчанию (если вы используете gate.exe для его запуска, то вы делаете это, добавляя строку -Dfile.encoding=ISO-8859-1 или что-то еще к gate.l4j.ini) и посмотрите, поможет ли это. Если это так, мы можем рассмотреть возможность добавления параметра в PR для указания кодировки, используемой при обмене данными с исполняемым файлом анализатора.