Четверг, 25 Апреля 2024, 09:29

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Программирование » Общие обсуждения программистов » Создание карты на основе текста худлита
Создание карты на основе текста худлита
al_mtДата: Пятница, 19 Декабря 2014, 16:13 | Сообщение # 21
постоянный участник
Сейчас нет на сайте
Щас попробуем хоббита.
Я правда не помню уже подробностей сюжета и кто из персонажей там кто, но так даже интересней smile
SaiteiДата: Пятница, 19 Декабря 2014, 16:39 | Сообщение # 22
старожил
Сейчас нет на сайте
al_mt, а можете рассказать о том, как работает текущий алгоритм? Интересно же smile
al_mtДата: Пятница, 19 Декабря 2014, 17:53 | Сообщение # 23
постоянный участник
Сейчас нет на сайте
О!!!
Самое главное - спросите у яндекса "анализ по Журавлёву". Это алгоритм, который придумал какой-то наш учёный в 70-х годах. Гуманитарий, а полезный! smile
Там смысл в том, что каждой букве присваивается некий вес по эмоциональной шкале, зависящий от частоты использования символа и позиции символа в слове.
На этом алгоритме работает такая прода "Ваал".

Мужик нарисовал по сути формулу двуслойной нейросети! Только это было давно, и тогда ещё не было современных нейронных алгоритмов, и у него зависимости получились линейные - а это работать не будет.
Я взял формулу Журавлёва, засунул между суммами сигмоиду для придания нелинейности, а потом то что получилось, обучил на примерах из ассоциативного словаря (где-то в инете валяются валом).

Оно получилось кривовато и откровенно требует допила напильником, но за то теперь любое слово или фрагмент текста могут быть оценены по произвольной шкале, если предварительно было проведено обучение.

Я сейчас сделал оценку свойств по нескольким шкалам: "Человек-Монстр", "Органический-Механический", "Живой-Умертвие", дальше стандартные "Сильный-Слабый", "Умный-Глупый", ну и т.п.
Так же оцениваем (коряво правда), что это за персонаж "Хороший-Плохой", "Герой-NPS"
Получаем список ТТХ персонажей.

Потом, парсером по шаблону собираем гипотетические локации, фрагменты текста типа "в замке", "на горе", ну и т.п.
Смотрим, для каждой локации, какие персонажи ближе всего в тексте упомянуты и считаем, что они там.

Получаем список локаций и маршруты движения персонажей.

Получаем примерно такое:

Протогонисты, герои:
-

Протогонисты, NPS:
Дубощит. Недочеловек. Весь в имплантах. Некромант. Среднего роста. Шустрый. Ботаник. Злой. Немного соображает в жизни. Жизнь знает. Бедняк. Мечник. Магию в принципе чует.

Карте. Недочеловек. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Немного соображает в жизни. Жизнь знает. Бедняк. Рядовой боец. Знает пару заклятий.

Трора. Полумонстр. С протезом. Некромант. Среднего роста. Нормальный. Ботаник. Злой. Умник. Лох. Бедняк. Мечник. Магию в принципе чует.

Траина. Полумонстр. С протезом. Некромант. Среднего роста. Нормальный. Нормальный. Злой. Умник. Жизнь знает. Нищета. Мечник. Магию в принципе чует.

Элрондом. Недочеловек. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Умник. Лох. Бедняк. Рядовой боец. Знает пару заклятий.

Воссел. Человек. С протезом. Некромант. Среднего роста. Стремительный. Ботаник. Злой. Тупой. Лошара полный. Бедняк. Рядовой боец. Знает пару заклятий.

Тук. Полумонстр. Весь в имплантах. Некромант. Среднего роста. Тормоз притрушенный. Нормальный. Злой. Умник. Лох. Бедняк. Мечник. Знает пару заклятий.

Гэндальф. Полумонстр. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Умник. Лох. Бедняк. Мечник. Знает пару заклятий.

Двалин. Полумонстр. С протезом. Некромант. Среднего роста. Шустрый. Ботаник. Злой. Немного соображает в жизни. Жизнь знает. Нищета. Стрелок. Магию в принципе чует.

Кили. Недочеловек. Органический. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Немного соображает в жизни. Хитрец. Нищета. Стрелок. Знает пару заклятий.

Оин. Полумонстр. Органический. Некростер. Среднего роста. Стремительный. Здоровый дядька(тётка). Злой. Умник. Жизнь знает. Бедняк. Стрелок. Магию в принципе чует.

Бофура. Недочеловек. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злобный. Умник. Жизнь знает. Бедняк. Мечник. Магию в принципе чует.

Бомбура. Полумонстр. С протезом. Некромант. Высокий. Шустрый. Нормальный. Злобный. Немного соображает в жизни. Жизнь знает. Бедняк. Мечник. Магию в принципе чует.

Мглистых. Недочеловек. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Умник. Жизнь знает. Среднего достатка. Рядовой боец. Знает пару заклятий.

Смауг. Недочеловек. Весь в имплантах. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Умник. Жизнь знает. Бедняк. Рядовой боец. Знает пару заклятий.

Гламдринг. Недочеловек. Весь в имплантах. Некростер. Высокий. Шустрый. Нормальный. Добрый. Не шибко умный. Жизнь знает. Зажиточный. Рукопашник. Магию в принципе чует.

Уильям. Человекообразный. Киборг. Некромант. Высокий. Шустрый. Нормальный. Флегматичный. Мудрец. Лох. Нищета. Мечник. Знает пару заклятий.

Берт. Полумонстр. Весь в имплантах. Чёрный. Среднего роста. Шустрый. Нормальный. Злой. Не шибко умный. Жизнь знает. Среднего достатка. Мечник. Знает пару заклятий.

Вильяма. Полумонстр. Весь в имплантах. Живой. Среднего роста. Шустрый. Нормальный. Злой. Не шибко умный. Лох. Бедняк. Рядовой боец. Магию в принципе чует.

Томом. Монстр. Весь в имплантах. Живой. Среднего роста. Шустрый. Нормальный. Флегматичный. Умник. Лох. Среднего достатка. Рядовой боец. Магию в принципе чует.

Оркрист. Полумонстр. Весь в имплантах. Некростер. Гигант. Стремительный. Боксёр. Добрый. Немного соображает в жизни. Хитрец. Зажиточный. Мечник. Знает пару заклятий.

Кусач. Недочеловек. Киборг. Умертвие. Высокий. Стремительный. Боксёр. От доброты аж светится. Не шибко умный. Сильно хитрож...й. Богач. Рядовой боец. Знает пару заклятий.

Болг. Недочеловек. С протезом. Некромант. Гигант. Нормальный. Ботаник. Злобный. Умник. Жизнь знает. Среднего достатка. Рядовой боец. Магией не владеет.

Радагаста. Недочеловек. Органический. Чёрный. Высокий. Нормальный. Боксёр. Флегматичный. Не шибко умный. Сильно хитрож...й. Среднего достатка. Злой Стрелок. Магию отторгает.

Бладортина. Монстр. Робот. Некростер. Карлик. Нормальный. Хилый. Злобный. Мудрец. Лох. Бедняк. Мечник. Магией не владеет.

Бард. Недочеловек. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Умник. Жизнь знает. Бедняк. Злой Стрелок. Знает пару заклятий.

Даин. Полумонстр. С протезом. Некростер. Высокий. Шустрый. Нормальный. Злой. Немного соображает в жизни. Лох. Бедняк. Мечник. Магию в принципе чует.

Антогонисты, герои:
Бильбо. Полумонстр. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Немного соображает в жизни. Жизнь знает. Бедняк. Мечник. Знает пару заклятий.

Антогонист, NPS:
Торин. Недочеловек. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злой. Немного соображает в жизни. Жизнь знает. Бедняк. Мечник. Знает пару заклятий.

Белладонна. Полумонстр. С протезом. Некромант. Среднего роста. Тормоз притрушенный. Боксёр. Злой. Умник. Лох. Бедняк. Мечник. Магию в принципе чует.

Старого. Полумонстр. Весь в имплантах. Некростер. Среднего роста. Тормозной. Нормальный. Злой. Умник. Лошара полный. Среднего достатка. Рукопашник. Маг.

Балин. Недочеловек. С протезом. Некромант. Гном. Шустрый. Нормальный. Злой. Немного соображает в жизни. Жизнь знает. Бедняк. Стрелок. Знает пару заклятий.

Глоин. Полумонстр. С протезом. Некромант. Среднего роста. Шустрый. Боксёр. Злой. Умник. Жизнь знает. Бедняк. Стрелок. Магию в принципе чует.

Бифура. Недочеловек. С протезом. Некромант. Высокий. Шустрый. Нормальный. Злобный. Немного соображает в жизни. Жизнь знает. Бедняк. Мечник. Магию в принципе чует.

Дори. Недочеловек. С протезом. Некромант. Среднего роста. Шустрый. Нормальный. Злобный. Умник. Жизнь знает. Бедняк. Мечник. Знает пару заклятий.

Волынщик. Полумонстр. С протезом. Чёрный. Среднего роста. Шустрый. Нормальный. Злой. Умник. Лох. Среднего достатка. Рядовой боец. Магию в принципе чует.

Голлум. Полумонстр. Весь в имплантах. Некромант. Среднего роста. Шустрый. Ботаник. Злой. Немного соображает в жизни. Жизнь знает. Бедняк. Мечник. Знает пару заклятий.

Быстрянки. Недочеловек. С протезом. Некромант. Среднего роста. Нормальный. Нормальный. Злой. Умник. Жизнь знает. Нищета. Стрелок. Маг.

Гондолин. Недочеловек. Весь в имплантах. Некростер. Среднего роста. Шустрый. Нормальный. Добрый. Не шибко умный. Хитрец. Среднего достатка. Рядовой боец. Магию в принципе чует.

Гоблиноруб. Полумонстр. С протезом. Некромант. Высокий. Нормальный. Нормальный. Злой. Умник. Жизнь знает. Среднего достатка. Рядовой боец. Знает пару заклятий.

Дурина. Недочеловек. С протезом. Некромант. Среднего роста. Нормальный. Боксёр. Злой. Мудрец. Лошара полный. Среднего достатка. Рядовой боец. Знает пару заклятий.

Беорн. Полумонстр. С протезом. Некромант. Высокий. Нормальный. Нормальный. Злой. Умник. Лох. Среднего достатка. Рядовой боец. Знает пару заклятий.

Аркенстон. Полумонстр. С протезом. Некромант. Среднего роста. Стремительный. Ботаник. Злой. Умник. Лох. Бедняк. Стрелок. Магию в принципе чует.

Железистого. Недочеловек. С протезом. Некростер. Высокий. Нормальный. Нормальный. Злой. Не шибко умный. Лох. Среднего достатка. Рукопашник. Магией не владеет.

Уровень 1 :

НА ХОЛМ
Гэндальф,Мглистых,Двалин,Кили,Бомбура,Бофура,Оин,Тук,Трора,Карте,Элрондом,Траина,Дубощит сражаются против орд Торин,Балин,Дори,Бифура,Глоин,Старого,Белладонна , которых, гонят Бильбо

Уровень 2 :

В БИТВЕ
Гэндальф,Кили сражаются против орд Глоин,Волынщик,Старого , которых, гонят Бильбо

Уровень 3 :

В ОКОНЕЧНОЙ
Гэндальф,Тук сражаются против орд Глоин,Волынщик , которых, гонят Бильбо

Уровень 4 :

В НИЖНИЙ
Смауг,Гэндальф сражаются против орд Торин,Балин , которых, гонят Бильбо

Уровень 5 :

НА ВОСТОК
Гэндальф сражаются против орд Торин,Быстрянки

Уровень 6 :

В ГОРУ
Смауг сражаются против орд Торин , которых, гонят Бильбо

Уровень 7 :

В ДОЛЕ
Трора сражаются против орд Торин

Уровень 8 :

НА СЕВЕРЕ
Трора,Гэндальф,Дубощит,Смауг сражаются против орд Торин , которых, гонят Бильбо

Уровень 9 :

В УВОДЬЯ
Оин,Кили,Берт,Вильяма,Томом,Уильям,Гэндальф,Двалин,Дубощит сражаются против орд Глоин,Дори,Балин,Торин , которых, гонят Бильбо

Уровень 10 :

В РАЗДОЛ
Гэндальф,Двалин,Мглистых,Смауг,Томом,Берт,Вильяма сражаются против орд Торин,Балин , которых, гонят Бильбо

Уровень 11 :

В ОБИТЕЛИ
Гламдринг,Гэндальф,Оркрист сражаются против орд Быстрянки,Торин,Гоблиноруб,Гондолин , которых, гонят Бильбо

Уровень 12 :

НА ЗАПАДЕ
Мглистых,Гэндальф сражаются против орд Дурина,Торин , которых, гонят Бильбо

Уровень 13 :

В ОДИНОКОЙ
Гэндальф,Элрондом сражаются против орд Дурина , которых, гонят Бильбо

Уровень 14 :

В ДИКИХ
Гэндальф,Бомбура,Кили,Оркрист,Гламдринг,Кусач,Дубощит,Оин сражаются против орд Голлум,Дори,Торин,Гоблиноруб,Глоин , которых, гонят Бильбо

Уровень 15 :

В ПОТУСТОРОНЬЕ
Гэндальф,Элрондом сражаются против орд Старого,Голлум,Балин,Торин,Дори , которых, гонят Бильбо

Уровень 16 :

В ЗАГОРН%u042bХ
Мглистых,Гэндальф,Оин,Кили сражаются против орд Дори,Торин,Глоин , которых, гонят Бильбо

Уровень 17 :

НА БОЛЬШОЙ
Гэндальф,Кили,Двалин,Трора,Дубощит,Радагаста,Смауг,Мглистых,Оин сражаются против орд Беорн,Балин,Торин,Дори,Глоин , которых, гонят Бильбо

Уровень 18 :

В ДИКОЗЕМЬЕ
Бомбура,Двалин,Оин,Кили,Гэндальф,Смауг,Элрондом сражаются против орд Торин,Дори,Балин,Беорн,Глоин , которых, гонят Бильбо

Уровень 19 :

В ЫЛЬФИЙСКОМ
Двалин,Гэндальф,Бомбура,Кили сражаются против орд Балин,Торин,Голлум,Дори , которых, гонят Бильбо

Уровень 20 :

В ОЗЕРН%u042bЙ
Гэндальф сражаются против орд Торин , которых, гонят Бильбо

Уровень 21 :

В ДОЛГОЕ
Гэндальф сражаются против орд Торин , которых, гонят Бильбо

Уровень 22 :

В ЛЕСНУЮ
Бильбо готовят мерзкие пакости

Уровень 23 :

В ОЗЁРН%u042bЙ
Кили,Траина,Трора,Гэндальф сражаются против орд Торин,Дурина,Беорн , которых, гонят Бильбо

Уровень 24 :

НА ФИЛИ
Гэндальф,Смауг,Кили,Воссел,Трора,Траина,Оркрист,Дубощит,Оин сражаются против орд Торин,Дурина,Глоин,Дори , которых, гонят Бильбо

Уровень 25 :

НА ПОДГОРНОЕ
Кили,Смауг,Трора,Траина сражаются против орд Быстрянки,Балин,Торин , которых, гонят Бильбо

Уровень 26 :

В ГЛАВН%u042bЕ
Смауг,Кили,Дубощит,Бомбура,Тук,Гэндальф,Двалин,Бофура,Бладортина,Трора,Оин сражаются против орд Торин,Балин,Бифура,Аркенстон,Глоин , которых, гонят Бильбо

Уровень 27 :

В ЧЁРНОЙ
Кили,Трора,Смауг,Бард,Мглистых,Дубощит,Даин,Бомбура сражаются против орд Торин,Аркенстон,Балин,Дори,Беорн,Дурина,Железистого , которых, гонят Бильбо

Уровень 28 :

В ПУЩУ
Бард,Даин,Траина,Бомбура,Гэндальф сражаются против орд Торин,Аркенстон,Дурина , которых, гонят Бильбо

Уровень 29 :

В МОРИИ
Гэндальф,Бард,Даин,Болг сражаются против орд Торин,Аркенстон,Железистого , которых, гонят Бильбо

Уровень 30 :

НА ВОРОНОВОЙ
Даин,Бард,Гэндальф,Смауг,Кили,Дубощит,Мглистых,Оркрист сражаются против орд Железистого,Торин,Беорн,Аркенстон , которых, гонят Бильбо

Уровень 31 :

НА ВЕЛИКОМ
Даин,Кили,Бард,Двалин,Оин,Дубощит,Гэндальф,Мглистых,Элрондом сражаются против орд Дори,Аркенстон,Балин,Глоин,Торин,Беорн , которых, гонят Бильбо

Уровень 32 :

В СУМЕ
Томом,Гэндальф сражаются против Бильбо

Уровень 33 :

В ХОББИТОНЕ
Гэндальф,Бард сражаются против орд Балин , которых, гонят Бильбо

-----------------------------------
Это без малейшей правки. То что алгоритм сам "понял" в книге. Кто где и с кем сражается - на его совести biggrin tongue cool
SaiteiДата: Пятница, 19 Декабря 2014, 18:45 | Сообщение # 24
старожил
Сейчас нет на сайте
biggrin Следующий этап: написать нейронную сеть, которая сама читала бы книжки и самообучалась)))
Честно говоря мне кажется, что многие слова вроде "рукопашник" и т.п. были заданы заранее. Сомневаюсь, что они были в книге
al_mtДата: Пятница, 19 Декабря 2014, 19:03 | Сообщение # 25
постоянный участник
Сейчас нет на сайте
Разумеется!
"Рукопашник" - это характеристика по шкале "Ближний бой - Дальний бой"
Там просто вписано "Рукопашник", "мечник", "Рядовой", "Стрелок", "Злой стрелок".

Не знаю, может быть вообще откажусь от длинных шкал и тогда будет просто "Мечник" - "Стрелок".

Проблемы с автогенерацией аватар. За музыку вообще пока не брался.
GudleifrДата: Вторник, 21 Апреля 2015, 12:15 | Сообщение # 26
почти ветеран
Сейчас нет на сайте
Пардон за ап, но "чего тут думать-то"? Список локаций обычно соответствует оглавлению книги. Особенно, если учесть, что в хороших книгах-играх список локаций не является чисто географическим.

Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
SaiteiДата: Вторник, 21 Апреля 2015, 13:50 | Сообщение # 27
старожил
Сейчас нет на сайте
Цитата Gudleifr ()
Список локаций обычно соответствует оглавлению книги. Особенно, если учесть, что в хороших книгах-играх список локаций не является чисто географическим.

Глава "Начало начал" будет игровой локацией? smile
К сожалению, не всё так просто... Жалко, что ТС куда-то пропал. Задумка была весьма любопытной...
GudleifrДата: Вторник, 21 Апреля 2015, 14:02 | Сообщение # 28
почти ветеран
Сейчас нет на сайте
Цитата Saitei ()
Глава "Начало начал" будет игровой локацией?
Конечно. Есть же в настольных "змейках-лесенках" позиция "СТАРТ".
Цитата Saitei ()
К сожалению, не всё так просто...
Наоборот, сведение локаций книг-игр к голой геометрии - и есть упрощение.
Если интересно: измышлизмы.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
KamiRoninДата: Среда, 22 Апреля 2015, 09:22 | Сообщение # 29
почти ветеран
Сейчас нет на сайте
al_mt, алгоритм по контекстуальному определению описаний локации:
1 приоритет: местоимения/предлоги очень точно определяют, что за ними следуют описания локаций "пошел на...", "иди в...", "подлетел к...", "вышел из...", "провалился под...", "спрятался за...", "проплыл над...". Составить словарь таких объектоуказующих текстовых меток - очень просто.
2 прт: после маркера указателя на описание локации идет кусок фразы, который нужно разобрать по значащим (определяющим локацию) и не значащим текстовым объектам. Например, "подлетел к небольшому островку под названием Колистрата" - где вырабатываются свои условия определения - например такие: если есть текстобъект с больш.буквы (после маркера указателя на описание локации) - то берем его как название, между ним и маркером - вторичные определения. И тп.
3 прт: исключения и выверты. Например "дом, из которого вышел эльф стоял на поляне сплошь покрытой эрлийским маком.". Тут выход - составлять список идиом, которые используются для вывертных описаний - все эти "из которого" и прочие, и создавать свой алгоритм анализа каждого из них - встретил сигнатуру выверта - другой алгоритм. Двойное определение места (как тут - и дом, и на поляне) - не должно быть проблемой в итоге - получается "дом на поляне" базовое определение, "покрытой маком" или "небольшой островок" - характеристики локации.


Мыслю - значит программирую...
Конструктивная критика - умных ведет к совершенству...
Великие умы обсуждают идеи, средние - обсуждают поступки, а малые - людей.
Форум игроделов » Программирование » Общие обсуждения программистов » Создание карты на основе текста худлита
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг