Частые вопросы по грамматическому словарю

Словарь в целом

Что такое лексикон и тезаурус?

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

Почему в качестве основного исходного представления словаря выбраны обычные текстовые файлы?

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

Использование простого текстового представления для словаря снижает эффективность его использования из программ?

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

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

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

Лексикон

Что содержится в лексиконе?

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

Что такое базовая форма?

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

Что такое ключ словарной статьи?

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

В каком виде доступны словоформы для лексем?

Если говорить об SQL Словаре и Грамматическом Сервере, то грамматическое формы каждого слова полностью раскрыты. К примеру, для существительного грамматика в таблице sg_form хранится 13 записей, соответствующих 6 падежным формам в двух числах с дополнительной формой творительного падежа грамматикою. Более того, для каждой формы имеется информация о грамматических атрибутах - то есть падеж и число. Вся эта информация доступна с помощью SQL запросов.

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

Какая основная задача решается при морфологическом анализе?

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

Почему нужен анализ предложений, вместо более просто анализа отдельных слов?

Из-за неоднозначностей, возникающих при анализе изолированных слов. Например, взяв одно слово "знать", мы не может однозначно сказать, существительное это или неопределенная форма глагола. Кроме того, в некоторых задачах обработки текста желательно точно определять грамматические категории слова, например его род и падеж. Встретив слово "Женя", мы не можем с уверенностью сказать, что перед нами существительное мужского или женского рода, так как уменьшительные формы (деминутивы) существительных Евгений и Евгения совпадает. Более того, это слово может быть и деепричастием, хотя во многих случаях учет признака заглавной первой буквы позволяет этот вариант исключить даже без анализа синтаксического контекста.

Почему для решения этой задачи требуется такой большой набор алгоритмов?

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

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

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

Какие особенности русского языка учтены при создании анализатора?

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

Ограничен ли морфологический анализатор только русским языком?

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

Как анализатор работает в двуязычных словарях?

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

Можно ли описать новый язык?

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

Используется ли морфологическим анализатором словарная морфология?

Да. Используется специально разработанная, поддерживаемая и развиваемая лексическая база (русский и английский лексикон).

Сколько сейчас в лексиконе слов?

Ответ на этот вопрос можно получить на странице статистики, которая работает с онлайн-версией словаря http://178.64.252.139:8080/Statistics.aspx. Там же можно посмотреть распределение словарных статей по частям речи, количество грамматических форм, синонимов и другие характеристики.

Можно ли добавлять в лексикон новые слова?

Конечно. При работе со словарем, хранящемся в реляционной базе данных, добавление, равно как и изменение, словарных статей выполняется стандартными средствами SQL. В SDK словаря есть другая возможность - пересборка словаря с добавлением пользовательского словаря к базовому.

Умеет ли морфологический анализатор работать с "несловарными словами"?

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

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

Морфологический анализатор использует соседние слова для устранения неоднозначностей, применяя правила согласования частей речи. Если же это не помогает, то результаты будут содержать все альтернативные варианты. В некоторых случаях варианты будут ранжированы по их относительной достоверности. Например, слово "Любой" с большей вероятностью является прилагательным, чем существительным.

Как морфологический анализатор учитывает синтаксис предложения?

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

Где хранятся правила морфологического анализа?

Все правила хранятся в базе данных словаря. Некоторые виды правил хранятся в специальном скомпилированном виде, так как их компиляция и оптимизация занимает слишком много времени и сильно замедлила бы старт морфологического анализатора.

Какое количество синтаксических конструкций распознает морфологический анализатор?

На этот вопрос трудно ответить, так как распознавание синтаксиса выполняется путем рекурсивного подбора паттернов, начиная с крупномасштабной структуры и заканчивая элементарными парами типа наречие+глагол или прилагательное+существительное. С другой стороны, при наполнении базы паттернов предпочтение отдается активно используемым конструкциям современного русского языка. Характерные для художественной литературы и особенно поэзии синтаксические конструкции могут не распознаваться в текущей версии.

Есть ли возможность в прикладной программе вызвать морфологический анализатор?

Да, используйте процедурный API. В частности, функция sol_MorphologyAnalysis позволяет выполнить разбор одного предложения.

Можно ли добавлять свои правила морфологического анализа?

Отчасти. В текущую версию SDK Грамматического Словаря входит крошечная учебная грамматика русского языка в виде исходных текстов правил и инструментов для сборки своего анализатора. Это дает возможность создать свою версию анализатора.

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

Можно ли из своей программы получать информацию в словаре?

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

В чем основное отличие SDK Грамматического Словаря, SQL Словаря и Грамматического Сервера?

SDK Грамматического Словаря предназначен для "однопользовательского", локального варианта использования. Он относительно компактен, но не очень быст при выполнении некоторых операций. SQL Словарь - это лексикон, загруженный в обычную реляционную БД и позволяющий работать со словарными статьями с помощью обычных SQL запросов. Наконец, самый функциональный и сложный - Грамматический Сервер. Он сочетает в себе наличие процедурного API и хранение словаря полностью в реляционной СУБД, в том числе хранение там правил морфологического и синтаксического разбора. Он рассчитан на многопоточный доступ и работу в режиме сервера, а также допускает прямое обращение к лексикону и некоторых правилам с помощью SQL.

Зачем нужна утилита Lexicon?

Это консольная программа. Она позволяет искать в словаре слово, введенное с клавиатуры, получая ключ (id) словарной статьи, информацию о части речи и грамматические признаки, например - падеж или род. Далее, с помощью этой же утилиты можно посмотреть, какие связи есть для введенного слова в тезаурусе. Например, можно увидеть переводы слова, если доступен многоязычный словарь. Утилита позволяет выполнять поиск по базе собранных N-грамм. Наконец, утилита выводит общую статистику словаря - номер версии словаря, количество словарных статей и словоформ. Из-за простоты своего интерфейса она портирована на разные платформы, включая Windows, Linux и Mac OS.

Зачем нужна утилита Syntax?

Она позволяет вводить с консоли предложения и видеть результаты морфологического и синтаксического анализа. Помимо этого, она используется как отладчик для анализатора текста. Если ввести директиву #debug, то появятся возможности интерактивной пошаговой отладки для правил переписывания. Для структурного парсера есть возможность увидеть трассировку применения правил и в некоторых пределах - смотреть состояние автомата в заданных точках останова.

  © 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 Мб


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



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