Проблема со сборкой WordTables в UIMA RUTA / RETAINTYPE не работает - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь комментировать документ с помощью RUTA, но не все термины в моем словаре увольняют. Похоже, что таблицы слов могут не читаться правильно или что RETAINTYPE (SPACE) / RETAINTYPE (WS) не работает.

Пример: у меня есть термины «открытый шкаф», «открывает шкаф» и «открывающий шкаф» в формате CSV. Я читаю в терминах RUTA и читаю в соответствующей колонке, но когда я анализирую документ, аннотируется только «открытый счет».

Я пытался использовать RETAINTYPE (SPACE) и RETAINTYPE (WS) для решения проблемы, но безуспешно.

Кроме того, если я добавлю термин «ope cupboard» в мой csv, который читается в моей таблице слов, то «ope cupboard» будет единственной фразой, которая срабатывает, когда я создаю свою аннотацию. Я склонен полагать, что wordtable, возможно, не читает правильно и отфильтровывает эти похожие более длинные фразы, которые начинаются одинаково и заканчиваются одинаково. фраза «открыть дверь» правильно комментирует в том же csv, что и предыдущие термины, но имеет другое окончание. Как только я добавлю «открывает дверь» к тому же CSV, поскольку он не аннотирует «открывает дверь» и будет стрелять только по «открыть дверь»

Фразы, содержащие только одно слово, например: "opencupboard", "openscupboard", запускаются правильно, когда я не использую RETAINTYPE (SPACE) при анализе документа, но мне нужно иметь возможность сохранить пространство из-за другого более короткого фразы, которые вызывают у меня слишком много ложных срабатываний.

Я также воссоздал эту проблему с другими фразами.

По сути, я не могу комментировать леммы.

1 Ответ

0 голосов
/ 03 сентября 2018

В реализации wordtable пробелы по умолчанию игнорируются. Таким образом, «привет мир» будет проиндексирован как «helloworld».

Анализ содержимого с помощью RUTA также игнорирует пробелы по умолчанию. Таким образом, «Привет, мир» в документе будет распознан, но и «Привет, мир», «он все равно» - совпадения.

Если в вашем контексте важны пробелы, вы можете настроить таблицу слов для использования пробелов при индексации. Это можно сделать, передав параметр конфигурации (PARAM_DICT_REMOVE_WS = false) в двигатель. Конечно, сделайте их также видимыми в самих скриптах RUTA перед выполнением действия MARKTABLE с помощью следующего действия «ADDRETAINTYPE (WS);».

В RUTA 2.6.1 (текущая версия) есть некоторые проблемы с таблицами слов. Есть некоторые исправления, но они еще не исправлены.

https://issues.apache.org/jira/projects/UIMA/issues/UIMA-5752 https://issues.apache.org/jira/projects/UIMA/issues/UIMA-5775

Если конфигурация с 2.6.1 не работает, вы можете попытаться получить последние версии 2.6.1 и применить к ней патчи. Может быть, это решит вашу проблему.

...