Чтобы использовать анализатор PET, сначала вам нужно загрузить грамматику для интересующего вас языка. Грамматика должна быть написана на языке TDL, как это используется в консорциуме DELPH-IN ( вики здесь ). Большие совместимые грамматики доступны для нескольких языков, включая английский, японский и немецкий. Также доступны более мелкие грамматики, и вы можете написать свою собственную.
Для этого и для работы с этими грамматиками лучше всего подойдет книга Энн Копестак, "Внедрение грамматик типизированной структуры элементов" (CSLI 2002). Книга предоставляет подробное введение в TDL и грамматики, подобные этим, которые функционируют посредством объединения типизированных структур признаков. Грамматики поддерживают двунаправленное отображение между синтаксисом (поверхностные строки) и семантикой («значение», представленное в соответствии с MRS Копестаке - Семантика минимальной рекурсии ). Обратите внимание, что это точные грамматики, что означает, что они, как правило, менее терпимы к неграмотным вводам, чем статистические системы.
Английская грамматика ресурсов (ERG) - это большая грамматика английского языка, которая охватывает широкий круг вопросов общего характера. Это открытый исходный код, и вы можете скачать его с сайта. Онлайн-демо, работающее на анализаторе PET, можно найти здесь .
Анализатор PET запускается в два этапа. Первый, называемый flop , создает «скомпилированную» версию грамматики. Второй шаг - фактический анализ, который использует программу cheap . Вам нужно будет получить эти два двоичных файла PET для вашего Linux-компьютера или собрать их самостоятельно. Этот шаг может быть нелегким, если вы не знакомы с созданием программного обеспечения в Linux. PET не работает на Windows (или Mac, насколько мне известно).
Бег флоп легко. Просто перейдите в каталог / erg и введите:
$ flop english.tdl
Это создаст файл english.grm . Теперь вы можете разобрать предложения, набрав cheap :
$ echo the child has the flu. | cheap --mrs english.grm
В этом примере создается одно семантическое представление предложения в формате MRS (семантика минимальной рекурсии):
[ LTOP: h1
INDEX: e2 [ e SF: PROP TENSE: PRES MOOD: INDICATIVE PROG: - PERF: - ]
RELS: <
[ _the_q_rel<-1:-1>
LBL: h3
ARG0: x6 [ x PERS: 3 NUM: SG IND: + ]
RSTR: h5
BODY: h4 ]
[ "_child_n_1_rel"<-1:-1>
LBL: h7
ARG0: x6 ]
[ "_have_v_1_rel"<-1:-1>
LBL: h8
ARG0: e2
ARG1: x6
ARG2: x9 [ x PERS: 3 NUM: SG ] ]
[ _the_q_rel<-1:-1>
LBL: h10
ARG0: x9
RSTR: h12
BODY: h11 ]
[ "_flu_n_1_rel"<-1:-1>
LBL: h13
ARG0: x9 ] >
HCONS: < h5 qeq h7 h12 qeq h13 > ]
Книга Копестаке объясняет специфический синтаксис и лингвистический формализм, используемые в грамматиках, которые совместимы с PET. Он также служит руководством пользователя для системы LKB с открытым исходным кодом, которая является более интерактивной системой, которая также может анализировать эти грамматики. В дополнение к синтаксическому анализу LKB может делать обратное: генерировать предложения из семантических представлений MRS. В настоящее время LKB поддерживается только в Linux / Unix. На самом деле существует всего четыре механизма обработки грамматики, соответствующих DELPH-IN, включая LKB и PET.
Для Windows есть согласен , многопоточный парсер / генератор (и здесь ), который я разработал для .NET; он также поддерживает генерацию и анализ. Если вам нужно работать с грамматикой в интерактивном режиме, вы можете рассмотреть возможность использования LKB или accept в дополнение к PET или вместо него. Интерфейсы интерактивного клиента для согласны в основном основаны на WPF, но движок и простой консольный клиент могут работать на любой платформе Mono.
ACE - это еще одна система синтаксического анализа и генерации, совместимая с DELPH-IN, с открытым исходным кодом, разработанная для высокой производительности и доступная для Linux и MacOS.
LKB написан на Лиспе, тогда как PET и ACE - это C / C ++, поэтому последние являются более быстрыми анализаторами для производственного использования. согласен также намного быстрее, чем LKB, но становится быстрее, чем PET, при разборе сложных предложений, где накладные расходы из согласен с параллелизмом без блокировки амортизируются.
[25.11.2011, редактирование: согласен теперь поддерживает генерацию и анализ]