2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5  След.
 
 Моделирование русского языка
Сообщение03.10.2006, 21:04 
Заслуженный участник


13/12/05
4519
На мой взгляд тема имеет непосредственное отношение к искуственному интеллекту. Но я бы разместил его в разделе ЯЗЫКОЗНАНИЕ, если бы он был.

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

О чем я хочу говорить

1) Создание формализованного русского языка (Ф для краткости) на уровне перевода текста с него на русский (Р) и обратно. Здесь же - описание правил перевода. Перевод может быть не однозначным, но смысл русской фразы при переводе Р->Ф->Р не должен сильно искажатся ( что значит сильно еще надо уточнять, но там разберемся, я думаю).

Важное условие - простота выполнения п. 2)

2) Создание базы знаний (например в виде какого-нибудь графа ), которая бы отражала смысловые связи между словами в русском языке.
Пример: Там могут быть записаны такие высказывания: Мужчины обычно носят брюки. Если мужчина носит юбку, то вероятно он шотландец. И т.д.

Важное условие - простота и быстрота выполнения п. 3)

3) Поиск знаний на заданную тему.

4) Создание правил вывода в Ф, аналогичным правилам вывода в математической логике.


На этом языкознание заканчивается, и начинается непосредственно искуственный интеллект.

Написать такую программу( а еще лучше сделать робота) которая получала бы команды на русском языке и делала какие-нибудь действия (например: "найди сумму первых ста чисел". Или посложнее: "найди в тексте "Войны и мира" все места, где кто-нибудь кому-нибудь признается в любви" ). Надо, чтобы эту программу можно было бы обучать на русском, т.е. чтобы она записывала себе в базу знаний что-нибудь, задавала вопросы.
Я убежден, что после создания хорошей (красивой!) модели русского языка написание такой (пока, честно говоря, непонятно какой) программы будет делом техники.

Если кто-то даст ссылки на что-нибудь в этом духе, буду очень рад.

P.S. Математики, любите ЯЗЫК , особенно русский :) .

 Профиль  
                  
 
 
Сообщение03.10.2006, 21:27 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Самое лучшее, что я видел — это работы D. Sleator’а (link grammars) для английского языка. Удивительно естественный и мощный подход, основанный на управлении в языке. По некоторым признакам, естественный интеллект работает именно так. (Слитор больше известен как автор splay-деревьев).

Меня интересовало бы развитие этого направления для русского языка.

Г. С. Цейтин посвятил несколько работ семантическим сетям.

 Профиль  
                  
 
 Re: Моделирование русского языка
Сообщение04.10.2006, 11:27 
Заслуженный участник
Аватара пользователя


01/08/06
3053
Уфа
Padawan писал(а):
2) Создание базы знаний (например в виде какого-нибудь графа ), которая бы отражала смысловые связи между словами в русском языке.
Пример: Там могут быть записаны такие высказывания: Мужчины обычно носят брюки. Если мужчина носит юбку, то вероятно он шотландец. И т.д.

Это уже, на мой взгляд, чистой воды ИИ. И по моему сугубо личному мнению, такая база знаний будет сильно тяготеть к тому, чтобы включить в себя вообще все известные знания. А иначе окажется слишком "тупой".

 Профиль  
                  
 
 
Сообщение04.10.2006, 12:14 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Ну, как минимум для этого потребуется занести в память содержание большого словаря, для каждого слова ввести одну или несколько возможных категорий, определить возможные связи и действия над категориями...

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

 Профиль  
                  
 
 
Сообщение04.10.2006, 13:33 
Заслуженный участник


13/12/05
4519
2 незванный гость: спасибо за ссылку! Очень интересно. Очень естественный подход, все мы занимались еще в школе расстановкой стрелочек в предложении :). Авторы научили компьютер понимать СТРУКТУРУ английских предложений. Но в принципе я думал отложить это на последний этап, т.е. предполагал что для начала общение с компьютером будет происходить на формализованном языке.
По моему для п.4) - формального логического вывода- такой способ записи (по сути правильная английская фраза, в которой указаны стрелками все связи между словами) слишком сложен. Хотя кто его знает...

2 : например 7-летний ребёнок явно не знает всего (даже про шотландцев), но в интеллекте ему не откажешь, да и тупым не назовешь. Официантом он вполне может работать :). Услышав новое слово он может спросить что это такое и записать себе его в базу знаний.

2 PAV : Все будет гораздо быстрее - когда уже чему-то научишь, дальнейшее обучение пойдет быстрее. В геометрической прогрессии.
Все меньше и меньше надо будет забивать ручками в базу, она сама будет вписывать.


По существу вопроса :
В базе и в правилах вывода должны быть переменные, причем разного сорта. Ну например, по частям речи - глагольные, существительные, прилагательные переменные. Или может по частям предложения - сказуемые, подлежащие, дополнения, определения. Скорее всего классических грамматических категорий не хватит, надо будет новые придумывать. Только не переусердствовать -
по моему скромному опыту, при моделировании языка очень трудно балансировать между грамматическими обобщениями и сотнями конкретных мелочей - падежи, времена, разные "ненужные" части речи - наречия, деепричастия и т.д.

База знаний : граф с вершинами двух сортов - 1-ый сорт - слова (или группы однокоренных слов), 2-ой сорт - сами высказывания (формулы), записанные на Формальном языке. Ребра проводятся между вершинами разных сортов по следующему правилу: если слово присутствует в формуле, то проводится ребро.

Может быть надо еще и другие сорта ребер ввести. Например синонимы, антонимы ассоциации...

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

 Профиль  
                  
 
 
Сообщение04.10.2006, 13:48 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
По-моему, первоочередной задачей является научить машину понимать смысл абстрактной фразы, хотя бы самых простых фраз. "База знаний", содержащая список фраз - дело второе.

Добавлено спустя 9 минут 57 секунд:

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

Также не обойтись без активного внедрения нечеткой логики, так как надо будет отличать нюансы фраз "Все мужчины носят брюки", "Мужчины всегда носят брюки", "Мужчины носят брюки", "Мужчины иногда носят брюки", "Мужчины никогда не носят брюки" и т.д.

 Профиль  
                  
 
 
Сообщение04.10.2006, 13:53 
Заслуженный участник


13/12/05
4519
2 PAV: что значит "понимать смысл абстрактной фразы ?". :) Очень распространенное заблуждение! . 1) как мы узнаём, что машина что-то "понимает" - если она делает, что нам нужно, например, приносит тапочки, когда об этом попросили. 2) "Смысл" это вообще муть. Нет никакого "смысла", есть формулы - последовательности символов, как-то связанные с другими формулами.
Правда есть смысл в тех фразах , которые отвечают за связь с реальным миром - например, после логического вывода машина дает себе команду - "включить мотор".
3) "Абстрактная" фраза тоже непонятно что такое. Они все конкретные - конкретные последовательности символов. Ну тут тоже самое, что и со "смыслом".

А простая фраза или сложная (т.е. длинная или короткая) это уже не принципиально. Конечно сначала надо забивать в базу самые распространенные слова и короткие фразы из них.

 Профиль  
                  
 
 
Сообщение04.10.2006, 14:14 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Да, я не совсем удачно выразился. Под "смыслом" фразы я понимал модель связей между объектами, которые эта фраза устанавливает.

 Профиль  
                  
 
 
Сообщение04.10.2006, 14:46 
Заслуженный участник
Аватара пользователя


01/08/06
3053
Уфа
Padawan писал(а):
2 : например 7-летний ребёнок явно не знает всего (даже про шотландцев), но в интеллекте ему не откажешь, да и тупым не назовешь. Официантом он вполне может работать :). Услышав новое слово он может спросить что это такое и записать себе его в базу знаний.

Это потому, что ребёнок обладает не только интеллектом, но и развитыми органами чувств, позволяющими ему активно обучаться. Если он спросит меня: "А что такое юбка?", я просто укажу рукой на женщину в юбке, в крайнем случае изображу жестами. А если я чатюсь с ним по интернету посредством простого текста, то объяснение весьма затрудняется :).
Можно попробовать оснастить нашу базу аналогичными "активными" устройствами для непосредственного получения знаний. Но тут встают задачи распознавания, которые не проще, чем моделирование естественного языка.

Добавлено спустя 17 минут 56 секунд:

Padawan писал(а):
2) "Смысл" это вообще муть. Нет никакого "смысла", есть формулы - последовательности символов, как-то связанные с другими формулами.

Для машины - конечно, нету никакого смысла, если она общается с реальным миром в таких простых формах, как "получить последовательность символов", "выдать последовательность символов" или "включить мотор". Но в естественном-то языке (ЕЯ) есть смысл, который действительно, связывает фразу с моделью реального мира (РМ). И для моделирования ЕЯ нам придётся либо вводить в модель ЕЯ модель РМ (которую смысл тащит за собой), либо предоставить машине возможность самостоятельно создавать модель РМ и связывать её с моделью ЕЯ.

 Профиль  
                  
 
 
Сообщение04.10.2006, 15:18 


12/09/06
617
Черноморск
А не проще выбрать несколько фиксированных форм построения предложений?
Такие предложения будут иметь фиксированную форму перевода на иностранные языки. Заодно и проблема машинного перевода решится.

 Профиль  
                  
 
 
Сообщение04.10.2006, 15:33 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
В.О. писал(а):
А не проще выбрать несколько фиксированных форм построения предложений?


Я бы начал именно с этого, для разгона.

 Профиль  
                  
 
 
Сообщение07.10.2006, 10:01 
Заслуженный участник


13/12/05
4519
Базу знаний можно организовать так (основная структура, можно добавит еще полно рёбер: синонимы, ассоциации и т.д.):

Вершины двух сортов - слова и фразы (знания и отражающие семантику русского языка - все вместе). Ребро соединяет слово с фразой, если слово присутствует во фразе. ПРИ ЭТОМ ребро подписывается номером значения, в котором данное слово выступает во фразе (подавляющее большинство слов многозначны, и чем чаще слово употребляется, тем у него больше значений) .

2 незваный гость: Я приступил к созданию link grammar для русского языка, и решил что правила вывода будут оперировать именно такими графоподобными структурами.

Я поступаю так : Беру толковый словарь. Беру любой большой текст. Выписываю каждое предложение и расставляю в нём связи. Каждый новый тип связи нумерую, составляю параллельно список типов связи с подробным комментариями, чтоб не запутаться.

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

2 PAV, B.O. : парадокс: когда пытаешься моделировать только предложения с простой структурой и ограниченным запасом слов, то НИЧЕГО не получается ! А когда работаешь с русским языком во всей его сложности, то результаты есть, по крайней мере много мыслей приходит в голову.
Я думаю это потому что, мыслим мы на русском, а когда пытаешься мыслить на еще не созданном языке..... )

Добавлено спустя 19 минут 50 секунд:

Меня взяло сомнение: стоит ли объединять в одной базе фразы, описывающие семантику языка, и собственно знания. Вышеприведенный пример про брюки и шотландцев собственно к языку не относится.

Кто нибудь знает про толковые словари, в которых все слова обьясняются при помощи сравнительно небольшого набора (~2000) базовых слов. Для английского языка у меня такой словарь есть. Издательсва Longman по-моему.

 Профиль  
                  
 
 
Сообщение07.10.2006, 17:18 


22/06/05
164
На странице http://www.link.cs.cmu.edu/link/papers/index.html есть ссылка на программу Сергея Протасова для русского языка.

 Профиль  
                  
 
 
Сообщение07.10.2006, 20:38 
Заслуженный участник


13/12/05
4519
Спасибо. Посмотрел. Беспонтово работает. Типов связей ОЧЕНЬ мало - все в одной куче. Я думаю их не меньше 300 надо.

И я сомневаюсь, что линки не должны пересекаться. Может в английском это и так, а в русском порядок слов свободнее. Что-то меня link grammar перестает восхищать...

 Профиль  
                  
 
 
Сообщение09.10.2006, 03:18 
Заслуженный участник
Аватара пользователя


17/10/05
3709
:evil:
Непересечение связей (планарность) является чертой всех известных человеческих языков. Мне кажется, что это связано с принципиальными свойствами мозга, поскольку мозг обрабатывает последовательность звуков «на лету», не как двумерную записанную структуру. В этом смысле планарность обеспечивает существенное ограничение состояния разбора на момент получения следующего звука.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 68 ]  На страницу 1, 2, 3, 4, 5  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group