Как стать автором
Обновить

Комментарии 20

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

Что вы называете более реалистичным функционалом? Знание системой понятий в объеме какого-то усредненного человека или специалиста в какой-то области? Это трудоёмкие задачи, но если будет кто-то кто готов их финансировать, то можно и этим заняться.
Если речь о каких-то особенных грамматических конструкциях, то будем постепенно их реализовывать. Как реализуем, сообщим.
Где в онлайне можно посмотреть на работу программы SHRDLU?

Можете пояснить, как вы понимаете известное в лингвистике соотношение "план выражения / план содержания", оно характерно неравновесное?

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

Или в вашей концепции слово - это "конечный пункт назначения"?

Мы не используем такое понятие - "план выражения / план содержания", поэтому не могу про него ничего сказать.

А то, что слово или другие элементы текста могут отображаться в разные понятия, то да. Какое понятие в данном случае выбрать решает анализатор. Например в данном демо "сорт" может выражать как связь между объектами (для фразы "сорт яблок "Голден", яблоки->сорт->"Голден"), так и объект (для фразы "сортов яблок много"). Это разные понятия, хотя и связанные.

И нет, слово у нас не "конечный пункт назначения". Работа идет с понятиями, стоящими за словами.

Тогда другой вопрос, если, конечно, не надоел. Выделяются ли в образуемой в программе коллекции понятий "верхи" и "низы"?

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

В вашем случае "сорт" и название сорта (или - какие-то другие пары) находятся в отношениях подчинения или их отношения определяются как-то иначе?

Если порядок подчинения задается, то тем самым фактически задается иерархия.

Не очень понятно что такое верх и низ в вашем понимании. Если идёт стрелка от одного узла графа к другому где тут верх или низ?
В систему предварительно занесён ряд понятий, некоторые из них отдельные, а некоторые связаны неким отношением, как его называть не важно, а важно что наличие этого отношения влияет на работу анализатора. Встретив слово «сорт» программа понимает что это может быть или свойство связывающее два объекта, либо обобщенное понятие о сорте. И далее в зависимости от других слов и их грамматических признаков выбирается то или иное понятие. Как-то так, вкратце.
Какого-то особого выделения для понятий от которых идут связи (верх?) и понятий к которым идут связи (низ?) мы не делаем.
Также не используем термин «подчинение».

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

В обычной базе данных эталоном / критерием служит имя столбца, - если есть столбцы "товар" и "цена", то товары вносятся в один, а цены - в другой. Но если мы исходим от связей, то мы можем заметить, что и у "товара" и у "цены" есть связь с кассой, а потому их можно расценивать как одну и ту же разновидность содержания.

Можно предположить, что на такого рода принципе "проекции связи" построен и ChatGPT; если обучить его на абсурдистских романах, где "ходить по потолку" встречается в 10 раз чаще чем "ходить по полу", то на вопрос:

- Что такое "ходить"?

он будет отвечать -

- Перемещаться по потолку.

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

Я, честно говоря, не совсем понял ваш вопрос. Мы не использовали в работе что-то, что я могу отнести к критерию "четкости" или "несмешиваемости". Характеристики и зависимости - однозначны. слова означают то, что записано в базу знаний системы. Значений может быть несколько. Какое из них использовать определяет программа на основе текущего текста и содержимого базы знаний.

Поскольку здесь стоит тег "семантика" я попытался уточнить. В моем понимании в семантике однозначность в общем случае не существует, а в частном случае - существует, если она задекларирована.

На практике это ведет к тому, что системы о которых идет речь удачно работают с простым текстом типа инструкции и неудачно - со сложным.

Интересно. А на каком ЯП ваш проект создан, если не секрет?

На C++.

Интересное решение, но не масштабируемое. Увы.

Спасибо за вашу оценку. Масштабируемость постараемся продемонстрировать в ходе развития демо. Если есть пожелания в части предметной области или каких-то оборотов речи, пишите, попробуем учесть.

Вы сильно заблуждаетесь, считая наполнение базы знаний количественной, а не качественной задачей.

С ростом количества обрабатываемых предметных областей корректное определение предметной области и кросс-влияние предметных областей станет ограничивающим фактором. Типовой пример - значение слова "прокладка" зависит от контекста и предметной области. Фирма-прокладка, санитарно-техническое изделие, или санитарно-гигиеническое - разные термины.

В конце концов, готовых семантических моделей - огромное количество, но использовать их почему-то никто не может. :)

Ок. Постараемся в следующей версии более явно показать работу с разным значением слова в зависимости от контекста.
А не получается использовать модели во многом из-за укоренившегося объектного подхода — классы, наследование и т.д. — там все умирает при увеличении сложности.

Будет интересно поглядеть, что получится. Но что-то мне подсказывает, что в итоге придете к графу, который будет несколько более сложным, но в итоге упрется в свои ограничения, как и объектная модель.

Кстати, потом уже вспомнил, значение слов меняется не только в зависимости от контекста, но и от времени. Язык то живой, и постоянно меняется.

Ну это-то понятно и может быть смоделировано тем, что со временем меняется база знаний и соответственно меняется строящаяся смысловая модель.

Занимался схожим проектом. https://docs.google.com/document/d/1lkqVj4YhzJAwpkphKXymOYb5KpQfoYI5-95DueRKTp0/edit?usp=sharing Несмотря на рабочее состояние свернул работы ввиду отсутствия коммерческого интереса на русский язык со стороны потенциальных интересантов. не смог найти кто платит короче.

Добрый день всем!

Дополнили базу знаний демо. Добавили овощей, фруктов и других понятий:

  • помидор/томат, лимон, апельсин, персик, виноград

  • ферма, фермерский

  • владелец

  • колхоз, колхозный

Также реализовали обработку фамилий, то есть можно писать фразы типа "Владелец тыкв Иванов", "Сергеенко владелец 28725 апельсинов" и пр.

На слове владелец можно увидеть понимание системой разных контекстов его использования. Например во фразе "Я владелец фермы. Владельцев фермы много" владелец выступает и как свойство (связь между объектами) и как объект со свойствами.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории