(в продолжение угара в теме http://ruscomp.24bb.ru/viewtopic.php?id=157 )

При анализе выделяют этапы:
- Морфологический анализ
- Синтаксический анализ
- Семантический анализ
- Прагматический анализ

Сама идея разбиения анализа на этапы неправильная.
При наивной реализациии такой несквозной/невзаимоувязанный подход приводит к потере смысла.
(Пример: "Мы как птицы садимся на разные ветки и засыпаем в метро". Понять смысл этого предложения можно только на поздних этапах анализа, при этом на нижних этапах сохраняется многозначность слов "садимся" и "ветки").

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

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

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

Таким образом, получаем среду выполнения (CLR - Common Language Runtime - общая языковая среда выполнения). У них там, правда, только КС-языки имелись ввиду.
Наша будет точно такая же, но лучше =) Потому будет написана русскими словами... Потому что в её основе будет лежать модель "Смысл - текст", а не КС-грамматика.

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

Основная проблема - как записывать правила преобразования одних мыслеобразов в другие мыслеобразы. Если бы берём CLR как аналог, то нам нужны просто функции/методы, они как раз тем занимаются что из одних объектов другие создают.

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

Можно ли начать пробовать на 1Скрипт (структуры-то там есть с массивами...)? Да вроде ничего не мешает (чудовищный расход памяти и тормоза? На́говор!).

Бывают ли другие виды мыслеобразов, кроме "фактов"? Бывают "обобщения", "гипотезы", "выводы (решения, заключения)", что-нибудь ещё?

Самым правильным было бы прочитать работы Мельчука, но у него же там пять томов, сил нет...

Отредактировано Лис (2018-01-03 10:51:14)