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

В этом сообщении блога мы перечисляем ресурсы для начинающих и учащихся среднего уровня.

Ресурсы по естественному языку для начинающих

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

Традиционное машинное обучение

Традиционные алгоритмы машинного обучения сложны и часто нелегки для понимания. Вот несколько ресурсов, которые помогут вам начать изучение НЛП с помощью машинного обучения:

Глубокое обучение

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

  • CS 224n: это лучший курс для начала использования глубокого обучения для обработки естественного языка. Этот курс проводится в Стэнфорде, и его можно найти здесь.
  • Бесплатные и платные книги Йоава Гольберга - отличные ресурсы для начала работы с Deep Learning in Natural Language Processing. Бесплатная версия доступна здесь, а полная - здесь.
  • Очень подробное описание всех алгоритмов можно найти в заметках Якоба Эйнзенштейна из класса НЛП GATECH, который имеет дело почти со всеми методами НЛП. Вы можете получить доступ к заметкам на GitHub здесь.

Ресурсы по естественному языку для практиков

Если вы практикующий специалист по анализу данных, вам потребуются ресурсы трех типов:

  1. Руководства по быстрому началу работы / Информация о том, что сейчас популярно и что нового
  2. Проблемно-ориентированные обзоры методов
  3. Блоги, за которыми нужно регулярно следить

Руководства по быстрому началу работы / Информация о том, что сейчас популярно и что нового

  • Можно начать с исследования Otter et al. Deep Learning for Natural Language Processing. Вы можете получить к нему доступ здесь.
  • В обзорном документе Янга и др. Делается попытка обобщить все, что есть в области обработки естественного языка на основе глубокого обучения, и рекомендуется начать работу с обработкой естественного языка для практиков. Вы можете получить доступ к статье здесь.
  • Вы можете обратиться к этой статье, чтобы понять основы LSTM и RNN, которые часто используются при обработке естественного языка. Еще один гораздо более цитируемый (и пользующийся хорошей репутацией) обзор LSTM находится здесь. Это интересная статья, чтобы понять, как работают скрытые состояния RNN. Это приятное чтение, и его можно найти здесь. Я всегда рекомендую следующие два сообщения в блоге всем, кто их не читал:
  1. Http://colah.github.io/posts/2015-08-Understanding-LSTMs
  2. Https://distill.pub/2016/augmented-rnns/
  • Сверточные нейронные сети (Convnets) могут использоваться для понимания естественного языка. Вы можете представить себе, как Convnets работают в НЛП, прочитав эту статью здесь.
  • Как Convnets и RNN сравниваются друг с другом, было подчеркнуто в этой статье Бая и др. Весь его pytorch (я остановил или в значительной степени сократил чтение кода глубокого обучения, написанного не на pytorch
  • ) код открыт здесь и дает вам ощущение Годзиллы против Кинг-Конга или Форд Мустанг против Шеви Камаро (если вам нравятся такие вещи). Кто победит! .

Обзоры методов для конкретных задач

Другой тип ресурсов, которые нужны практикующим специалистам, - это ответы на вопросы типа: «Мне нужно обучить алгоритм для выполнения X, что самое крутое (и легко доступное), что я могу применить?».

Вот что вам для этого понадобится:

ТЕКСТОВАЯ КЛАССИФИКАЦИЯ

Какую первую проблему решают люди? Текстовая классификация, в основном. Классификация текста может быть в форме категоризации текста по различным категориям или выявления настроений / эмоций в тексте.

Я хотел бы выделить легкое прочтение о различных обзорах анализа настроений, описанных в этом блоге ParallelDots. Хотя обзор посвящен технологиям анализа тональности, его можно распространить на большинство задач классификации текста.

Наши опросы (ParallelDots) немного менее технические и направлены на то, чтобы направить вас к интересным ресурсам для понимания концепции. Обзорные статьи Arxiv, на которые я указываю, будут очень техническими и потребуют от вас чтения других важных статей, чтобы глубоко понять тему. Предлагаемый нами способ - использовать наши ссылки, чтобы познакомиться и развлечься с темой, но затем обязательно прочитать подробные руководства, на которые мы указываем. (Курс доктора Окли говорит о разбиении на части, когда вы сначала пытаетесь получить мелкие кусочки здесь и там, прежде чем прыгнуть глубоко). Помните, весело проводить время - это здорово, но до тех пор, пока вы не разберетесь с методами в деталях, будет сложно применять концепции в новой ситуации.

Еще один обзор алгоритмов анализа настроений (проведенный людьми из Linked University и UIUC) здесь.

Революция трансферного обучения уже коснулась глубокого обучения. Точно так же, как в изображениях, где модель, обученная классификации ImageNet, может быть точно настроена для любой задачи классификации, модели НЛП, обученные языковому моделированию в Википедии, теперь могут переносить обучающую текстовую классификацию на относительно меньший объем данных. Вот две статьи от OpenAI, Ruder и Howard, посвященные этим методам.

  1. Https://arxiv.org/abs/1801.06146
  2. Https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf.

У Fast.ai есть более удобная документация для применения этих методов здесь.

Если вы переносите изучение двух разных задач (не переходя из задачи моделирования языка Википедии), хитрости использования Convnets упоминаются здесь.

ИМХО, такие подходы постепенно возьмут на себя все другие методы классификации (простая экстраполяция из того, что произошло в видении). Мы также выпустили нашу работу над Классификацией Zero Shot Text, которая обеспечивает хорошую точность без какого-либо обучения набору данных, и работаем над его следующим поколением. Мы создали наш API-интерфейс пользовательской классификации текста, обычно называемый пользовательским классификатором, в котором вы можете определять свои собственные категории. Вы можете бесплатно проверить это здесь.

МАРКИРОВКА ПОСЛЕДОВАТЕЛЬНОСТИ

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

Мы написали забавный обзор методов для подобных задач здесь.

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

МАШИННЫЙ ПЕРЕВОД

  • Одним из самых больших достижений в области НЛП за последние дни стало открытие алгоритмов, которые могут переводить текст с одного языка на другой. Система Google представляет собой безумный 16-уровневый LSTM (который не требует отсева, потому что у них есть тонны данных для обучения) и дает самые современные результаты перевода.

Медиаэксперты раздули шумиху до преувеличения, заявив, что «Facebook пришлось отключить ИИ, который изобрел свой собственный язык». Вот некоторые из них.

  1. Https://gadgets.ndtv.com/social-networking/news/facebook-shuts-ai-system-after-bots-create-own-language-1731309
  2. Https://www.forbes.com/sites/tonybradley/2017/07/31/facebook-ai-creates-its-own-language-in-creepy-preview-of-our-potential-future/#1d1ca041292c
  • Подробное руководство по машинному переводу можно найти в исследовательской статье Филипа Кона здесь. Конкретный обзор использования глубокого обучения для машинного перевода (который мы называем NMT или нейронный машинный перевод) находится здесь.

Здесь пара моих любимых статей -

ВОПРОС ОТВЕТЫ

ИМХО, это будет следующий «Машинный перевод». Есть много разных типов задач с ответами на вопросы. Выбор из вариантов, выбор ответов из абзаца или графа знаний и ответы на вопросы на основе изображения (также известный как визуальный ответ на вопрос), и существуют различные наборы данных, чтобы познакомиться с современным методом.

  • Набор данных SQuAD - это наборы данных с ответами на вопросы, которые проверяют способность алгоритма читать текст и отвечать на вопросы. Ранее в этом году Microsoft опубликовала статью, в которой утверждала, что достигла точности человеческого уровня для этой задачи. Статью можно найти здесь. Другой важный алгоритм (который я считаю самым крутым) - это BIDAF Аллена AI и его улучшения.
  • Другой важный набор алгоритмов - это визуальный ответ на вопрос, который отвечает на вопросы об изображениях. Статья Тени и др. О задаче VQA 2017 - отличный ресурс для начала. Вы также можете найти его реализации на Github здесь.
  • Извлекающий ответ на вопросы в больших документах (например, как Google Highlights отвечает на ваши запросы в первых нескольких результатах) в реальной жизни может быть выполнен с использованием трансферного обучения (поэтому с небольшими аннотациями), как показано в этом документе ETH здесь. Очень хорошая статья, критикующая понимание алгоритмов ответов на вопросы, находится здесь. Обязательно прочтите, если вы работаете в этой области.

ПАРАФРАЗ, ПОДОБИЕ ИЛИ ВЫВОД

Задача сравнения предложений. У НЛП есть три разные задачи: схожесть предложений, обнаружение перефразирования и вывод естественного языка (NLI), каждая из которых требует большего семантического понимания, чем предыдущая. MultiNLI и его подмножество Stanford NLI являются наиболее известными эталонными наборами данных для NLI и в последнее время стали предметом исследований. Существуют также MS Paraphrase Corpus и Quora Corpus для обнаружения перефразирования и набор данных SemEval для STS (семантическое сходство текста). Хороший обзор продвинутых моделей в этой области можно найти здесь. Применение NLI в клинической сфере очень важно. (Узнать о правильных медицинских процедурах, побочных и перекрестных эффектах лекарств и т. Д.). Это руководство от прикладного NLI в области медицины - хорошее чтение, если вы хотите применить технологию в определенной области.

Вот список моих любимых статей в этой области

  • Вывод на естественном языке в пространстве взаимодействия - он подчеркивает очень умный подход к размещению DenseNet (сверточной нейронной сети в представлениях предложений). Тот факт, что это был результат стажировки, делает его еще круче! Вы можете прочитать статью здесь.
  • Эта исследовательская статья группы Омара Леви показывает, что даже простые алгоритмы могут выполнить эту задачу. Это потому, что алгоритмы все еще не обучаются умозаключениям.
  • BiMPM - это отличная модель для предсказания перефразирования, и ее можно найти здесь.
  • У нас также есть новая работа для обнаружения парафраза, которая применяет Relation Networks к представлениям предложений и была принята на конференции AINL в этом году. Вы можете прочитать это здесь".

ДРУГИЕ ОБЛАСТИ

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

  • Языковое моделирование (LM) - языковое моделирование - это задача изучения неконтролируемого представления языка. Это делается путем предсказания (n + 1) -го слова предложения по первым N словам. Эти модели имеют два важных практических применения: автозаполнение и базовая модель для переноса обучения для классификации текста, как упоминалось выше. Подробный обзор находится здесь. Если вам интересно узнать, как автозаполнение LSTM в мобильных телефонах / поисковые системы работают на основе истории поиска, вот - это классная статья, которую вы должны прочитать.
  • Извлечение отношений - извлечение отношений - это задача извлечения отношений между сущностями, присутствующими в предложении. Данное предложение A связано как r с B дает тройку (A, r, B). Обзор исследовательской работы в данной области находится здесь. Вот - это исследовательская работа, которая показалась мне действительно интересной. Он использует BIDAF для извлечения нулевого отношения (то есть он может распознавать отношения, распознавать которые он даже не был обучен).
  • Диалоговые системы - с началом революции чат-ботов, диалоговые системы сейчас в моде. Многие люди (включая нас) создают диалоговые системы как комбинацию таких моделей, как обнаружение намерений, обнаружение ключевых слов, ответы на вопросы и т. Д., В то время как другие пытаются смоделировать их от начала до конца. Подробный обзор моделей диалоговых систем командой JD.com находится здесь. Я также хотел бы упомянуть для этой цели Parl.ai, фреймворк от Facebook AI.
  • Обобщение текста - Обобщение текста используется для получения сжатого текста из документа (абзаца / новостной статьи и т. д.). Это можно сделать двумя способами: извлекающее и абстрактное обобщение. В то время как экстрактивное реферирование выдает предложения из статьи с высочайшим содержанием информации (и то, что было доступно в течение десятилетий), абстрактное реферирование направлено на то, чтобы написать реферат, как это сделал бы человек. Эта демонстрация ИИ Эйнштейна привнесла абстрактное обобщение в основные исследования. Здесь обширный обзор методик.
  • Генерация естественного языка (NLG) - Генерация естественного языка - это исследование, в ходе которого компьютер стремится писать так, как это сделал бы человек. Это могут быть рассказы, стихи, подписи к изображениям и т. Д. Из них текущие исследования очень хорошо работают с подписями к изображениям, где LSTM и механизм внимания вместе дали результаты, пригодные для использования в реальной жизни. Обзор методик доступен здесь.

Блоги для подписки

Вот список блогов, которые мы настоятельно рекомендуем всем, кто интересуется новостями в исследованиях НЛП.

Эйнштейн AI - https://einstein.ai/research

Блог Google AI - https://ai.googleblog.com/

WildML - http://www.wildml.com/

DistillPub - https://distill.pub/ (distillpub уникален, блог и публикация)

Себастьян Рудер - http://ruder.io/

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

Вот и все, ребята! Наслаждайтесь тем, чтобы нейронные сети понимали язык.

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

Надеемся, статья вам понравилась. Пожалуйста, Зарегистрируйтесь и получите бесплатную учетную запись ParallelDots, чтобы начать свой путь к искусственному интеллекту. Вы также можете ознакомиться с бесплатными демонстрациями API-интерфейсов ParallelDots AI здесь.

Вы можете прочитать оригинальную статью здесь.