Как написать бота для синтаксического разбора предложения?
Внезапно приспичило повелосипедить.
Хочется написать бота для общения.
Я сразу же уперся в проблему синтаксического разбора предложения, а хочется, чтобы он понимал смысл. Только не ржите =) Нет, я не обкурился =) Просто скучно =)
Велосипедить этот разбор - явно быстро не получится, там же словари какие то нужны, хитрые правила...
Запрашивать разборщик я буду с пхп (нет, я не обкурился), сам разборщик может быть на чем угодно, желательно с виндовой реализацией, но можно и под линух.
Хм, возможно, мой совет будет бессмысленным и утопическим, но раз уж решили повелосипедить - то попробуйте зайти к этому вопросу немного с другой стороны. Попробуйте найти молодого-фанатика-лингвиста и реализовать его познания в этой области.
Меня больше интересует "мозговая часть". Я конечно же в нейронах ничерта не понимаю, просто хочется попробовать. Лингвистическая часть меня особо не волнует, мне надо разбирать простые предложения на "смысловые" составляющие, а потом я уже сам буду играться с этим. Поэтому мне не особо интересна задача разбора.
Хотя, как мне кажется, язык (русский, английский и т. п.) определенно влияет на личность, на мозг, соответственно за построение этих связей нейронных. Но я не уверен что это пока вообще возможно технически реализовать, как и все способы коммутации нейронов, да и обычные аксон-дендрит тоже упрощают. Я к тому что по идее боту будет фиолетово на каком языке общаться. Просто надо будет разобрать и все.
Алгоритм построения предложения наверно тоже потребуется, но уже позже.
mystem - приятно, может пригодиться.
tomita не понятно что делает.
Как мне кажется мне надо разобрать на части одно или несколько предложений. А по частям предложения я смогу составить "смысл". Наверно вот такое мне бы очень подошло znkozlova.narod.ru/images/predlojenie.gif
Томита позволяет вытаскивать факты из предложений. А что для бота предложения ? --- это факты :) описывайте базу в томита, и он будет генерировать факты (на которые бот может как-то реагировать).
По сути по вашей картинки ( znkozlova.narod.ru/images/predlojenie.gif ) томита може распарсить данное предложение (если конечно для него вы сделаете соотвествующее правило), и ответить на вопросы: кто? что? зачем? когда ? и т.п.
главное правила составить, а томита фактически сделает табличцу с соответсвующими полями, сведения из которой вы можете использовать как вам вздумается.
Но на самом деле делать базу в томита, это конечно тупиковый путь :) потому что бот должен обучаться самостоятельно, на основе языковой статистики. Как вариант - бот может генерировать правила для тамита, тогда он будет похожь на ИИ
Как мне кажется, получая кажое предложение, бот действительно должен ответить на вопросы кто что и прочие. Некоторые вопросы явно обязательные, другие нет. В принципе, если ЧАСТЬ ответов на вопросы не найдена, то можно предположить что на них отвечают незатронутые части предложения или вообще инфа из предыдущего контекста .. или понятия связанные с употребленными в этом предложении понятиями.