Алгоритм грамматического анализа корейского предложения

DRAFT

Copyright (C) Евгения и Дмитрий Бречаловы, 2008

Алгоритм

Алгоритм состоит из трёх частей:

  1. Грамматический анализ
  2. Расстановка скобок
  3. Поиск синтаксических отношений

Грамматический анализ

Разбиение предложения на словоформы

Предложение разбивается на отдельные словоформы, все пробелы и знаки пунктуации отбрасываются. Словоформой считается последовательность латинских букв, цифр, символов ‘=‘ и точки.

Послучившийся список словоформ используется в качестве входных данных для остальных частей программы.

Первичный грамматический анализ

Для каждой словоформы предложения:

  1. Ищется ключ.
    1. Если он найден, по нему определяется грамм. класс и грамматические показатели. Грамматический класс может быть N, P или X.
    2. Если ключ не найден, то грамм. класс словоформы устанавливается равным N.
  2. Разрешение X-ов: для каждой словоформы, определенной как X, делается попытка определить грамм. класс по отдельным аффиксам и их комбинациям в словоформе.

Расстановка скобок

Скобка содержит последовательность словоформ или других скобок. Каждая скобка имеет следующие атрибуты:

  • грамматические характеристики (часть речи и грам. показатели)
  • правило, согласно которому элементы были объеденены в нее
  • список объединенных элементов (главным считается последний)
  1. Каждая словоформа предложения сама по себе заключается в скобку
  2. В скобки объединяются элементы, подпадающие под правила предварительного объединения
  3. Для каждого элемента проверяется левый контекст:
    1. Если это первый элемент (левый контекст пуст) — перейти к следующему элементу
    2. Если существует правило, позволяющее объединить текущий элемент с соседом слева:
      1. они объединяются в скобку
      2. скобка становится новым текущим элементом
      3. алгоритм повторяется с п. 3.1.

Поиск синтаксических отношений

  1. Для каждой скобки, начиная с самой внешней:
    1. Найти всех слуг для главного (правого) элемента
    2. Для каждой скобки-слуги повторить алгоритм