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

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

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

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

Неважно, идет ли речь об обработке автоматического перевода или разговора с чат-ботом: все методы обработки естественного языка одинаковы в том, что все они предполагают понимание иерархии, которая диктует взаимодействие между отдельными словами. Но это не так просто — многие слова имеют двойное значение. Например, «сдать» может означать физическую передачу чего-то, решение не участвовать в чем-то, а также меру успеха на экзамене или в другом формате тестирования. Кроме того, в одном и том же спряжении оно выступает и как глагол, и как существительное. Разница в значении происходит от слов, которые окружают «pass» в предложении или фразе (I passed the butter/on the opportunity/the exam).

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

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

  • Термин морфология связан с взаимодействием между словами и их отношениями с другими словами.
  • Синтаксис определяет, как слова и предложения складываются вместе
  • Семантика — это изучение значения слов и групп слов.
  • Прагматика используется для объяснения содержания разговорных выражений
  • И, наконец, фонология охватывает акустическую структуру разговорного языка и необходима для распознавания языка.

Тегирование частей речи (PoS)

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

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

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

Деревья разбора/диаграммы деревьев

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

Разделение предложения на фразы называется «синтаксическим разбором», а древовидные диаграммы, которые получаются в результате этого, называются деревьями разбора. Каждый язык имеет свои собственные грамматические правила, что означает, что в каждом языке фразы строятся по-разному и что иерархия различных фраз различна. Грамматические правила для конкретного языка могут быть запрограммированы в компьютерной программе вручную или изучены с помощью корпуса текстов для распознавания и понимания структуры предложений.

Семантика

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

Нарезать морковь на доске

Она председатель правления

Тот, кто достаточно хорошо знает английский язык, сразу поймет, что в первом примере речь идет о разделочной доске, а во втором — о совете директоров или чем-то подобном. Но для компьютера это не так просто. На самом деле, компьютеру довольно сложно усвоить необходимые знания, требуемые для расшифровки того, когда существительное «доска» относится к доске, используемой для нарезки овощей и других продуктов, а когда к собранию людей, которым поручено принимать важные решения (или к любому другому из многочисленных употреблений существительного «совет», если на то пошло).

В результате компьютеры в основном пытаются определить слово, используя слова, которые встречаются до и после него. Это означает, что компьютер может узнать, что если слову «board» предшествует или следует слово «carrots», то оно, вероятно, относится к разделочной доске, а если слову «board» предшествует или следует слово «chairman», то оно, скорее всего, относится к совету директоров. Этот процесс обучения проходит успешно с помощью текстовых корпораций, которые показывают все возможные значения данного слова, воспроизведенные правильно на множестве различных примеров.

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

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

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

  • Natural Language Toolkit — это набор инструментов для обработки языка на языке Python. Инструментарий предлагает доступ к более чем 100 текстовым корпорациям, представленным на различных языках, включая английский, португальский, польский, голландский, каталонский и баскский. Набор инструментов также предлагает различные методы редактирования текста, такие как тегирование Part-of-Speech, синтаксический анализ, токенизация (определение корневого слова; популярный этап подготовки к обработке естественного языка) и объединение текстов (обертывание). Набор инструментов естественного языка также содержит введение в программирование и подробную документацию, что делает его подходящим для студентов, преподавателей и исследователей. 
  • Stanford NLP Group Software: этот инструмент, представленный одной из ведущих исследовательских групп в мире обработки естественного языка, предлагает множество функций. С его помощью можно определить основные формы слов (токенизация), функции слов (тегирование частей речи) и структуру предложений (синтаксический разбор). Существуют также дополнительные инструменты для более сложных процессов, например, глубокое обучение, которое изучает контекст предложений. Основные функции доступны в Stanford CoreNLP. Все программы Stanford NLP Group написаны на Java и доступны для английского, китайского, немецкого, французского и испанского языков.
  • Visualtext — это набор инструментов, написанный на специальном языке программирования для обработки естественного языка: NLP++. Этот язык сценариев был разработан в первую очередь для помощи глубоким анализаторам текстов, которые проводят анализ, используемый для улучшения глобального понимания компьютера (другими словами, информации об окружающей среде и обществе).  Основной задачей Visualtext является помощь в извлечении целевой информации из огромных объемов текста. Таким образом, Visualtext можно использовать, например, для резюмирования длинных текстов, а также для сбора всей информации о конкретных темах с различных веб-страниц и представления их в виде обзора. Visualtext бесплатен при использовании в некоммерческих целях.

Оцените статью
cdelat.ru
Добавить комментарий