Обработка естественных языков на языке Python

Введение и план курса

Здравствуйте и добро пожаловать на занятия по теме  «Обработка данных: обработка естественных языков на языке Python».
Обработка естественных языков или, как её часто сокращают, NLP – это использование программирования и математики для решения языковых задач. Если у вас есть Windows или iOS, то, вероятно, пример NLP находится у вас прямо перед глазами.     Так, приложение Cortana преобразует голосовые команды в вид, пригодный для обработки программными средствами. Исходя из этого, главный посыл, который хотелось бы донести до вас на этих лекциях, – это то, что NLP имеет очень большую практическую ценность.

Этот курс разбит на несколько разделов в зависимости от тех разнообразных практических задач, которые мы будем решать с помощью NLP.

По ходу данного курса вы можете изучить следующие материалы:  Приложения NLP,   Почему обрабатывать естественный язык сложно?   Создание собственного детектора спама,   Построение собственного анализатора тональности,   Изучение NLTK,  Латентно-семантический анализ,   Введение в синонимайзинг текста,   Написание синонимайзера текста на языке Python,   Как узнать больше об NLP.

Итак, вот чем мы будем заниматься на протяжении этого курса:

  • Прежде чем что-либо создавать, мы проведём краткий обзор широкого круга NLP-приложений; часть из них мы изучим более подробно, а часть – несмотря на то, что знание о них весьма желательно – оставим без подробного изучения.
  • Следом за этим мы разберёмся, как создать детектор спама. Такой же детектор есть в вашей электронной почте, поэтому он исключительно полезен и недаром был предметом изучения в течение длительного времени.
  • Затем мы рассмотрим анализ тональности текста и создадим собственный анализатор тональности – программу, с помощью которой компьютер определяет, какой оттенок – положительный или отрицательный – несёт некоторый текст, основываясь на используемых словах и фразах. Это также имеет непосредственную практическую ценность – так, например, некоторые люди анализируют сообщения в твиттере, чтобы определить, будут ли цены на акции расти или падать.
  • Далее мы рассмотрим библиотеку NLTK. Это очень популярная библиотека, позволяющая успешно решать множество фундаментальных задач обработки естественного языка. Кроме того, её можно использовать в сочетании с другими библиотеками при анализе данных из источника информации.
  • После этого мы рассмотрим латентно-семантический анализ (LSA). В основном он применяется для уменьшения размерности текста и помогает решить проблему двух слов, имеющих одинаковое значение. Кроме того, он помогает интерпретировать данные и сэкономить вычислительное время.
  • И, наконец, мы рассмотрим одно из популярнейших приложений NLP – синонимайзер текстов, имеющий большое практическое значение для интернет-маркетологов и предпринимателей.

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

С радостью сообщаю, что, по многочисленным просьбам, этот курс совсем не требует знания математики, и лишь местами – основ теории вероятности.

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

Центральная идея курса

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

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

Главная идея, красной нитью проходящая через все курсы, заключается в том, что хотя мы создаём несколько различных алгоритмов, но все они имеют одинаковый интерфейс. Как правило, у нас есть несколько функций – условно говоря, некая функция fit(X, Y), имеющая в качестве аргументов набор учебных входных данных и целевых переменных, и некая функция predict(X), в качестве результата выдающая предсказание после ввода в неё рабочих входных данных. Это стандартная форма интерфейса для библиотеки Scikit-learn. Соответственно, предполагается, что на текущий момент вы не начинаете изучение машинного обучения с нуля и уже имеется некоторый опыт в использовании данной библиотеки.

Центральная идея именно этого курса состоит в том, что NLP – это лишь приложение для такого же интерфейса машинного обучения, который вы уже знаете и любите, но применительно к языковым данным, каковые могут быть представлены текстом или голосовым сообщением. Что касается голоса, то тут понадобятся кое-какие знания по обработке сигналов, и мы займёмся этим в последующих курсах. Этот же курс полностью посвящён использованию машинного обучения применительно к тексту.

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

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

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

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