Основные проблемы при работе с естественными языками — это проблемы анализа и синтеза естественных языков при помощи компьютера.
Суть проблемы
Обработка естественного языка, которая обозначается аббревиатурой NLP, то есть Natural language processing, является научной сферой, расположенной на стыке искусственного интеллекта и лингвистики. Ее целью является обработка и «понимание» естественного языка, чтобы можно было выполнить перевод текстовой информации и отвечать на вопросы. Со стремительным прогрессом голосового интерфейса, система NLP превратилась в одну из базовых технологий искусственного интеллекта. Однако ясное понимание и воспроизведение языковых смысловых значений является очень сложной проблемой, поскольку язык человека обладает следующими особенностями:
- Язык человека считается специально сконструированной системой трансляции смыслового значения сказанного или изложенного в письменной форме.
- Язык человека является дискретной, символьной или категориальной сигнальной системой, обладающей надёжностью.
- Категориальные символы языка могут кодироваться в форме сигналов для общения по различным каналам, а именно, звуковым, жестами, в письменной форме, в виде изображения и тому подобное. Причём язык может быть выражен любым из способов.
Области использования обработки естественного языка
В настоящее время число удобных программных продуктов в этой сфере постоянно увеличивается, причём с большой скоростью, регулярно появляются:
- Приложения организации поиска (письменного или устного).
- Приложения показа соответствующей запросам клиента онлайн рекламы.
- Осуществление перевода в автоматическом режиме.
- Осуществление анализа настроений согласно проблемам маркетинга.
- Приложения, распознающие речь, и чат-боты.
- Приложения с функциями голосовых помощников, например, обеспечение автоматизированной помощи покупателям, выполнение заказа товара и услуги.
Глубокое обучение в NLP
Большая часть технологий NLP может работать за счёт использования глубокого обучения. Это сфера машинного обучения, получившая существенное развитие в последнее десятилетие по ряду причин:
- Наличие накопленных за прошлый период больших объёмов тренировочных данных.
- Появились достаточные вычислительные мощности, такие как, многоядерные центральные и графические процессоры.
- Сформированы новые модели и структуры алгоритмов, имеющие расширенные возможности и обладающие повышенной производительностью, при гибком обучении на промежуточных представлениях.
- Реализованы методики обучения с применением контекста, а также новые методики оптимизации и регуляризации.
Почти все методы машинного обучения отлично функционируют благодаря разработанным специалистами представлениям информационных данных и входных признаков, и, кроме этого, оптимизации весов, что делает итоговые предсказания лучше. При глубоком обучении алгоритм осуществляет попытки автоматического извлечения самых лучших признаков или представлений из необработанной входной информации.
Сформированные в ручном режиме признаки часто бывают очень специализированными, неполными и, следовательно, необходимо дополнительное время на их обработку. В отличие от ручного режима, обнаруженные глубоким обучением признаки могут быть легко приспособлены.
Глубокое обучение предоставляет возможность гибкого, универсального и обучаемого фреймворка (программной платформы, определяющей структуру программной системы, облегчающей разработку и объединение различных элементов большого программного проекта) для отображения мира в форме визуальных или лингвистических данных. Изначально это позволило осуществить прорыв в сфере распознавания речи и компьютерном зрении. Данные модели способны обучаться при помощи одного наиболее известного алгоритма и не требуют стандартного формирования признаков для конкретной проблемы.
Векторное представление
В стандартной системе NLP предлагается рассматривать слова в форме дискретных символов, представляемых далее в форме горячих векторов (one-hot). Проблемой со словами, то есть дискретными символами, является отсутствие определения аналогий для one-hot векторов. По этой причине используется альтернативный вариант, то есть обучение кодированию схожести в самих векторах. Векторное представление является методом отображения строк в векторном формате со значениями. Выполняется построение плотного вектора для всех слов таким образом, чтобы попадающиеся в похожем контексте слова обладали похожими векторами. Векторное представление может считаться отправной точкой практически для всех задач NLP и позволяет сделать глубокое обучение эффективным даже на небольших наборах данных (data set). Технологии векторного представления Word2vec и GloVe, разработанные Google (Mikolov) и Stanford (Pennington, Socher, Manning) соответственно, стали очень популярными и часто применяются для решения проблем NLP.
Word2vec воспринимает большой текстовый корпус, где все слова в фиксированном словаре представляются как вектора. Затем алгоритм проходит по всем позициям t в тексте, которые представляют собой центральное слово «С» и контекстное слово «О». Затем применяется схожесть векторов слов для «С» и «О» для расчёта вероятности «О» при заданном «С», и затем осуществляется продолжение регулировки векторов слов, чтобы минимизировать эту вероятность. Процесс показан на рисунке ниже:
Рисунок 1. Векторное представление. Автор24 — интернет-биржа студенческих работ
Чтобы достигнуть наилучший итоговый результат Word2vec из датасета нужно удалить бесполезные наборы слов (или слова, имеющие большую частоту повторения, для английского языка это a,the,of,then). Это помогает улучшать точность моделирования и сокращает время, отводимое для тренировки.