Слюни для морфологического анализа

Подходит ли Drools для написания правил для Stemming и/или POS-тегов? Приветствуются предложения по улучшению языка правил. Я прочитал много статей в этой области, в которых используется подход, основанный на правилах, но ни в одной из них не упоминалось, какая библиотека или фреймворк использовались для написания правил.

Мои правила примерно такие:

if (length = 3 & first_letter in group1 and second_letter in group2) then ...
if (length = 3 & first_letter in group1 and second_letter not_in group2) then ...
if (length = 3 & first_letter not_in group1 and second_letter in group2) then ...
if (length = 3 & first_letter not_in group1 and second_letter not_in group2) then ...
if (length = 4...

... и так далее.

Проблема в том, что этих правил слишком много, чтобы с ними справиться. Представьте, что имеется десять групп букв и что для каждой буквы, принадлежащей каждой группе, есть свой случай. Я мог бы легко иметь более тысячи правил для правильной классификации слова. Я написал 30 из этих правил в простом коде C#, и этого было достаточно, чтобы понять, насколько неэффективен такой подход. Мои правила уже организованы в виде дерева на бумаге. Мне просто нужна правильная структура, чтобы вставлять, представлять, настраивать и тестировать их.

Надеюсь, мой вопрос понятен. Спасибо.


person omarzd    schedule 08.06.2012    source источник
comment
Тысяча правил для Drools — это не так уж и много. У меня есть один с более чем 3000 правил, гораздо более сложных, чем у вас. Файл .drl создается из базы данных.   -  person David Brabant    schedule 12.06.2012


Ответы (1)


Вы, конечно, можете использовать Drools для этого. Drools может обрабатывать многие тысячи правил (я видел kbases с более чем 30 тысячами правил), гораздо более сложных, чем те, которые вы представили выше, без особых усилий.

Основная проблема, которую я вижу, - это не время выполнения, а обслуживание ваших правил. Выполнение этого вручную из-за вашего варианта использования кажется большой работой, независимо от того, какой язык / движок вы выберете. Может быть, вы можете использовать таблицу решений, чтобы определить свои правила, поскольку обычно это намного меньше «печатания»? или, может быть, у вас есть скрипт, генерирующий все правила для вас? Drools поддерживает оба.

person Edson Tirelli    schedule 12.06.2012