В результате проведенных исследований стало ясно, что за каждым текстом (в том числе и за отдельным предложением, являющимся своего рода мини-текстом) скрывается не одна, а несколько формальных структур, которые можно разделить на три уровня:
- синтаксический
- семантический
- прагматический.
Интерес к компьютерному анализу текста проявился с желанием добиться качественного машинного перевода. Со временем проблема машинного перевода переросла в отдельную научно-техническую проблему и фактически обрела черты отдельного научного направления с одноименным названием. Это направление возникло на стыке таких наук, как математика, кибернетика, лингвистика и программирование. Параллельно с этой проблемой учёных не покидала мечта о создании полноценного искусственного интеллекта. Активно начинались разработки так называемых виртуальных собеседников, способных поддерживать естественный диалог с человеком.
Данное выше виртуальным собеседникам определение не совсем точно. Дело в том, что цели конкретных диалогов между людьми различаются. Можно просто «поболтать», а можно обсудить важную проблему. Реализация последнего типа диалога представляет дополнительную проблему: научить программу мыслить. Поэтому функциональность большинства современных программ ограничивается возможностью ведения незатейливой беседы.
Программы, способные понимать отдельные высказывания пользователя, образуют класс программ с естественно-языковым интерфейсом. Смотрите, например, Вопросно-ответная система.
Создание виртуальных собеседников граничит с проблемой общего искусственного интеллекта, то есть единой системы (программы, машины), моделирующей интеллектуальную деятельность человека.
Виртуальные собеседники работают с «живым» языком. Обработка естественного языка, особенного разговорного стиля, — острая проблема искусственного интеллекта. И конечно, современные программы-собеседники — лишь попытки имитировать разумный диалог с машиной.
Как любая интеллектуальная система, виртуальный собеседник имеет базу знаний. В простейшем случае она представляет собой наборы возможных вопросов пользователя и соответствующих им ответов. Наиболее распространённые методы выбора ответа в этом случае следующие:
- Реакция на ключевые слова: Данный метод был использован в Элизе. Например, если фраза пользователя содержала слова «отец», «мать», «сын» и другие, Элиза могла ответить: «Расскажите больше о вашей семье».
- Совпадение фразы: Имеется ввиду похожесть фразы пользователя с теми, что содержатся в базе знаний. Может учитываться также порядок слов.
- Совпадение контекста: Часто в руководствах к программам-собеседникам просят не использовать фразы, насыщенные местоимениями, типа: «А что это такое?» Для корректного ответа некоторые программы могут проанализировать предыдущие фразы пользователя и выбрать подходящий ответ.
Своеобразной мини-проблемой являются идентификация форм слова и синонимов.
Обработка естественного языка (Natural Language Processing, NLP) — общее направление искусственного интеллекта и математической лингвистики. Оно изучает проблемы компьютерного анализа и синтеза естественных языков. Применительно к искусственному интеллекту анализ означает понимание языка, а синтез — генерацию грамотного текста. Решение этих проблем будет означать создание более удобной формы взаимодействия компьютера и человека.
Теоретически, построение естественно-языкового интерфейса для компьютеров — очень привлекательная цель. Ранние системы, такие как SHRDLU[3], работая с ограниченным «миром кубиков» и используя ограниченный словарный запас, выглядели чрезвычайно хорошо, вдохновляя этим своих создателей. Однако оптимизм быстро иссяк, когда эти системы столкнулись со сложностью и неоднозначностью реального мира.
Понимание естественного языка иногда считают AI-полной задачей, потому как распознавание живого языка требует огромных знаний системы об окружающем мире и возможности с ним взаимодействовать. Само определение смысла слова «понимать» — одна из главных задач искусственного интеллекта.
Качество понимания зависит от множества факторов: от языка, от национальной культуры, от самого собеседника и т. д.
Анализ текста — процесс получения высококачественной информации из текста на естественном языке. Как правило, для этого применяется статистическое обучение на основе шаблонов: входной текст разделяется с помощью шаблонов, затем производится обработка полученных данных.
При анализе письменной речи очень важно учитывать наличие ошибок со стороны человека: отсутствие пунктуационных знаков, нарушение порядка слов, опечатки, орфографические ошибки и т.д. В связи с этим понимание текста может быть ещё более затруднено. Примером могу служить самые первые виртуальные собеседники, которые могли определить, является ли предложение вопросительным, только по наличию соответствующего пунктуационного знака, завершающего фразу. Однако, к сожалению, не всегда спонтанная письменная речь обладает идеальным уровнем грамотности, в связи с чем, первое поколение виртуальных собеседников не могло претендовать даже на приближение к прохождению теста Тьюринга.
На данном этапе составлены обширные электронные словари самых различных типов. Особенным удобством и популярностью отличаются словари-графы, дуги которых передают не только отношения между возможными значениями выбранного слова, но также сообщают вероятность появления того или иного значения, дополнительную информацию, возможные словоформы и т.д.
Самые первые программы работали, анализируя текст пословно, что было не слишком эффективно и расходовало слишком много времени и ресурсов. В последствии, «научив» программу определять тип предложения и разбивать текст на упорядоченные конструкции, выделяя тема-рематические отношения, анализ лексем начал проходить быстрее и качественнее, что приблизило диалог к естественному.
2. Синтез текста
Задача синтеза может рассматриваться как обратная по отношению к анализу. Если заданы некоторая тема и цель будущего текста, то можно считать заданной прагматическую структуру текста. Ее надо декомпозировать в прагматические структуры отдельных предложений и для каждого предложения пройти все этапы анализа в обратном направлении. На сегодняшний день здесь еще масса нерешенных проблем. Неизвестно, как генерировать прагматическую структуру текста из тех целей, которые стимулируют создание текста. Непонятно, как эту структуру разбить на прагматические структуры предложений и как от этих частных прагматических структур перейти к глубинным семантическим структурам. Более известны методы дальнейшего движения по пути генерации текста.
Одним из первых примеров естественно-языковых систем, способных синтезировать тексты, является автоматическая система создания текстов волшебных сказок, созданная в Московском энергетическом институте в 70-х гг. и называемая TALE (Информатика). На первом шаге она выдает тексты примерно такого вида: "Жил-был X. Не было у него желаемого У. Стал просить Х Бога. Бог обещал. Появился У. Вырос У. Ушел раз Х и не велел У делать Z. Но У сделал Z. Вернулся X. У нет. Понял X, что У сделал Z. Пошел Х искать У..." В памяти рассматриваемой системы хранились данные для заполнения так называемых актантов, а одинаковые переменные показывают, что на эти места всюду надо поставить одни и те же заполнители. Так возникает текст: "Жил-был царь. И не было у царя желаемого наследника. Стал царь просить Бога. Бог обещал. Появился наследник. Вырос наследник..." Существует пример такой сказки, сочиненной этой программой[4].
В качестве другого примера системы автоматического синтеза можно привести систему, умеющую слагать стихи. Примеров таких систем уже немало, хотя с сочинением стихов дело обстоит несколько сложнее. Программа в состоянии учесть характер рифмы, количество слогов в соответствующих строках стихотворения, метрическую форму стихотворения и провести грамматический анализ. Однако содержание будущего стихотворения в значительной степени оказывается произвольным и зависит от содержания исходного словаря. Можно привести пример машинного стихотворения[5].
В настоящее время автоматический синтез текстов необходим также при создании:
- интеллектуальных систем, способных объяснять пользователю ход решения той или иной задачи,
- систем поддержки принятия решений, способных помогать пользователю принять то или иное решение на основе выработанных альтернатив,
- информационно-справочных систем различного назначения, способных подсказать пользователю наиболее оптимальный путь поиска и/или заказа той или иной информации (например, в системах заказа билетов),
- различных диалоговых систем.
3. Понимание текста
Проблема понимания текстов на естественном языке включает не только лингвистические аспекты. С ней тесно связаны задачи, традиционно решаемые в рамках психологии, философии и семиотики. Рассказывая о проблеме анализа текстов, мы несколько раз ссылались на то, что сам анализ служит инструментом для понимания содержания текста. Пожалуй, самое важное значение проблема понимания имеет в так называемых диалоговых системах.
В начале 70-х гг. специалисты в области искусственного интеллекта удивляли далеких от науки людей системами общения на естественном языке, демонстрирующими на первый взгляд почти безграничные возможности созданного ими интеллектуального интерфейса общения. Любой человек мог общаться с системой на произвольную тему, используя все богатство доступного ему языка. При этом система поддерживала разговор, поражая собеседника своими способностями. Вот один из примеров такого разговора, в котором в качестве интеллектуального интерфейса использовалась программа, реализованная на ЭВМ, получившая название "Элиза"