Существуют ли строгие правила синтаксического разбора предложения?

программирование русский язык филология синтаксис разбор предложения

Доброго здоровья всем.

Суть задачи в следующем:
Есть программа, которая читает предложение, определяет какой частью речи является каждое слово, в какой форме оно приведено (Род, Число, Падеж, Лицо, Время, Наклонение, Число...) и на какой вопрос отвечает.

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

Предложение:
Он любил расхаживать по комнате, постукивая пальцами красивых и маленьких рук по табакерке с русским табаком. (И. С. Тургеньев, из воспоминаний о В. Г. Белинском)

Схема:
[Кто] [Что делал] [Что делать] по [Чему], [Что делая] [Чем] [Каких] и [Каких] [Чего] по [Чему] с [Каким] [Чем].

Требуется получить:
Он любил
Любил расхаживать
Расхаживать по комнате
Расхаживать постукивая
Постукивая пальцами
Пальцами рук
Красивых рук
Маленьких рук
Постукивая по табакерке
По табакерке с табаком
Русским табаком

Спасибо.

Примечание:
Pharmakis, спасибо, поищу литературу. Если у вас найдется время узнать у друга - авторов и названия литературы, где затрагивается этот вопрос - напишите, пожалуйста здесь или на [email protected]

Примечание:
crimaniak, Спасибо, про когнитивный анализ текста слышу впервые, очень интересно.
"Программа, которая определяет параметры слов, называется морфологический словарь. И это самая простая часть работы."
Вот эту программу уже написал. :)
Насчет модели обучения, когда программа спрашивает о связях, где не может определить их сама - тоже задумывался. Попробую.
А что касается множеств - здесь сложнее. Нужно где-то добывать информацию, что Киев и Ростов нужно отнести к одной категории, а канарейку и коллибри к другой.
Еще раз спасибо.

Примечание:
propheticoleg, спасибо, остается непонятным, как именно выделять эти цепочки.
Суть вопроса в общем в том, чтобы найти какие-то базовые правила, как могут и как НЕ могут строится эти связи, но правила доступные не только человеку, но и машине, то есть строгие правила.
Морфологический словарь выдает часть речи и точную форму слова (Падеж, Род, Число, Лицо...).
Не решены только проблемы определения каким членом предложения является слово (Подлежащее, Сказуемое...) и между какими словами есть связь, как описано выше.

Примечание:
Всем спасибо за советы. Есть очень ценная информация.
Лучшим решением проблемы на данный момент считаю построение связей всех слов со всеми, и выбор наиболее часто встречающихся связей. При анализе большого числа документов это должно дать плоды.
В дальнейшем, когда все базовые проблемы будут решены - буду писать более интеллектуальный разбор, с семантическим анализом (связями типа является, относится, состоит из...).
Ответы:
вам нужно почитать пару книжек по ИИ. Там это расписывается, сама я не сталкивалась близко, но у меня друг этим занимался..
Это называется когнитивный анализ текста. Чтобы получить эти сочетания, сначала надо получить семантическое дерево предложения. Программа, которая определяет параметры слов, называется морфологический словарь. И это самая простая часть работы. После этого надо использовать машину, которая, используя набор правил и предложение, собирает из него семантическое дерево. Правила - отдельный и очень сложный вопрос, в который упирается много чего. Можно составить набор правил вручную, но достаточно качественным это решение будет только для специализированных задач, типа выколупать из статей, написанных экспертами, причинно-следственные связи для модели. В общем случае надо делать отдельную программу, которой скармливается массив текста и которая в интерактивном режиме показывает предложения, для которых не удалось собрать дерево, и позволяет генерить новые правила для таких случаев. И хорошо бы, чтобы система имела понятие множества и могла относить объекты к множествам и делать правила по множествам. Чтобы можно было поехать в Киев, но поездка в канарейку вызывала бы у программы сомнения в корректности текста. В общем, это все очень объемный вопрос. И те, кто его решил, не спешат рассказывать всем об этом.
Будешь гуглить по "когнитивному анализу" - сразу фильтруй работы философов, они любят употреблять это словосочетание, но чаще всего их труды - бессмысленный словесный шлак, пригодный только для психоанализа автора. Совет номер два - в англоязычных источниках ты найдешь гораздо больше информации (ну, этот совет часто применим).
То, что ты собираешься делать, называется построение семантической карты(сети) предложения.
К дополнению №2: Для сборки множеств используется сама же система, делается специализированный сет правил, которые ищут шаблоны типа А "относится к" Б, А "является" Б, А "-" Б, Б "состоит из" А и т.д. Если натравить этот сет на википедию, уже будет неплохой задел для начала.
Самый простой способ объединения цепочек - смотреть согласованность рода, числа и падежа - это для цепочек с существительными. Так же стоит объединять составные глаголы.
А есть ли смысл определять все члены предложения? Дело в том, что для устанавливаемых тобой связей полный синтаксический разбор несет много лишней информации. Дополнительно он и работает дольше.
Большинство существующих программ используют синтаанализатор, которые призваны делать больше, чем требуется. Дополнительно они слишком часто ошибаются, что приводит к кривым сетям. Пока от интеллектуального построения сетей многие отказываются, предпочитая полноту связей точности, т.е. связывают все со всем. Этот подход позволителен, потому что системы ориентированы на анализ большого количества документов.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.