Магистр Йода - теория и практика

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 18:25

BV
Черт..... а ведь правда...... Ну даже не знаю.
Но согласись - база будет ОГРОМНОЙ! Разве это выход???
А ворд как распознает? Он же бывает предлагает "поменять глагол местами с чем-то там" и тому подобное, значит - распознает!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 18:29

БД будет ОЧЕНЬ большой, не спорю. Попробуй поэкспериментировать с алгоритмами. Если получится – и ИИ сделаем, и переводчик на диалект Йоды.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 18:32

BV
Ох, сейчас не получится - экзамен по английскому, последний, выпускной остался!!!! Правда, потом вступительные.......
Но все же немного времени будет, но после завтрашнего дня!!!!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.06.2005 (Чт) 18:36

Договорились :)

Удачи на экзаменах!
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 09.06.2005 (Чт) 18:37

BV
Спасибо!!

fort
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 66
Зарегистрирован: 10.05.2005 (Вт) 0:56
Откуда: Владивосток

Сообщение fort » 11.06.2005 (Сб) 7:05

Блин, что за фигня, вчера написал ответ, а сегодня его нет...

повторюсь кратко: Магистръ Йода разговаривает стихами... это хорошо слышно, когда смотришь фильм без перевода... а наши переводчики стихи-то перевели, но так-как стихи американские, в русском варианте они представленны Белым стихом...
хороший юзер - мертвый юзер!!!

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 14:19

fort
Да? Не знал. Впрочем - это многое объясняет! Например то, что мы не выделили общего принципа, несмотря на то, что он там явно есть - когда слушейшь Йоду, видно, что он не просто слова местами меняет.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 14:25

Ну а когда он только несколько слов говорит?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 14:43

BV
Ну не знаю, посмотри оригинал(англ) если есть.... У меня нету........
Я тут подумал насчет распознавания частей речи - есть две мысли.
Первая: оценивать сразу несколько факторов - морфологию(состав слова), положение в предложении и т.д.
Каждый фактор будет иметь свой "вес" для определенной части речи(скажем, наличие "ся" добавляет 3 в переменную IsVerb) и т.д,
В конце - выбираем самую "весомую" часть речи.
Достоинства очевидны - не надо тратиь место на базу(и время на ее создание), очень эфективно.
Недостатки - труднореализуемо(хотя, в общем, не очень), все равно остается вероятность ошибки.

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

СЛОВО
ЧАСТЬ_РЕЧИ

Вот так......

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 14:46

Можешь выложить в виде VB кода вторую мысль?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 14:52

BV
Да там все просто - я сейчас пишу. В общем, прога пробегает по тексту, берет каждое слово, смотрит - есть ли оно в базе, и если нет - выдает окошко, где нужно указать ему часть речи.
Конечно, большой соблазн воспользоваться SPLITом, но тогда это приведет к большому потреблению помяти.... И так он базу в оперативку грузит, чтобы с файлом не работать постоянно....

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 15:05

Когда примерно закончишь? Я уже попробую таким образом (и с твоей БД) сделать перестановку слов под Йоду (пусть и не в рифму), ну и ИИ, разумеется :)
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 15:29

BV
Уже заканчиваю. Он, правдо, еще сырой, но вроде слова запоминает.
только его учить придется.... Долго :wink:

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 15:33

Без намёков - сколько это "Долго"? :roll:

Да и из меня учитель так себе...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 15:35

BV
Какие намеки? Загоняешь в него текст, и пока он все слова из него не узнает - не остановится! :wink:

Да и из меня учитель так себе...

Ничего, он понятливый :lol:

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 15:41

Слушай, может ты его немного поучишь, а? Ну хоть на 1000 слов?...

А как будет готов, я и начну с ним работу...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 15:42

BV
Эй, погоди! Ты хочешь, чтобы я его доконца доучил? Это довольну утомительно, так что я лучше немного поучу его, а базу потом вместе с кодом тебе вышлю - продолжишь его словам учить!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 15:47

Ага, всё самое интересное мне?

Ладно... Всё же имею опыт обучения... с НУС этим.... Но ты там хоть 200 - 300 слов заложи... Чтоб я знал, куда учить...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 15:58

Ладно, ладно... Я его сейчас по Пушкину обучаю!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 16:00

"О сколько нам открытий чудных..."... или это не он? :roll:

Тогда "У лукоморья дуб спилили..."... хотя ладно... Буду ждать.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 16:08

BV
Ой, елки-палки....... Вот тут встретилось слово "селА" (село, т.е, деревня).
А как его отличить от глагола сЕла?????

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 16:12

пилА (что пилят) и пИла (пьяница) - как отличить?
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 16:14

Обширная База Данных Русского Языка - вот ответ, который только и приходит ко мне...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 16:17

BV
Не понял????

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 16:19

По-моему никак не отличишь! Можно построить предложение, где будут подходить оба варианта! И не отличишь.
Так что пока - пусть буде, что есть!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 16:21

БД содержит слово + информация не только о том, к какой части речи это слово относится, но и о том, с какой частью речи оно употребляется. Это было как раз на случай таких слов. Хотя есть недостатки - нет гарантии безошибочного распознавания... Потому я пришел к тупику... Просто не знаю... Давай ещё подумаем.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 16:25

BV
ИМХО - никак. Уж очень Русский Язык велик и могуч.
Я же говорю - достаточно немножко подумать, и можно составить предложение, где отличить можно будет только по смыслу. А если подумать еще, то можно составить и такое, где даже человек затруднится ответить.
Впрочим, для Йодистого(ну, ты понял о чем я) переводчика таких тонкостей не нужно, ошибки будут незначительны.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 16:29

Хорошо, тогда пусть так. Хех, теперь понятно, почему языки программирования писались на английском... :)

Да... А если учитывать род (женский) в слове пИла, сЕла?...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Ariman
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 817
Зарегистрирован: 02.09.2003 (Вт) 16:23
Откуда: Великая наша держава, г.Москва

Сообщение Ariman » 11.06.2005 (Сб) 17:04

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

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 11.06.2005 (Сб) 17:11

Нет, ну смотри... можно не по роду, так вот таким образом:

1. Была у меня пила.
} (можно различить по знакам препинания)
2. Была у меня, пила.

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

Ariman писал(а):Слушай, я уже не могу его учить - сейчас закончу, и кину тебе код вместе с базой!


Не надо кидать... Ну давай ещё чуть поучи...
А потом уже отправишь на boris@vbland.net
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Пред.След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList