Предположим, что это слова или числа; чем больше таких кластеров вы ухитритесь найти, тем более полный словарь получится в результате. Разумеется, вам неизвестно, что означают все эти слова, но одни из них повторяются часто, другие – реже, а третьи – совсем редко. Это, само собой, примитивное качественное описание, а количественным будет частотная характеристика распределения кластеров, их статистический вес в текстах. Когда такая функция получена, вы можете предположить, что чаще всего повторяются слова «царь», «бог», «маис», «жертва» и, к примеру, «зарезать». Сообщив о своих догадках компьютеру, отправляйтесь пить кофе, ибо теперь начнется долгий и муторный процесс: перестановка значений между словами, их идентификация и попытка на этой основе разобраться с предложенным текстом. Возможно, через пару часов или суток вы получите одну-единственную осмысленную фразу, что-то вроде: «царь… бог… маис… жертва». Пляшите – ведь это великое достижение! Теперь вам осталось только заполнить пропуски между словами (конечно, от фонаря) и прочитать: «Царь возблагодарил богов за щедрый урожай маиса и повелел принести им жертву».
К сожалению, ваш коллега, пессимист и старый циник, интерпретирует эту надпись совсем иначе: «Царь неугоден богам, и солнце по их велению сожгло маис, несмотря на щедрые жертвы». Выяснить, кто же прав, можно только одним способом – снова запустить тексты в программу и посмотреть, в каком из двух вариантов получится больше осмысленных фраз. Итак, вы повторяете этот процесс снова и снова, и наконец коллега посрамлен: боги все-таки не поскупились на маис для индейцев. Теперь сядьте за стол и напишите дюжину статей.
Но у Бянуса – то есть у доцента Бранникова – дела до статей не дошли, так как он застрял на самом первом этапе, на поиске символьных групп. Он клялся и божился, что перекодировал свои узелки в символьную запись с величайшим тщанием, учитывая их расположение, размеры, способ вывязки, цвет и даже фактуру нитей. В результате каждый узелок был описан десятком признаков, а узлов этих насчитывалось двадцать тысяч без малого. С одной стороны, хорошо – большой исходный массив гарантировал приличную статистику; с другой, катастрофически плохо – ведь с матрицей двадцать на двадцать тысяч, заданной в десятимерном пространстве признаков, не справилась бы ни одна программа кластеризации.
Ни одна в мире, кроме моего Джека Потрошителя. Не буду распространяться, как он умудрялся это делать, – надежды на медаль Вавилова или иной приятный знак отличия меня еще не оставляют. Я совершенствовал свою методу уже шесть лет, еще со времен стажировки в Кембридже, где хитрый старый Томас Диш подкинул мне одну проблемку. Вопрос касался классификации химических связей в солидной выборке веществ; выделение аналогов позволило бы прогнозировать синтез других соединений со сходными свойствами, что являлось весьма непростым и хорошо финансируемым промышленным заказом. Мне повезло с этой задачей: программист, не понимающий физических нюансов, ее бы не решил, а физик или химик, решив, не смог бы написать программу. Но я был един в двух лицах и, как бог Саваоф, породил Джека – тогда еще просто Джека-малютку, Джека-младенца. Потрошителем он стал уже здесь, на кафедре Вил Абрамыча, когда я довел до кондиции шестнадцатый или семнадцатый вариант; и отличался он от первого, как шотландское виски от пива «Балтика». Я подразумеваю не столько крепость этих напитков, сколько разницу в цене – в цене моих бессонных ночей и бдений у экрана Тришки.
Но результат того стоил. Теперь мой Джек потрошил любую проблему, связанную с классификацией, как повар – дохлого кролика; он мог переварить гигантские массивы, найти сходство и разницу между объектами в поле десятков параметров, собрать их в группы, выявить их кластерную структуру, аппроксимировать недостающие признаки и так далее, и тому подобное. |