Pull to refresh

Comments 45

То есть, решением всех проблем с пониманием естественного языка будет книжка 80-го года? Неужели с тех пор ничего лучше так и не придумали?

Фреймы Минковского появились тоже в те времена, но на них по крайней мере делали системы — можно оценить результаты.
Работа 80-х годов Шенка года заложила основу, подход к точному моделированию машинного понимания отечественного языка и приведена для лучшего понимания идеи точного моделирования интеллекта.
С тех пор много усовершенствовалось с дрейфом в сторону формальной логики. Есть много зарубежных исследований и разработок с достаточно подробным описанием формальной модели естественного языка.
Наиболее практически ориентированная разработка ведется в Институте искусственного интеллекта, который финансирует сооснователь Микрософт Пол Аллен.
Фреймы Минского были первым и основополагающим шагом на пути моделирования мышления. Основная идея применения знаний — решение проблемы комбинаторного взрыва.
Книгу читал, но на практике не всё так просто как на бумаге. При разборе предложения возникает проблема с тем, что часть понятий не знакомы. При исследовании таких понятий из словаря возникает циклическое исследованные новых найденных терминов. В таком варианте на выходе получается огромный массив информации на основе которых нужно например сформулировать ответ на вопрос. Люди при ответе на вопрос учитывают меру достаточности знаний об отмечаемом объекте (просто проанализировав взглядом спрашивающего, например — это студент ему скорее всего интересно вот это...), а машина этого не умеет пока. Её ответы будут либо слишком общими или она 20 раз переспросит то ли она имеет ввиду. Конечно это можно обойти анализатором спрашивающего и анализом какой приблизительно ответ ожидает спрашивающий, а после давать ответ на основе текста. Но в таком варианте сложность программы вырастает в разы и начинается сложные зависимости алгоритмов, т.е. шансов что это будет работать правильно будет довольно мало в определённых областях.
Для работы такой системы необходимо наличие базы знаний из соответствующей прикладной области приложения. Пока речь идет о проблемно-ориентированных прикладных системах со своим словарем и своей системой понятий и знаний.
Если же делать систему универсального интеллекта, база знаний будет побольше — хотя бы объем знаний выпускника средней школы.
А есть какие-нибудь реализации для попробовать?
Есть только отдельные модули, демо-система в разработке.

На сайте www.exxlog.ru выложена новая версия системы Exxlog (1.08), выполняется в среде Win7 и др.

А вы, как человек, так и рассуждаете? Проект компьютера пятого поколения с пролог-машинами и общей декларативной семантикой провалился ещё в начале девяностых. Некоторые громкие старты того времени, типа en.wikipedia.org/wiki/Cyc, доживают свои дни. Почитайте хабр по тегам NLP, машинное обучение, нейронные сети, word2vec, узнаете много нового. Я всё же счастлив, что в битве упорства (опишем логику мышления миллионом ручных правил и словарей) против таланта (создадим нейромодельку, автоматически выводящую нетривиальные признаки, и обучим её на числодробилках) сегодня с гигантским отрывом побеждает талант.
Проект пятого поколения потому и провалился, что не имел научного обоснования — модель искусственного интеллекта не была формализована. «Если не знаешь куда идешь — попадешь в никуда».
По вопросам NLP надо читать публикации ученых. Здесь же, на Хабре, публикуются в основном, описания различных наработок программистов, имеющих достаточно узкую направленность.
В ситуации с развитием исследований и разработок в области ИИ есть несколько интересных моментов.
Во первых, разрыв между наукой и программистами. Программисты не знают о прекрасных результатах по формальному моделированию в мировой компьютерной лингвистике, а ученые не могут и не стремятся построить практически полезные системы.
Пол Аллен так и решил — «хватит исследовать — надо делать» и открыл Институт искусственного интеллекта своего имени.
А насчет нейромоделирования — это один из многих компромиссных подходов, когда приспосабливают то что есть (алгоритмы) вместо построения новой теории.
У меня сложилось впечатление. что программист и учёный в вашей трактовке – это исключающие понятия. К счастью, в свете современных результатов в машинном обучении и анализе данных, это не так. Используемые сегодня библиотеки и инструменты – результат практического применения более двух веков научного фундамента, восходящего, пожалуй, к методу наименьших квадратов Гаусса. RDF-графы и Semantic Web – это лишь небольшая часть современной картины. Ситуация со структурным подходом в лингвистике сродни ситуации с функциональными языками программирования. Чистые функциональные языки с трудом находят применение сегодня, т.к. требуют недюжинной математической подготовки и излишне пресыщены терминологией, типа теории типов, монад и пр. Однако реализации идей функционального программирования в императивных языках чрезвычайно плодотворны. И вот уже все наши монады, лямбда-исчисление и прочие прекрасные вещи идут в Java, C# и C++ из коробки. Также и в NLP: пуристский, структурно-формальный подход непродуктивен, т.к. человеческий мозг просто неспособен поддерживать и порождать требуемое количество правил. В каком-то роде это как программирование текстового процессора уровня MS Word на ассемблере или в байт-кодах руками.
Вы затрагиваете очень интересные и актуальные вопросы о противостоянии алгоритмической и других парадигм программирования (функциональной, логической, объектно-ориентированной и др), ответ на которые постараюсь дать в отдельной публикации. Эти парадигмы должны дополнять друг друга, для каждой есть своя область применения.
Мне кажется, что Ваша аргументация основана на убеждении первостепенности алгоритмического подхода. Есть ученые, которые считают, что постепенно алгоритмическая парадигма отойдет на второй план, после того как будет решена проблема автоматического программирования. Тогда основным занятием программистов будет создание интеллектуальных систем.
о противостоянии алгоритмической и других парадигм программирования (функциональной, логической, объектно-ориентированной и др),

А почему вы вообще противопоставляете алгоритмическую и объектно-ориентированную модель программирования?
Потому что это не одно и то же — разные парадигмы (под термином «парадигма», здесь понимается система базовых понятий теории и связей между ними).
Я в курсе, что это не одно и то же, но откуда вы взяли их «противостояние»?
Работа по созданию семантического процессора CONST, которая ведется в НПФ «Семантикс Рисеч» (г. Казань) позволит снять проблему машинного понимания естественного языка, предоставив программистам удобные инструменты…

… но предназначена для коммерческого использования

Вот и весь смысл статьи. «Мы нашли панацею от всех болезней. Платите ваши денежки». Банальная реклама. Как обзорный материал или как описание какого-то конкретного метода работы с естественным языком статья не годится.
Цель статьи — дать начальное представление и малоизвестном в широких кругах программистов подходе, основанном на точном моделировании интеллекта.
Кто хочет подробностей — читайте мою диссертацию и другие научные работы.
Мы как раз и не говорим, что мы открыли этот подход — показываем основополагающие работы.
Наша роль — построить и реализовать систему, пригодную для широкого применения.
Из статьи непонятно, в чём новизна вашего подхода.
Логический подход к интеллекту пытались применить много раз, тот же Cyc к примеру.
Но если делать всё так же, как у предшественников, то и результат будет аналогичным.
Это не логический подход, обычно его называют «онтологическая семантика текста». Новизна в том, что есть единый язык на основе концептуальных графов для представления семантики текста и для представления знаний. Текст на естественном языке транслируется в концептуальные графы и далее может обрабатываться на основе логического вывода.
Примеры описаний на CONST, например отсюда, отражают актуальное состояние языка? Если так, то большая часть модели (той же задачи о трубах и бассейне) находится в голове программиста, а не описана языком.
Да — это моя публикация, правда без моего согласия напечатано.
В нашем подходе концептуальная модель задачи создается автоматически, на основе базы знаний — модели предметной области. Это называется семантическая трансляция. Разработчик интеллектуальной системы должен создать базу знаний, например об основных арифметических соотношениях, характерных для тех предметных областей, которые применяются в школьных задачах. Дальше включается машинный интеллект.
Движок логического вывода чей? Обычно вывод захлёбывается в экспоненциальном росте сложности уже на простых теоремах, которые можно вывести из аксиоматики арифметики.
Движок на основе модифицированного Пролога — есть защита от зацикливания.
Если навалить сотни простых правил, то да — вывод замедляется до полной потери работоспособности.
Если же точно описать семантику — объем вывода (пространство поиска) резко уменьшается — так же, как это делает человек.
Спасибо, посмеялся. Сотни правил даже выделения, скажем, фактов купли-продажи маловато. Для описания чего-то нетривиального — безумно мало.
Похожий проект, когда инженер создаёт модели вручную, описывался у ABBY. У них было больше интересных подробностей. Часть 1. Часть 2.
У них красивые картинки, слов нет. Программы только не видно.

На сайте www.exxlog.ru выложена новая версия системы Exxlog (1.08), выполняется в среде Win7 и др.

Да, странная статья. Несколько удивительно, что ни слова не сказано про Н.Хомского или И.Мельчука. Идея не нова, но я не разу не видел хорошего рабочего решения. Онотолгию «всего и вся» пока не представляется возможным реализовать. Во всяком случае, связи в ней должны быть устроены совсем иначе, чем принято думать. А пока что онтологии относительно хорошо работают только в узконаправленных областях.
— концептуальная память – манипулирование концептуальными структурами, соответствующее «человеческим» мыслительным операциям;

— а что вы понимаете под человеческими мыслительными операциями? Если логику, то боюсь вас разочаровать, это так лишь отчасти. На сколько мне известно, пока человеческий мозг — черный ящик.
Что значит странная? Это новый материал, новые идеи, продолжающие и развивающие теории различных авторов, в том числе, Мельчука и Хомского.
И не так уж мы оригинальны, публикаций на английском языке достаточно, просто семантический подход в нашей стране мало известен.
Наша роль как раз в том, чтобы связать два мира — computer science и computer programming. Ученые не особо интересуются приложениями, а программисты не имею хорошего инструмента. Вот мы и хотим его им дать.
А насчет работы человеческого мозга мое мнение такое — есть логический уровень и физический, как в любой информационной системе. Технология экспертных систем дает необходимую основу для представления этого логического уровня.
А пока что онтологии относительно хорошо работают только в узконаправленных областях.
И то, стоимость разработки и поддержки остаётся довольно высокой. Так что, если задача позволяет (хотя бы частично), unsupervised learning — наше всё.
Это называется «холивар»? Когда ведется аргументация на основе веры,
когда программисту кажется, что он все знает, потому что умеет писать сложные программы.
Думаю нет смысла продолжать это обсуждение.
Я не видел смысла и начинать обсуждение с вами, как можно было заметить. Продолжать — тем более.
просто семантический подход в нашей стране мало известен.

Ну я бы сказал, это некомпетентное высказывание. Как раз в нашей стране этот подход наиболее развит. Мельчук, Апресян, Кибрик, Жолковский, Мартемьянов и десятки других ведущих специалистов, которые не только разрабатывали теорию, но и создавали реальные рабочие системы.
Согласен с Вами, в нашей стране было много замечательных, пионерских работ выдающихся лингвистов. Только у них мало продолжателей и нет практических результатов. Есть замечательные работы группы Апресяна по машинному переводу в ИППИ, но они длятся уже более 30 лет и не внедряются в практику. Есть выдающиеся лингвисты Раскин и Ниренбург, работающие в США, авторы «Онтологической семантики». Однако и в США, как видно по неоднократным выступлениям В. Раскина превалирует упор на статистические, приближенные методы машинного понимания.
Уважаемый Наиль Ихсанов!

Язык машины => двоично-логический; Мышление машины => импликативное (на базе одного условного оператора: «Если так, то этак, иначе энтак»)
Язык человека => множественно-знаниевый; Мышление человека => октадифное (восьмилогическое — на базе ВОСЬМИ операторов).

Стоит задача ТРАНСЛЯЦИИ, либо трансляция октадифной логики в двоичную, либо ЭМУЛЯЦИЯ октадифной логики на базе двоичной.

Для решения данной задачи нужно понимать, что это за операторы и как ими, извините за тавтологию, оперировать.

Для понимания этого надо, извините, понимать, что такое Октадифная Мысль и что такое Октадифный Смысл.

Наконец, необходимо определиться с понятием ЗНАНИЕ, поскольку человек использует знаниевую технологию мышления.

Всё остальное является не более чем ухищрениями, поскольку ни лингвистика, ни статистика, ни стохастика или даже двоичная логика ни сами по себе, ни все вместе не способны решить задачу СМЫСЛОВОГО ПОНИМАНИЯ текста (речи), вследствие того, что эти инструменты не предназначены для формализации мыслеформ человека.

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

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

Это Ваше учение, и Вы имеете полное право его развивать и пропагандировать.
Наша идея состоит в том, что на сегодняшний день нет никаких препятствий для создания систем машинного понимания естественно-языковых текстов в различных прикладных областях, поскольку все необходимые средства в области компьютерной лингвистики и искусственного интеллекта для этого созданы учеными в последние годы.
Мы не ставим вопрос о создании полноценной искусственной личности, но для создания прикладных интеллектуальных систем препятствий нет.
В качестве примера можно назвать такие задачи, как машинный перевод, автоматическое программирование, диалог с машиной на естественном языке.
О каком понимании идёт речь, если что у вас, что у ABBY, модель предметной области тщательно описывает специально обученный онтоинженер. Нет модели — нет понимания, нет решения задач. Есть модель — решается строго тот класс задач, который предусматривает модель.
Речь идет о понимании конкретной задачи интеллектуальной системой (ИС). Есть текст задачи на естественном языке, например, ТЗ на программирование.
ИС должна его понять, провести в диалоге работу с пользователем по устранению противоречий и неполноты документа, после чего выдать текст работающей программы с возможностью диалога с пользователем по структуре и тексту созданной программы, а также по всем техническим моментам по запуску и тестированию программы.
И вы туда же?

С этой задачей человек не справляется, а вы предлагаете ее поручить ИС.

(Я не говорю, что это невозможно, но чтобы это стало возможно, необходимо, чтобы разработка ПО стала формализуемой задачей)
Уважаемый Наиль Исханов!

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

Не могли бы Вы привести примеры этих «необходимых средств»?

Также очень интересно, какие именно препятствия сегодня устранены "… для создания систем машинного понимания естественно-языковых текстов"?

Дискуссию считаю завершенной. Все основные вопросы обсуждены, а дополнительные рассуждения можно продолжать бесконечно.
Спасибо за откровенность, уважаемый Наиль Ихсанов. Баллон, как и прежде, оказался пустым.
Распарсить предложение по грамматике и наложить его на заранее готовую модель — это не «понять» предложение. И, собственно, парсер — тут самое простое.
Тем более, что 100%-го синтаксического Парсера ещё пока нету. Да и у лингвистики нет пока столько правил, чтобы создать автоматический 100%-ый Парсер.
«У нас есть решение на основе старых идей, но мы его еще не сделали, поэтому показать не можем». Это значит, что у вас еще нет никакого решения, просто вы о нем мечтаете. Попытка сделать все расставит на свои месте. Но успехов, конечно )
Sign up to leave a comment.

Articles