Языки в грамматическом словаре

Объявление языка

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

Чтобы обеспечить корректное соотнесение правил к конкретному языку, каждый используемый язык объявляется специальной конструкцией, к примеру для русского языка:

language Russian as RUSSIAN_LANGUAGE
{
 alphabet Russian
 alphabet Latin
 alphabet Neutral

 link <to_english> language English
 link <to_french> language French
 link <to_spanish> language Spanish

 ParadigmSubst = { "\\@а" "[аеёиоуыэюя]" }
 ParadigmSubst = { "\\@б" "[бвгджзклмнпрстфхцчшщ]" }
}

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

После ключевого слова as идет внешнее имя для языка - фактически это имя константы для ссылки на язык в C++, C# и других языках программирования (см. описание API грамматического движка). Во избежание проблем с языками программирования, многие из которых не поддеживают юникод в именах констант, следует использовать только латиницу.

Перечень допустимых для языка алфавитов задается ключевыми словами alphabet. Компилятор словаря проверяет, что объявляемые для языка словарные статьи не имеют символов из недопустимых алфавитов.

Фрагменты, начинающиеся с ParadigmSubst - это задание групп символов для масок в парадигмах (см. здесь). Как нетрудно видеть в этом примере, объявлены две группы символов - гласные и согласные. Количество групп символов и их имена ничем не ограничиваются. В общем случае конструкция

Некое_наименование = строка

или

Некое_наименование = { строка1 строка 2 ... строка N }

позволяют определить для языка различные именованные параметры. Группы символов для масок парадигм - это лишь один из примеров использования данной возможности. Большое количество параметров в описании языка используется токенизатором и сегментатором.

Реализация языка в лексиконе

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

Более того, мы собираем словарь таким образом, что в нем объявлены все реализованные языки. В этом случае константы, соответствующие внутреннему id языка, не меняются для разных вариантов наполнения словаря.

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

Аналогичная схема применяется в отношении тезауруса. Для двуязычных и многоязычных словарей в теазаурус включаются межязыковые связи - например, переводы.

Объявления языков в API

В рамках процедурного API идентификаторы языков представлены как целочисленные константы, например русский язык - RUSSIAN_LANGUAGE. Эти константы указываются в различных вызовах API, например при переводе с одного языка на другой sol_TranslatePhrase.

С помощью функции sol_FindLanguage можно найти ID языка по его имени.

В словаре, загруженном в реляционную БД, объявления языков находятся в таблице SG_LANGUAGE.

При работе с SQL словарем с помощью ORM библиотеки каждый объявленный язык представлен объектом класса Solarix.Language, список этих объектов доступен через индексируемое свойство Dictionary.languages, позволяющее искать объекты по целочисленному id языка или по имени.

Внутреняя реализация описания естественного языка на C++

В исходных текстах каждый объявленный язык представлен объектом класса SG_Language, который объявлен в файле sg_autom.h и реализован в sg_language.cpp.

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

Алфавит

Грамматические классы

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

Лексикон

Словарь

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

Сегментатор и токенизатор

Компилятор словаря

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

Language declaration in grammatical dictionary

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


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



изменено 16-Aug-11