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

Инструменты для изменения словаря

В составе SDK Грамматического Словаря есть несколько программ, позволяющих вносить изменения в словарь.

Это, прежде всего, программа SQLex для редактирования лексикона и тезауруса, загруженных в SQL базу данных. Она предоставляет возможность коллективной работы над словарем, реализуя клиент-серверную парадигму доступа к данным. Программу дополняет утилита экспорта данных из SQL базы в формат языка ПРИИСК для сборки бинарного словаря.

Для редактирования тезауруса можно использовать программу Thesaurus. Она входит в состав SDK грамматического словаря и SDK синонимизатора.

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

Утилита xml2sol, доступная в исходных текстах в SDK Грамматического Словаря, позволяет конвертировать описание словарных статей из xml-формата во внутренний текстовый формат словаря.

Программы Thesaurus и LexiconEditor требуют для своей работы установленного .NET Framework.

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

С помощью функций процедурного API можно вносить изменения в бинарный словарь, к примеру:

sol_DeleteLink - удаление связи из тезауруса

sol_AddLink - добавление связи в тезаурус

Спецификации объявления новых слов и связей

Словарные статьи (слова и их грамматические формы) и связи (синонимы, антонимы и так далее) попадают в бинарный словарь при трансляции текстовых данных. Формат объявления новых слов и связей разработан так, чтобы его можно было редактировать вручную, в простом текстовом редакторе. Разнообразные утилиты типа LexiconEditor, Thesaurus и связка SQLex+sql2sol просто предоставляют удобный графический интерфейс для создания таких описаний.

Таким образом, желательно ознакомиться с такой информацией:

Описание словарных статей

Описание связей в тезаурусе

В состав SDK входят примеры текстовых файлов с объявлением новых слов и связей - смотрите содержимое каталога ...\dictionary.src\userdic. По аналогии с представленными там примерами можно вводить русские наречия, существительные, прилагательные и причастия, глаголы и инфинитивы, а также деепричастия. Откройте файл userdic-entries.sol - там есть примеры словарных статей, а в файле userdic-links.sol есть примеры задания связей.

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

В SDK, начиная с версии 11, входит учебный набор правил для синтаксического разбора русского предложения. После внесения изменения в исходный текст этих правил можно пересобрать анализатор, заменив штатный парсер своим. Для сборки анализатора запустите скрипт ...\scripts\dictionary\tiny-syntax.cmd. При нормальном выполнении в консоли будет примерно такая картинка:

пересборка учебного анализатора

Как отлаживать собранный анализатор рассказано на странице описания консольного отладчика.

Сборка пользовательского словаря

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

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

Кроме того, нельзя изменить логику работы сегментатора и морфологического анализатора.

Рассмотрим по шагам добавление словарных статей и синонимов в рамках инструментов, предоставленных в SDK.

Сначала добавим пару словарных статей.

Запустите программу lexicon_editor.exe в подкаталоге ...\exe.

Внесите словарную статью для нового существительного, как показано на скриншоте:

новая словарная статья

Нажав кнопку "Add entry" в нижней части окна, Вы сохраните внесенные данные в текстовых файлах _entries.sol, _links.sol и еще нескольких в каталоге программы.

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

Далее, вносим второе существительное:

новая словарная статья

Теперь можно закрыть программу LexiconEditor.

Введенные Вами словарные статьи и связи она сохранила в нескольких текстовых файлах в своем каталоге. Прежде всего, обратите внимание на _entries.sol и _links.sol. Вам нужно скопировать содержимое этих файлов в два текстовых файла:

...\dictionary.src\userdic\userdic-entries.sol

...\dictionary.src\userdic\userdic-entries.sol

Обратите внимание на пояснения в этих файлах.

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

Вы также можете редактировать содержимое этих файлов простым текстовым редактором. Таким способом можно удалять или исправлять неправильно внесенные данные.

Далее наступает этап сборки итогового словаря, который объединит данные из базового словарного модуля и наши словарные статьи.

Запустите командный файл

...\scripts\dictionary\russian-userdic.cmd

Он выполнит всю работы, взяв базовый словарь из подкаталога ...\basedic, и записав результат в ...\bin-windows.

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

пользовательский словарь

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

Например, запустите утилиту Lexicon. Перейдите по меню в режим поиска связей в тезаурусе и введите внесенные новые существительные - программа успешно найдет внесенные Вами синонимы:

связь между новыми словарными статьями

Проверим, как наши новые существительные будут работать в модулях синонимизации. Запустите синонимизатор в интерактивном режиме с "педантичным" режимом":

synonymizer.exe -pedantic -language russian

Введите простую фразу с участием одного из новых существительных:

пользовательский формат

Сборка правил перефразировки

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

Правила перефразировки находятся в файле ...\dictionary.src\rus_paraphraser.sol. Синтаксис этих правил описан здесь.

После изменения текстового файла правил необходимо пересобрать словарь. Процесс сборки похож на создание пользовательского лексикона, описанное ранее. Отличие состоит в том, что в качестве базового словаря берется содержимое каталога ...\bin-windows. Сама пересборка осуществляется скриптом ...\scripts\dictionary\russian-syntax.cmd. Результат работы - новый файл syntax.bin, который как раз содержит скомпилированные правила. Остальные файлы бинарного словаря в bin-windows остаются нетронутыми.

Для проверки результата можно воспользоваться скриптом ...\scripts\rewriter\test-ru.cmd. Он запускает утилиту synonymizer, на вход подается текстовый файл ...\scripts\rewriter\ru.txt, результат записывается в подкаталог ...\tmp.

Сборка пользовательского словаря для переводчика

Работа со словарем для переводчика организована таким образом.

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

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

1. Выгрузить данные в формате языка ПРИИСК. Этим занимается утилита sql2sol.

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

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

Все эти шаги прописаны в скрипте ...\scripts\dictionary\jap-rus-userdic.cmd. Именно данный скрипт вызывается в программе SQLex по команде пользователя. В результате получается готовый к использованию в переводчике бинарный словарь, содержащий как данные из базового словаря, так и добавку из пользовательского.

Дополнительная информация

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

Компиляция грамматического словаря

Extending the grammatical dictionary

Grammatical dictionary configuration file

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


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



изменено 29-Jul-12