Не верь, не бойся, не проси - April 30th, 2023 [entries|archive|friends|userinfo]
phantom

[ website | My Website ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

April 30th, 2023

[Apr. 30th, 2023|11:58 pm]
Генерация текста через вероятностные графы

Захотелось нагенерировать имён. Увидел эту картинку:

и переизобрёл вероятностный граф (цепь Маркова), - простейший случай.

Слабал легко и быстро, так что сам удивился. По дороге понял, что графы, матрицы и адаптация RNG в простейшей имплементации не нужны. Просто берём выборку, разбиваем на биграммы букв, их на классы эквивалентности по первой букве, плюс стартер/терминатор. И идём от стартера к терминатору, выбирая равнораспределённо из пар-переходов текущего класса. (Заметки на полях: пары составляют мультимножество согласно частотности).

Нашёл старые чат-логи из eve online, имена из них (несколько сотен) взял за выборку. Игроки их там придумывали забористые такие. Вот, что получилось:

A Matinturalustanteriph
Ens Dfelis
Mo Inb
N Warevon
Snsmesteresmaje Emil
Ssallveerykn Llzulel
Seikeangul Stuhalx
Deiastrotachur Lkn
Gann S
Ser Pol
Pevo Kapor
Pa G
Idfamondevlarlynkona Rortale
Laramaladohes Monatumovveabeman
Tadocherdrahvarronjatenallachagd Korsiaty
Win Onergari
At Paga
Pedobudyevau Ivio
Jajes K
Ohelazan Wkkapaianamifollli
Anenco Je
Sak Joren
La S
Huraghen Acanarour
R Mero
Kr Veleshandbrevexy
Sola Ccilv
St Cheaia
Moy N
Crseliy Blearinniolepei

Неплохой результат, однако.

А вот продвинутый генератор на том же принципе (и не только), с выбором тренировочных выборок и их смешиванием:
https://www.samcodes.co.uk/project/markov-namegen/
Link2 comments|Leave a comment

navigation
[ viewing | April 30th, 2023 ]
[ go | Previous Day|Next Day ]