Введение
Область лингвистики и компьютерных наук, связанная с обработкой естественного языка компьютерами. Обработка естественного языка (НЛП) – это междисциплинарная область компьютерных наук и информационного поиска. Она в первую очередь направлена на то, чтобы предоставить компьютерам возможность поддерживать и обрабатывать человеческий язык. Это включает в себя обработку корпусов естественного языка, таких как текстовые или речевые корпуса, с использованием машинного обучения, основанного на правилах или вероятностных подходах (то есть статистических и, в последнее время, на основе нейронных сетей). Цель состоит в создании компьютера, способного "понимать" содержание документов, включая контекстуальные нюансы языка в них. Для этого обработка естественного языка часто использует идеи из теоретической лингвистики. Технология позволяет точно извлекать информацию и идеи из документов, а также классифицировать и организовывать сами документы. Типичные задачи обработки естественного языка включают распознавание речи, понимание естественного языка и генерацию естественного языка.
Natural language processing (NLP) is an interdisciplinary subfield of computer science and information retrieval. It is primarily concerned with giving computers the ability to support and manipulate human language. It involves processing natural language datasets, such as text corpora or speech corpora, using either rule based or probabilistic (i. e. statistical and, most recently, neural network based) machine learning approaches. The goal is a computer capable of "understanding" the contents of documents, including the contextual nuances of the language within them. To this end, natural language processing often borrows ideas from theoretical linguistics. The technology can then accurately extract information and insights contained in the documents as well as categorize and organize the documents themselves. Challenges in natural language processing frequently involve speech recognition, natural language understanding, and natural language generation.
Символическая НЛП (1950-е годы - начало 1990-х годов)
Предпосылка символического НЛП хорошо обобщена экспериментом Джона Серла с "китайской комнатой": учитывая набор правил (например, китайский разговорник с вопросами и соответствующими ответами), компьютер имитирует понимание естественного языка (или другие задачи НЛП), применяя эти правила к поступающим данным. 1950-е: эксперимент, проведенный в Джорджтауне в 1954 году, включал полностью автоматический перевод более шестидесяти русских предложений на английский язык. Авторы утверждали, что машинный перевод будет решен в течение трех-пяти лет. Однако реальный прогресс был значительно медленнее, и после публикации отчета ALPAC в 1966 году, который показал, что десятилетние исследования не оправдали ожиданий, финансирование машинного перевода было резко сокращено. Дальнейшие исследования в области машинного перевода в Америке проводились мало (хотя некоторые исследования продолжались в других странах, таких как Япония и Европа) до конца 1980-х годов, когда были разработаны первые статистические системы машинного перевода. 1960-е: среди особенно успешных систем обработки естественного языка, разработанных в 1960-х годах, можно выделить SHRDLU – систему, работающую с естественным языком в ограниченных "блочных мирах" с ограниченным словарным запасом, и ELIZA – симуляцию роджерского психотерапевта, написанную Джозефом Вайзенбаумом в период с 1964 по 1966 год. Практически не используя информации о человеческих мыслях или эмоциях, ELIZA иногда демонстрировала удивительно человекоподобное взаимодействие. Когда "пациент" выходил за пределы очень небольшой базы знаний, ELIZA могла давать общий ответ, например, на фразу "У меня болит голова" она отвечала: "Почему вы говорите, что у вас болит голова?". Успешная работа Росса Куиллиана в области обработки естественного языка была продемонстрирована с использованием словаря всего из двадцати слов, поскольку именно такой объем помещался в компьютерную память того времени. 1970-е: в 1970-х годах многие программисты начали создавать "концептуальные онтологии", структурирующие информацию о реальном мире в данные, понятные для компьютера. Примерами служат MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin (Meehan, 1976), QUALM (Lehnert, 1977), Politics (Carbonell, 1979) и Plot Units (Lehnert 1981). В это время были написаны первые чат-боты (например, PARRY). 1980-е: 1980-е и начало 1990-х годов ознаменовали расцвет символических методов в НЛП. Основными направлениями исследований того времени были исследования, посвященные синтаксическому анализу на основе правил (например, разработка HPSG как вычислительной реализации генеративной грамматики), морфологии (например, двухуровневая морфология), семантике (например, алгоритм Леска), референции (например, в рамках теории центрирования) и другим областям понимания естественного языка (например, в теории риторической структуры). Продолжались и другие направления исследований, например, разработка чат-ботов с использованием Racter и Jabberwacky. Важным развитием (которое в конечном итоге привело к статистическому повороту в 1990-х годах) стало возрастающее значение количественной оценки в этот период.
Статистическая НЛП (1990-е 2010-е)
До 1980-х годов большинство систем обработки естественного языка основывались на сложных наборах правил, написанных вручную. Однако, начиная с конца 1980-х годов, произошла революция в обработке естественного языка с появлением алгоритмов машинного обучения для обработки языка. Это было обусловлено как устойчивым ростом вычислительной мощности (см. закон Мура), так и постепенным ослаблением доминирования чомскианских теорий лингвистики (например, трансформационной грамматики), чьи теоретические основы препятствовали развитию корпусной лингвистики, лежащей в основе подхода машинного обучения к обработке языка. 1990-е годы: Многие из заметных ранних успехов статистических методов в обработке естественного языка были достигнуты в области машинного перевода, особенно благодаря работам, выполненным в IBM Research, таким как модели выравнивания IBM. Эти системы смогли использовать существующие многоязычные текстовые корпуса, созданные Парламентом Канады и Европейским Союзом в соответствии с законами, требующими перевода всех государственных процедур на все официальные языки соответствующих систем управления. Однако большинство других систем зависело от корпусов, разработанных специально для решаемых ими задач, что являлось (и часто остаётся) серьезным ограничением их эффективности. В результате значительные исследования были посвящены методам более эффективного обучения на ограниченном объеме данных. 2000-е годы: С ростом Интернета с середины 1990-х годов стало доступно всё больше необработанных (неразмеченных) языковых данных. Исследования всё больше фокусируются на алгоритмах обучения без учителя и полуавтоматического обучения. Такие алгоритмы могут обучаться на данных, которые не были размечены вручную с указанием правильных ответов, или с использованием комбинации размеченных и неразмеченных данных. Как правило, эта задача значительно сложнее контролируемого обучения и обычно даёт менее точные результаты при заданном объеме входных данных. Однако существует огромное количество неразмеченных данных (включая, в частности, всё содержимое Всемирной паутины), которое часто может компенсировать худшие результаты, если используемый алгоритм обладает достаточно низкой вычислительной сложностью, чтобы быть практичным.
Нейронная НЛП (на данный момент)
В 2003 году модель n-грамм, на тот момент лучший статистический алгоритм, была превзойдена многослойным перцептроном (с одним скрытым слоем и длиной контекста в несколько слов, обученным на объеме до 14 миллионов слов с использованием кластера процессоров для языкового моделирования) Йошуа Бенгио с соавторами. В 2010 году Томаш Миколов (тогда аспирант Брненского технологического университета) с соавторами применил простую рекуррентную нейронную сеть с одним скрытым слоем для языкового моделирования, а в последующие годы разработал Word2vec. В 2010-х годах методы машинного обучения, основанные на представлении данных и глубоких нейронных сетях (с множеством скрытых слоев), получили широкое распространение в области обработки естественного языка. Эта популярность была отчасти обусловлена большим количеством результатов, демонстрирующих, что такие методы позволяют достигать передовых результатов во многих задачах обработки естественного языка, например, в языковом моделировании и синтаксическом анализе. Это приобретает все большее значение в медицине и здравоохранении, где методы НЛП помогают анализировать заметки и текст в электронных медицинских картах, которые в противном случае были бы недоступны для исследований, направленных на улучшение качества обслуживания или защиту конфиденциальности пациентов.
Статистический подход
В конце 1980-х и в середине 1990-х годов статистический подход положил конец периоду "зимы ИИ", вызванному неэффективностью подходов, основанных на правилах. Самые первые деревья решений, генерирующие системы жёстких правил "если-то", всё ещё были очень похожи на прежние подходы, основанные на правилах. Лишь внедрение скрытых марковских моделей, применённых к задаче определения частей речи, ознаменовало окончание старой эры подходов, основанных на правилах.
Нейронные сети
Основным недостатком статистических методов является то, что они требуют трудоемкой разработки признаков. С 2015 года статистический подход был вытеснен подходом нейронных сетей, использующим векторные представления слов для моделирования семантических свойств слов. Промежуточные задачи, такие как определение частей речи и синтаксический анализ, стали ненужными. Нейронный машинный перевод, основанный на недавно изобретенных преобразованиях последовательность-в-последовательность, упразднил промежуточные этапы, такие как выравнивание слов, которые ранее были необходимы для статистического машинного перевода.
Общие задачи НЛП
Ниже представлен список некоторых из наиболее часто исследуемых задач в области обработки естественного языка. Некоторые из этих задач имеют прямое практическое применение, в то время как другие чаще используются в качестве подзадач, помогающих в решении более сложных задач. Несмотря на тесную взаимосвязь задач обработки естественного языка, их можно разделить на категории для удобства. Ниже приведена общая классификация.