Обработка естественных языков: глубокое обучение на языке Python, часть 6

Введение. План и обзор курса

Всем здравствуйте и добро пожаловать на занятия по теме «Обработка естественных языков: глубокое обучение на языке Python, часть 6».

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

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

Впервой части, посвящённой векторному представлению слов, я покажу известнейшуюмодель word2vec и как её можнооптимизировать, используя различные приближения и приёмы с кодом в Numpy и Theano.

Далеемы рассмотрим альтернативу word2vec, которую предпочитаю и я, – метод глобальныхвекторов. Она очень похожа на метод рекомендательных систем, называемыйматричной факторизацией. На самом деле мы увидим, как множество методов можетбыть применено к методу глобальных векторов для улучшения обучения.

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

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

Итак, что же вам нужно знать, чтобы в полном объёме понять этот курс? Поскольку это часть 6, то предполагается, что вы уже владеете большей частью сведений из предыдущих курсов, в особенности основы. Вы должны быть знакомы с функцией софтмакс, её производной, градиентным спуском и алгоритмом обратного распространения ошибки, поскольку они понадобятся для понимания как word2vec, так и метода глобальных векторов. Вы также должны знать рекуррентные нейронные сети, которые мы изучали в последнем курсе, поскольку именно они будут использоваться для разметки по частям речи и распознавания именованных сущностей. Кроме того, мы используем рекуррентные нейронные сети при изучении рекурсивных нейронных сетей, поэтому вы должны быть особенно хорошо знакомы с функцией scan библиотеки Theano, а также иметь некоторый опыт работы с алгоритмами деревьев.

Если всё это кажется сложным, то это потому, что так оно и есть. Потратьте время на форум. Скорее всего, вы получите ответ на свой вопрос в течение 24 часов, а может, и быстрее.

Где взять код и данные для этого курса

Код, как и всегда, находится в репозитарии Github по адресу https://github.com/lazyprogrammer/machine_learning_examples.

Папка для этого курса называется nlp_class2. Всегда набирайте команду git pull, чтобы удостовериться, что вы используете последнюю версию.

В этом курсе мы будем использовать несколько наборов данных. Для word2vec и метода глобальных векторов мы будем пользоваться данными Википедии, которые можно взять по адресу https://dumps.wikimedia.org. Вам нужно загрузить файлы, в которых в названии встречаются слова pages-articles. Чтобы преобразовать данные из формата XML в обычные текстовые файлы, мы воспользуемся утилитой wp2txt. Указания по установке и использованию можно найти в репозитарии Github.

Программы, код для которых мы напишем, будут искать эти TXT-файлы в папке large_files, которая должна находиться рядом с папкой nlp_class2

Для примера с разметкой по частям речи мы используем данные, находящиеся по адресу http://www.cnts.ua.ac.be/conll2000/chunking/. Подробнее об этом – когда мы перейдем к соответствующей части курса.

Для примера с распознаванием именованных сущностей мы воспользуемся данными с этого адреса: https://github.com/aritter/twitter_nlp/blob/master/data/annotated/ner.txt. Вновь-таки, мы больше об этом поговорим, когда доберёмся до соответствующей лекции.

Для последнего примера, применения рекурсивной нейронной сети для анализа тональности текста, мы используем данные Стэнфордского университета http://nlp.stanford.edu/sentiment/. Данные уже удобно разбиты на двоичные деревья с метками. Кроме того, на сайте Стэнфорда можно найти и много других интересных инструментов для обработки естественных языков.

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: