В этом году мой друг Таннер Барретт пригласил меня объединиться с ним и пойти на хакатон под названием HackCU 4, проводимый в CU Boulder. Он новый программист, заканчивающий свой последний год обучения в области CS, а я - разработчик полного цикла для подрядчика. Мы оба просто искали новых знакомств, и хотя мы оба работаем и учимся, мы решили сжечь выходные и потратить их на программирование всю ночь, а затем усердно всю следующую рабочую / учебную неделю (это всегда звучит сначала вроде хорошая идея).

Мы столкнулись с выпускником средней школы, в которую все ходили, и сформировали нашу команду. Дэниел Леммонд специализируется на машинном обучении, получил вторую степень в области компьютерных наук и в основном использует Python. Мы взяли на себя задачу от компании OppenheimerFunds провести анализ настроений в любом формате и сравнить его с финансовыми данными, чтобы получить представление. До тех пор я даже не знал, что такое анализ сантиментов, за исключением того, что это было красивое слово, и если вы скажете его кому-то, они сочтут вас гением (так что я просто случайно начал использовать его в любом разговоре). Если вы не знаете, что такое анализ настроений, и не хотите, чтобы люди знали, что вы не знаете, дискретно нажмите эту ссылку и прочтите

Наш взлом

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

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

Забрать

Начнем с Таннера. В течение ~ 7 часов в день первого хакатона он изо всех сил пытался выполнить этот чертов HTTP-запрос на Java (что, по-видимому, довольно сложно в java, он боролся с какими-то проблемами безопасности, связанными с Sun - возможно, он напишет заметку в комментарии). Он все еще новичок в коде, который действительно делает применимые вещи, работает в сети, отправляет JSON и т. Д. Но я восхищался его усилиями, он потратил много времени, как настоящий программист, просто исправляя свои ошибки. В итоге мы позволили Дэну сделать это на питоне, поскольку на второй день у нас не хватало времени. Но как раз в тот момент, когда мы собирались представить наш проект, Таннер запустил свой код!

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

Я написал интерфейс на Angular и использовал Chart.js, чтобы построить график с некоторыми поддельными данными и процентами настроений, указанными ниже, с симпатичным маленьким пользовательским интерфейсом для поиска пользователем хэштега и символа акции. Дэн вывел свои данные в файлы .txt, поэтому я создал сервер Node с оболочкой Python внутри, чтобы выполнить его код, и проанализировал созданные файлы .txt для отправки во внешний интерфейс (очень нетрадиционно, но это сработало, и у нас есть за пару часов до отправки). Я был очень удивлен, я не знал, что Node может выполнять код Python, это было довольно круто, так как я впервые начал программировать на Python и написал несколько приложений с его помощью.

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

Итак, мы проиграли…

но это совершенно нормально! Это был первый хакатон для всех нас, и у нас был невероятный опыт. Мы были близкими вторыми в нашем испытании, что неплохо для некоторых новичков. У нас были некоторые предостережения в отношении нашего приложения - бесплатная версия Twitter API не позволяла нам запрашивать достаточно значимых данных, и мы не могли / не могли получить точную оценку того, насколько сильно настроения повлияли на акции.

Сходи на хакатон

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

Хакатон действительно повысит ваши навыки.

Если вы хотите ознакомиться с проектами-победителями и нашим проектом, посетите devpost. Проекты-победители были потрясающими, прочтите их.

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