Fuziness In UIMA рута
Есть ли вариант нечеткости в случае совпадения слов или игнорирования некоторых особых случаев.
Например:
STRINGLIST AMIMALLIST = {"LION","TIGER","MONKEY"};
DECLARE ANIMAL;
Document {-> MARKFAST(ANIMAL, AMIMALLIST, true)};
Мне нужно сопоставить слова со списком на случай, если я столкнусь с каким-то специальным символом, например
Тигр или обезьяна $
Согласно документации Есть разные оценщики какие-либо идеи, как использовать? Или я могу использовать SCORE или MARKSCORE
1 ответ
Здесь следует рассмотреть несколько аспектов. В общем, UIMA Ruta не поддерживает нечеткость в поиске по словарю. SCORE
а также MARKSCORE
это языковые элементы, которые можно использовать для введения некоторого эвристического скоринга (не совсем нечеткости) в последовательных правилах. В примерах, которые вы привели в своем вопросе, вам не нужно нечеткое сопоставление.
Поиск по словарю в UIMA Ruta работает с аннотацией RutaBasic. Эти аннотации автоматически создаются и поддерживаются самой UIMA Ruta (и не должны изменяться другими механизмами анализа или правилами напрямую). Аннотации RutaBasic представляют наименьшие фрагменты, на которые ссылаются аннотации. По умолчанию сеялка RutaEngine создает аннотации для слов (W
-> CW
, SW
, CAP
) и многие другие токены, такие как SPECIAL
за - или $. Это означает, что есть также аннотация RutaBasic, и что поиск по словарю может отличаться между этими токенами. В результате, Tiger и Monkey должны быть аннотированы, и пример в вашем вопросе должен действительно работать (я проверял это). Возможно, вам понадобится постпроссертирование, чтобы включить SPECIAL
в ANIMAL
,
Я должен упомянуть, что есть также возможность использовать расстояние редактирования в поиске по словарю (Multi Tree Word List, TRIE). Однако эта функциональность не поддерживалась в течение нескольких лет. Он также должен поддерживать разные веса для конкретных замен. Я не знаю, считается ли это нечеткостью.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я разработчик UIMA Ruta