Первый экзамен

Мы остановились на том, что проиндексировали базу данных в программе CROS и теперь сгораем от нетерпения испытать все это хозяйство в действии. Плетение нашего Великого алгоритма продолжим на примере с материалами, собранными по компании Daewoo (рис. 1).

[[wysiwyg_imageupload:415:height=307,width=350]]

1. После индексации у нас появился новый банк документов (так в программе CROS называется индексированная база данных) под названием Daewoo. Прежде чем приступать к изыскательской и аналитической работе, следует убедиться, что нужный банк документов подключен. Для этого нажимаем на кнопку «Список банков» и проверяем наличие галочки напротив банка по имени Daewoo.

2. Следующим шагом попытаемся сразу ухватить быка за что придется и ответить на вопрос, не дающий нам покоя уже четвертый месяц (с момента возникновения колонки «Путь ГО»): «В каком городе родился Ким Ву Чун, и как назывался его университет?» Общий алгоритм работы таков: мы обращаемся к программе CROS со смиренной просьбой удовлетворить наше любопытство и делаем это в форме запроса. CROS любезно подыскивает нужную информацию и представляет ее в виде выборки документов для последующего анализа. Жмем на вторую слева кнопку «Новый запрос» и ужасаемся очередному непонятному окну (рис. 2).

[[wysiwyg_imageupload:409:]]

Ну да не будем поддаваться панике — включим смекалку, тем более что пугаться нечему: в левом окне указан подключенный банк документов и соответствующая ему область поиска (Daewoo), в правом — так называемый атрибут (например, текстовое содержимое документов), в котором мы производим поиск; вид сравнения — определенное действие по установлению соответствия между атрибутом и его условием. Я понимаю, что все это звучит чудовищно и режет ухо честному человеку, но тут уж ничего не попишешь: CROS сочиняли люди сурьезные (сами помните, из какой конторы), поэтому и интерфейс программы воинственно-научный. Мы же по простоте душевной теперь переведем этот санскрит на примитивный русский язык. Итак, значится: для начала попытаемся отыскать родной город Ким Ву Чуна. Где будем искать? В дате документов, в именах файлов, в их размере или времени добавления в банк данных? Правильно, ни там и ни сям, а непосредственно в тексте статей и отрывков веб-сайтов, которые мы в свое время отправили в нашу копилку MyBase. Посему в качестве атрибута нашего запроса указываем «Текст».

Идем дальше. Поскольку мы хотим найти место рождения нашего героя, то первое ключевое слово, что приходит в голову, — это born (родился). Причем не кто-то там где-то born, а именно Kim Woo-choong (так он пишется). Можно предположить, что информация о родном городе Ким Ву Чуна скрывается в предложении типа: «Kim Woo-choong was born in там-то». Очевидно, что нужный нам вид сравнения в запросе — это интервал слов, то есть Woo-choong (Kim можно отбросить за избыточностью информации) и born должны находиться в интервале не более трех-четырех слов. Так все и оформим: атрибут запроса = Текст; вид сравнения = в интервале слов; первое условие = Woo-choong born (через пробел безо всяких знаков препинания), второе условие = 4 (то есть Woo-choong не должен отстоять от born более чем на четыре слова). Вот как это выглядит в формуляре общего запроса CROS (рис. 3).

[[wysiwyg_imageupload:411:height=93,width=400]]

Вот, собственно, и вся наука! Жмем на иконку бинокля для начала поиска и уже через секунду видим обнадеживающее сообщение (рис. 4).

[[wysiwyg_imageupload:412:]]

Как же так, что такое? Да никак: просто в банке данных нет документов, в которых бы присутствовала фраза типа «Kim Woo-choong was born in…» Значит, информация о родном городе передана как-то иначе. Я сознательно привел этот пример, чтобы отвратить читателей от обманчивой мысли о том, что data-mining (именно этим мы и занимаемся в Великом Алгоритме: изыскиваем информацию, обрабатываем ее и анализируем) — штука ремесленно-механическая и поддающаяся повальной алгоритмизации. Ничего подобного! Data-mining — это тонкий творческий процесс, требующий постоянного творческого напряжения и если уж не таланта, то, по меньшей мере, смекалки.

Итак, прочь отчаяние и сомненья — продолжаем поиск дурацкой деревни, в которой на свет явился будущий хозяин чаебола Daewoo! Сразу же нужно исправить ошибку, которую мы совершили, исключив из запроса имя Kim, заподозрив его в избыточности. На самом-то деле избыточен как раз не Kim, а именно Woo-choong! Ведь логично предположить: когда речь идет о рождении ребенка, то упоминается скорее его имя, а не фамилия (или какой там у корейцев родовой признак). Следующий момент: информация о рождении Ким Ву Чуна вполне могла проскочить без всякого упоминания имени, а просто как: «He was born in…» Иными словами, нужно сделать запрос не на два слова (Kim и born), а просто на одно — born. Третий вариант: мы указали в запросе слишком маленький интервал. Вполне возможно, что Woo-choong и born разделяют не четыре слова, а 5 или 6. Да и кто сказал, что информация о рождении Ким Ву Чуна передана именно словом born? А может, фраза звучала иначе, скажем: «Kim Woo-choong came to life in…»?

Как видите, вариантов много, и нам ничего не остается, как проверить все наши догадки, причем разумно начинать не с замены фамилии на имя и не с увеличения интервала слов, а как раз с обобщения условий, то есть поиска по одному только слову born (не забудьте изменить вид сравнения на «Равно», а в условии указать born) (рис. 5).

[[wysiwyg_imageupload:413:]]

Бинго! Программа нашла для нас 4 документа, в которых слово born встречается 12 раз, и выложила результат в окне выборки (рис. 6).

[[wysiwyg_imageupload:414:]]

Сразу обратите внимание: все слова, соответствующие критерию поиска, выделены красным цветом, что существенно облегчает анализ информации. Итак, всего 12 вхождений — сущий пустяк. Первая находка — «Ponzi was born to a rich Italian family, whereas Kim came from a poor rural family» — хоть и не содержит нужных нам сведений, однако «бедная семья с деревенскими корнями» — штука фактурная и достойна упоминания в нашей нетленке (читатель не забыл, что вся чехарда с Великим алгоритмом начиналась с подготовки статьи, которую мне нужно было написать для «Бизнес-журнала»). Идем дальше. Переход между вхождениями в окне выборки осуществляется простым нажатием клавиши пробела. Нам повезло — уже следующий результат оказался победным (рис. 7).

[[wysiwyg_imageupload:416:]]

Ну, батеньки мои! Похоже, у нас не было ни малейшего шанса добиться положительного результата с помощью какого бы то ни было узконаправленного поиска. Судите сами: «Родившийся старшим ребенком в семье учителя, юный Ким разносил пхеньянские газеты и продавал фрукты, помогая содержать младших братьев». Не удивительно, что после предварительного изучения материала, в моей памяти ни на одно мгновение не задержалась информация о месте рождения Ким Ву Чуна. «Разносил в детстве пхеньянские газеты»! Поди догадайся.

Успех во втором поиске (университет, в котором обучался Ким Ву Чун) нам также принес максимально расширенный критерий (атрибут = текст, вид сравнения = Равно, условие = University) (рис. 8).

[[wysiwyg_imageupload:417:]]

Университет Йонсей, вот он, голубчик, как называется! Кстати, обратите внимание на нижний раздел окна выборки: это очень удобный простой редактор для составления аналитических отчетов. В процессе изысканий вы просто перетаскиваете в это окно мышкой нужные куски текста, а затем сохраняете все данные в одном файле — очень удобно.

Конечно, мы рассмотрели лишь сотую долю поисковых и аналитических возможностей чуда по имени CROS. Достаточно сказать, что программа обладает мощнейшим языком запросов с элементами морфологического и многоступенчатого анализа и полной поддержкой логических операторов. С помощью этого языка можно найти не то что университет Йонсей, но и самую секретную документацию российских чаеболов. Ну да лиха беда начало. Всей премудрости вы обязательно научитесь по мере освоения Великого Алгоритма на практике. Кстати, об Алгоритме — наш путь ГО мы завершим в следующей колонке.

Впервые опубликовано в журнале «Домашний компьютер».