"Прикладное программное обеспечение: системы автоматической обработки текстов" - читать интересную книгу автора2.2.1. Словарь ЗализнякаОдним из широкодоступных (и активно используемых) русскоязычных ЛБД является электронный вариант фундаментального «Грамматического словаря русского языка» А.А.Зализняка. Текст словаря был перенесен на машинные носители в начале 80-х годов. С тех пор словари всех русскоязычных коммерческих автокорректоров (в том числе, ОРФО, Word), словари практически всех экспериментальных и коммерческих систем машинного перевода и других систем автоматической обработки текстов строятся на основе словаря Зализняка. Полиграфический вариант словаря Зализняка состоит из двух частей: "Грамматические сведения" (около 120 страниц) и собственно "Словарь" (около 740 страниц). В первой части представлена разработанная автором словаря с необычайной тщательностью оригинальная модель русского словоизменения (склонения и спряжения). Во второй - приведено около 100 тысяч слов, которым приписаны грамматические индексы, характеризующие тип их словоизменения и схему ударения. Слова упорядочены по концам, что естественно и удобно для грамматического словаря, поскольку слова со сходным грамматическим поведением (одинаковыми суффиксами и окончаниями) располагаются компактными группами. Словарная статья в словаре Зализняка состоит из заголовка (начальная форма слова) и словарной (грамматической) информации. Для некоторых слов даются также дополнительные сведения, необходимые для различения вариантов. Статьи с заголовками лев мо 1*b (животное) лев м 1a (денежная единица) стричь нсв 8b (-г-) прихожая ж (п 4a) По первому элементу словарной информации определяется грамматический класс ( Если второй элемент - не цифра, то это означает, что слово изменяется по необычной модели (существительное Отметим, что исходный (полиграфический) вариант словаря Зализняка был ориентирован на пользователя-человека. Основной сценарий использования словаря предусматривал возможность просклонять/проспрягать любое слово из "Словаря" на основе его грамматического описания и правил, приведенных в "Грамматических сведениях". Эти операции, вообще говоря, требовали выполнения некоторых трудноформализуемых действий, определенной языковой компетенции: поиск уместных грамматических таблиц, определение типа чередования, рассуждения по аналогии. Поэтому непосредственное использование словаря Зализняка (даже в электронном виде) в составе компьютерных систем обработки текста/речи затруднительно. Разработчики компьютерных словарей, базирующихся на словаре Зализняка, выбирают обычно один из трех путей: – генерация на основе словаря Зализняка словаря русских словоформ; – использование электронного "Словаря" в исходной форме и разработка (достаточно сложных) алгоритмов, моделирующих работу с "Грамматическими сведениями"; – создание на основе словаря Зализняка формальной модели словоизменения и необходимое переструктурирование словарной части (явное введение в словарную статью некоторой информации из "Грамматических сведений"), позволяющее существенно упростить алгоритмы. После подобных преобразований компьютерный словарь может использоваться для решения двух практически важных задач: задача морфологического анализа - определения начальной формы слова по произвольной словоформе (и, возможно, грамматических признаков словоформы); задача синтеза - построения всех форм (или указанной формы) слова по начальной форме.Одна из первых формальных моделей русского словоизменения на базе словаря Зализняка (третий из указанных выше путей) была разработана еще в середине 80-х годов на кафедре алгоритмических языков факультета ВМК МГУ под руководством М.Г.Мальковского. Модель была реализована на лиспоподобном языке программирования Плэнер (ЭВМ БЭСМ-6, а позже - МВК «Эльбрус-2» и IBM-совместимые ПК). При этом широко использовались динамические структуры, мощные средства обработки списков и сопоставления образца с выражением. В плэнерских структурах данных явно указывались все морфологические свойства для каждого слова, включая чередования в основе слова. Поэтому плэнерское представление достаточно легко воспринималось человеком, явно отражало морфологические особенности описываемых в компьютерном словаре слов. Однако язык Плэнер является интерпретируемым, а следовательно, довольно медленно работающим, что затрудняет его применение в системах, к которым предъявляются высокие требования по быстродействию. Обработка сложной структуры списков требует существенных затрат машинного времени, даже при реализации алгоритма их обработки на компилируемых языках, ориентированных на написание эффективных программ (С, С++). Поэтому было принято решение о переходе к другой структуре словаря и соответствующей модификации алгоритмов анализа и синтеза. Плэнерские структуры, описывающие морфологические особенности всех различных классов слов, были пронумерованы. Затем словам/основам и флексиям были сопоставлены соответствующие номера классов. При чередовании в основе и при наличии у слова супплетивных - образованных от другой основы - форм ( Новое представление словаря трудно воспринимаемо для человека. Однако унификация и упрощение структур данных позволили создать условия для значительного увеличения скорости обработки. |
|
|