3.6.12

Впечатления о курсе "Natural Language Processing"

Продолжая традицию постоянного обучения, я не смог не пройти мимо еще одного из курсов предлагаемых Coursera. После курсов прошедших прошлой осенью, у меня осталось очень хорошее впечатление о них. Среди большого набора новых курсов я выбрал курс Natural Language Processing (NLP) - та тема, которая меня давно интересовала. А на этой неделе я наконец-то получил сертификат об окончании этого курса, и решил написать по свежим следам...
Курс длится 8 недель и преподается двумя известными специлистами в этой области - Dan Jurafsky & Christopher Manning (оба из университета Stanford). В качестве основы для курса взяты две книги: Speech & Language Processing, 2ed и Introduction to Information Retrieval (можно найти и онлайн-версии обоих книг - в виде последних снапшотов перед отравкой в издательство). Так получилось, что обе книги у меня уже были достаточно давно, но все не доходили руки сесть за их чтение. Хочется отметить, что читать книги все-таки требовалось, чтобы лучше понять то, что объяснялось в лекциях.
Каждую неделю необходимо было прослушать примерно 2 часа лекций, ответить на набор вопросов, и выполнить домашнее задание (в виде программы). В качестве языка программирования можно было использовать Java или Python - каждую неделю публиковалось новое задание, которое содержало заготовку кода, куда надо было вписать свое решение. Одним из отличий от осенних курсов было то, что на выполнение заданий отводилось больше времени - две недели (эти сроки иногда увеличивались - в зависимости от сложности задания и технических проблем).
Первые три недели были достаточно простыми - разбирали использование регулярных выражений для NLP, моделирование языков, spell correction и классификацию текстов с помощью Naive Bayes - задания выполнялись достаточно быстро.
А вот недели 4-6 были достаточно сложными - рассматривались maximum entropy модели, вычленение именованных объектов и отношений между ними, part of speech tagging, а также вероятностный парсинг текста.  5-е и 6-е задания были самыми сложными в этом курсе (стоит отметить, что много народу просто пропустило 6-ю домашнюю работу) - необходимо было уметь программировать на достаточно хорошем уровне. Но зато было очень интересно смотреть как твоя программа выдает корректную структуру даже для очень сложных предложений с правильно присвоенными частями речи.
7-е задание было очень легким - надо было запрограммировать индексирование текста и вычисление tf-idf. А вот 8-е, хоть и казалось несложным, но требовало достаточно много времени для доводки регулярных выражений, которые должны были извлекать кусочки информации из входных данных. Времени к сожалению было не особо много, так что я сдал первый работающий вариант, за который получил около 70% от макс. оценки.
В итоге, после прохождения всего курса, я набрал 93% от макс. кол-ва баллов. Также вспомнил/научился как программировать на питоне - языке на котором я писал очень редко, а в основном читал код. И даже применил новые знание на практике, соорудив категоризатор текста на базе HBase/Clojure/Hadoop в виде эксперементального модуля для нашего продукта.

Так что если вам интересны вопросы information retrieval/natural language processing - я очень рекомендую этот курс - он дает очень хорошее представление об этих областях и формирует основу для дальнейшего изучения.

6 комментариев:

Артем М. Пеленицын комментирует...

Я правильно понимаю, что посмотреть материалы на сайте теперь можно будет только тогда, когда курс будет повторяться? То есть неизвестно когда…

ЗЫ Капча ужастна. Я ведь даже залогинился, а она всё равно торчит…

Alex Ott комментирует...

На странице курса (и многих других) есть кнопка "Preview" - она позволяет посмотреть лекции...
Насчет капчи - слишком много спама, хотя я вроде выставлял чтобы ее не было для регистрированных пользователей

Бабочка комментирует...

Спасибо за подробный отзыв! У меня вот-вот начнется этот курс. Вы меня даже вдохновили :)

Alex Ott комментирует...

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

antakiczin комментирует...

Добрый день!
Подскажите, а где-нибудь можно найти домашние задания курса по NLP?

Alex Ott комментирует...

где-то наверное можно, я свои не выкладывал...