Грамматический словарь в формате XML

Экспорт словаря в формат XML

Для получения XML файла с данными словаря, используется утилита decompiler. В качестве источника она использует скомпилированный бинарный словарь. Все необходимые компоненты есть в составе полного SDK грамматического словаря, для приобретения которого необходимо связаться с разработчиками.

Реляционная структура словаря

Структура таблиц class, entry и entry_form следующая.

Таблица class: id - ключ записи, name - имя класса, присвоенное ему при объявлении в исходных текстах словаря.

Таблица entry: id - ключ статьи, id_class - код грамматического класса (внешний ключ на class.id), name - имя статьи (обычно это базовая грамматическая форма), entry_attrs - список атрибутов словарной статьи - грамматических признаков, присущих всем грамматическим формам данного слова, например род и одушевленность для русских существительных.

Таблица entry_form: id_entry - код словарной статьи (внешний ключ на entry.id), name - текстовое представление грамматической формы, iform - порядковый номер формы в рамках словарной статьи, form_dims - список измерений, например - падеж и грамматическое число для форм существительного.

Общий вид структуры:

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

Загрузка XML словаря в MS Access

Работать с содержимым словаря, экспортированным в XML формат, можно с помощью СУБД, которая поддерживает загрузку данных из XML файлов. Хорошо работает MS Access 2003, при этом не требуя дополнительных инструментов.

Общая технология такая. Создается пустая БД. В нее импортируются данные из файла 'lexicon.xml'. При этом Access самостоятельно прочитает также описание схемы из lexicon.xsd. В результате в БД будет создано несколько таблиц (class, entry и entry_form).

Теперь можно применять средства SQL для выборки данных по разным критериям, и с помощью инструментария СУБД Access строить разнообразные отчеты. Вы даже можете использовать прекрасный штатный генератор отчетов Access'а, если хотите получать результаты в виде красивых диаграмм. Мы же ограничимся текстовыми результатами исполнения запросов.

Для понимания дальнейшего изложения необходимо знать язык SQL.

Например, запрос:

SELECT C.name, Count(E.id)
   FROM Class AS C, Entry AS E
   WHERE C.id=E.id_class
   GROUP BY C.name
   ORDER BY Count(E.id) DESC;

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

СУЩЕСТВИТЕЛЬНОЕ

8943

ИНФИНИТИВ

8270

ПРИЛАГАТЕЛЬНОЕ

6761

ПРЕДИКАТ

2884

НАРЕЧИЕ

2288

ДЕЕПРИЧАСТИЕ

655

ПРЕДЛОГ

98

ЧАСТИЦА

97

МУСОР

92

СОЮЗ

73

Sound_Resource

5555

ВВОДНОЕ

48

ЧИСЛИТЕЛЬНОЕ

38

ПРИЧАСТИЕ

35

ПУНКТУАТОР

33

БЕЗЛИЧ_ГЛАГОЛ

24

МЕСТОИМ_СУЩ

13

СПЕЦ

12

beth

9

ЛОГСОЮЗ

5

МЕСТОИМЕНИЕ

4

types

4

num_word

3

ВОСКЛ_ГЛАГОЛ

2

QUANTOR

2

DUMMY

2

ADJ

1

МОДАЛЬНОЕ

1

VERB

1

NOUN

1>1

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

SELECT C.name, Count(F.name)
  FROM Class AS C, Entry AS E, Entry_form AS F
  WHERE C.id=E.id_class AND F.id_entry=E.id
  GROUP BY C.name
  HAVING Count(F.name) > 50
  ORDER BY Count(F.name) DESC;

В этом запросе попутно производится отсечение малозначимых данных (классов с числом словоформ менее 50). Результат:

ПРИЛАГАТЕЛЬНОЕ

722510

СУЩЕСТВИТЕЛЬНОЕ

108690

ПРЕДИКАТ

34625

ИНФИНИТИВ

8270

ПРИЧАСТИЕ

2466

НАРЕЧИЕ

2288

ДЕЕПРИЧАСТИЕ

655

ЧИСЛИТЕЛЬНОЕ

586

МЕСТОИМЕНИЕ

139

ПРЕДЛОГ

98

ЧАСТИЦА

97

МУСОР

92

МЕСТОИМ_СУЩ

83

СОЮЗ

73

Sound_Resource

55

В действительности, средства языка SQL позволяют очень легко проводить достаточно сложную выборку данных, причем делать это в интерактивном режиме. Например, нас интересуют все слова с длиной = 15 букв, начинающиеся с 'мак':

SELECT F.name
  FROM Entry_Form F
  WHERE Len( F.name )=15 AND Left( F.name, 3 )='МАК';

Тут же получаем:

МАКСИМАЛЬНЕЙШИЙ

МАКСИМАЛЬНЕЙШАЯ

МАКСИМАЛЬНЕЙШЕЕ

МАКСИМАЛЬНЕЙШИЕ

МАКСИМАЛЬНЕЙШЕЙ

МАКСИМАЛЬНЕЙШИХ

МАКСИМАЛЬНЕЙШИМ

МАКСИМАЛЬНЕЙШЕЙ

МАКСИМАЛЬНЕЙШИМ

МАКСИМАЛЬНЕЙШЕЮ

МАКСИМАЛЬНЕЙШИЙ

МАКСИМАЛЬНЕЙШУЮ

МАКСИМАЛЬНЕЙШЕЕ

МАКСИМАЛЬНЕЙШИХ

МАКСИМАЛЬНЕЙШЕЙ

МАКСИМАЛЬНЕЙШИМ

МАКСИМАЛЬНЕЙШЕМ

МАКСИМАЛЬНЕЙШЕЙ

МАКСИМАЛЬНЕЙШЕМ

МАКСИМАЛЬНЕЙШИХ

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

Экспорт словаря из бинарного формата в SQL

  © 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