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

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

Проблемы в обработке естественного языка часто связаны с распознаванием речи, пониманием естественного языка и формированием естественного языка.

история
История обработки естественного языка обычно начиналась в 1950-х годах, хотя работы можно найти в более ранние периоды. В 1950 году Алан Тьюринг опубликовал статью под названием «Интеллект», в которой предлагалось, что теперь называется критерием Тьюринга как критерием интеллекта.

Эксперимент Джорджтауна в 1954 году включал полностью автоматический перевод более шестидесяти русских предложений на английский язык. Авторы утверждали, что в течение трех или пяти лет машинный перевод будет решаемой проблемой. Однако реальный прогресс был намного медленнее, и после отчета ALPAC в 1966 году, в котором было установлено, что десятилетние исследования не оправдали ожиданий, финансирование машинного перевода значительно сократилось. Мало дальнейших исследований в механическом переводе было проведено до конца 1980-х годов, когда были разработаны первые системы статистического машинного перевода.

Некоторыми особенно успешными системами обработки естественного языка, разработанными в 1960-х годах, были SHRDLU, система естественного языка, работающая в ограниченных «мирах блоков» с ограниченными словарями, и ELIZA, симуляция Rogerian psychotherapist, написанная Джозефом Вайзенбаумом в период с 1964 по 1966 год. Используя почти никакой информации о человеческой мысли или эмоциях, ELIZA иногда давала потрясающее человекоподобное взаимодействие. Когда «пациент» превысил очень небольшую базу знаний, ELIZA могла бы дать общий ответ, например, отвечая на «Моя голова болит»: «Почему вы говорите, что у вас болит голова?».

В 1970-е годы многие программисты начали писать «концептуальные онтологии», которые структурировали реальную информацию в понятные для компьютера данные. Примеры: MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin (Meehan, 1976), QUALM (Lehnert, 1977), Politics (Carbonell, 1979) и Plot Units (Lehnert 1981 ). За это время было записано много болтовней, включая PARRY, Racter и Jabberwacky.

До 1980-х годов большинство систем обработки естественного языка были основаны на сложных наборах рукописных правил. Однако с конца 1980-х годов произошла революция в обработке естественного языка с внедрением алгоритмов машинного обучения для обработки языка. Это было связано как с постоянным увеличением вычислительной мощности (см. Закон Мура), так и постепенным уменьшением доминирования хомских теорий лингвистики (например, трансформационной грамматики), теоретические основы которых препятствовали тому, что языковая личность корпуса лежит в основе подхода машинного обучения для обработки языка. Некоторые из самых ранних используемых алгоритмов машинного обучения, таких как деревья решений, создавали системы жестких правил if-then, аналогичные существующим рукописным правилам. Тем не менее, теги с частичной речью привели к использованию скрытых моделей Маркова для обработки естественного языка, и все чаще исследования фокусировались на статистических моделях, которые делают мягкие вероятностные решения, основанные на привязке достоверных весов к характеристикам, составляющим входные данные данные. В качестве примеров таких статистических моделей используются модели языка кеша, на которых в настоящее время полагаются многие системы распознавания речи. Такие модели, как правило, более надежны при предоставлении незнакомого ввода, особенно ввода, который содержит ошибки (как это часто встречается для реальных данных) и дает более надежные результаты при интеграции в более крупную систему, включающую несколько подзадач.

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

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

В 2010-ом году обучение в области обучения и методы машинного обучения в стиле нейронных сетей стали широко распространены в процессе обработки на естественном языке, отчасти из-за шквала результатов, показывающих, что такие методы могут достигать самых современных результатов во многих задачах на естественном языке, например, в моделировании языка, синтаксическом анализе и многих других. Популярные методы включают использование вложений слов для захвата семантических свойств слов и увеличение сквозного обучения задачи более высокого уровня (например, ответ на вопрос) вместо того, чтобы полагаться на конвейер отдельных промежуточных задач (например, разделение на части речи и анализ зависимостей). В некоторых областях этот сдвиг влечет за собой существенные изменения в том, как разрабатываются системы НЛП, так что подходы, основанные на глубокой нейронной сети, могут рассматриваться как новая парадигма, отличная от обработки статистического естественного языка. Например, термин нейронный машинный перевод (NMT) подчеркивает тот факт, что основанные на глубоком обучении подходы к машинным переводам непосредственно участвуют в преобразованиях последовательности к последовательности, устраняя необходимость в промежуточных этапах, таких как выравнивание слов и языковое моделирование, которые использовались в статистических машинный перевод (SMT).

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

Со времени так называемой «статистической революции» в конце 1980-х и середине 1990-х годов многие исследования в области обработки естественного языка в значительной степени основывались на машинах.

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

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

Системы, основанные на машинных алгоритмах, имеют много преимуществ по сравнению с ручными правилами:

Учебные процедуры, используемые во время машинного обучения, автоматически фокусируются на наиболее распространенных случаях, тогда как при написании правил вручную не всегда очевидно, где нужно направлять усилия.
Автоматические процедуры обучения могут использовать алгоритмы статистического вывода для создания моделей, которые являются надежными для незнакомого ввода (например, содержащие слова или структуры, которые ранее не были замечены) и ошибочным вводам (например, с ошибками или словами, случайно опущенными). Как правило, обработка таких входных данных грациозно с помощью рукописных правил, или, в более общем плане, создания систем ручных правил, которые принимают мягкие решения, чрезвычайно сложна, подвержена ошибкам и занимает много времени.
Системы, основанные на автоматическом изучении правил, могут быть более точными, просто предоставив больше входных данных. Однако системы, основанные на рукописных правилах, могут быть сделаны более точными, увеличивая сложность правил, что является гораздо более сложной задачей. В частности, существует предел сложности систем, основанных на ручных правилах, за которыми системы становятся все более неуправляемыми. Однако создание большего количества данных для ввода в системы машинного обучения просто требует соответствующего увеличения количества отработанных человеко-часов, как правило, без значительного увеличения сложности процесса аннотации.

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

Хотя задачи обработки естественного языка тесно переплетаются, они часто подразделяются на категории для удобства. Ниже приводится грубое разделение.

Синтаксис

Грамматическая индукция
Создайте формальную грамматику, которая описывает синтаксис языка.

лемматизации

Морфологическая сегментация
Разделите слова на отдельные морфемы и определите класс морфем. Трудность этой задачи во многом зависит от сложности морфологии (т.е. структуры слов) рассматриваемого языка. Английский язык имеет довольно простую морфологию, особенно флективную морфологию, и поэтому часто можно полностью игнорировать эту задачу и просто моделировать все возможные формы слова (например, «открывать, открывать, открывать, открывать») в виде отдельных слов. Однако на таких языках, как турецкий или Meitei, сильно агглютинированный индийский язык, такой подход невозможен, поскольку каждая запись в словаре содержит тысячи возможных форм слова.

Течение части речи
Определите часть речи для каждого слова. Многие слова, особенно общие, могут выступать в роли нескольких частей речи. Например, «книга» может быть существительным («книга на столе») или глаголом («забронировать рейс»); «set» может быть существительным, глаголом или прилагательным; и «выход» может быть любой из пяти разных частей речи. Некоторые языки имеют больше такой двусмысленности, чем другие. [Dubious — discuss] Языки с небольшим морфологическим изменением, такие как английский, особенно подвержены такой двусмысленности. Китайцы склонны к такой двусмысленности, потому что это тональный язык во время вербализации. Такой перегиб не легко передается через организации, используемые в орфографии, для передачи намеченного значения.

анализ
Определите дерево разбора (грамматический анализ) данного предложения. Грамматика для естественных языков неоднозначна, а типичные предложения имеют несколько возможных анализов. На самом деле, возможно, удивительно, что для типичного предложения могут быть тысячи потенциальных анализов (большая часть которых будет казаться совершенно бессмысленной для человека). Существует два основных типа синтаксического анализа, анализа зависимостей и анализа синтаксиса. Анализ зависимостей фокусируется на отношениях между словами в предложении (обозначая такие вещи, как Первичные объекты и предикаты), в то время как анализ позиционирования сосредоточен на построении дерева анализа с использованием вероятностной контекстно-свободной грамматики (PCFG).

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

Морфологический
Разделение слов
Отделите кусок непрерывного текста на отдельные слова. Для такого языка, как английский, это довольно тривиально, поскольку слова обычно разделяются пробелами. Однако некоторые письменные языки, такие как китайский, японский и тайский, не обозначают границы слов таким образом, и в этих языках сегментация текста является важной задачей, требующей знания словарного запаса и морфологии слов на этом языке. Иногда этот процесс также используется в таких случаях, как создание Bag of Words (BOW) в области интеллектуального анализа данных.

Выделение терминологии
Целью извлечения терминов является автоматическое извлечение соответствующих терминов из данного корпуса.

Семантика

Лексическая семантика
Каков вычислительный смысл отдельных слов в контексте?

Машинный перевод
Автоматически переводить текст с одного человеческого языка на другой. Это одна из самых сложных проблем и входит в класс проблем, которые в общем и целом называются «AI-complete», т. Е. Требуются все разные типы знаний, которыми обладают люди (грамматика, семантика, факты о реальном мире и т. Д. .) для правильной работы.

Именованное распознавание объектов (NER)
Учитывая поток текста, определите, какие элементы в текстовой карте соответствуют именам, например людям или местам, и какому типу каждого такого имени (например, человек, местоположение, организация). Обратите внимание, что хотя капитализация может помочь в распознавании именованных объектов на таких языках, как английский, эта информация не может помочь в определении типа именованного объекта и в любом случае часто является неточной или недостаточной. Например, первое слово предложения также капитализируется, и именованные объекты часто охватывают несколько слов, только некоторые из них капитализируются. Кроме того, многие другие языки в незападных сценариях (например, на китайском или арабском языках) вообще не имеют никакой капитализации, и даже языки с капитализацией не могут последовательно использовать ее для различения имен. Например, немецкий капитализирует все существительные, независимо от того, являются ли они именами, а на французском и испанском языках не используются имена, которые служат прилагательными.

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

Изучение естественного языка
Преобразование фрагментов текста в более формальные представления, такие как логические структуры первого порядка, которые легче манипулировать компьютерными программами. Признание естественного языка включает в себя идентификацию предполагаемой семантики из множественной возможной семантики, которая может быть получена из выражения естественного языка, которое обычно принимает форму организованных обозначений понятий естественного языка. Введение и создание языковой метамодели и онтологии являются эффективными, однако, эмпирическими решениями. Явная формализация семантики естественного языка без путаницы с неявными предположениями, такими как предположение о закрытом мире (CWA) против открытого мира или субъективное Да / Нет против объективного True / False, ожидается для построения основы формализации семантики ,

Оптическое распознавание символов (OCR)
Для изображения, представляющего печатный текст, определите соответствующий текст.

Ответ на вопрос
Учитывая вопрос на человеческом языке, определите его ответ. Типичные вопросы имеют конкретный правильный ответ (например, «Что такое столица Канады?»), Но иногда также рассматриваются открытые вопросы (например, «Что такое смысл жизни?»). В последних работах рассмотрены еще более сложные вопросы.

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

Извлечение связей
Учитывая фрагмент текста, определите отношения между именованными объектами (например, кто женат на кого).

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

Сегментация и признание сегмента
Учитывая фрагмент текста, разделите его на сегменты, каждый из которых посвящен теме, и определите тему сегмента.

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

речь

Автоматическое суммирование
Произведите читаемое резюме фрагмента текста. Часто используется для предоставления резюме текста известного типа, например статей в финансовой части газеты.
Разрешающая способность

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

Анализ речи
Эта рубрика включает в себя ряд связанных задач. Одной из задач является определение структуры дискурса связанного текста, т. Е. Характера дискурсных отношений между предложениями (например, выработка, объяснение, контраст). Другой возможной задачей является распознавание и классификация речевых актов в куске текста (например, да-не вопрос, вопрос содержания, утверждение, утверждение и т. Д.).

речь

Распознавание речи
Учитывая звуковой клип человека или людей, говорящих, определите текстовое представление речи. Это противоположность текста для речи и является одной из чрезвычайно сложных проблем, которые в общем разговоры называются «AI-complete» (см. Выше). В естественной речи практически нет пауз между последовательными словами, и, следовательно, речевая сегментация является необходимой подзадачей распознавания речи (см. Ниже). Обратите также внимание на то, что в большинстве разговорных языков звуки, представляющие последовательные буквы, смешиваются друг с другом в процессе, называемом coarticulation, поэтому преобразование аналогового сигнала в дискретные символы может быть очень сложным процессом.

Сегментация речи
Учитывая звуковой клип человека или людей, говорящих, отделите его на слова. Подзадача распознавания речи и обычно сгруппирована с ней.

Текст в речь
Учитывая текст, преобразуйте эти единицы и произнесите речевое представление. Текст-речь может использоваться для помощи слабовидящим.