Фридрих Незнанский - Уходящая натура
— Меняй «винты».[2] «Сигейт»[3] надо ставить. — Гриня Рифов, толковый программист, работающий над проблемой распознавания символов, всегда шутил так, что непосвященный понять не мог.
— Угу, — буркнул Митяй с кривой улыбкой. И вернулся к куда более интересной теме. — Ну так как, Валер?
— Ты же знаешь, нельзя. — Валерий Гончар демонстративно подержался за бок. — Мне на операцию скоро. Штейн сегодня уже и заяву мою подмахнул. Правда, я тут покантуюсь еще с недельку. А потом уволюсь — и на вас дела скину. На Сашку, наверное. Надо бы вот успеть до ухода все багги[4] выловить. А я в глубокой отладке погряз. Прога[5] все глючит, чтоб ее! Вот и сегодня тоже придется до ночи здесь торчать.
— Понятно, — кивнул головой «переводчик», — трудись. А мне все-таки кто-нибудь компанию составит?
— Ну я. — Александр Дрозд, «обрадованный» перспективой дополнительной нагрузки, решил, что бутылочка «Клинского» по дороге к метро лишней не будет.
В общем, набралась команда в четыре человека. Предвкушая удовольствие, с радостными восклицаниями они бодро покинули лабораторию. Неприсоединившиеся тут же заторопились на электричку. Зато Олег, не согласившись тащиться в безымянную пивнушку на углу Корчагина и Кибальчича, задержался и спросил Валерия:
— Что в программе не идет-то? Может, я помогу?
— Да никак не добьюсь реакции этой железяки на контекст. — Гончар погрозил кулаком персональному компьютеру, хитро подмаргивающему зеленоватым глазком.
— На чем пишешь? На Прологе?[6]
— На Си.[7] С подцепляемыми процедурами на Смолтоке.[8]
— Да, эти языки — не мой профиль. А вообще загвоздка-то в чем?
— В том-то и дело, что сам не пойму. При высокой степени неопределенности я обращаюсь к экспертной системе — она мне дает значения соседних букв, анализирует слог, прогнозирует слово в контексте всей фразы. Когда это слово из словаря — идентификация неизвестной буквы почти стопроцентная. А если незнакомое? Исходя из принципов построения языка, вроде бы появляется определенность. Но достоверность подстановки, хоть убей, не поднимается выше двух десятых. — Валерий повел плечами.
— Ну знаешь, тут ведь тонкостей вагон. А логика подстановки не хромает?
— Как это?
— Ну следи за мыслью. Я утверждаю, допустим, что водка есть смесь воды со спиpтом. Согласен?
— Согласен.
— Питие оной называется «pаспитие спиpтных напитков»…
— Верно. И что? — хмыкнул Гончар. — Нам-то это не грозит.
— Если в водкy не налили спиpт, то полyчится не спиртной напиток, а жидкость, эквивалентная той, что течет из водопpовода. Верно?
— Верно.
— А вот и нет. По введенному выше определению, чтобы напиток назывался водкой, в его состав должен входить спирт. Поэтому термин «водка» здесь употреблен неправильно. Надо говорить: если в воду не налили спирт… Усекаешь, в чем тонкость? Может, и ты с формулировками правил напутал?
— Все может быть. Вот и пытаюсь разобраться: все исходные посылки с самого начала проверяю.
— А Гриня что говорит?
— Хохмит, по обыкновению. Достал уже свежими анекдотами о программистах.
— Угу. Но я, в общем, тебе тут тоже не помощник. Ты завтра Митяя потряси. Или пусть Марину даст на денек для консультаций. Тут где-то в переводческой епархии глюк.
— Да я понимаю. Ладно, завтра подключу кого-нибудь. А сегодня сам поковыряюсь.
— Лады. Я пошел тогда. Бывай!
— До завтра…
Провожая приятеля, Валерий оступился, согнулся неловко, опять схватился за бок. С болезненным выражением лица пожал протянутую на прощание руку и надежно — на оба замка — запер за Ралко дверь. Затем широко улыбнулся, довольный собой, заглянул на всякий случай в смежные комнаты, опустил жалюзи и стал по очереди включать все компьютеры сослуживцев.
Собственно, фирма не была режимной, тема работ была открытой, и у сотрудников не имелось профессиональных секретов друг от друга. Но доктор наук Борис Несторович Штейн, ученый старой закалки, от подчиненных требовал строжайшей производственной дисциплины. В офисную компьютерную сеть все входили со своими паролями, доступ к информации был ограничен системным администратором в соответствии с должностными полномочиями, для большинства программистов было установлено даже разрешенное время доступа к серверу. Но для Валеры Гончара Штейн сделал исключение. Парень был талантлив, умел находить нестандартные решения на стыке различных областей — его следовало поощрять возможностью интересной работы и перспективами. Поэтому Гончар имел почетное право трудиться даже по ночам. И этой возможностью неоднократно пользовался.
Оставшись в одиночестве, «талант» сел за свой компьютер, открыл замаскированный файл, в котором у него хранились пароли со всех рабочих мест и секретные идентификаторы для доступа к резервному серверу, куда каждый день дублировалась вся информация — на случай неполадок основного. Валерию, разумеется, было все равно, откуда красть, но его хитрая программка, подбирающая чужие пароли, быстрее взломала резервный. Так получилось. И теперь ежедневно результаты работы всего научного объединения копировались на загодя приготовленные похитителем лазерные «болванки».
Человеку со стороны показалось бы, что занимается Валерий совершеннейшей ерундой. Потому что сохранял он для личного пользования не новые фильмы, не крутые компьютерные игрушки и даже не фотографии голых девиц, а переписывал на компакт-диски странные и абсолютно ненужные в нормальной жизни программы, над которыми вот уже полтора года гнули спины сотрудники известной среди производителей софта компании «Ритм».
Научным направлением основавшего фирму Штейна и его группы было распознавание и перевод текстов, причем основной акцент делался на практическом создании комплекса программ для работы со старинными рукописями.
Вообще говоря, ничего нового и интересного в этих областях знаний вроде бы и придумать нельзя. Принципы распознавания образов читаются в любом техническом вузе миллионам студентов. Только вот на голых принципах ни одна система нормально работать не желает. Основные идеи автоматизированного перевода с языка на язык формулировал Уоррен Уивер еще в 1949 году. И существует множество программ перевода, естественно. И любой из этих программ запросто можно воспользоваться, когда грустно: полдня смеха обеспечено.
Но Борис Несторович не стал бы заслуженным изобретателем России, если бы пасовал перед трудностями.
Его аналитический ум выделил несколько проблем, решив которые можно было бы читать старинные тексты на разных языках.
Во-первых, старые тексты порой сложно даже просто разглядеть. Тут профессор придумал абсолютно новую методику использования спектрального метода: древний текст размещают между стеклами, и в инфракрасном свете, когда становятся видными следы даже стертых букв, обводят утраченные фрагменты специальными чернилами поверх стекла. Текст такого «слоеного пирога» становится различимым, написанное фотографируют и в оцифрованном виде передают в компьютер.
Во-вторых, в увиденном тексте следует опознать каждый символ. Но в рукописных текстах даже одна и та же буква всякий раз может выглядеть по-разному, отличаясь от эталона. Для повышения вероятности правильного распознавания Штейн придумал еще один оригинальный ход.
Он знал, что нейронные сети человеческого мозга для того, чтобы точнее опознавать объект, всегда используют контекст, внешнее окружение образов. Допустим, вы видите светлое смутное пятно в темноте, при этом вы видите только пятно — и ничего более. Если же вы достаточно четко различаете под ним темный силуэт, вы уже знаете, что пятно — это лицо человека. И уже осознанно пытаетесь разглядеть именно черты лица. А если вы осведомлены, что в этом месте вас должен ждать знакомый, то даже в условиях плохой видимости вы почти наверняка можете опознать человека. По крайней мере, решить — он это или не он. Так велика роль контекста.
Такой же принцип — анализа контекста символа — положил в основу работы по распознаванию Борис Несторович Штейн. И именно в этой области он возлагал немалые надежды на Гончара.
Ну и, наконец, решение проблемы непосредственно перевода виделась Штейну в создании некоего промежуточного электронного языка, с помощью которого можно было проанализировать, уяснить и описать смысловую составляющую неизвестного текста. А вторым этапом — опираясь на уже известный смысл, синтезировать фразу на любом из требуемых языков, ориентируясь на его синтаксис и морфологию. Создать такой язык-посредник с помощью известных систем программирования до сих пор не удавалось никому. Но Штейн намеревался и при разработке промежуточного языка, и в процессе последующего его функционирования применять экспертные системы и базы знаний, благодаря которым созданная система стала бы еще и самообучаемой. В этом случае появлялись надежды на успех. Над решением именно этой задачи корпели Митяй, Марина и их коллеги.