- ИННАХ!
#1238: Элиза по-русски
13:00 10.09.2009, IT happens
Случилось это в то время, когда я только-только научился писать более-менее компилящиеся программы. Начитавшись различных околокомпьютерных изданий довольно низкого качества и геймерских форумов, я твердо решил, что напишу свой искусственный интеллект, с которым можно будет… ну, по крайней мере общаться в чате (хотя воображение, разумеется, шло гораздо дальше). Никакой специализированной литературы под руку мне тогда не попало, да и некогда было ее читать - руки страшно чесались, и мне очень хотелось почувствовать себя «большим программистом».
На глаза мне попалось описание «электронного поэта» Леонида Каганова, и в голове тотчас же родился алгоритм. Программа содержала базу слов, причем для каждого слова были заданы вероятности того, что оно начнет или закончит фразу. Для каждой пары слов также присутствовало две числовых характеристики: вероятность того, что первое слово присутствует во фразе, отвечающей на содержащую второе слово, и вероятность того, что первое слово идет в предложении после второго. В итоге ответ бота начинался с наиболее вероятного слова по сумме баллов «начало фразы» и «ответ на каждое из содержащихся в вопросе слов». Слова добавлялись в конец фразы до тех пор, пока вероятность конца фразы не превышала сумму баллов для следующего «хорошего» слова. О знаках препинания на этом этапе мечтать не приходилось.
Результаты были не слишком впечатляющими: загнав руками несколько десятков слов и неделю промучившись с коэффициентами в формулах, я смог добиться лишь адекватных ответов на фразы «привет» и «как дела». Поняв, что самому мне с этой задачей не совладать, я обратился к хорошему знакомому, который не брезговал отвечать на мои околопрограммистские вопросы. Знакомый заинтересовался моим проектом, в первую очередь из-за его простоты, и принялся за дело.
Отныне программа общалась с базой данных, содержавшей все необходимые таблицы. Поиск «наиболее вероятных» слов был переложен на движок базы; кроме того, в формулу добавилось слагаемое, экспоненциально уменьшающее вероятность появления нового слова с ростом длины фразы. Когда переписанная программа заработала на уже подобранных мною примерах, возник вопрос: чем заполнить базу? Очевидно, что лучшим кандидатом на базу для чат-бота является… правильно, база настоящего чата. У моего знакомого как раз оказался дамп одного такого ресурса, где сидели преимущественно старшеклассники. Отличительной особенностью этого чата, которой мы легкомысленно не придали должного значения, было полное отсутствие модерации. Мой знакомый занялся делом, и вот уже наскоро составленная «словокосилка» принялась переваривать дамп чата, нещадно запихивая новые данные в MySQL-таблицы.
Настал момент истины. Отяжелевшая база медленно ворочала файлами, а мигающий курсор так и подмывал задать первый вопрос новорожденному разуму. Начать разговор мой друг решил обычным образом:
» Привет
Новоявленный бот, задумавшись на пару секунд, выдал:
«пошел нах@й
Отсмеявшись, на следующий день скрипту мы скормили базу более «взрослого» чата, после чего от дурного воспитания бота не осталось и следа. Некоторое время мы продолжали совершенствовать бота, а затем, разумеется, забросили - как обычно и случается с подобными программами.
А мораль истории проста: за вводимыми данными надо тщательно следить - тем более, если эти данные вводишь не ты.
#1239: Официант, шампанского!
00:30 11.09.2009, IT happens
Работаю на заводе айтишником. Все производство с недавнего времени переведено на компьютеризованный контроль; естественно, большая часть сотрудников старой закалки до сих пор не понимают, что такое компьютер и для чего он нужен.
Так вот, в одном из цехов шли работы, и управляющий компьютер надо было отнести подальше от опасности в целях сохранности железа. Вышло так, что компьютерный стол поставили между двух производственных агрегатов с повышенной теплоотдачей. Один умелец снял боковую крышку с системника, чтобы тот не перегрелся. На мой суровый вопрос «какого хрена?» умница-операторша с уверенностью ответила: «Мы крышку сняли, потому что монитор потеет!» Выйдя из ступора, я взглянул на дисплей. На матрице высыхали брызги то ли от воды, то ли еще от какой жидкости…
#1240: Не съем, так понадкусываю
13:00 11.09.2009, IT happens
Скорее грустно, чем смешно. В питерском «Ашане» раздел электроники всегда славился возможностью «потыкать палочкой» в понравившийся экземпляр ноута или нетбука. Все работало, светилось, пищало. Во время очередного визита я удивляюсь резкому повороту событий: все железо выключено, а на ценниках появились какие-то приписки.