Куда и как податься?


#1

Представим себе студента на третьем курсе технического вуза. Предположим, он очень сильно увлечён NLP, ML и прочими умными аббревиатурами. Допустим, так же, что он готов работать за идею, если эта идея таки будет гарантировать ему достаточное количество питательных веществ для поддержания бренного организма. Куда ему посоветуете подастся? Какие предварительные действия посоветуете ему совершить(парсеры писать, методы разрабатывать, баги фиксить в nlp-либах)?


#2

Смотря что понимать под питательными веществами :slight_smile:

Например, сегодня нет доступной и достаточно быстрой реализации PoS-таггера для русского языка. Нет, например, открытого решения для анализа тональности текста на русском языке. Здесь сложно придумать какой-то сверхоригинальный метод, однако решение такой задачи было бы замечательно в рамках ВКР бакалавра.


#3

Угу, а где те организации, что согласны оплачивать работу, по разработке подобных вещей?


#4

Есть такие организации, только их надо сначала заинтересовать. Например, тем способом, о котором пишет @dustalov - сделать что-нибудь полезное опенсорсное.


#5

В предыдущем сообщении я говорил про разработку важных и достаточно фундаментельных инструментов. Как правило, коммерческие компании в такие вещи для опенсорса не инвестируют.

Если интересуют деньги, то стоит попробовать двинуться в стартап по аналитике соцсетей и Интернета — тема сегодня горячая, а задачи будут в том числе и про NLP. В той же Москве, например, это особенно просто. Однако важно иметь возможность подтвердить свой навык.

Не стоит забывать и про кадровый голод наших поисковиков. Как правило, там люди нужны всегда.


#6

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

Хорошо бы пройти несколько курсов на Coursera: ML от Andrew Ng для основы, NLP от Маннинга с Журавски и NLP от Коллинза - для того, чтоб иметь представление об NLP, PGM от Коллер - структурные модели в обработке текста очень важны. На несколько месяцев это человека занять может, по 10-20 часов в неделю на каждый курс уделять может понадобиться, если не отлынивать и делать домашку. После этого понятнее станет, что к чему. Потом так много времени на обучение выделять будет сложнее. Книжки еще можно читать (вот, например, хорошая: http://www-stat.stanford.edu/~tibs/ElemStatLearn/ по статистике).

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

А дальше видно будет. Если с уклоном в ML, то хорошей практикой может kaggle быть - с инструментами разобраться, да и участники с хорошими результатами там нарасхват. “С инструментами разобраться” - это очень штука хорошая. Во-первых, она убивает желание писать неправильные велосипеды и помогает писать правильные велосипеды. Во-вторых, инструменты не идеальны, и не все в них готово/доделано - если инструмент open-source, то можно в нем что-то починить-доделать; в процессе починки-доделки знакомишься с многими умными людьми и учишься писать хороший код. Могу посоветовать попробовать сделать pull-request в scikit-learn с реализацией какого-нибудь алгоритма - гарантированно узнаёшь много нового, особенно если до конца дело довести.

Я, наверное, на вопрос не совсем отвечаю - про питательные вещества тут немного. У нас в http://scrapinghub.com/ несколько студентов работает (не над машинным обучением, правда, но это стечение обстоятельств - под ML/NLP задачи людей тоже ищут). Но, понятное дело, у фирм гораздо больше мотивации взять человека с хорошей базой, который уже многое знает-умеет, и, возможно, слегка доучить его на практике, в процессе, чем брать человека и учить его всему - это могут позволить себе только большие компании, т.к. это дорого даже с нулевым уровнем питательности (это отнимает время других разработчиков). Ну и если человек уже сам многому научился, он и дальше сможет развиваться и расти. Всякие courser’ы сейчас позволяют самому учиться в “правильном” направлении без особых наставлений - если есть время, то лучше пользоваться возможностью.


#7

Первого преимущества нет, т.к. обстоятельства обязывают работать по полной.
Курсы прошёл. Книжки-статьи читаю. Пишу-пишу-пишу и по работе и по своим ML поделкам.
На kaggle уже наталкивали, спасибо что напомнили, на выходных примусь.


#8

Зачастую компании хантят на профильных мероприятиях. Если уметь общаться, то вопрос трудоустройства — не проблема.

@kmike, а где у вас NLP?


#9

У нас не чистый NLP, а IR с использованием техник NLP. Я не так давно там работаю; из того, что делал по части NLP: кастомные NER на CRF или Averaged Perceptron для поиска контактов/названий/людей/времени работы; грамматики в духе того, что для Томиты пишут (только попроще, т.к. инструментов нормальных не нашли, NLTK используем) для вытаскивания фактов; автоматическое назначение категорий вытащенным из разных сайтов записям по описанию; поиск неполных дубликатов с map-reduce. Если что-то встречается часто, стараемся библиотеку сделать реюзабельную, что-то заоупенсорсим. Собираемся во внутренней панели инструменты для Active Learning добавлять. Ну и т.д.

Т.е. это все просто инструменты - иногда проще xpath написать, иногда regexp, иногда нужно NER делать. Проекты обычно недлинные (редко когда больше недели на задачу есть, обычно меньше), что дисциплинирует - в экспериментах и чтениях статей-то завязнуть очень легко :slight_smile: Суровая практика, короче говоря.


#10

Вернулся домой. Исправил ошибку в названии топика.


#11

Господа, а давайте в таком случае забацаем на nlpub страницу, с описанием открытых задач для NLP сообщества?


#12

Уже как пару дней есть http://nlpub.ru/Темы_дипломов.


#13

Если не все 99%, как я теперь убедился =\


#14

Если хочешь поделиться проблемой, ходом работы или результатом, то давай сделаем это на страницах портала. Мне хочется поэкспериментировать с новым форматом.