Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Григорян Лев Арменович

Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения
<
Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Григорян Лев Арменович. Лингвистическое и программное обеспечение автоматической генерации структурного графа по русскоязычному названию органического соединения: диссертация ... кандидата технических наук: 05.25.05 / Григорян Лев Арменович;[Место защиты: Всероссийский институт научной и технической информации РАН].- Москва, 2015.- 191 с.

Содержание к диссертации

Введение

ГЛАВА 1. Обзор литературы 13

1.1. Химическая номенклатура 13

1.1.1. Задачи химической номенклатуры 13

1.1.2. Соответствие между названием и структурой химического соединения 14

1.1.3. Возможность автоматизации перевода названия в структурную формулу и структурной формулы в название 16

1.1.4. История разработки химических номенклатур 17

1.1.5. Номенклатура ВИНИТИ и диалекты в номенклатуре 19

1.1.6. Переводимость химической номенклатуры с языка на язык 21

1.1.7. Химическая номенклатура как еложноорганизованная система 22

1.2. Подступы к построению структурного графа по русскоязычному названию органического соединения 24

1.2.1. История разработки проблемы перевода названия химического соединения в структурный граф 24

1.2.2. История разработки проблемы автоматического перевода названия химического соединения с языка на язык 26

1.2.2.1. Проблема машинного перевода естественных языков 26

1.2.2.2. Подступы к автоматическому переводу химической номенклатуры 28

1.2.3. Методика получения структурного графа, соответствующего названию химического соединения, посредством обращения к специальному пополняемому массиву 30

1.3. Краткий обзор современных зарубежных номенклаторов 30

1.4. Выводы к главе 1 32

ГЛАВА 2. Структура программно-технологического комплекса «номенклатурный генератор» 33

2.1. Проект трехмодульной структуры программно-технологического комплекса «Номенклатурный Генератор» 33

2.2. Предметная область «Номенклатурного Генератора» 34

2.3. Выводы к главе 2 з

ГЛАВА 3. Разработка лингвистического обеспечения программно технологического комплекса «номенклатурный генератор» 37

3.1. Краткая типология компонентов названия химического соединения 37

3.2. Фундаментальные принципы химической номенклатуры, лежащие в основе диссертационной работы 38

3.2.1. Принцип морфемной членимости названий химических соединений 38

3.2.2. Опора на интернациональный характер морфем 40

3.2.3. Соответствие морфем фрагментам химических структур и правилам химической номенклатуры 41

3.3. Классификация химических морфем 43

3.4. Название химического соединения с точки зрения его синтаксической структуры 46

3.5. Функциональные типы химических морфем 47

3.6. Контекстные правила укорачивающей грамматики G 51

3.7. Словари химических морфем

3.7.1. Устройство основного словаря химических морфем 57

3.7.2. Устройство словаря перевода 59

3.7.2.1. Проблема омонимии 60

3.7.3. Словарь синонимичных замен 62

3.7.4. Диалоговые функции словарей «Номенклатурного Генератора» 64

3.8. Выводы к главе 3 64

ГЛАВА 4. Анализ предметной области «номенклатурного генератора» 65

4.1. Предметная область модуля-номенклатора 65

4.1.1. Анализ номенклатуры названий алифатических соединений 65

4.1.2. Анализ номенклатуры названий простейших моноциклических соединений 72

4.1.3. Анализ заместительной номенклатуры для соединений с функциональными группами 73

4.1.4. Анализ заменительной номенклатуры («а»-номенклатуры) 77

4.1.5. Анализ расширенной системы Ганча-Видмана 81

4.1.6. Анализ номенклатуры названий ароматических соединений 86

4.1.7. Обобщенный перечень классов химических соединений, названия

которых составляют предметную область модуля-номенклатора 92

4.2. Предметная область модуля-переводчика 93

4.3. Предметная область модуля-конкорданса 95

4.4. Выводы к главе 4 95

ГЛАВА 5. Алгоритмы модулей «номенклатурного генератора» 96

5.1. Интерфейс программно-технологического комплекса «Номенклатурный Генератор» 96

5.2. Общие черты в алгоритмах различных модулей «Номенклатурного

Генератора» 96

5.3. Алгоритм модуля-номенклатора 97

5.3.1. Основные стадии алгоритма модуля-номенклатора 97

5.3.2. Детальное описание алгоритма модуля-номенклатора 98

5.3.3. Процедура разбиения названия химического соединения на морфемы 100

5.3.4. Проблема неправильного разбиения названий химических соединений 101

5.3.5. Пример построения графа по конкретному названию химического соединения 104

5.3.6. Пример построения графа по названию химического соединения с функциональной группой 110

5.4. Алгоритм модуля-переводчика 115

5.4.1. Основные стадии алгоритма модуля-переводчика 115

5.4.2. Подробное описание алгоритма модуля-переводчика 115

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

5.4.4. Пример русско-английского перевода названия химического соединения 119

5.4.5. Пример англо-русского перевода названия химического соединения 120

5.4.6. Технические характеристики модуля-переводчика 122

5.5. Алгоритм модуля-конкорданса 122

5.5.1. Основные стадии алгоритма модуля-конкорданса 122

5.5.2. Краткое изложение алгоритма модуля-конкорданса

5.6. Интеграция модулей «Номенклатурного Генератора» в единый программно-технологический комплекс 124

5.7. Проблема алгоритмизации 125

5.8. Вывод результата 126

5.9. Выводы к главе 5 128

Заключение 129

Итоговый вывод 131

Перспективы развития программно-технологического комплекса «Номенклатурный

Генератор» 131

Литература 132

Возможность автоматизации перевода названия в структурную формулу и структурной формулы в название

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

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

Между прочим, как отмечает Е. А. Уткина, именно язык структурных формул органической химии послужил в свое время тем эмпирическим материалом, на основе которого Ч. С. Пирс создал концепцию семиотики [21, с. 25].

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

Отдельную проблему составляет ситуация с так называемыми тривиальными названиями, то есть с названиями, сложившимися исторически или привычно использующимися в обиходе, такими как, например, «уксусная кислота», «бензол», «кофеин», «муравьиный альдегид», «фуран», «нашатырь». Естественно, разложить их на химически осмысленные стандартные компоненты или восстановить по ним структурную формулу соединения невозможно. Тем не менее, многие из таких названий продолжают активно использоваться в химической науке в том числе и потому, что они, в большинстве случаев, оказываются короче и удобнее соответствующих систематических аналогов (для примера достаточно упомянуть систематическое название кофеина — «1,3,7-Триметил-1Н-пурин-2,б(ЗН,7Н)-дион)». Существует также широкий спектр полутривиалъных названий (иногда именуемых полусистематическими), в которых тривиальные компоненты сочетаются с систематическими (например, «(2,3,4,5-Тетрагидро-4-метил-2,5-диоксо-1Н-1,4-бензодиазепин-1-ил)уксусная кислота)». Некоторые химические номенклатуры, как, например, номенклатура ШРАС, используют ряд тривиальных названий параллельно с систематическими [22; 23; 24]. Другие, как номенклатура CAS, максимально исключают тривиальные и альтернативные названия [25; 26; 27].

Корректный перевод «название — структура», равно как и «структура — название», возможен только при строгом применении установленных номенклатурой правил. За рубежом подобные процедуры были автоматизированы и теперь производятся при помощи компьютерных технологий — например, широко используется разработанный в 1986-2011 гг. фирмой CambridgeSoft пакет ChemOffice [28]. Входящий в этот пакет модуль ChemDraw ориентирован на работу с англоязычной версией номенклатуры ШРАС [29; 30; 31; 3; 32; 33; 4; 34]. Известен и ряд других англоязычных программ сходного назначения — в частности, это пакет AutoNom [ 1; 35], программа ACD/Name [2; 36], модуль Lexichem [37; 8] и др. [5] (Далее по тексту данной диссертационной работы эти программы и прочие их аналоги, определяющие название химического соединения по его структуре, либо строящие структурный граф по названию соединения, мы будем называть номенклаторами)

В России в этом плане наметилось некоторое отставание, вследствие чего подобные задачи, возникающие, например, при подготовке к печати реферативных журналов или патентов на изобретения, до последнего времени решались изжившими себя методами — т.е. практически вручную, при помощи словарей, ручки и бумаги, без использования современных компьютерных систем, способных автоматизировать рутинный процесс обработки информации и визуализировать полученные результаты [38].

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

Разрабатываемый в рамках данной диссертационной работы программный комплекс «Номенклатурный Генератор» позволит качественно повысить уровень обработки данных такого рода и существенно облегчить труд научных работников, занимающихся построением струк 17 туры химического соединения по его названию. С помощью предоставляемого Номенклатурным Генератором программного интерфейса значительную часть сложностей, возникающих при решении этой задачи, можно будет переложить с человека на алгоритм, заложенный в память компьютера. Таким образом, появление Номенклатурного Генератора находится в русле сложившейся тенденции последних лет по разработке и применению систем искусственного интеллекта.

Проблема построения систематической химической номенклатуры с четко определенными правилами встала перед научным сообществом достаточно давно, еще в конце XVIII века, в эпоху Просвещения, когда сложилась классифицирующая научная парадигма, реализовавшаяся в различных областях научного знания. В химии ее идеи проявились, в частности, в стремлении формализовать и упорядочить систему названий химических веществ, которые до того времени присваивались по самым различным критериям — по имени первооткрывателя, по источнику их получения, по их свойствам (например, «глауберова соль», «древесный спирт», «огненный воздух») [10, с. 15; 11, с. 8; 39]. При этом большинство известных тогда веществ относились к неорганической химии. Здесь можно упомянуть имена А. Л. Лавуазье, Л. Б. Гитона де Морво, К. Л. Бертолле, А. Фуркруа, разрабатывавших в 1786-1787 гг. первую химическую номенклатуру [8, с. 520; 40].

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

В 1892 г. появилась Женевская номенклатура, учитывавшая идеи А. В. Гофмана, А. Авогадро, С. Канниццаро. Она ввела принцип единого названия органических соединений [41; 42; 13, с. 12-16, 18-27]. Основным недостатком этой номенклатуры была неполнота установленных ею правил, кроме того, она применялась лишь к достаточно простым соединениям. До сих пор правила Женевской номенклатуры применяются в некоторых современных системах: в справочнике Белыптейна — Beilstein s Handbuch der Organischen Chemie — ив созданной на его основе системе Reaxys [10, с. 16; 13, с. 15; 43].

Предметная область «Номенклатурного Генератора»

При этом суффикс пол» в первом случае и префикс агидрокси» во втором обозначают одну и ту же характеристическую группу -ОН. Таким образом, большинству функциональных групп в номенклатуре соответствует две морфемы: одна — префикс, другая — суффикс, — выбор которых в каждом конкретном случае зависит от старшинства функциональных групп, наличествующих в соединении.

Как следует из вышеизложенного, типу Prefix принадлежит часть морфем, обозначающих функциональные группы. Кроме того, к этому же типу относятся морфемы, обозначающие некоторые операции над графом. Среди них — немаловажная морфема «цикло», которой соответствует операция замыкания основной цепочки графа, т.е. соединения одинарной связью первого и последнего атома основной цепочки [11, с. 67].

Тип Multi объединяет морфемы, играющие в названии соединения роль умножающих приставок: «ом», «три», «тетра», «пента» и т.д., а также «бис», «трис», «тетракис» и т.д. Морфемы этого типа часто принимают участие в образовании морфемных комплексов — как префиксальных, так и суффиксальных. Например, в названии соединения «1-Нитро-2,4-дихлорбензол» [11, с. 94], префиксальная часть которого «1-нитро-2,4-дихлор» складывается из двух морфемных комплексов — «1-нитро-» и «2,4-дихлор», морфема «ди», входящая в состав второго морфемного комплекса, указывает, что в структурном графе данного соединения число С1-заместителей равно двум. (Попутно заметим, что род этих заместителей, т.е. атом CI, указан префиксальной морфемой «хлор», а их «адреса» относительно основной цепи соединения обозначены локантами «2» и «» соответственно, приведенными через запятую и отделенными от буквенной части морфемного комплекса знаком дефиса.)

Тип Hetero включает морфемы, обозначающие присутствие гетероатомов в структурном графе химического соединения: «окса», «аза», «тиа» и др. Поясним, что гетероатомами в органической химии принято называть атомы таких элементов как кислород, азот, сера и др., замещающие собой в структурной цепочке соединения атомы углерода. Этому же типу принадлежат укороченные версии тех же самых морфем, характеризующиеся отщеплением от них конечного гласного «а»: «оке», «аз», «ти» и т.д.: подобные краткие морфемы широко распространены в расширенной системе Ганча-Видмана, являющейся подразделом номенклатуры ШРАС. (Согласно лингвистическим нормам можно назвать полные и укороченные версии та 50 ких морфем алломорфами одной морфемы (например, «оке» и «окса» — алломорфы морфемы «окса»), однако с программистской точки зрения оказалось целесообразнее считать их отдельными морфемами.)

Типу Hydro принадлежат морфемы, ответственные за гидрирование химического соединения: «гидро», «дегидро», «пергидро», «Я». Из таких морфем складываются так называемые гидропрефиксы, например «6,11-дигидро-5Н-у , указывающие на присутствие дополнительных атомов водорода в отмеченных соответствующими локантами вершинах графа ненасыщенного соединения. (Термином ненасыщенностъ в органической химии обозначается способность молекулы формально присоединять атомы водорода. В процессе такого присоединения молекула утрачивает двойные и тройные связи между атомами сообразно числу приобретенных атомов водорода. Поэтому показателем полной насыщенности органического соединения является наличие в нем исключительно одинарных связей.)

Тип PeriodicSymbol предназначен для морфем, взятых напрямую из периодической системы химических элементов (таблицы Д. И. Менделеева). Это морфемы «No», «К», «Mg», «АЬ и др. Они встречаются в названиях соединений, находящихся на стыке между органической и неорганической химией, таких как, например, «Дитиомуравъиная кислота, Na-солъ». Названия таких соединений не встречаются в тех классах названий, с которыми оперирует модуль-номенклатор, однако могут быть доступны для обработки модулем-переводчиком.

Тип морфем Unspec был введен специально для обеспечения работы модуля-переводчика. Поскольку модуль-переводчик является автономной единицей в составе программно-технологического комплекса «Номенклатурный Генератор», множество используемых им морфем (т.е. тех морфем, для которых определена операция перевода) может не совпадать с множеством морфем, которыми оперирует модуль-номенклатор. Если сфера действия номенк-латора в настоящий момент ограничена экспериментальным набором классов названий органических веществ (см. 2.2), то сфера действия переводчика значительно шире — он воспринимает целый ряд дополнительных морфем из тех областей химической номенклатуры, которые пока еще не охвачены номенклатором (см. 4.2). Эти морфемы, используемые в программном комплексе только для перевода и, значит, не участвующие в процессе автоматического построения по ним структурного графа, несут предельно малую информативную нагрузку: для них в опорных словарях программы указывается только название (на русском и английском языках); какая-либо информация химического характера при этих морфемах полностью отсутствует, так как при переводе она осталась бы невостребованной. Для сравнения, тип Multi, помимо названия морфемы, предполагает указание количественного значения данной морфемы (например, при морфеме «тетра» в опорном словаре программы указывается число «4», соответствующее химико-семантическому значению этой морфемы) [21, с. 32]; или, к примеру, морфемы типа Prefix, обозначающие функциональные группы, в словарях описаны с указанием названия морфемы, количества и рода атомов, составляющих функциональную группу, а также кода операции присоединения данной функциональной группы к основному графу химического вещества (подробнее об описании различных типов морфем в словаре программы см. 3.7.1).

Подробного описания заслуживает тип Locant, которому принадлежат морфемы-локанты. Как уже говорилось, локантами в химической номенклатуре называют числа, а также некоторые латинские и греческие символы, исполняющие функцию адресных указателей на тот или иной фрагмент структуры химического соединения (таким образом, они представляют собой индексы операций, которые необходимо проделать над морфемами-компонентами химической структуры). Формально различаются следующие разновидности локантов: числовые (например, «7», «2», «3» и т.д.), буквенные-латинские (простые «а», «6», «с» и т.д., а также сложные «ab», «6с», «cde» и т.п.), буквенные-греческие («а», «/?», «у» и т.д.) и смешанные, т.е. число-буквенные («За», «4а», «9Ь» и т.п.). Поскольку набор локантов в химической номенклатуре принципиальным образом не ограничен, в словари программы были внесены только односимвольные греческие локанты, а числовые и смешанные локанты алгоритм обрабатывал процедурными средствами по аналогии, без обращения к словарям.

Служебные типы морфем, как было сказано выше, насчитывают лишь по одной морфеме-представителю. Так, например, тип Hyphen (дефис) состоит из единственной морфемы «-», а тип Point (точка) — из морфемы «.» и т.п. Таким образом, очевидно нет необходимости подробно описывать устройство остальных служебных типов морфем.

Устройство основного словаря химических морфем

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

Полученная метастрока проверяется на валидность: алгоритм проверяет, не содержится ли в ней недопустимых сочетаний метасимволов. К примеру, по правилам химической номенклатуры два локанта не могут стоять в названии подряд, без разделяющего их служебного знака (чаще всего им является запятая). Точно так же, если в названии имеется открывающая скобка, то ей обязательно должна соответствовать закрывающая, расположенная правее. Недопустимые сочетания метасимволов в метастроке могут встретиться, например, в том случае, если пользователь, вводивший название в окне «Номенклатурного Генератора», допустил ошибку.

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

Считав из словаря данные о химических характеристиках структурных цепочек, вершин, правил и модификаций, соответствующих найденным морфемам, алгоритм модуля-номенклатора производит ряд операций по восстановлению на основании этих данных единой структуры химического соединения.

Для этого программа осуществляет процедуру свертки метастроки посредством применения к ней контекстных правил укорачивающей грамматики G, разработанной нами для химической номенклатуры. Данная грамматика подробно описана нами в 3.6. Исходная версия такой грамматики была разработана Е. А. Уткиной [21] с учетом существовавшей ранее синтезирующей грамматики М. М. Ланглебен [88]. Грамматика G, используемая в нашей работе, существенно отличается от грамматики Уткиной, поскольку «Номенклатурный Генератор» опирается на более подробную классификацию морфем и более детальное представление охватываемых классов названий химических соединений [180; 181; 182].

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

Особое место в алгоритме занимает процедура автоматического разбиения введенного пользователем названия химического соединения на химические морфемы. Действительно, чтобы построить по названию химического соединения его структурный граф, необходимо прежде всего правильно разделить название на составляющие части. Т.е., например, название «2-Метил-З-этилтетрадекан» должно быть разбито соответственно на морфемы «2», «-», «мет», «ил», «-», «3», «-», «эт», «ил», «тетрадек» и «ан».

Для этой процедуры в алгоритме предусмотрен цикл, в рамках которого введенное название химического соединения последовательно сравнивается с морфемами из основного словаря и со служебными морфемами (последние по понятным причинам в словаре не содержатся). В случае, если начало введенного названия совпадает с какой-либо морфемой, алгоритм заносит эту морфему в специальный массив и отсекает от названия последовательность символов, соответствующую этой морфеме; далее «вращение» в цикле продолжает уже не исходное название, а его остаток, полученный посредством отсечения найденной морфемы. Таким образом от исходного названия отщепляются (и заносятся в массив) одна за другой все составляющие его морфемы. В итоге, введенное название должно превратиться в пустое слово, а внутри массива образуется последовательность составлявших название морфем.

В нашем примере название «2-Метил-З-этилтетрадекан» пройдет следующие стадии расщепления: сначала алгоритм обнаружит, что в начале названия находится локант (число 2); этот локант будет отделен в массив, а «вращение» в цикле продолжит последовательность символов «-Метил-3-этилтетрадекан». Затем будет найден и отделен дефис; таким образом, в массиве будут находиться уже два элемента («2», «-»). На следующей стадии в основном словаре будет найдена морфема «мет», совпадающая с началом остатка названия химического соединения; эта морфема будет отделена от остатка названия и занесена в массив, а «круговорот» в цикле продолжит остаток «ил-3-этилтетрадекан» и т.д. (см. табл. 14).

Однако для адекватного сопоставления начального фрагмента остатка названия с соответствующей морфемой из словаря требуется, чтобы словарь был предварительно (т.е. до начала данного цикла) упорядочен по длине морфем от наибольшей к наименьшей [202; 203, с. 95; 204; 161, с. 88; 73, с. 77-78; 8, с. 524]. В противном случае, есть существенная вероятность того, что дробление названия будет произведено неправильно, поскольку в словаре присутствуют морфемы с совпадающим началом, например, морфемы «тетрадек» и «тетра». Таким образом, чтобы в нашем примере («2-Метил-З-этилтетрадекан») алгоритм выделил именно морфему «тетрадек» (а не «тетра», что было бы ошибкой), нужно, чтобы в словаре морфема «тетрадек» располагалась раньше морфемы «тетра» и, соответственно, при поиске по словарю была бы найдена первой.

Необходимость в упорядочивании словаря по длине морфем в сторону убывания была отмечена еще А. М. Цукерманом и Г. Г. Стецюрой [80; 74]. Однако уже тогда была зафиксирована потребность в определенных исключениях. Действительно, хотя в большинстве случаев упорядоченный подобным образом словарь обеспечивает правильность разбиения названия на морфемы, существуют отдельные ситуации (и даже целые классы ситуаций), в которых именно такой подход дает ложный результат. Например, при разбиении простейшего названия «Пен-тан» вместо морфемы «пент» будет выделена (как более длинная) морфема «пента» (также содержащаяся в словаре, но употребляющаяся в других названиях соединений и с совершенно иным значением). А это приведет к сбою алгоритма на следующем витке цикла, так как элемент «н», остающийся от названия «Пентан» после удаления фрагмента «пента», морфемой не является и в словаре не содержится [21, с. 34]. Совершенно аналогичная ситуация имеет место и для всех последующих «алифатических» названий данного ряда, таких как «Гексан», «Гептан», «Октан» и т.д.

Вышеописанную проблему удалось разрешить, обратившись к анализу правого контекста. В самом деле, морфемы «пент», «гекс», «гепт» и т.д. обозначают фрагменты структурных цепочек химического соединения и, соответственно, в алгоритмическом представлении «Номенклатурного Генератора» отнесены к типу Root, в то время как морфемы «пента», «гекса», «гепта» и т.д. являются количественными приставками, применяющимися, например, при указании количества заместителей, гетероатомов или кратных связей в той или иной структурной цепочке, и, соответственно, относятся к типу Multi. По правилам химической номенклатуры после количественных приставок обычно следует морфема типа Root, Suffix, Prefix, Hetero, Hydro или OpenBracket. Исходя из этого, в алгоритме разбиения названия было оформлено специальное исключение: при нахождении в названии соединения элемента, совпадающего с морфемой типа Multi, кратность которой больше четырех, прежде чем вырезать эту морфему из названия и занести в массив, алгоритм проверяет, можно ли выделить непосредственно после нее морфему типа Root, Suffix, Prefix, Hetero, Hydro или OpenBracket. Если это возможно, значит найденный фрагмент действительно является морфемой типа Multi (которая и будет занесена в массив); в противном случае становится ясно, что найденная последовательность символов не является единой морфемой типа Multi, а состоит из морфемы типа Root и начального символа «а», принадлежащего некой следующей морфеме (в таком случае в массив будет занесена соответствующая морфема типа Root).

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

Однако при развитии «Номенклатурного Генератора», сопровождающемся распространением его действия на новые классы названий химических соединений и пополнением словарей программы новыми морфемами, вероятность появления новых исключений подобного рода нарастает.

В частности, после подключения к «Номенклатурному Генератору» класса названий химических соединений из расширенной системы Ганча-Видмана [182], уже отлаженный алгоритм снова стал приводить к сбоям, для устранения которых потребовалось вводить новые исключения. Дело в том, что среди добавленных названий химических соединений находились наименования, содержащие фрагмент «оксиран». Этот фрагмент, обозначающий трехчленное циклическое соединение, один из атомов углерода в котором заменен атомом кислорода (см. рис. 60), состоит из морфем «оке» и «иран».

разбиения названия химического соединения на морфемы

Конкорданс не предполагает ни анализа введенного названия химического соединения, ни синтеза на основе этого названия структурного графа или иноязычного эквивалента названия. По сути дела, конкорданс представляет собой несложную поисковую систему по заранее созданному массиву структурных данных. Алгоритм ищет введенное пользователем название химического соединения в «именной» части базы данных конкорданса и, в случае успешного нахождения, извлекает (по имеющейся при найденном названии ссылке) соответствующий данному названию структурный граф из «структурной» части базы данных.

Таким образом, модуль-конкорданс позволяет рационально использовать огромный запас информации о химических соединениях, накопленный за многие годы в Базе структурных данных ВИНИТИ РАН. Как известно, в этой Базе данных содержатся в готовом виде структурные графы миллионов химических соединений вместе с соответствующими им названиями, брутто-формулами и прочими полезными химическими характеристиками.

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

Интеграция модулей «Номенклатурного Генератора» в единый программно-технологический комплекс

На ранней стадии разработки «Номенклатурный Генератор» состоял из единственного модуля-номенклатора [180; 181; 38; 182; 184]. Впоследствии были созданы два других модуля (переводчик [75; 76; 77; 78; 183] и конкорданс). Все три модуля были объединены в программно-технологический комплекс с общим интерфейсом (см. рис. 69). [179]

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

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

Так, например, в подразделе, известном под именем заменительной номенклатуры, оговаривается, что локанты в гетеропрефиксе должны указываться перед каждой отдельной Hetero-морфемой, слитное написание Hetero-морфем не допускается (см. 4.1.4); в то время как в подразделе, называемом системой Ганча-Видмана, требуется именно слитный порядок перечисления Hetero-морфем, а все локанты смещаются левее, в единый блок (см. 4.1.5). Таким образом, гетеропрефикс, обозначающий наличие в структурной цепи, к примеру, двух атомов кислорода, одного атома серы и одного атома фосфора, в позициях 2, 5, 3 и 8 соответственно, согласно заменительной номенклатуре будет иметь вид «-2,5-диокса-3-тиа-8-фосфа-», а по системе Ганча-Видмана этот же гетеропрефикс будет выглядеть как «-2,5,3,8-диоксатиафосф-» [11, с. 102-103, 160].

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

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

Эта проблема, достаточно существенная даже при незначительных коррективах алгоритма, в перспективе предполагала значительное нарастание риска того, что рано или поздно подключение очередного класса названий окажется полностью несовместимым со всем уже существующим алгоритмом, т.е. войдет в противоречие не только с его второстепенными част 126 ными ответвлениями, но и с самой сутью, стержневой линией алгоритма. Этот риск нельзя считать чисто умозрительной проблемой, так как сама химическая номенклатура представляет собой открытую систему, постоянно обновляемую и пополняемую новыми классами названий, новыми правилами и новыми исключениями из этих правил, по мере того как развивается химическая наука, открываются новые классы химических веществ или уточняются знания науки о веществах уже известных [26; 205].

В таком случае одним из возможных механизмов решения данной проблемы следует признать не стопроцентный отказ от имеющегося «старого» алгоритма в пользу некоего абсолютно нового (который еще только предстояло бы разработать), но понижение ранга действующего алгоритма до уровня одной из двух ветвей в объемлющем новом алгоритме, в котором за обработку подключаемого очередного класса названий соединений будет отвечать вторая ветвь, также требующая отдельной разработки. При этом выбор «подходящей» ветви из двух имеющихся должен осуществляться при обработке каждого конкретного названия химического соединения автоматически — по контексту, в котором фигурирует данное название, и/или по отдельным элементам-маркерам, присутствующим в самом названии.

Задача контекстного выбора является в полной мере задачей искусственного интеллекта, так как ее решение заключается в создании алгоритмической процедуры, моделирующей поведение живого человека — эксперта в области химической номенклатуры (ср. с «аппроксимацией естественного интеллекта» из [206]). Действия алгоритма в таком случае должны лишь воспроизводить рассуждения специалиста, подчиняясь той логике, согласно которой он присваивает название данному химическому соединению или восстанавливает по имеющемуся названию соединения его структурный граф.

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

В качестве примера приведем рисунок экранной формы, соответствующий результату отображения mol-файла для соединения «2,3-Дигидро-6Н-1,5,3-диазасилонину визуализатором ISISVDraw (рис. 70)