Создание собственных словарных баз для K-9

Создание собственных словарных баз для K-9

Для создания баз используется утилита MakeDict.
Утилита имеет едиственный параметр командной строки - файл описание проекта словаря (.dct файл).

Файл проекта

Файл состоит из строк вида
параметр значение
Имя параметра не зависит от регистра.
Строки, начинающиеся с символа # или ; являются комментариями

Параметры файла проекта
Имя параметра Обязательный Описание
Title

нет

Название словаря
Copyright

нет

Информация о лицензии
Version

нет

Версия редакции базы.

Задается в виде число.число
Collation

нет

Файл таблицы сортировки. Смотри "Таблица сортировки".
По умолчанию – Cyrillic
Target

да

Имя результирующего файла
Index

да

Файл индекса. Смотри "Файл индекса".
Articles

да

Файл статей. Смотри "Файл статей".
Abbreviations

нет

Файл сокращений. Смотри "Файл сокращений/частей речи".
Parts

нет

Файл частей речи. Смотри "Файл сокращений/частей речи".
Transcription

нет

Задает формат транскрипции.
На данный момент поддерживается только IPA.
При отсутствии этого параметра словарь создается без транскрипции.
Compressor

нет

Задает тип компрессора (*).
По умолчанию - zip

* На текущий момент поддерживаются компрессоры zip и bzip2. Компрессор zip встроен в программу и потому всегда присутствует. Поддержка остальных типов компрессии, включая bzip2, зависит от наличия соответствующей DLL. bzip2.dll входит в комплект поставки. Желающие реализовать другие алгоритмы компрессии могут обратиться к автору (robin_hood@hotmail.ru) за необходимой технической информацией.

Ниже приведен файл проекта словаря Мюллера:

Title		English-Russian Dictionary by Professor V.K.Mueller, 7 Edition
Copyright		Electronic Version by E.S.Cymbalyuk 1999 under GPL
Version		1.0
Target		\Epoc32\Wins\C\Мюллер
Abbreviations	Muller.abb
Index		Muller.idx
Articles		Muller.dat
Parts		Muller.pos
# Указывает на наличие в словаре транскрипции
# При отсутствии этой строки транскрипция не будет обработана
Transcription	IPA
# В данном случае не имеет смысла, т.к. zip используется по умолчанию
# Для получения “компактного” Мюллера используется
#Compressor	bzip2
Compressor	zip

Файл сокращений/частей речи

Состоит из строк вида:
символ подчеркивания (_) сокращенное значение точка или двоеточие пробел/табуляция полное значение.
Строки, начинающиеся с символа # или ; являются комментариями.
Файл может содержать до 256 значащих строк.

Пример:

_жарг. сленг; жаргон
_др-греч. древнегреческий
_v. глагол

Файл индекса

Данный файл является бинарным. Он состоит из последовательностей
заголовок
ключевое слово

Формат заголовка
размер (байт) значение
4 Смещение словарной статьи в файле статей.
2 Размер статьи в байтах
1 Длина ключевого слова в байтах

Однако вам не стоит пугаться, создавать этот файл вручную нет необходимости. В комплект поставки входит perl-script split.pl, который принимает на вход текстовый файл, состоящий из строк вида
ключевое слово два пробела словарная статья
и генерирует файл индекса и файл статей.

Ограничения: максимальная длина ключевого слова - 255 байт, максимальный размер статьи – 65535 байт.

Таблица сортировки

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

Ниже приведена универсальная кирилическая (русский, украинский, белорусский алфавиты) таблица сортировки:
АБВГҐДЕЁЄЖЗИІЇЙКЛМНОПРСТУЎФХЦЧШЩЪЫЬЭЮЯ
абвгґдеёєжзиіїйклмнопрстуўфхцчшщъыьэюя

Для поддержки только русского алфавита достаточно такой таблицы:
АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
абвгдеёжзийклмнопрстуфхцчшщъыьэюя

Универсальная кириллическая таблица встроена в MakeDict.

Файл статей

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

Формат словарной статьи

Статья состоит из параграфов (абзацев). Имеется четыре уровня абзацев.

Параграфы первого уровня

Верхний уровень нумеруется римскими цифрами в угловых скобках.

Пример:

<I> это первый абзац первого уровня <II> а это второй абзац первого уровня

Вот как это выглядит на экране:

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

<I первый вариант расшифровки> тело абзаца <II второй вариант расшифровки> тело абзаца

Пример:

<I American Bar Association> _n. американская ассоциация юристов <II American Basketball Association> _n. американская баскетбольная ассоциация <III American Booksellers' Association> _n. американская ассоциация букинистов

Еще один вариант – различные произношения слова. Для этого используется следующая форма тега:

<I [транскрипция1]> тело абзаца <II [транскрипция2]> тело абзаца

Вот как это выглядит на практике:

annex  <I [ИQneks]> _n. 1> прибавление, приложение, дополнение 2> пристройка, крыло, флигель <II [“Иneks]> _v. 1> присоединять; аннексировать 2> прилагать; делать приложение (к книге и т.п.) #Syn: add

Параграфы второго уровня

Параграфы второго уровня нумеруются арабскими цифрами с точкой. Основное их назначение – описания различных частей речи. В статье начало таких абзацев указывается при помощи тега арабская цифра.(точка) Как правило, после этого тега следует указание части речи.

Примеры:

[ИeIpЌsЗterIИЌщraI]_лат. 1. апостериорный, основанный на опыте 2. апостериори, из опыта, по опыту

[ЗeIbiщsiщИdE“rI“n] 1. _a. 1> расположенный в алфавитном порядке 2> относящийся к алфавит 3> азбучный, элементарный 2. _n. 1> обучающий/обучающийся грамоте 2> новичок, начинающий

Параграфы третьего уровня

Параграфы третьего уровня нумеруются арабскими цифрами с круглой скобкой. Основное их назначение – описания различных частей речи. В статье начало таких абзацев указывается при помощи тега арабская цифра> (угловая скобка).

Пример:

[ИQdv“k“sI] _n. 1> защита 2> адвокатура, деятельность адвоката 3> пропаганда (взглядов и т.п.)

Параграфы четвертого уровня

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

Пример:

[ИbQkЗwЌщt“] 1. _n. 1> а> заводь; запруженная вода #Ex: The back-waters of the Amazon are of enormous extent. - На Амазонке заводи обладают колоссальной протяженностью. б> _перен. тихая заводь; болото, застой, рутина #Ex: He had lived in a backwater all his life, and his ideas were often out of touch with reality. (F. Swinnerton) - Он прожил всю жизнь, как в тихой заводи, а его мысли часто не имели никакого отношения к (окржающей) реальности. 2> а> прилив б> обратное течение воды; струя противотечения 3> = backwash 1) (_особ. о морских волнах, наталкивающихся на высокие скалы) 4> узкий морской залив (отделен от основного морского пространства узкой полоской суши) #Syn: creek 2. _a. 1> обратный (о движении), текущий в обратном направлении 2> глухой, заброшенный, захолустный #Ex: backwater district - медвежий угол #Syn: abandoned

Расшифровка аббревиатур

Для расшифровки аббревиатур применяется тэг <& значение>

Пример:

<& 2-Dimensional> _a. в двух измерениях

Использование сокращений/частей речи

Сокращения/части речи идут в виде отдельного файла, формат которого описан в главе "Файл сокращений/частей речи". Сокращения и части речи можно использовать только в примерах и в телах абзацев.

Транскрипция

Транскрипция обрабатывается только при наличии в файле проекта строки Transcription IPA. Транскрипция должна быть в формате IPA и выделяется квадратными скобками ([]). В примерах транскрипция не поддерживается.

Примеры

Примеры употреблений слов выделяются тэгом #Ex: Этот тэг обозначает начало примера. Пример заканчивается там, где начинается следующий пример либо следующий абзац либо список (см. ниже). В примерах допускается использование сокращений/частей речи и ссылок на исходное слово (тэг ~).

Списки

Под списками подразумеваются списки синонимов антонимов и “Смотри также”.

Начало списка выделяется тегом #Syn: для списка синонимов, #Ant: для списка антонимов и #Also: для списка “Смотри также”. Слова в списке разделяются запятыми (,) список заканчивается там, где начинается следующий абзац или следующий список.

Примеры:

acumen  [“Иkjuщmen] _n. проницательность, сообразительность #Syn: acuity, insight, perception #Ant: bluntness, dullness, obtuseness, stupidity

break  [breIk] <I> 1. _n. 1> отверстие; трещина; пролом 2> прорыв 3> перерыв, пауза; перемена (в школе) #Ex: coffee 'break - перерыв на чашку кофе 4> #Also: break of day, by the break of day 5> _тел. тире-многоточие

Экранирование

Для экранирования управляющих символов применяется традиционный метод – символ 'обратная косая’ (\). Экранирование применимо в любой части статьи, включая транскрипцию.

Пример:

accurate  [ИQkjurIt] _a. 1> точный, правильный; accurate within 0\.001 mm - с точностью до 0\.001 мм

Если в данной статье убрать экранирование с символа точка, то компилятор воспримет последовательность 0. как начало абзаца второго уровня (см. "Принудительное начало абзаца") и выдаст ошибку. Использование экранирования заставляет компилятор интерпретировать символ точка именно как символ а не как часть управляющей последовательности.

Подстановка

Тэг ~ (тильда) применяется для подстановки слова, которому соответствует данная статья. Использование этого тэга позволяет существенно сократить объем результирующей базы. Подстановка производится в телах абзацев и примерах, в расшифровках аббревиатур и списках данный тэг не работает. Также можно использовать ссылку на часть слова. Для этого используется конструкция ~длина. Будьте осторожны: последующие ~ будут интерпретироваться как ~длина. MakeDict автоматически производит поиск слова в статье и его замену на ~ на последней стадии компиляции так что имеет смысл использовать только ~длина.

Пример:

абсолютный  absolute; ~ покой complete rest; ~8.ое невежество complete/utter/abysmal ignorance: ~ое большинство absolute/overwhelming majority; ~10. слух perfect ear, absolute pitch; ~ чемпион absolute/overall champion.

Ссылки

Ссылки дают возможность использовать одну статью для нескольких слов. Такая необходимость возникает, когда одно слово имеет несколько вариантов написания, например бегемот/гиппопотам, wagon/waggon. При использовании ссылки допускается указание разных транскрипций для разных написаний слова. Ссылка задается тэгом #Ref: ключевое слово. Ключевому слову должна соответствовать словарная статья (не ссылка!). Если необходимо указать другой вариант транскрипции, то она указывается перед тэгом #Ref:

Пример:

acclimate  [“ИklaImeIt] #Ref: acclimatize

acclimatize  [“ИklaIm“taIz] _v. 1> акклиматизировать #Ex: to ~ oneself to the surroundings - привыкнуть к окружающей обстановке 2> _refl. акклиматизироваться _тж. _перен. #Ex: these roses do not easily ~ - эти розы плохо приживаются в новых условиях #Also: acclimatize to

Принудительное форматирование

Поддержка принудительного форматирования доступна в версиях К-9 не ниже 1.32 и версии MakeDict не ниже 1.21. Принудительное форматирование введено для лучшей поддержки энциклопедий и толковых словарей.

Принудительный перевод строки

Принудительный перевод строки осуществляется при помощи тэга #Lbr:

Пример:

перевод строки  тэг \#Lbr: вызывает принудительный #Lbr: перевод строки

Принудительное начало абзаца

Принудительное начало абзаца осуществляется при помощи тэга #Pbr:

Пример:

Abandonment option  Опцион отказа #Pbr: Опцион, предполагающий прекращение инвестиций ранее изначально запланированного срока.

Скачать утилиты

Вы можете скачать описанные утилиты здесь:
- MakeDict 1.2 версия для Windows;
- MakeDict 1.2 версия для Linux, требует libc6.1.


[На главную] [Обновления] [Новости] [Клуб] [Обзоры программ] [Советы] [Обзоры железа] [SIBO] [Конференция] [Статьи] [Базы] [Ссылки] [Поиск]
http://femida-63.ru/ консультация от ведущих юристов тольятти.