Просмотр полной версии : [php] Работа с "Русским языком"
Занялся я тут значит, изучением ИИ(искусственный разум),ну и естественно натолкнулся на НС(нейронные сети),покопав в ту сторону,я понял, что тема - аху#$%^& и интересная.начал думать,на чем бы проводить свои "испытания", создал однослойную нейронную сеть(есесно на php), и начал ей разгадывать судоку.ну шикарно просто, 80% из 100% отгаданы верно.Но времени требуется ууууууу.
Мне это быстро надоело,я же уже обучил своего питомца распознавать линии,квадаратики и буковки в матрице,и мне захотелось чего то умнее,связанного с ИИ.
Ну и пришло мне в голову, что проще всего будет испытывать ICQ-бота.
Нарисовал план работ,что и как,и тут,проблема гигантская.
Подумав,я понял,что мой бот не должен работать по принципу "only regexp@",а должен распознавать предложения на основе их строения,морфологии.И самой первой задачей,является поиск подлежащего и сказуемого.Сколько я бился над этой проблемой....Как же найти основу любого предложения? Как это реализовать? Какой алгоритм придумать? Ничего я не придумал,кроме как, работать с гиганскими словарями,и искать там слова,смотреть что это,существительное,прилаг ательное,и на основе этих данных выносить процентный коэф. важности слов.Но это уже больше обычная рутинная работа скрипта,а хочется ума.
Собственно,основной вопрос я поставлю немного иначе:
Как найти в предложении существительное? Как узнать,что слово существительное?
Жду ваших идей,какими бы методами пользовались вы? Есть жжелание отказаться полность от работы с интернетом, во время разбора предложения,то есть никаких "ЯндексСловарей" быть не должно.Онли то,что лежит на харде.Ваши мнения.
падежные окончания + обычно существительные заканчиваются на "а,я"(но могут попасться и деепричастия) и окончание на согласную.
мб проканает в нескольких случаях
Словарный запас твоему боту полюбому понадобится, ещё можно покопать разбор слов на составляющие: приставка, корень, суффикс, окончание. В общем без учебника тут никуда.
падежные окончания + обычно существительные заканчиваются на "а,я"(но могут попасться и деепричастия) и окончание на согласную.
мб проканает в нескольких случаях
Принимается,было бы отлично собрать несколько алгоритмов.Поиск по интернету не дал нужных плодов Ж(
ничего себе задался вопросом) лучшие умы не могут решить эти вопросы как ИИ сделать, а ты на php решил) ещё и просишь помощи у ачатовцев) имхо, масштабно очень.. тут думать надо.. и много).
ничего себе задался вопросом) лучшие умы не могут решить эти вопросы как ИИ сделать, а ты на php решил) ещё и просишь помощи у ачатовцев) имхо, масштабно очень.. тут думать надо.. и много).
ИИ и говорящий бот это разные вещи
Словарный запас твоему боту полюбому понадобится, ещё можно покопать разбор слов на составляющие: приставка, корень, суффикс, окончание. В общем без учебника тут никуда.
Хохо) В чем вся соль идеи,у бота исзначально не будет "готовой базы" для разговора.Кратко(оочень кратко) о своих мыслях:
Есть куча словарей,ожигов,даль,,и вообще большая куча готового материала.Предложение будет собираться на лету,и писать в бд,ну и выдаваться пользователю.оесть,бот будет определять,что ха предложение,какие виды речи в нем дминируют,выносить процентный коэф. важности слов,относительно предложения и кол-ва их в словаре,и собираться предложение.Но для этого необходимо хотя самое простое,найти все существительные,затем прилагательные,затем выделить ГЛАВНЫЕ слова(подл.,сказуемое).В мыслях - все работает отлично,на практике - нехватает ума,для организации таких алгоритмов,а точнее их выдумки.
ничего себе задался вопросом) лучшие умы не могут решить эти вопросы как ИИ сделать, а ты на php решил) ещё и просишь помощи у ачатовцев) имхо, масштабно очень.. тут думать надо.. и много).
Нижний пост глаголит истину.Тут все сводиться к чем? Правильно,к составлению более менее верного предложения.Я не хочу чтобы бот разговаривал литературным языком,хотя бы "Собака сидеть дом кирпичный",то есть приближено верно по смыслу.Далее уже будет дело за обучением,и есть еще одна вещь,о которой многие забывают,и в ботах она не реализована,а именно обучения с помощью клиентов.Не то,когда он пишет все фразы юзера в бд,а совсем другое.Но это я тут описывать не буду,тот кому интересно сам найдет статьи и книги в интернете,как это сделал я.
И я совершенно не претендую на прохождение теста Тьюринга.
классная идея)
мб сделать мега базу по существительным,глаголам и прочим... сделать типа вики,чтобы клиенты сами помогали или исправляли,а так врятли получится чтобы по алгоритму определял часть речи(
классная идея)
мб сделать мега базу по существительным,глаголам и прочим... сделать типа вики,чтобы клиенты сами помогали или исправляли,а так врятли получится чтобы по алгоритму определял часть речи(
Идея с вики - ацтой.Есть уже готовое решение этой проблемы,есть у меня реализация с прямым обучением от человека,а не косвенным,причем без каких либо затрат со стороны учителя.Базы - есть словари.Но это пока что мало что дает,их нужно еще правильно организовать.А для начала нужно придумать алгоритм выделения существительных(хотябы),а уже затем думать над хранением данных в словаре,исходя из алгоритмов.
Может быть попробовать разбирать предложение по частям? А затем отсеивать невозможные варианты пстановки сущствительного, а уже из оставшихся пытаться выковыривать существительные (методом исключения к примеру). И может заюзать это http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_% D1%81_%D0%BF%D0%BE%D0%B4%D0%BA%D1%80%D0%B5%D0%BF%D 0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC
------------------------------------------------------------------
Вечно меня маразм навещает на унитазе: а что если попробовать взять всевозможные окончания существительных и от них генерировать слова, а затем уже вести обучение системы.
нахождение сказуемого в большинстве случаев можно сделать так:
поиск окончания (ть, ти) - 100% глагол
если окончание другое, то рядом с ним должен быть глагольный суффикс а
делать
делал
делали
делала
делало
делались
ть, ти - рать, мать
суффикс а - жгло, летел, лечит
Это не решение
другого варианта нет.. надо чтобы была база корней и по базе в слове корень искать, а потом от этого остальную морфологию
ть, ти - рать, мать
суффикс а - жгло, летел, лечит
Это не решение
Нет-нет,все хорошо,ведь можно сделать таблицу исключений,и искать другие связи.
Вопрос другой,это все конечно хорошо,но вот переписывать все правила рус.яз на php некошерно будет.
Но я все записываю в файлик.
И по поводу ЯП на котором это организовывать.Я знаю еще по крайней мере 2 яп,и стараюсь выучить 4,но проще всего на данном этапе,для меня реализация на php.
Vlad&slav
05.02.2010, 11:47
Нет, тс, надо поговорить. Принцип работы нашего мозга в помощь
мы в универе на ПРОЛОГе программировали) Примитив, правда.. но тем не менее, в нем содержатся алгоритмы именно ИИ. И копать надо в эту сторону, имхо.
imajo.ati
05.02.2010, 17:29
кроме словарной базы попробуй использовать шаблоны предложений.
к примеру такие: %сущ% %прил% %глагол% %прил% %сущ%
что при переводе в текстовый вид получается так: спгпс
чтоб не хранить стопицот миллиардов шаблонов, из шаблонов надо делать регэкспы.
такие к примеру: сп?гпс
но ещё есть знаки препинания)
попробуй ввести несколько типов данных: буква, слог, слово, словосочетание, предложение и т.д.
из типов данных строятся более сложные структуры, по которым определяются типы предложений. чем больше шаблонов и информации в представленных типах данных тем "умнее" твой код - т.е. шанс распознания больше.
хоть такой подход и прост, он совсем не подходит даже для слабого ИИ, потому что текстовое представление данных (буква=символ) ОЧЕНЬ ограничит твою программу
scorpic393
09.03.2010, 14:03
ТС, на PHP??????????
Токо WEB-интерфейс не забудь добавить.
пиздец, куда ачат катится...
ТС, на PHP??????????
Токо WEB-интерфейс не забудь добавить.
пиздец, куда ачат катится...
Ok! Thx C.O.
Тема очень интересная, есть успехи?
Тема очень интересная, есть успехи?
Да забросил, собрал много словарей, занимался отделением корней и окончаний, научился распознавать простые слова. Проблема в том, что такая сеть ооочень долго обучается, так как, работает на простых словарях.
Пока что - читаю книжки про нейронные сети, но уже не так сильно увлечен темой, как раньше. Есть более приоритетный задачи.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot