Leo Matyushkin 24 марта 2021

📕 ТОП-10 книг по обработке естественного языка: от новичка до профессионала

Актуальные книги на русском и английском по обработке данных на естественных языках: теория и практика NLP, анализ тональности, диалоговые системы, генерация текста и машинный перевод.

Обработка естественного языка (natural language processing, NLP) – область computer science, находящаяся на стыке искусственного интеллекта и математической лингвистики. В практическом отношении NLP занимается созданием удобных форм взаимодействия компьютера и человека – чтобы компьютер мог понять, что мы от него хотим, просто сказав ему это.

Пример алгоритма NLP, к которому мы обращаемся ежедневно – информационный поиск. Когда мы что-то вводим в поисковую строку Google или Яндекс, модель преобразует строку в представления в виде дискретных структур: тензоров, векторов, деревьев и графов. Родственные системы анализируют эмоциональную окраску текста, вычленить факты, главную мысль и т.д. Да и не только анализируют текст, но и генерирут его, например, в чат-ботах. Или переводят речь с одного языка на другой.

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

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

NLP для новичков

Лейн, Хапке, Ховард. Обработка естественного языка в действии (2020)

Пятисотстраничное пособие Natural Language Processing in Action переведено и выпущено в 2020 г. издательством Питер. Основной акцент сделан на популярных теперь нейросетевых подходах. Авторы успели захватить и популярный теперь механизм внимания, использующийся для моделей генерации текста. Кроме общих вопросов обработки естественного языка рассмотрены задачи выделения именованных сущностей и создания диалоговых систем.

Преимущества

  • Большое количество примеров кода на Python и доходчивых пояснений.
  • Рассматриваются и традиционные модели, и последние достижения области.

Недостатки

  • Вопрос распараллеливания вычислений рассмотрен слишком поверхностно.

Риз. Обработка естественного языка на Java (2016)

<a href="https://www.ozon.ru/product/obrabotka-estestvennogo-yazyka-na-java-217051332?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Риз. Обработка естественного языка на Java</a>
Риз. Обработка естественного языка на Java

Описаны простые токенизаторы Java, прикладные программные интерфейсы NLP, использование библиотек NLP API для поиска именованных объектов, определения частей речи, классификации документов, нахождения взаимосвязей.

Преимущества

  • Редкий пример книги о реализации NLP-систем с помощью Java.
  • Структурированное представление информации с многочисленными листингами.

Недостатки

  • Сравнительно небольшой объем книги (264 с.) и узкий круг рассматриваемых тем.

Обработка естественного языка в контексте Data Science фреймворков

Ганегедара. Обработка естественного языка с TensorFlow (2020)

<a href="https://www.ozon.ru/product/obrabotka-estestvennogo-yazyka-s-tensorflow-217051213?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Ганегедара. Обработка естественного языка с TensorFlow</a>
Ганегедара. Обработка естественного языка с TensorFlow

TensorFlow – фреймворк глубокого обуче­ния, разработанный и поддерживаемый компанией Google. В книге описаны методы решения задач NLP с помощью функций TensorFlow для создания нейронных сетей; стратегии обработки больших объемов данных и представления слов для использования в приложениях глубокого обучения; технологии улучшенной классификации предложений и генерации текста при помощи сверточных и рекуррентных нейросетей; их применение для решения комплексной задачи генерации текста; принципы машинного перевода; тенденции области.

Оригинал написан в 2018 г., переведено и издано ДМК Пресс в 2020 г.

Преимущества

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

Недостатки

  • В силу специфики книги общим вопросам NLP уделено меньшее внимание, чем в приведенных выше изданиях.

Макмахан, Рао. Знакомство с PyTorch (2020)

<a href="http://ozon.ru/context/detail/id/242379066?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Макмахан, Рао. Знакомство с PyTorch: глубокое обучение при обработке естественного языка</a>
Макмахан, Рао. Знакомство с PyTorch: глубокое обучение при обработке естественного языка

Книга Макмахана и Рао посвящена не менее популярному фреймворку глубокого обучения на основе Python – PyTorch, разработанного компанией Facebook. Этот фреймворк существенно более интегрирован с Python и позволяет во многих случаях обходиться стандартной библиотекой языка.

Преимущества

  • Многочисленные примеры работы с PyTorch, выложены на GitHub.
  • Подробные объяснения работы и назначения отрывков кода.
  • Каждая глава снабжена иллюстрациями с переведенным текстом и библиографией.

Недостатки

  • Книга в большей мере предназначена для новичков, только знакомящихся с PyTorch на примере NLP, и поэтому местами слишком многословна.
  • В коде встречаются незначительные опечатки (во всяком случае в переводной версии).
Примечание
Если вы давно хотели побробовать поработать с PyTorch, да руки не доходили, начните со статьи Генеративно-состязательная нейросеть: ваша первая GAN-модель на PyTorch.

Bird, Klein, Loper. Natural Language Processing with Python

<a href="http://www.datascienceassn.org/sites/default/files/Natural%20Language%20Processing%20with%20Python.pdf" target="_blank" rel="noopener noreferrer nofollow">Bird, Klein, Loper. Natural Language Processing with Python</a> (free pdf)
Bird, Klein, Loper. Natural Language Processing with Python (free pdf)

NLTK – пакет библиотек и программ для символьной и статистической обработки естественного языка, написанных на Python. NLTK сопровождается обширной документацией, включая общедоступную книгу с объяснением основных концепций NLP.

Преимущества

  • NLTK является одной из самых известных библиотек для работы с NLP на Python, и книга в полной мере раскрывает классические задачи, с которыми сталкиваются аналитики языковых данных и компьютерные лингвисты.
  • Доходчивое изложение с многочисленными примерами и упражнениями для самоконтроля.

Недостатки

  • После выхода бумажной книги в O'Reilly (2009 г.) прошло много времени. Примеры кода в вебе адаптированы для третьей ветки Python и актуальной версии NLTK. Однако в остальном структура книги не менялась, поэтому последних достижений в области NLP в ней не раскрыты.

Alex Tomas. Natural Language Processing with Spark NLP (2020)

<a href="https://www.amazon.com/Natural-Language-Processing-Spark-NLP/dp/1492047767" target="_blank" rel="noopener noreferrer nofollow">Alex Tomas. Natural Language Processing with Spark NLP</a>
Alex Tomas. Natural Language Processing with Spark NLP

Apache Spark – фреймворк с открытым исходным кодом для реализации распределённой обработки Big Data. Spark NLP – интерфейс для применения Apache Spark к задачам обработки больших массивов текстовых данных. Взаимодействие со Spark NLP показано на примере Python-библиотеки PySpark. В первой части книги дается введение в работу со Spark, во второй – основные строительные блоки, а в третьей и четвертой – практические приложения и крупные системы на основе Spark NLP.

Преимущества

  • Ясная организация книги, большое количество иллюстраций и примеров кода.
  • Затронуты многие практические аспекты интеграции Spark и библиотек машинного обучения.

Недостатки

  • Главы 17-19 совсем короткие, и дают слишком общее представление, для конкретики не хватает примеров.

Продвинутый уровень

Гольдберг. Нейросетевые методы в обработке естественного языка (2019)

<a href="https://www.ozon.ru/product/neyrosetevye-metody-v-obrabotke-estestvennogo-yazyka-goldberg-yoav-217051222?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Гольдберг. Нейросетевые методы в обработке естественного языка</a>
Гольдберг. Нейросетевые методы в обработке естественного языка

Классическое руководство по применению нейросетевых моделей в обработке данных естественного языка. Перевод на русский язык выпущен ДМК Пресс в 2019 г. по изданию 2017 г. Книга разделена на четыре части: 1) классификация с учителем и нейронные сети прямого распространения, 2) работа с данными естественного языка, 3) специализированные архитектуры нейронных сетей, 4) дополнительные темы. Для прочтения желательны базовые знания линейной алгебры и соответствующей математической нотации.

Преимущества

  • Строгий подход к изложению материала со ссылками на оригинальные научные публикации.
  • Емкое, не «раздутое» описание ключевых концепций.

Недостатки

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

Jurafsky, Martin. Speech and Language Processing (2020)

Своеобразная библия NLP – регулярно обновляемая онлайн-книга исследователей в области NLP и компьютерной лингвистики Дэна Журафски (Стэнфорд) и Джеймса Мартина (университет Колорадо).

Преимущества

  • Широкий круг рассматриваемых тем со ссылками на первоисточники и краткой историей развития вопроса.
  • Емкое представление материала.
  • Некоторые главы сопровождаются упражнениями для самоконтроля.

Недостатки

  • В плане кода книга не содержит готовых программных решений. Используется псевдокод или математический подход к описанию моделей. Однако и сама книга носит фундаментальный характер.

Rothman. Transformers for Natural Language Processing (2021)

<a href="https://www.amazon.com/Transformers-Natural-Language-Processing-architectures/dp/1800565798" target="_blank" rel="noopener noreferrer nofollow">Rothman. Transformers for Natural Language Processing</a>
Rothman. Transformers for Natural Language Processing

Книга профессора Сорбонны Дениса Ротмана посвящена исключительно одной теме – семейству моделей, встряхнувших в конце десятых годов область NLP – моделям, основанным на механизме внимания и архитектуре Transformer. Если у вас есть опыт в NLP и вы хотите на практике разобраться в текущем state-of-the-art, книга Ротмана станет отличным выбором.

Преимущества

  • На множестве примеров кода Python рассмотрено обучение моделей (и их вариаций) BERT, GLUE, GPT-2 на GPU, в том числе и задачи генерации текста.

Недостатки

  • Местами код превалирует над пояснениями – желательно иметь общее представление о машинном обучении, уметь работать с Jupyter и Data Science библиотеками.
Примечание
О возможностях моделей-трансформеров читайте в нашей статье Автодополнение длиной в тысячу слов. Что известно о нейросетевой модели GPT-3.

Vajjala и др. Practical Natural Language Processing (2020)

<a href="https://www.amazon.com/Practical-Natural-Language-Processing-Pragmatic/dp/1492054054" target="_blank" rel="noopener noreferrer nofollow">Vajjala, Majumder, Gupta, Surana. Practical Natural Language Processing</a>
Vajjala, Majumder, Gupta, Surana. Practical Natural Language Processing

Книга разделена на четыре части: введение, основы, приложения, пайплайны. В качестве языка программирования применяется Python. Большое внимание уделено использованию современных моделей NLP и созданию пайплайна проекта машинного обучения – от получения данных на входе до требуемого результата.

Преимущества

  • Структурированное изложение, многочисленные цветные иллюстрации, ссылки на дополнительную литературу.
  • Нацеленность на практическое применение и создание коммерческого продукта, множество примеров приложений NLP.
***

Чтобы оставаться в курсе анализа данных и новых книг мы рекомендуем подписаться на телеграм-каналы Библиотека Data Scientist'а (@dsproglib) и Книги для программиста (@progbook).

МЕРОПРИЯТИЯ

Не стесняйтесь поделиться в комментариях своими любыми пособиями по NLP.

ВАКАНСИИ

Добавить вакансию

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ