Генерація імен


10

Я роблю гру (або планую принаймні) і для цього мені потрібен спосіб автоматичного генерування імен для "начальників" NPC (тут довге пояснення і не має значення). Що - щось на зразок цього є хорошим прикладом того , що я маю в виду.

У мене є ідея, що я можу просто створити базу даних імен за національністю, можливо, першою / останньою парами і призначити їх випадковим чином, зі списком ігнорованих імен, щоб я не отримував щось на кшталт Гомера Сімпсона, і мене судили чи щось.

Проблема з цим полягає в тому, що мені потрібно створити масивну базу імен, щоб це працювало. Це може зайняти назавжди або коштувати грошей, якщо хтось уже не має безкоштовного списку імен.

У мене є ще одна ідея, де я складаю випадкові пари голосних і приголосних, гортаю кілька і додаю їх разом, але швидка програма, яка робить такі імена, як:

  • Seermeecpa
  • Циме
  • Ofmiahwumafi
  • Гозиді
  • Вихований

(Для всіх, хто цікавиться кодом, його можна побачити тут )

Це ... певний рот. Ну, окрім "Gozidi" - це можна було б працювати. Проте рівень успішності явно не дуже хороший.

Чи можу я щось зробити, щоб імена звучали приємніше (див. Нижче), або я повинен почати складати цей список? Чи можу я якимось чином імітувати те, як люди вирішують, чи є ім'я гідне чи ні, принаймні з якоюсь точністю? Я б більше віддавав перевагу чомусь подібному до пошуку у великому списку.

Що я маю на увазі під «приємнішим», це те, що замість випадкових комбінацій символів (що це, справедливо), речі, які звучать як фактичні імена. Вони можуть бути з будь-якої культури (або здаватися такою, якою вони є), реальної чи уявної, будь-що взагалі, поки ваші стереотипні німі, одномовні американки, як я, можуть сказати їм без особливих проблем.

Якщо вам потрібні додаткові роз'яснення, продовжуйте запитувати. Я не дуже впевнений, що тут поставити.

Додаток: Наскільки я можу сказати, насправді немає тегів, які б добре відповідали цьому питанню. Якщо хтось тут більше може порекомендувати, це було б приголомшливо.


На жаль, зараз ваше запитання здається занадто широким. Різні методи генерації імен підійдуть для різних імен - реалістичні (також, яка культура?), Фантастика, наукова фантастика, псевдоніми і т. Д. Кожен метод має свої сильні та слабкі сторони - запитуєте ви для порівняння та за яким критерієм ? Як ви особисто судите, чи звучить ім’я «приємно»? Ви можете вдосконалити своє запитання, звузивши його за цими лініями.
congusbongus

Дякую! Я відредагую його, щоб зробити його більш зрозумілим. Що я мав на увазі, це просто будь-яке ім’я, яке можна вимовити середньому одномовному американцю. Дайте мені хвилинку, і я підкину це.
Позов

@congusbongus Я думаю, що я це виправив.
Фонд позову Моніки

ви можете спробувати скласти імена, використовуючи різні префікси та постфікси, наприклад, 'ith' від Сміта може скласти такі імена, як qith, hith, kith, які звучать дещо розумно і вимовляемо, ви також можете отримати список імен і розрізати їх навпіл, потім замініть на другу половину іншої назви. Наприклад, Метт буде Ма, а Джош зробить Меш
Метью Піграма

@MatthewPigram Це все ж вимагає складання списку імен, чого я хочу уникати. Все-таки це гарна ідея, біт pre / postfixes.
Фонд позову Моніки

Відповіді:


14

Більшість генераторів імен працюють за допомогою певної варіації ланцюга Markov , що є досить чудовими (re markov le?) Конструкціями, які мають багато застосувань в іграх, а також інших доменах.

Основний підхід посилається на якийсь список. Вони не повинні бути досить величезними. Метою цього списку є лише інформування алгоритму, які склади, ймовірно, будуть поєднані разом для даної категорії імен.

Це дозволяє скласти різні списки, наприклад, чоловічі імена, жіночі імена, прізвища або назви для різних культур / регіонів / видів.

Час, який ви витратите на коригування алгоритму, який випадково збирає складені склади на приємний спосіб, швидше за все, буде більшим, ніж ви витратите на створення списку імен, які, на вашу думку, звучать добре і підходять під загальну тему.

Там є багато списків імен , доступних. Завантажте останню базу даних перепису населення США для сучасних імен, які легко розділяються за віком, статтю та етнічною приналежністю, або захоплюйте списки старих норвезьких імен тощо. Це все досить легко через Google; остання посилання була буквально моїм першим хітом для "списку норвезьких імен".


Це і знову це. Ланцюжки Маркова правила для імен, оскільки вони можуть бути навчені прикладами (подайте їм базу даних імен, на які ви хочете звучати схоже) і навіть є гнучкими в тому, наскільки тісно вони відповідають назвам прикладів (2-літерні ланцюги? 3-літерні ланцюги? 4?).
Бабіс

1
+1 за дурну каламбур. Також чудова відповідь, але в основному за каламбур. Я перегляну перепис і побачу, чи не можу я скласти список складів для використання. Я, мабуть, прийму це, лише тому, що в ньому згадується термінологія, а не просто описувати її.
Фонд позову Моніки

3

Більшість імен на мовах відповідають ряду моделей. Наприклад, російські чи грецькі імена можуть мати п'ять або десять різних префіксів, тому, якщо ви знайдете ім’я, що закінчується на -ov, ви можете підозрювати його російське, оскільки воно начебто відповідає шаблону.

Якщо ви хочете справжніх імен (або справжніх подібних), я думаю, вам слід почати створювати свій список (який не повинен бути таким довгим), оскільки аналізувати справжні імена деяких мов, знаходити їх шаблон і створювати алгоритм для створення таких імен не варто зусилля на мою думку.

Якщо ви хочете, щоб випадкові імена, які могли бути іменем на якійсь мові, ви можете скласти невеликий список правил, яких слід дотримуватися (як підмножина вищенаведеного). Вже зараз ви робите те, що ви склали правило про голосні та приголосні. Ви можете додати ще декілька подібних прізвищ, які повинні закінчуватися цими 10 складами, а деякі приголосні можуть супроводжуватися лише голосними на зразок 'q', після чого лише 'u', а за іншими можуть бути інші приголосні, наприклад 's', а потім 't 'або' k '. Знову ж таки, це більше для створення деяких слів, які насправді можна вимовити і відчути трохи реальними, ніж створення власне імен.

Щось може бути актуальним, це те, як "Papers, Please" генерує імена. http://papersplease.wikia.com/wiki/List_of_names


Я відчуваю, що це найкраще, що я збираюсь отримати, лише із чистої складності проблеми. Дякую за допомогу, навіть якщо це не те, що я збирався.
Фонд позову Моніки

У " Papers", будь ласка , примітно, як остання запис змін не стосується генерування імен, а про те, як виключити деякі з генерованих імен, оскільки вони нагадують імена реальних людей (можливо, це не так важливо; хоча це може здатися трохи збиваючи з пантелику користувачів, є просто занадто багато відомих справжніх людей, щоб виключити всі їхні імена), тому що імена нагадують небажані слова (це може трапитися і при простому поєднанні справжнього імені та прізвища) або тому, що імена є авторським правом (можливо, дуже відповідні, залежно від законодавства).
АБО Mapper

Я змінив відповідь, яку прийняв, тому що Шон надав посилання на більш детальний опис, а не огляд без нього та посилання на список імен, на які я міг би подивитися. Дякуємо за допомогу, все одно.
Фонд позову Моніки

0

Я думаю, що найпростіший спосіб зробити це - використовувати існуючий генератор випадкових імен або наявний список випадкових імен, які відповідають вашим вимогам. Потім зберігайте його десь як список. Коли вам потрібно випадкове ім'я, просто виберіть навпроти наявного списку.


Ось чого я намагаюся уникати. Я хочу мати систему, яка може робити їх на льоту, а не мати список для вибору. Також я шукав попередній список. Причина, по якій я сказав, що мені доведеться зробити її, - це те, що я не зміг знайти її безкоштовно.
Фонд позову Моніки
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.