Способ описания обычных слов в виде компьютерного кода

01 нояб 2012 18:31 01 нояб 2012 18:33 от eto_ya.
eto_ya
Писатель
Писатель
Сообщений: 39
Больше
Автор темы
Способ описания обычных слов в виде компьютерного кода #23497
Посоветуйте пожалуйста готовый или помогите придумать свой способ описания слов в виде абстрактного компьютерного кода на примере слова "карандаш" (ну или другого понравившегося вам слова).

Представление о карандаше: Карандаш - это предмет, выполняющий функцию: писать, зачеркивать, закрашивать, рисовать; имеющий состояния: заточенный (когда рисуемая линия тонкая), тупой (когда рисуемая линия не тонкая), сломанный (когда отсутствует острый конец карандаша), обгрызенный (когда у верхней или тупой части карандаша зазубрины), длинный (когда длина близка к максимальному значению), короткий (когда длина менее половины от нормы или невозможно удержать его в руке), огрызок (когда очень короткий); карандаши создаются людьми на производстве и имеют искусственное происхождение; состоит из ручки и стержня; стержень может быть разных цветов; карандаши которые приходилось держать в руках: 1) и 2) легкий, заточенный, длинный, стержень серого цвета, диаметр 1/2 от диаметра указательного пальца правой руки, длина приблизительно как длина правой кисти руки, заточенный, длинный (стандартный); 3) легкий вес, стержень красного цвета, длина как у 1) и 2);
способ использования: взять в руку и зажать так, чтобы острие стержня было направлено к бумаге, потом придвинуть карандаш к бумаге до соприкосновения, после чего удерживая в данном положении произвести движение руки по требуемой траектории, после окончания отодвинуть руку с карандашом от бумаги и положить карандаш на место; при сломанном состоянии может быть заточен посредством ножа или точилки.

Требуется перевести это представление с обычного языка в кодовую форму ;-)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

01 нояб 2012 19:57
Lex
Модератор
Модератор
Сообщений: 4048
Больше
Способ описания обычных слов в виде компьютерного кода #23506
Строится это по большому корпусу текстов. Статистические корреляции между словом карандаш и допустим всеми прилагательными. Далее например между парой карандаш + прилагательное строите корреляции с глаголом.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

01 нояб 2012 20:04
vchc
Модератор
Модератор
Сообщений: 333
Больше
Способ описания обычных слов в виде компьютерного кода #23508
Берёте любую инъективную функцию вида F:(слово или знак препинания)->(целое число) и применяете её к каждому слову и знаку вашего текста, описывающего карандаш. Какой вопрос, такой и ответ ;)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

03 нояб 2012 17:25
eto_ya
Писатель
Писатель
Сообщений: 39
Больше
Автор темы
Способ описания обычных слов в виде компьютерного кода #23621
Спасибо за ответы. Буду стараться детализировать постановку вопроса путем разбора частных случаев.

Ниже привожу пример, демонстрирующий алгоритм работы программы со словами:

ВХОДНОЙ ТЕКСТ:
Возьми красный карандаш.

АЛГОРИТМ АНАЛИЗА ТЕКСТА:
1. Распознавание первого слова. Успешно распознано слово "возьми".
2. Выделение в памяти места для сохранения интерпретации текста. Успешно выделено.
3. Добавление в интерпретацию слова “возьми”:
ЕСЛИ источником текста является объект “не-я” ТО
ИНТЕРПРЕТАЦИЯ = ЗАДАНИЕ (для объекта “я” изменить состояние [левой | правой] руки на (держит [что]) по причине [зачем])

4. Распознавание второго слова. Успешно распознано слово "красный".
5. Добавление в интерпретацию слова “красный”:
ИНТЕРПРЕТАЦИЯ = ЗАДАНИЕ (для объекта “я” изменить состояние [левой | правой] руки на (держит [что] красного цвета) по причине [зачем])

6. Распознавание третьего слова. Успешно распознано слово "карандаш".
7. Добавление в интерпретацию слова “карандаш”:
ИНТЕРПРЕТАЦИЯ = ЗАДАНИЕ (для объекта “я” изменить состояние [левой | правой] руки на (держит экземпляр [какой] красного цвета класса “карандаш”) по причине [зачем])

8. Распознавание четвертого слова. Успешно распознано слово (знак) ".".
9. Добавление в интерпретацию слова “.”:
ИНТЕРПРЕТАЦИЯ = ЗАДАНИЕ (для объекта “я” изменить состояние [левой | правой] руки на (держит экземпляр [какой] красного цвета класса “карандаш”) по причине [зачем]) КОНЕЦ

10. Анализ смысла. Выявлена нехватка информации:
* в какую руку - левую или правую? (если в задании это не указано, то применяется значение по умолчанию - правая)
* о каком экземпляре идет речь?
* какая причина выполнения задания?

11. и т.д.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 06:58 04 нояб 2012 06:59 от antol.
antol
Опытный писатель
Опытный писатель
Сообщений: 202
Больше
Способ описания обычных слов в виде компьютерного кода #23633

eto_ya пишет: ВХОДНОЙ ТЕКСТ:
"Возьми красный карандаш."
...
10. Анализ смысла. Выявлена нехватка информации: ...

Вы же прекрасно умеете дополнять недостоющую информацию по умолчанию. !? :((
Вам же ясно сказано: "Возьми красный (любой) карандаш (правой рукой) (заточенным концом вверх). (жди дальнейших указаний)
И в чем здесь "нехватка"?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 10:16 04 нояб 2012 10:17 от eto_ya.
eto_ya
Писатель
Писатель
Сообщений: 39
Больше
Автор темы
Способ описания обычных слов в виде компьютерного кода #23637

antol пишет:

eto_ya пишет: ВХОДНОЙ ТЕКСТ:
"Возьми красный карандаш."
...
10. Анализ смысла. Выявлена нехватка информации: ...

Вы же прекрасно умеете дополнять недостоющую информацию по умолчанию. !? :((
Вам же ясно сказано: "Возьми красный (любой) карандаш (правой рукой) (заточенным концом вверх). (жди дальнейших указаний)
И в чем здесь "нехватка"?


Можно изменить строку "[какой] " на "[какой | любой | свой | чужой | ...]". Но при этом все равно останется недостаток информации, для устранения которого есть минимум два пути 1) использовать значение по умолчанию 2) попросить уточнения "Какой карандаш взять?".

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 10:24
tyler
Опытный писатель
Опытный писатель
Сообщений: 161
Больше
Способ описания обычных слов в виде компьютерного кода #23638
Очень мощная схема. Попробуйте это реализовать. По-моему тут светит сильный ИИ.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 14:48 04 нояб 2012 14:50 от Бугульдей.
Бугульдей
Опытный писатель
Опытный писатель
Сообщений: 473
Больше
Способ описания обычных слов в виде компьютерного кода #23666
хыхы батенька, дорога этому топику в раздел "Начало пути". Почитайте книжку Терри Винограда про робота SHRDLU (есть в библиотеках вузов) - в инете есть его исх. код на древнем лиспе

поизучайте материалы о cyc.com - базе CYC Дуга Лената - попрактикуйтесь с sf.net/projects/opencyc

поизучайте WordNet

поизучайте книгу "Лингвистическое обеспечение системы ЭТАП-2" академика Ю.Апресяна (есть в библиотеках вузов)

и вообще ВСЁ поизучайте

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 16:40
eto_ya
Писатель
Писатель
Сообщений: 39
Больше
Автор темы
Способ описания обычных слов в виде компьютерного кода #23697

Бугульдей пишет: хыхы батенька, дорога этому топику в раздел "Начало пути". Почитайте книжку Терри Винограда про робота SHRDLU (есть в библиотеках вузов) - в инете есть его исх. код на древнем лиспе

поизучайте материалы о cyc.com - базе CYC Дуга Лената - попрактикуйтесь с sf.net/projects/opencyc

поизучайте WordNet

поизучайте книгу "Лингвистическое обеспечение системы ЭТАП-2" академика Ю.Апресяна (есть в библиотеках вузов)

и вообще ВСЁ поизучайте


SHRDLU - интересное по тем временам было начинание, если бы автор и по сей день развивал свою систему, то был бы уже готовый "программный-виртуальный-консультант", очень жаль
OpenСyc - семантическая сеть с собственным формальным языком
WordNet - семантическая сеть с собственным формальным языком
ЭТАП-2 - будет интересно лингвистам и другим, которым требуется переводить тексты с разных языков
Почитать все остальное - ну это вообще без комментариев.

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 17:50
Бугульдей
Опытный писатель
Опытный писатель
Сообщений: 473
Больше
Способ описания обычных слов в виде компьютерного кода #23701
что ж, батенька, трудитесь, корпите, сие гут. наиболее простые вещи - это лучшее, что есть в этом мире

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 18:09
Бугульдей
Опытный писатель
Опытный писатель
Сообщений: 473
Больше
Способ описания обычных слов в виде компьютерного кода #23703

eto_ya пишет: Спасибо за ответы. Буду стараться детализировать постановку вопроса путем разбора частных случаев.

Ниже привожу пример, демонстрирующий алгоритм работы программы со словами:

ВХОДНОЙ ТЕКСТ:
Возьми красный карандаш.

АЛГОРИТМ АНАЛИЗА ТЕКСТА:
1. Распознавание первого слова. Успешно распознано слово "возьми".
2. Выделение в памяти места для сохранения интерпретации текста. Успешно выделено.
3. Добавление в интерпретацию слова “возьми”:
ЕСЛИ источником текста является объект “не-я” ТО
ИНТЕРПРЕТАЦИЯ = ЗАДАНИЕ (для объекта “я” изменить состояние [левой | правой] руки на (держит [что]) по причине [зачем])

4. Распознавание второго слова. Успешно распознано слово "красный".
5. Добавление в интерпретацию слова “красный”:
ИНТЕРПРЕТАЦИЯ = ЗАДАНИЕ (для объекта “я” изменить состояние [левой | правой] руки на (держит [что] красного цвета) по причине [зачем])

6. Распознавание третьего слова. Успешно распознано слово "карандаш".
7. Добавление в интерпретацию слова “карандаш”:
ИНТЕРПРЕТАЦИЯ = ЗАДАНИЕ (для объекта “я” изменить состояние [левой | правой] руки на (держит экземпляр [какой] красного цвета класса “карандаш”) по причине [зачем])

8. Распознавание четвертого слова. Успешно распознано слово (знак) ".".
9. Добавление в интерпретацию слова “.”:
ИНТЕРПРЕТАЦИЯ = ЗАДАНИЕ (для объекта “я” изменить состояние [левой | правой] руки на (держит экземпляр [какой] красного цвета класса “карандаш”) по причине [зачем]) КОНЕЦ

10. Анализ смысла. Выявлена нехватка информации:
* в какую руку - левую или правую? (если в задании это не указано, то применяется значение по умолчанию - правая)
* о каком экземпляре идет речь?
* какая причина выполнения задания?

11. и т.д.


вообще этот "пример" демонстрирует методику работы, сходную с методикой работы моей системы project.east.incarnation1, оно в раскорчёванном нерабочем виде есть на гуглкоде...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 18:16 04 нояб 2012 18:17 от Бугульдей.
Бугульдей
Опытный писатель
Опытный писатель
Сообщений: 473
Больше
Способ описания обычных слов в виде компьютерного кода #23704

eto_ya пишет: Посоветуйте пожалуйста готовый или помогите придумать свой способ описания слов в виде абстрактного компьютерного кода на примере слова "карандаш" (ну или другого понравившегося вам слова).

Представление о карандаше: Карандаш - это предмет, выполняющий функцию: писать, зачеркивать, закрашивать, рисовать; имеющий состояния: заточенный (когда рисуемая линия тонкая), тупой (когда рисуемая линия не тонкая), сломанный (когда отсутствует острый конец карандаша), обгрызенный (когда у верхней или тупой части карандаша зазубрины), длинный (когда длина близка к максимальному значению), короткий (когда длина менее половины от нормы или невозможно удержать его в руке), огрызок (когда очень короткий); карандаши создаются людьми на производстве и имеют искусственное происхождение; состоит из ручки и стержня; стержень может быть разных цветов; карандаши которые приходилось держать в руках: 1) и 2) легкий, заточенный, длинный, стержень серого цвета, диаметр 1/2 от диаметра указательного пальца правой руки, длина приблизительно как длина правой кисти руки, заточенный, длинный (стандартный); 3) легкий вес, стержень красного цвета, длина как у 1) и 2);
способ использования: взять в руку и зажать так, чтобы острие стержня было направлено к бумаге, потом придвинуть карандаш к бумаге до соприкосновения, после чего удерживая в данном положении произвести движение руки по требуемой траектории, после окончания отодвинуть руку с карандашом от бумаги и положить карандаш на место; при сломанном состоянии может быть заточен посредством ножа или точилки.

Требуется перевести это представление с обычного языка в кодовую форму ;-)


без лиспообразных формализмов вы похоже с таким "представлением" никуда не уедете. Участник форума NO, возможно, поправит меня, если я неправ.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 20:26
eto_ya
Писатель
Писатель
Сообщений: 39
Больше
Автор темы
Способ описания обычных слов в виде компьютерного кода #23713

Бугульдей пишет: вообще этот "пример" демонстрирует методику работы, сходную с методикой работы моей системы project.east.incarnation1, оно в раскорчёванном нерабочем виде есть на гуглкоде...


А в чем были проблемы при реализации этой системы? Во что уперлись? Давайте попробуем совместно решить.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

04 нояб 2012 23:23
Бугульдей
Опытный писатель
Опытный писатель
Сообщений: 473
Больше
Способ описания обычных слов в виде компьютерного кода #23718
я знаю во что упёрся - мне понадобилось анализировать не задание из 5 строк, а массив документации на java. ЕЯ-парсер такого калибра я решил не делать, поэтому остановил развитие системы east и перешёл на другие вещи.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

06 нояб 2012 07:46
antol
Опытный писатель
Опытный писатель
Сообщений: 202
Больше
Способ описания обычных слов в виде компьютерного кода #23781

eto_ya пишет: Получается что если бы контекстом этой фразы было ...

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

Действительно, почитайте поначалу книжку Винограда "Программа, понимающая естественный язык". ;((

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Модераторы: InexSVGYNK
Время создания страницы: 0.319 секунд
Работает на Kunena форум