Как начать свой путь в NLP (не путать с НЛП) |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2019-12-02 20:00
В предыдущем материале мы узнали, как подружиться с питоном, если вы гуманитарий. Now, we need to go deeper: разбираемся, является ли естественный язык своеобразным кодом, который можно скормить машине и с чего начать NLP, если у вас лапки. Шаг 1. Выяснить, что такое NLP.
NLP расшифровывается как Natural Language Processing и представляет собой целое направление, связанное с обработкой и распознаванием языковых данных. На сегодняшний день в числе достижений NLP можно отметить машинный перевод, чат-боты, голосовых помощников, автоматических переводчиков и умную контекстную рекламу.
Где используется
Во множестве приложений и инструментов, от роботов в колл-центрах, электронных консультантов на сайтах, таргетированной рекламы и Google Translate, до проверки грамматики в Microsoft Word и Grammarly. Не забудем о голосовых помощниках вроде Siri, Алисы и Алексы.
Как работает
Основная задача и идея NLP (и NLU, Natural Language Understanding) — превратить неструктурированные (сырые) языковые данные в форму, понятную компьютеру.
В чем сложности
Сама природа человеческого естественного языка делает некоторые задачи NLP непростыми: не все закономерности можно эффективно формализовать, некоторые феномены являются очень абстрактными (например, до сих пор эффективно не решена задача автоматического обнаружения сарказма, иронии и импликатур в текстах. Некоторые более простые — например, описать использование окончаний множественного числа в существительных.
Чтобы ориентироваться в море задач, нам нужно сделать следующий шаг: Шаг 2. Познакомиться с арсеналом методов
В Natural Language Processing существует множество методов работы с данными, и для каждого типа задачи: необходимо выбрать свой путь. Вот некоторые из них:
Подходы, основанные на правилах:
(1) Определяем набор языковых правил, который описывает поведение данных (например, языковые законы формирования множественного числа у существительных в немецком)
С помощью правил можно решить такие задачи как:
Как правило, у правиловых методов высокая полнота и низкая точность, они могут давать хороший результат при специфичных задачах. Из минусов — rule-based методы плохо масштабируются: сложно написать большой проект полностью на правилах, обычно метод используется точечно для решения конкретных задач (например, токенизации) и в тандеме с методами из машинного обучения.
Классическое машинное обучение
классический ML делится на обучение с учителем (supervised ML) и без учителя (unsupervised ML). Идея классической ML-модели: с помощью размеченных данных обучить модель, как реагировать на новые данные. Потестить на других данных, которые не использовались при обучении.
Так как мы тренируем математическую модель, наши данные должны быть представлены как цифровые. (Например, капитализацию слов можно представить как 1.0 and 0.0). Данные обычно представлены как вектора фиксированной длины (например, слова, по отношению к другим словам — см. векторную семантику). ML-модели имеют б?льшую полноту по сравнению с методами на правилах. К минусам можно отнести необходимость иметь размеченные данные, они не всегда доступны.
Типичные алгоритмы классического ML, используемые в NLP — это:
Unsupervised ML или обучение без учителя не требует размеченных датасетов, задача алгоритма — самому разобраться в закономерностях данных. Типичные алгоритмы ML без учителя в NLP — это алгоритмы кластеризации
Но есть ещё один вариант.
Глубинное машинное обучение.
Методы классического машинного обучения хороши в плане точности и полноты, однако требовательны к подбору признаков. Прежде чем применить модель, исследователю надо понять, какие именно свойства объектов хорошо сработают в задаче. Ответ на этот вопрос часто совсем не очевиден и требует множества экспериментов, иногда очень времязатратных. В какой-то момент появилась даже специальная под-специальность внутри ML — feature engineering, инженерия признаков. При этом инженерия признаков ограничена возможностями датасета: мы не можем обучить модель с использованием синтаксических связей в качестве признака, если в наших данных синтаксис не размечен и у нас при этом нет надежно работающего синтаксического парсера.
Выход есть: глубокое обучение при помощи нейронных сетей. Для глубокого обучения не требуется сложный feature-engineering, задача примерно такая же: представить текст как вектор. Однако теперь нейросеть самостоятельно выберет самые главные признаки. DL-методы дают высокую точность, однако среди недостатков — они медленнее правиловых методов и классического ML, а кроме того, требуют больших вычислительных мощностей и высокого качество входных данных.
Шаг 3. Осознать поле типичных NLP-задач
Их много: Шаг 4. Найти полезные Ресурсы
Чтение:
Датасеты:
Онлайн-курсы
Сайты и блоги
Готово: теперь вы можете выбрать задачу, метод(ы) и начать воплощать задуманное!
PS: методы можно комбинировать
Анастасия Гарькуша, Анастасия Хорошева Источники
Источник: www.dreamstime.com Комментарии: |
|