packin.ru

 Русский гиперсловарь Ариадна

Ариадна 2.

На этой странице описана работа по приложения Абриаля к построению комбинированного русского гиперсловаря .


Последние новости - разработана улучшенная версия программы Ариадна - Ариадна 2. Её можно скачать отсюда - из раздела Файлы.

Основные дополнения второй версии:

  1. Появилась система просмотра гиперсловаря через гипертекстовую оболочку программы Абриаль 2. Словарь представляется пользователю в виде некого аналога веб-сайта.
  2. Значительно упростился процесс установки и запуска программы. Практически всё стало работать с одного запуска. Сложная инструкция первой версии программы теперь не актуальна. Отдельных библиотек для работы программы больше не нужно.
  3. Содержательная часть словаря и программы генерации почти не изменилась. Однако, в институте силами наших лингвистов началась работа по существенному улучшению качества морфологической сегментации. Результатом этой работы должен стать электронный словарь русских морфем и морфологический словарь в объеме корпуса слов словаря Зализняка.

Ниже находятся материалы по первой версии.


За основу взят Грамматический словарь русского языка А.А. Зализняка. В нём проведена морфологическая сегментация слов, так что получилось некое подобие Словаря морфем русского языка (А.И. Кузнецовой и Т.Ф. Ефремовой). В результате получена база данных в формате Абриаля. Весь этот комплекс работ назван именем Ариадна. Возможно и результирующий словарь будет называться тем же именем.

Ниже приведено Содержание файла README.TXT из установочного пакета программы с необходимым набором инструкций.

История развития проекта описана в тексте рассылок по проекту Абриаль за конец 2001-го года.

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

Программу RUS для самостоятельной работы со словарём, можно скачать отсюда. Зип-архив нужно распаковать в отдельную директорию (на диске должно быть свободно около 200М) и запустить там процедуру RUN.BAT. Для работы программы RUS могут понадобиться библиотеки от Борланда  Дельфи/Билдер 5. Их можно скачать отсюда . Подробнее см ниже.


Содержание файла

О проекте

Гиперсловарь "Ариадна" - проект РосНИИ Искусственного Интеллекта http://www.artint.ru . Основная работа проделана осенью 2001 года Пацкиным А.И.  http://packin.narod.ru . По форме гиперсловарь является базой данных в среде системы Абриаль. По содержанию словарь состоит из грамматической части, т.е. словаря А.А. Зализняка с возможностью получения склонений и спряжений слов, и морфологической части, где те же слова разбиты на морфологические сегменты. По существу словарь представляет собой сеть, по которой средствами системы Абриаль пользователь может осуществлять навигацию, аналогичную просмотру страниц в Интернете.

Проект описан на странице http://www.artint.ru/packin/abrial/ariadna.htm

Цели работы

1. Испытать пригодность системы Абриаль для работы с базами данных достаточно большого размера.

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

 

Системные требования

  1. ОС Windows 95/98/ME/NT/2000/XP (На 95 не проверялась, но должна работать)
  2. Оперативная память 256M. (Нужна для создания словаря, а для работы с готовым словарем, возможно, хватит 128M).
  3. Скорость: порядка PentIII-850. Можно и меньше, но тогда загрузка словаря (разовая работа) займет значительное время. Для работы с готовым словарем скорость не так критична.
  4. Около 200М на диске. +75М на каждую дополнительную сохраненную версию словаря.

 

Порядок установки гиперсловаря.

0. Скачать и установить в отдельную папку (например, c:\Ariadna) установочный пакет файлов "ariadna" со страницы http://www.artint.ru/packin/abrial/download.htm . Раз Вы читаете этот файл, то этот пункт Вы уже, вероятно, выполнили.

1. Скачать и установить библиотеки Дельфи/Билдера со страницы:

http://www.artint.ru/packin/abrial/download.htm  (или прямо с ftp: ftp://www.artint.ru/packin/ftp/cb5libx.exe )

2. Скачать и установить последнюю версию программы Абриаль со страницы http://www.artint.ru/packin/abrial/download.htm 

3. Зарегистрировать программу Абриаль. Без регистрации не будет работать сохранение базы данных в виде быстро загружаемого образа памяти. Порядок регистрации: из главного меню вызвать окно "Регистрация", там ввести свое имя (предпочтительно латынью), затем нажать кнопку "Копировать", в результате чего комбинация Номер:Имя окажется в буфере, откуда его нужно вставить в письмо мне (aleksandr@tochka.ru). Вставка обычно работает от Shift-Insert. В ответ на это письмо Вам будет прислан код регистрации, который нужно вставить в окне "Регистрация" и нажать "Применить".

4. Выполнить командный файл dllcopy.bat (он копирует в системной директории cc3250mt.dll в cc3250.dll).

5. Выполнить командный файл run.bat. Он состоит из трех вызовов основной программы RUS:

  1. 5.1 Вызов без параметров - считает пару минут. В результате для всех исходных форм слов вычисляются производные формы (т.е. склонения, спряжения...) и рассчитываются "профили", т.е. группы одинаково изменяющихся слов.
  2. 5.2 Вызов с параметром -A - считает где-то около часа. Производится морфологическая сегментация слов.
  3. 5.3 Вызов с параметром -B - считает около минуты. На базе результатов прошлых шагов строит исходные файлы базы данных Абриаля (в поддиректории ABR\).

Внимание! Все три шага должны пройти полностью именно в таком порядке. Если что-то собьется, счет можно прервать нажатием Ctrl-C. и затем повторить с самого начала.

Если программа проскакивает мгновенно, или ничего не "печатает", то, скорее всего не (полностью) выполнены пункты 0,1, или 4.

6. На этом этапе получены не только исходные файлы БД Абриаля, но и множество текстовых файлов с протоколами работы программы RUS. Например:

  • Root_log.txt - вхождение корневых сегментов в слова
  • tooR_log.txt - то же, но упорядоченное с конца слова
  • Suff_log.txt - вхождение суффиксных сегментов в слова
  • Pref_log.txt - вхождение префиксных сегментов в слова
  • Aresult,Arespril,A-verbs - производные словоформы для существительных, прилагательных и глаголов соответственно.

и т.д. С этими и другими файлами рекомендуется познакомиться, особенно если программы Абриаль нет, или если она Вас не интересует.

7. Далее следует запустить программу Абриаль и загрузить файлы баз данных в следующем порядке:

  • meta.ab (описание структуры БД - файл входит в установочный пакет)
  • prod.ab
  • Gen_Nod.ab
  • Gen_pr.ab
  • Gen_tp.ab
  • Gen_co.ab

Суммарное время загрузки на компьютере Athlon 1.1G заняло около 520 минут (8.6 часов). Файлы можно загружать либо по отдельности, либо склеив их предварительно в один файл процедурой join.bat.

  • 7.1. При загрузке по одному файлу рекомендуется сохранять базу данных в виде образа памяти (файлы формата *.am) после загрузки очередного файла. Время загрузки можно оценить по размеру файла. Gen_co.ab загружается примерно за половину общего времени. (Этот файл отвечает за морфологическую сегментацию, так что в принципе можно обойтись без него).
  • 7.2. При загрузке всех файлов одним потоком нужно прогнать командный файл join.bat, и загружать получившийся файл fullbase.ab. Если у Вас имеется возможность оставить компьютер работающим на длительное время, например на ночь, то этот способ может оказаться более удобным.

8. Как только база данных загрузится полностью, не спешите ее просматривать, первым делом её надо сохранить в форме образа памяти (файл формата *.am), например, под именем fullbase.am. Далее можно перевести дух - этот файл грузится в память несколько секунд.

9. К этому моменту пакет Ариадна своё дело выполнил, и далее можно пользоваться только результирующей базой данных в виде образа памяти. Эту БД можно загружать, просматривать и корректировать через программу Абриаль.

Структура базы данных.

Базисная структура

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

Этим уровням узлов соответствуют классы объектов: n1, n2, n3, n4, n5, n6, n7. Однако самым верхним уровнем, через который можно "войти" в словарь, является не n1, а добавочный уровень (класс) "l", соответствующий начальной букве слова. Таким образом, основой гиперсловаря является множество деревьев по числу начальных букв слов.

Объекты-слова

Узлы могут соответствовать частям слов или полным словам. Если узлу соответствует слово, или несколько слов-омонимов, то на таком узле "висит" один или несколько объектов (классов w1,w2,...w7), соответствующих этим словам. Классу n1 соответствует w1, n2 - w2, и т.д. Объекты-слова под одним узлом различаются по номерам, начиная с нуля. В большинстве случаев обозначение слова отличается от обозначения соответствующего узла, добавлением в конце "\0" и иным обозначением класса после двоеточия.

Например, слову "кошка" соответствует узел К\кош\к\а:n3, но т.к. в словаре есть две по разному склоняемых кошки (живая и инструмент), то на этом узле висят два объекта: К\кош\к\а\0:w3 и К\кош\к\а\1:w3.

Морфологическая часть словаря.

Класс "a" соответствует префиксным сегментам, r - корневым сегментам, s - суффиксным сегментам. Эти три класса содержат большое число объектов, поэтому они для удобства просмотра разбиты по первой букве и помещены "под" класс l.

Класс "e" соответствует сегментам окончаний. Окончаний не так много, и они собраны вместе в обычном классе, доступном с "главного входа" в словарь. Все эти четыре класса (a,r,s,e) связаны бинарным отношением "c" с классами слов w1-w7. Отношение "c" имеет смысл: "сегмент входит в состав слова".

Грамматическая часть словаря.

Класс t содержит грамматические типы слов (часть речи, одушевленность, род):

  • м - существительное мужского рода неодушевленное
  • мо - существительное мужского рода одушевленное
  • ж - существительное женского рода неодушевленное
  • жо - существительное женского рода одушевленное
  • с - существительное среднего рода неодушевленное
  • со - существительное среднего рода одушевленное
  • можо - существительное так наз. общего рода одушевленное
  • числ - числительное (количественное или собирательное)
  • местоим - местоимение (точнее, местоимение-существительное)
  • местоим-прил - местоименное прилагательное
  • нсв - глагол несовершенного вида
  • св - глагол совершенного вида
  • св-нсв - глагол совершенного и несовершенного вида
  • п - прилагательное
  • числ-пор - порядковое числительное (= счетное прилагательное)

Отношение t связывает слова (w1...w7) с их грамматическими типами t.

Класс "c" содержит типы словоизменения, "квази-падежи", далее просто "падежи".

Класс "f" содержит профили, т.е. группы одинаково изменяющихся слов (см. ниже). Профили именуются по первому слову, входящему в группу.

Класс "x" содержит хвосты, т.е. профильные окончания. Его не следует путать с классом "истинных" окончаний "e", т.е. c сегментами. Хвосты содержат всю изменяемую часть слова (или даже всё слово - для таких слов, как "ребёнок").

Трехместное отношение prod задаёт хвосты профилей в разных падежах.

Трехместное отношение p связывает слова с их профилями с указанием основы.

Ассоциации (виртуальные отношения) _cn _nod _word _gen динамически вычисляют слитное написание слов, и рассчитывают все производные грамматические формы для слов (задаваемых обычно своей исходной формой). По существу ассоциация _gen склоняет существительные и прилагательные и спрягает глаголы.

Подробнее о профилях

Что такое профиль слова? Берем какое-нибудь слово, например существительное "кошка" (животное), образуем из него двенадцать производных форм, т.е. по 6 падежей для единственного и множественного числа. Это делается по сложным правилам русской грамматики, описанным в словаре Зализняка на 170 страницах. Далее - во всех 12-ти формах определяем общую начальную часть - (будем называть её "основой"). В данном случае это - "кош". Отбрасываем основу от всех 12-ти форм, а то, что осталось, т.е. упорядоченный набор из 12-ти "хвостов": (ка, ки, ке, ку, кой, ке, ки, ек, кам, ек, ками, ках) мы и будем называть "профилем" слова. Кстати, отметим, что у кошки - животного и у кошки - инструмента, профили разные. Далее, группируем вместе все слова с одинаковыми профилями, и именуем каждую группу, т.е. каждый профиль первым по порядку словом в словаре, имеющим данный профиль. Тогда получается, что кошка-животное склоняется по профилю "австриячка", а кошка-инструмент - по профилю "автопокрышка". Обратим внимание, что есть несклоняемые слова, (например, "адажио") имеющие "нулевой" профиль, т.е. профиль со всеми пустыми хвостами. И есть такие слова, как ребёнок (во множ. числе "дети"), склоняемые по уникальному "полному" профилю, т.е. в этих случаях пустой является основа.

Что нам дают профили? Прежде всего - огромное упрощение грамматических процедур. Те, упомянутые выше, 170 страниц с описанием русской грамматики, реализуются в виде довольно сложной и громоздкой программы. Но как только мы выделили профили - про все эти сложности можно забыть. Описание ассоциации _gen, а это, по сути, маленькая программка, занимает всего несколько строчек текста. Её задача - проста до примитива: берётся профиль слова, и его основа, из профиля извлекается "хвост" для нужного "падежа" - и к основе приклеивается хвост. Таким образом, кардинально упрощается основная подзадача генерации русского текста. При этом добавление в словарь новой лексики тоже сводится к примитивной процедуре: для нового слова просто указывается аналогично изменяемое, что обычно сделать легко, берется его профиль, и новое слово с этим профилем помещается в словарь.

Профили и анализ текста.

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

Стоит отметить также, что результаты этого первичного низкоуровнего анализа нет смысла выдавать "наружу". Ради этого не стоило бы затевать гиперсловарь. Весь смысл гиперсловаря именно в том, чтобы весь анализ, в том числе его высокие уровни проходили в одной той же среде. Уже реализованная морфологическая сегментация даёт основу для экономного описания семантики. Например, большинство слов с суффиксной группой "ийк" обозначают женщин разных национальностей, ассир/ийк/а, бельг/ийк/а и т.д., а корень "бельг" относится только к словам, связанным с Бельгией: бельг/иец, бельг/ийк/а, бельг/ийск/ий.

Морфологическая сегментация

Все слова в словаре были разбиты на несколько (от одного до семи) морфологических сегментов. Возьмем самое полное разбиение: в/нутр/и/за/вод/ск/ой.

Здесь:

  • в - приставочный сегмент первой половины
  • нутр - первый корень (на этом месте возможны такие сегменты, как авто-,моно-...)
  • и - суффиксная группа первой половины
  • за - приставочный сегмент
  • вод - корневой сегмент
  • ск - суффиксный сегмент
  • ой - окончание

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

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

 

Рассылки за осень 2001-го года (история проекта Ариадна).

От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 19 сентября 2001 г. 0:19 

Тема: ABRIAL dispatch 

Здравствуйте коллеги! 

В данной рассылке будут поступать новости по проекту Абриаль. Краткое содержание предыдущих серий :).

  • Март - сделан оригинальный продукционный механизм. (была рассылка).
  • Май - сделана база данных по тезаурусу Роже.
  • Июнь - собран первый инсталляционный пакет и сделан сайт проекта. http://www.artint.ru/packin/abrial/index.htm или http://packin.narod.ru/pro/ 
  • Июль - доработка вычислительной модели. (+сайт института). http://www.artint.ru/index.htm
  • Август - создана первая веб-версия Ариаля (ВЕБриаль). http://www.artint.ru/packin/abrial/webrial.htm - выложены на сервер демонстрационные базы данных (5 шт.). http://www.artint.ru/packin/abrial/demo.htm
  • Сентябрь - выложена на сервер база данных по тезаурусу Роже. http://www.artint.ru/packin/a.exe/first - начато создание базы данных по словарю Зализняка (с сервера Старостина: http://starling.rinet.ru/morphoru.htm
  • - в настоящий момент закончен текстуальный анализ исходного файла и в основном сделана генерация форм всех существительных. Остались слова типов (пламя, мышонок, королевна, крестьянин , чередование е/ё, чередование о/е, и все нерегулярные склонения/чередования), кроме того нужно исключить лишние или трудные формы типа plur.tant. и т.п.). Предстоят прилагательные и глаголы. 

Александр Иосифович Пацкин. mailto:aleksandr@tochka.ru 


От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 26 сентября 2001 г. 20:07  

Тема: ABRIAL dispatch 1

Здравствуйте коллеги!...

  • Сентябрь - выложена на сервер база данных по тезаурусу Роже. http://www.artint.ru/packin/a.exe/first
  •  - начато создание базы данных по словарю Зализняка. Цель этой работы - получить в системе Абриаль базу данных по морфологии русского языка. В дальнейшем она будет выложена в интернет в качестве ценного ресурса и будет предоставлена сотрудникам института для всего спектра лингвистических задач - синтеза анализа, онтологии, документооборота и т.д. Планируется через словарь Мюллера объединить эту базу с уже имеющейся базой данных по тезаурусу и с планируемой - по WordNet. В результате должна получиться БД из пяти словарей: Роже, WordNet, Мюллер, Зализняк, Ожегов. 
  • - в настоящий момент закончена работа для существительных. Построены все формы для существительных и произведена их кластеризация по "профилям". Профилем я называю набор из 12-ти окончаний. Окончания не в строгом смысле (по Зализняку), а фактически изменяемых хвостов слов. В русском языке оказалось 324 профиля. С учетом более точной обработки буквы Ё и некоторых исключений это число может измениться, но не намного. Сейчас начата аналогичная работа для прилагательных. У прилагательных получается 25 производных форм (псевдо-падежей). Очевидно прилагательные и существительные адъективного склонения (полицейский,запятая, животное) будут также разделены на профили. 

От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 3 октября 2001 г. 13:36 

Тема: ABRIAL dispatch 2 

Здравствуйте коллеги! ...

  • Сентябрь - выложена на сервер база данных по тезаурусу Роже. http://www.artint.ru/packin/a.exe/first 
  • Начато создание базы данных по словарю Зализняка. Цель этой работы - получить в системе Абриаль базу данных по морфологии русского языка. 
  • В настоящий момент закончена работа для существительных и прилагательных. Сейчас проводится работа для глаголов. 

С глаголами получается большое количество нудной ручной работы из-за множества чередований в основе (взобраться/взберусь). Тем не менее, дело продвигается. Глаголы разбиты на 146 образцов, осталось 432 из 27748. 


От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 10 октября 2001 г. 1:19 

Тема: ABRIAL dispatch 3 

Здравствуйте коллеги! ....

  • Сейчас проводится работа для глаголов. С глаголами получается большое количество нудной ручной работы из-за множества чередований в основе (взобраться/взберусь). Тем не менее, дело продвигается. Глаголы разбиты на 176 образцов и 100 нестандартных. Нужно еще дней десять на глаголы.

Найден хороший каталог по компьютерной лингвистике. Рекомендую: http://www.rvb.ru/soft/catalogue/catalogue.html 

...


От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 19 октября 2001 г. 23:46

Тема: ABRIAL dispatch 4 

Здравствуйте коллеги! ....

  • В целом закончена работа для существительных, прилагательных и глаголов. 
  • Глаголы кластеризованы, т.е. разбиты на сходные морфологические группы (профили). Их оказалось 674. На следующем семинаре покажу. 

Теперь нужно: 

  1. доскрести словарь в разных углах (местоименное склонение, числительные, сравнительные формы прилагательных, возвратные формы глаголов и т.д.). 
  2.  Параллельно будет создана морфологическая база данных по уже сделанному основному куску словаря. Первый набросок этой БД надеюсь сделать быстро. 

От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 25 октября 2001 г. 0:36 

Тема: ABRIAL dispatch 5 

Здравствуйте коллеги! ....

В настоящий момент получен (загружен) первый вариант базы данных. Логически в него входят субстантивное склонение (существительные), адъективное склонение (прилагательные) и все отглагольные формы. Структурно база (грубо) состоит из двух частей 1) профили морфологии - каждый профиль описывает группу слов с идентичным словоизменением. Например для существительных профиль содержит 6*2=12 хвостов-окончаний в 12-ти возможных падежах. 2) Все слова словаря со ссылкой на свой профиль с указанием основы, к которой добавляются хвосты. (как основа, так и хвосты могут быть пустыми). Например: ладья(лад)--->бадья Слово "ладья" склоняется по профилю "бадья" с основой "лад". К этой основе добавляются все окончания профиля "бадья". Сам профиль именуется по первому по порядку слову, использующему этот профиль. Текущий вариант базы данных в полном виде не очень годится для показа и демонстрации в инете, т.к. БД долго грузится. Однако сегодня сделано этапное дело: сделано виртуальное отношение, при просмотре базы на лету генерирующее все производные формы от исходной (в частности склоняющее и спрягающее слова).

.... 


От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 31 октября 2001 г. 0:36

Тема: ABRIAL dispatch 6 

Здравствуйте коллеги! ...

  • 25 окт. получен (загружен) первый вариант базы данных. 

В настоящий момент структура базы данных модифицируется с целью сделать более удобной и эффективной работу с данными через программу Абриаль, или через интернет. В БД входят чуть менее 100000 слов (всякие "латимерия" и "ламаркизм"). Чтобы загрузка и просмотр БД были эффективны нужно слова сегментировать, т.е. разделить на "морфы". Это можно сделать: а) чисто механически, т.е. по первой или первым двум буквам (так было сделано с Роже), б) Морфологически - это требует значительной ручной работы по вводу корневых морфем. в) статистически - т.е. сегменты будут выделены кластеризацией всего словаря одновременно. Скорей всего я пойду третьим путем, с небольшим добавлением 2-го. Обрубать 1-2 первые буквы не очень красиво. 

.... 


От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 14 ноября 2001 г. 14:43

Тема: ABRIAL dispatch 7 - сайт Абриаля восстановлен. 

...


От: А.И.Пацкин [aleksandr@tochka.ru] Отправлено: 20 декабря 2001 г. 15:08 

Тема: ABRIAL dispatch 8 

Здравствуйте коллеги! После месячного перерыва, за который прошу меня извинить, возобновляется рассылка по проекту Абриаль. Напоминаю, как выглядит состояние дел по проекту с птичьего полета. (По возможности - не на птичьем языке:). 

  • Август- сделана первая демонстрация работы Абриаля в интернете на сайте института, Она была названа ВЕБриаль. Через этот интефейс удалось эффективно просматривать такие большие Базы Данных (БД), как Тезаурус Роже. 
  • Сентябрь, октябрь - был преобразован в базу данных словарь Зализняка. В частности была сделана внутри активного словаря генерация всех форм для изменяемых слов. (сущ-х, прил-х, местоимений и глаголов). Однако эта БД оказалась по объёму не очень удобна для просмотра не только в инете, но и на настольном компьютере. Потребовалось либо утроить мощность компьютера, либо реорганизовать БД.
  • Ноябрь- решено было провести "разведку боем" и реорганизовать словарь, разбиением слов на морфемные сегменты. Например недоопре/дел/ённост/ь. Здесь недоопре - префиксный сегмент, ённост - суффиксный, дел корень, а ь - окончание. Это было сделано и результат получен весьма интересный. БД уже можно просматривать на настольном компьютере, насчет инета - нужно еще работать. По содержанию. Исконно русская часть разбилась довольно хорошо, даже маленькие открытия (для меня) сделаны (вз/буд/о/раж/и/ть). А то, что пока не разбилось правильно (сва/лк/а вместо с/вал/к/а) в принципе ясно как поправить малой кровью. Но с иностранными словами, каковых в словаре оказалось чуть не 2/3, работы действительно много, как с данными, так и с программой. Мне бы здорово помогло, если бы я имел список законных суффиксных блоков, сейчас их около 9 тысяч вместе с грязью, а нужно выделить из них тысяч 5 правильных. С префиксами легче, т.к. их меньше. Итак эта работа ждет помощников со стороны лингвистов, и переговоры об этом ведутся. 
  • Весь этот новый проект - по созданию больших словарных БД на Абриале, с подачи Лены Соколовой обрел имя, и теперь будет называться АРИАДНА. Я бы включил туда не только русский, но и Роже тоже. По большому счету меня на два проекта уже не хватает, и я бы очень хотел в конце концов передать проект Ариадна в хорошие руки. 
  • Декабрь - Сейчас вся эта осенняя работа готовится к публикации на сайте, совместно с новой версией Абриаля 1.6, в которой исправлены самые гадкие для пользователей загогулины. Прилагаю все усилия, чтобы успеть это выложить в этом году. 
...

Техническое описание работы программы

   Тип программы - Win32 консольная программа

   Название - RUS.exe

   Параметры :

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

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

        не-благ-о-при-сто-йн-ый

        |  |    | |   |   |  |

        |  пол1 | преф1   |  хвост (окончание)

        преф    |     |   суффиксы

                суфф0 корень  

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

- если вызов с параметром -B (где B - латинское), то производится окончательный расчет с генерацией исходных текстов базы данных Абриаля.

В нормальном режиме программу нужно выполнить трижды в следующем порядке: сначала без параметров, затем с параметром -A, затем с параметром -B.

Входные файлы

файл ZZZ содержит грамматический словарь русского языка Зализняка Обычный текстовый файл в кодировке 866 (ДОС) по одному слову на строчку. Формат типичной строки (от которого возможно много отклонений):

 ИСХ-ФОРМА номер-ударения часть-речи индекс [дополнения...]

где ИСХ-ФОРМА либо слово в своей неизменяемой форме, напр. быстро либо исходная (основная) форма, т.е. для склоняемых именительный падеж ед.числа (или множественного, если нет единственного числа (щипцы )) или может быть и другой падеж если нет именительного (дровец ) номер-ударения - номер буквы, на которую падает ударение в исходной форме часть-речи - это либо сокращенный код части речи (п - прилагательное), либо для существительных и глаголов подробнее: для сущ-х указавается род и одушевленность, для глаголов - нсв или св - признак совершенности/несовершенности. Индекс имеет сложную структуру основных две части:

  1. цифра индекса (или "форма") - число от 0 до 16

  2. схема ударения - буква от а до F,  причем буквы в файле либо русские (а в с е), либо латинские (D,F) если цифра индекса 0, то слово неизменяемое и больше в форме ничего нет; а - значит что во всех формах ударение на основу; в - значит что во всех формах ударение на окончание; ... остальное - смешанные ударения.

Кроме словаря программа использует в работе вспомогательные файлы:

FORM.INI -- форматы склонения существительных и прилагательных (через дробь записываются окончания под-ударением/без-ударения) (Примечание: часть предыдущего файла FOR_PR.INI -- форматы склонения прилагательных) 

VERB_FMT -- форматы спряжения глаголов и отглагольных форм.

Выходные файлы

Выходных файлов много (они все есть в модуле files), а именно:

Есть следующие группы файлов:

ABR\*.AB - это собственно выходные файлы базы данных Абриаля

или те же файлы в читаемой форме

SU_PROTO INI - профили существительных

SU_FORMS INI - привязка существительных к профилям

GL_PROTO INI  - профили глаголов

GL_FORMS INI  - привязка глаголов к профилям

PR_PROTO.INI  - профили прилагательных

PR_FORMS.INI - привязка прилагательных к профилям

REF\*.* - сюда выводятся разные попутные справочные материалы, разные ошибки, необработанные части статей, словари свойств

RES\*.*  - а сюда словарь выводится рассортированный по частям речи, чтобы удобнее было разбираться

ARESULT - сгенерированные формы существительных

ARESPRIL - сгенерированные формы прилагательных

A-VERBS - сгенерированные отглагольные формы ВСЕ

A-VERBS?? - сгенерированные отглагольные формы по группам спряжения

               ?? = 01-16 - регулярные формы

               00 - нерегулярные

ALEFT - оставшаяся необработанной часть ZZZ

     Подробнее см. файл FILES.CPP

ОПРЕДЕЛЕНИЕ ПРОФИЛЯ

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

Нулевой профиль - у неизменяемых слов - все окончания нулевые.

Полный профиль - у таких слов как ИДТИ или РЕБЁНОК, т.е. изменяемых целиком (ШЛА, ДЕТЬМИ)