Лексикон грамматического словаря

Структура лексикона

Лексикон грамматического словаря - это список словарных статей, плюс некоторая служебная информация для описания морфологии языков.

Каждая словарная статья в лексиконе объединяет словоформы одного слова для одного языка, относящиеся к одной части речи.

Кроме описаний в состав лексикона также включены некоторые алгоритмы для работы со словами и предложениями - нечеткий поиск грамматической формы слова, морфологический разбор слов, лемматизация, стемминг. Сюда же можно отнести модули, занимающиеся склонением существительных и прилагательных и спряжением глаголов. Часть этих алгоритмов реализована только на языке C++ и составляет ядро системы. Другие, например стеммер и лемматизатор, генерируются в виде исходного кода для нескольких языков программирования по информации в лексиконе, и могут быть использованы без словаря.

Формирование и пополнение лексикона

Формирование лексикона можно представить в виде двух этапов.

1. Описание морфологии. Удобнее разбивать эту фазу на 3 подэтапа.

подэтап a) задание списков допустимых грамматических признаков через определение грамматических координат. Например, для французского языка существительные могут быть двух родов: мужского и женского, таким образом нам потребуется объявить грамматический атрибут "род" FR_GENRE с состояниями MASCULINE и FEMININE. Эти имена произвольны и выбираются из соображений удобства и привычки.

подэтап b) описание грамматических классов. Например, для русского языка можно выделить класс существительных. При описании грамматических классов указываются координаты, объявленные на подэтапе а. Таким образом, для каждой части речи мы задаем допустимые грамматические признаки, что позволяет обнаруживать ошибки на стадии компиляции словаря.

подэтап с) описание стандартных таблиц образования грамматических форм. В принципе, это факультативный этап, так как можно для каждой словарной статьи каждый раз перечислять все формы, но обычно в языке есть некие регулярности в морфологии, позволяющие по окончанию слова и зная его грамматический класс сгенерировать все словоформы. Например, для английского глагола to face регулярным образом получаются формы face, faces, facing, faced. Для английского существительного face получаются две формы face, faces.

2. Наполнение лексикона словарными статьями. Это самая рутинная часть работы. Для языков со сложным и нерегулярным словообразованием отнесение слова к той или иной таблице формообразования может потребовать немало внимания. Для других языков автоматический подбор нужной парадигмы (обычно по окончанию базовой формы) позволяет свести работу фактически к набивке списка базовых форм, "декорированных" тривиальными синтаксическими конструкциями, причем наличие в компиляторе словаря макропроцессора позволяет и эту работу максимально облегчить.

Можно заметить, что в лексикон в первую очередьпопадают самые употребимые с точки зрения используемого текстового корпуса слова.

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

Неупотребимые формы слов

1. Прилагательные с формами одного рода. Возьмем, к примеру, имя прилагательное 'замужняя' или более архаичный вариант 'мужняя', или 'женатый'. Эти слова обычно не употребляются в формах другого грамматического рода, то есть вариант 'замужний' в общем-то бессмысленен. С прилагательным 'женатый' немного сложнее, так как иногда мы употребляем его, не совсем корректно, и в женском роде.

При описании таких прилагательных в лексиконе в некоторых случаях неупотребимые формы могут не вноситься, оставив, к примеру, для 'замужняя' только формы единственного числа женского рода и формы множественного числа. Выяснить, что некоторые грамматические формы не нужны, иногда очень непросто. Например, прилагательное 'тридесятый' употребляется преимущественно как элемент 'сказочного стиля' в сочетаниях с 'государство' и 'царство'. Это прилагательное и так не очень часто употребляется на общем фоне, а форма мужского рода примерно в 10 раз реже. Еще один подобный случай - слова 'эскадренный' и 'смольный', которые обычно употребляется в мужском роде или в множественном числе. Найти для них употребление в женском роде можно с большим трудом, один из вариантов связан с названиями улицы. Средний род еще более сложен для поиска примера употребления. Далее, как и в случае существительных, некоторые прилагательные употребляются только в множественном числе, например 'разнополые' предполагает два атрибутируемых существительных.

2. Похожая ситуация возникает с некоторыми глаголами. Типичный случай - это затруднения при образовании форм 1го лица единственного числа в изъявительном наклонении победить-победю/побежду. Почему-то так сложилось в русском языке, что мы идем на утяжеление речи аналитическими конструкциями типа 'одержу победу'. Бывает и так, что у глагола употребляются только некоторые формы прошедшего времени, а остальные даже трудно вообразить, например 'простёрлась-простёрся-простёрлись'. Неопределенная форма этого глагола немного режет слух - простереться, а прочие формы не менее неудобоваримы - мы прострёмся, я прострусь.

3. Даже у имен существительных есть такие примеры, когда некоторые грамматические формы не употребляются. Например, слово вопросец, несущее оттенок пренебрежительно-уменьшительной формы, деривата от существительного вопрос. Очень трудно вообразить употребление прочих форм, за рамками именительного и винительного падежа - вопросца, вопросцом, и т.д.

Альтернативные, разговорные формы, жаргон

Иногда слова допускают альтернативные варианты одной и той же грамматической формы, в той или иной степени одобряемые орфографическими словарями. Например, глагол плескаться имеет формы плескаюсь и плещусь, а также альтернативы для других форм в своей парадигме. В таких случаях в лексикон вносятся все формы. Разумеется, слова, которые четко распознаются носителями как отдельные, несмотря на родство происхождения, вносятся в лексикон как разные словарные статьи: Наталия-Наталья.

Немалое количество альтернативных форм связано с 'грубым' и 'вежливым' стилями для побудительной формы глагола. Например, для глагола трогать нейтральная, вежливая форма трогай в речи дополняется грубой, более короткой и экспрессивной формой трожь.

Жарногонные слова, особенно профессиональный жаргон, зачастую являются кальками или искаженными транскрипциями с иностранных слов. Например, 'meltdown' или 'fallout' могут встречаться в значимых количествах в текстах определенной тематики. Внесение их кириллических вариантов обычно нерационально, так как замусоривает лексикон.

Как разговорные формы, так и жаргон имеют одну особенность, которая заставляет относится к внесению таких слов с повышенным внимание - их недолговечность.

Прилагательные или причастия

Прилагательные и причастия описываются в морфологическом словаре как одна часть речи. Отличие причастий, кроме грамматических признаков переходности, модальности и падежной валентности, заключается в наличии связи с глаголом:

делающий, делавший - делать

Иногда возникает ситуация, когда слово по сути является причастием, но исходного глагола для него нет. Особенно ярко это проявляется у сложных слов:

всепобеждающий, узкомыслящий

С некоторыми дополнительными усилиями можно было бы сохранять в словаре связь таких причастий с фразовыми статьями, например так:

быстросохнущий - сохнуть быстро

Второй источник таких причастий без глагола - отрицательные формы:

неназываемый, невидимый

Так как в русском языке 'не' всегда пишется отдельно от глагола, то возможности дать прямую связь с глаголом невозможно.

Разное написание

1. Очень распространенное явление для иностранных имен. Если не учитывать имена, исторически образовавшиеся от одного и того же исходного имени, но сильно адаптированные - Джон и Йон, Жак и Яков, то остается огромное количество вариантов Мэри-Мария, Лиз-Лиза, а также - это самое главное - по разному транскрибируемых кириллицей: Пол и Поль, как в Жан Поль Готье и Пол Маккартни. В последнем примере разница не объясняется никакими речевыми причинами, так как палатизация согласных отсутствует и в английском, и во французском языках, так что в обоих случаях фонетически Поль/Пол отличаются и от мягкого, и от твердного варианта произношения русской буквы 'л'.

2. Слова, внесенные в язык искусственно, по политическим соображениям и поддерживаемые часто административно. Сюда можно отнести такие имена собственные, как Молдова, Беларусь, Таллинн и Кыргызстан. С другой стороны, Тифлис успешно превратился в Тбилиси. Еще примеры политически мотивированных разных написаний - Цхинвал и Цхинвали, Батум и Батуми.

Английский язык со своей сложной орфографией также не избежал этой проблемы - альтернативные написания типа paralysing-paralyzing, through-thru вводятся как отдельные слоарные статьи.

Верификация информации в лексиконе

Из-за очень большого объема информации, прежде всего - словарных статей и их грамматических форм, очень важной становится автоматизация контроля качества лексикона. Сюда относятся средства, помогающие обнаружить некорректно склоняющиеся слова, слова с опечатками и не входящие в языковую практику, а также слова, которые желательно иметь в лексиконе из-за их частоты употребления, но не внесенные в словарь.

Задача контроля качества лексикона в настоящий момент решается набором тестовых утилит и методик, в некоторых случаях дающих соответствующую информацию как побочный продукт. Например, утилита для проверки стеммера просматривает весь лексикон, выполняет для каждой формы каждой статьи стемминг и затем контролирует, что получившийся стем сопоставляется со всеми формами статьи. В случае обнаружения ошибок (ошибки 2го и 3го рода) в итоговом отчете печатаются соответствующие данные, и в некоторых случаях простой визуальный просмотр позволяет найти опечатки в словарных статьях или неправильно указанную парадигму формообразования.

Определенную помощь при наполнении лексикона оказывает программа для статистической обработки текста Empirika. Она позволяет получить по текстовому корпусу список слов, которые не удалось лемматизировать. Это может означать, что либо отсутствует соответствующая словарная статья, либо парадигма имеющейся статьи описана неправильно.

Программный доступ к лексикону

Для работы с лексиконом могут быть использованы отдельные утилиты, процедуры API грамматического словаря, отдельный API лемматизатора, объектно-ориентированный API библиотеки ORM либо SQL запросы. Например, морфологический анализ слов в предложении с учетом различных правил сочетаемости возможен через процедуру sol_MorphologyAnalysis.

Отдельно можно отметить программу Грамматический Словарь Русского Языка, предоставляющую простой графический интерфейс для поиска слов и просмотра их грамматических форм, а также связей в тезаурусе.

Для пополнения и редактирования информации в лексиконе есть такие программы, как SQLEx - редактор SQL словаря, LexiconEditor - набор форм для добавления новых словарных статей.

Пользовательские лексиконы

При работе с SQL словарем есть возможность разбить все множество словарных статей на основной лексикон и ряд дополнительных, пользовательских лексиконов. На уровне реляционной схемы БД разбивка выполняется с помощью текстового поля SG_ENTRY.DIC_DIV. Для основного словаря это поле содержит пустую строку.

Прикладные программы, работающие с SQL лексиконом, могут ограничивать область поиска слов. Например, Редактор Словаря SQLex загружает имя пользовательского словаря из ini-файла конфигурации. Аналогичные средства содержит ORM библиотека Persistent Dictionary.

Другой способ работы с пользовательскими словарями основан на возможности добавлять новые словарные статьи в лексикон при компиляции словаря. Это позволяет разрабатывать пользовательские словари в исходных текстах на внутреннем языке, при необходимости объединяя их с базовым словарем, например добавляя узкоспециализированную лексику. Пример такого объединения можно найти в SDK Грамматического Словаря.

Статистика лексикона

Для получения нижеприведенной статистики лексикона русско-английский словарь был экспортирован в SQL базу, затем данные анализировались средствами SQL FireBird. Другие примеры запросов к SQL варианту словаря можно посмотреть на странице с описанием схемы SQL словаря.

Статистика русского лексикона

Распределение словарных статей по грамматическим классам:

распределение словарных статей по классам

Обратите внимание, что личные и неличные формы русского глагола разделены на несколько классов - инфинитивы, деепричастия, собственно глаголы, причем причастия включены в класс прилагательных. Диаграмма отражает в большей степени процедуру наполнения лексикона, так как распределение грамматических классов для художественного текста другое - в нем на первое место выходит прилагательное (с причастием):

распределение лексем по частям речи для русского текста

Распределение числа русских словарных статей в зависимости от первой буквы имени:

распределение словарных статей для русского языка

На данную статистику оказывает влияние тот факт, что словарные статьи, относящиеся к разным грамматическим классам, имеют разный объем парадигмы. К примеру, прилагательные могут насчитывать более сотни словоформ, а наречия - одну или две. Кроме того, инфинитивы, причастия, деепричастия и глаголы разделены в разные грамматические классы.

Наибольшее число словарных статей начинается с буквы П.

Для сравнения - гистограмма распределения русских словоформ по первой букве:

распределение русских словоформ

Распределение числа русских словарных статей в зависимости от двух первых букв имени:

распределение словарных статей для русского языка

Относительное распределение длин словоформ для русского и английского лексиконов:

распределение длин словоформ

Словоформы в английском лексиконе в среднем немного короче, чем в русском.

Статистика английского лексикона

Распределение словарных статей по грамматическим классам:

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

Распределение числа английских словарных статей в зависимости от первой буквы имени:

распределение словарных статей для английского языка

Наибольшее число словарных статей начинается с буквы S.

Дополнительные материалы

Языки

Алфавиты

Части речи

Грамматические координаты

Словарные статьи

Внутренний язык грамматической машины

Морфологический анализатор

Утилита LEXICON

Грамматический Словарь Русского Языка

Структура SQL словаря

Lexicon - word and phrase entries

  © Elijah Koziev 2010
прикладные проекты на основе грамматического словаря API грамматической машины компоненты для доступа к грамматическому словарю условия получения SDK токенизатор и сегментатор морфологический анализ и синтез лемматизатор база N-грамм синтаксический анализатор словоформы морфология и синтаксис русского языка падеж число род совершенный и несовершенный вид экспорт в SQL формат экспорт в XML формат скрипт SQL словаря структура SQL словаря структура XML словаря компоненты для доступа к грамматическому словарю ORM Persistent Dictionary Library лемматизация стемминг примеры использования грамматического словаря склонение существительных в русском языке склонение русских прилагательных спряжение глаголов в русском языке поиск текста с учетом морфологии OCR подсистема расширенные регулярные выражения генератор текста генератор случайного текста и имитатор рандомизатор синонимизатор перефразировщик Статистика буквенных паттернов

Грамматический словарь русского языка



Грамматический словарь
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
требования: 512 Mb свободной памяти, 300 Мб на диске
размер:         34 Мб

  скачать грамматический словарь купить грамматический словарь SDK грамматического словаря
грамматический словарь русского языка



SDK Грамматического словаря



SDK Грамматического Словаря
склонение и спряжение глаголов, существительных, прилагательных

В состав входит русский и английский словарь.

платформа:  Windows 2000 ... Windows 7
размер:         13 Мб

SQL словарь (демо):
sqlite mysql oracle firebird mssql

скачать демо-версию SDK купить SDK API грамматического словаря



Поисковая система



Integra
настольная и сетевая поисковая система 

платформа:  Windows XP ... Windows 7
требования: 512 Mb свободной памяти
размер:         21 Мб

Дополнительные компоненты:
MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать поисковую систему SDK поисковой системыописание поисковой системы



SDK Поисковой системы



SDK Поискового движка
API для настольной и сетевой поисковая система 

платформа:  Windows XP ... Windows 7
размер:         17 Мб

Дополнительные компоненты:

MySQL поисковый сервер 13.5 Мб
Integra.Premium MySQL 3.9 Мб

скачать SDK SDK поисковой системы



Экранный переводчик



Translator
экранный переводчик

платформа:  Windows XP ... Windows 7
требования: 256 Mb свободной памяти
размер:         4.4 Мб

Дополнительные компоненты:
расширенный англо-русский словарь 6.4 Мб


скачать экранный переводчикописание экранного переводчика



изменено 05-Feb-12