Что такое обработка естественного языка? Последние достижения в этой области

Что такое обработка естественного языка Изучение

Обработка естественного языка, широко известная как НЛП, — это быстро развивающаяся область. Эта ветвь машинного обучения использует программное обеспечение для манипулирования и создания естественного языка, такого как речь и текст.

С появлением ботов с искусственным интеллектом, таких как Siri, Cortana, Alexa и Google Assistant, использование НЛП увеличилось во много раз. Люди пытаются создать модели, которые могут лучше понимать человеческие языки, формально известные как естественные языки.

Наиболее распространенные применения обработки естественного языка в нашей повседневной жизни — это поисковые системы, машинный перевод, чат-боты и домашние помощники.

Сегодня мы рассмотрим основы НЛП с использованием Python и обсудим некоторые из основных тенденций в отрасли.

Что такое обработка естественного языка?

Обработка естественного языка (NLP) — одна из наиболее важных задач в современной отрасли, в которой используются концепции машинного обучения. НЛП имеет дело со всем, что связано с использованием машин для обработки и понимания человеческого текста / речи, что мы называем естественными языками.

Такие задачи, как перевод между языками, распознавание речи, анализ текста и автоматическое создание текста, подпадают под сферу применения НЛП. Давайте определим два термина «Естественный язык» и «Обработка естественного языка» более формально.

  • Естественный язык: язык, который естественным образом развился у людей.
  • Обработка естественного языка: способность компьютерной программы понимать человеческий язык во время разговора. Конечная цель НЛП — прочитать, расшифровать, понять и осмыслить человеческие языки ценным способом.
Читайте также:  C++ STL против платформы коллекций Java

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

Генерация естественного языка против понимания

НЛП в основном включает две важные части: понимание естественного языка и создание естественного языка.

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

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

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

Он используется для резюмирования текста, ответов на запросы или вопросы, машинного перевода и генерации ответов.

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

Теперь модели предварительно обучены на большом наборе данных. Эта предварительно обученная модель настраивается параметрами для решения необходимой задачи. Предварительно обученная модель настроена для выполнения таких задач, как классификация текста, тегирование частей речи, распознавание именованных сущностей, обобщение текста, ответы на вопросы и т.д.

Как работает НЛП?

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

Для этого используется множество различных методов, в том числе:

  • Лемматизация: объединение склоняемых форм слова в единую форму.
  • Сегментация слов: разделение большого фрагмента текста на блоки
  • Разбор: анализ грамматики предложения
  • Устранение неоднозначности смысла слова : определение значения слова на основе контекста

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

Затем нам нужно проанализировать, сколько раз слово встречается в корпусе. Мы делаем это, представляя текстовые данные как вектор слов. Этот процесс называется токенизацией.

Мы используем объект токенизатора, чтобы преобразовать текстовый корпус в последовательности. Это делается с помощью инструмента машинного обучения TensorFlow. Этот инструмент, по сути, преобразует каждое словарное слово в целочисленный идентификатор по убыванию частоты.

13 лучших достижений в этой области

Теперь, когда мы знакомы с основами НЛП, давайте рассмотрим 13 основных достижений, которые мы видели в этой области. Это должно помочь вам познакомиться с НЛП и показать, на что способна эта удивительная технология.

1. Внимание — это все, что вам нужно

«Внимание — это все, что вам нужно» — это исследование, опубликованное сотрудниками Google AI в июне 2017 года. Ашиш Васвани и др. опубликовал эту статью и произвел революцию в индустрии НЛП. Это был первый раз, когда была упомянута концепция трансформаторов.

До этой статьи RNN и CNN использовались в области НЛП, но у них были две проблемы:

  • Работа с долгосрочными зависимостями
  • Нет распараллеливания во время обучения

RNN не смогли справиться с долгосрочными зависимостями даже с различными улучшениями, такими как двунаправленные RNN или LSTM и GRU. Трансформеры с самовниманием пришли на помощь этим проблемам и совершили прорыв в НЛП. Это было новейшее достижение для моделей seq2seq, которые используются для языкового перевода.

2. ULMFiT (Тонкая настройка универсальной языковой модели)

Другим наиболее важным достижением стало использование трансферного обучения в области НЛП. Эта языковая модель, созданная fast.aiв мае 2018 года, представила концепцию трансфера обучения сообществу НЛП.

Это единая универсальная языковая модель, адаптированная для решения множества задач. Одна и та же модель может быть настроена для решения 3 разных задач НЛП. AWD-LSTM является строительным блоком этой модели, которая расшифровывается как потеря веса при асинхронном стохастическом градиентном спуске (ASGD).

3. BERT (представление двунаправленного кодера от трансформаторов)

Это нововведение, также созданное командами Google AI в ноябре 2018 года, использует концепцию обоих вышеупомянутых усовершенствований для двунаправленного обучения трансформаторов. Это современная модель для 11 задач НЛП. Он предварительно обучен всему набору данных английской Википедии, который состоит из почти 2,5 миллиардов слов.

4. Google Transformer-XL

Эта модель, также от Google AI (январь 2019 г.), превзошла даже BERT в языковом моделировании. Это также решило проблему фрагментации контекста, с которой столкнулись оригинальные преобразователи.

5. Stanford NLP, январь 2019 г.

С их официального сайта StanfordNLP — это пакет анализа естественного языка Python. Он содержит инструменты, которые можно использовать в конвейере, для преобразования строки, содержащей текст на человеческом языке, в списки предложений и слов, для создания базовых форм этих слов, их частей речи и морфологических характеристик, а также для определения зависимости синтаксической структуры разобрать.

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

6. OpenAI GPT-2

GPT-2, созданный OpenAI в феврале 2019 года, расшифровывается как «Генеративный предварительно обученный трансформатор 2». Как следует из названия, он используется для задач, связанных с частью НЛП, связанной с генерацией естественного языка. Это модель SOTA (современная) для генерации текста.

GPT-2 может создавать целую статью на основе небольших вводных предложений. Он также основан на трансформаторах. GPT-2 достигает самых современных результатов по множеству задач моделирования на языке предметной области. Он не обучается каким-либо данным, относящимся к какой-либо из этих задач, и оценивается по ним только в качестве финального теста. Это известно как установка «нулевого выстрела».

7. XLNet

Созданная CMU AI в июне 2019 года, XLNet использует авторегрессивные методы для моделирования языка вместо автоматического кодирования, используемого в BERT. Он использует лучшие возможности как BERT, так и TransformerXL.

8. PyTorch-Трансформеры

В июле 2019 года люди из Hugging face сотворили чудо, создав PyTorch Transformers. С помощью этого инструмента мы можем использовать модели BERT, XLNET и TransformerXL с очень небольшим количеством строк кода Python.

9. Расширенное представительство Baidu посредством интеграции знаний (ERNIE)

В июле 2019 года китайский поисковый гигант Baidu выпустил эту модель с функцией непрерывного предварительного обучения. Это предварительно обученная модель понимания языка, которая достигла самых современных результатов и превзошла BERT и недавнюю XLNet в 16 задачах НЛП как на китайском, так и на английском языках.

10. RoBERTa: надежно оптимизированный подход к предварительному обучению BERT

В июле 2019 года FacebookAI выпустил улучшение по сравнению с BERT. Команда разработчиков FacebookAI оптимизировала процесс обучения и гиперпараметры BERT для достижения этой модели.

11. Трансформаторы spaCy-PyTorch

В августе 2019 года компания Hugging Face выпустила этот преобразователь PyTorch для языковой обработки. Он также используется для размещения трансформаторов. spaCy используется вместе с PyTorch для создания Трансформеров.

12. XLM / mBERT FacebookAI

В августе 2019 года Facebook выпустил эту многоязычную языковую модель, состоящую из почти 100 языков. Это СОТА для межъязыковой классификации и машинного перевода.

13.Stanza

В апреле 2020 года Стэндфордский университет выпустил эту расширенную версию StanfordNLP, которая поддерживает 66 языков. Stanza включает не зависящий от языка, полностью нейронный конвейер для анализа текста, включая токенизацию, расширение токена из нескольких слов, лемматизацию, тегирование частей речи и морфологических признаков, синтаксический анализ зависимостей и распознавание именованных сущностей.

Stanza

Что изучать дальше

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

Если вы хотите продолжить изучение НЛП, я рекомендую заняться следующими концепциями:

  • TensorFlow
  • Pandas library
  • Embeddings
  • Skip-gram
  • Language models
Оцените статью
bestprogrammer.ru
Добавить комментарий