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

10

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

У меня есть идея, что я могу просто создать базу данных имен по национальности, может быть, первые / последние пары, и назначить их случайным образом со списком игнорируемых имен, чтобы я не получил что-то вроде Гомера Симпсона и не получил иск или что-то еще.

Проблема в том, что мне нужно создать массивную базу данных имен, чтобы это работало. Это займет либо навсегда, либо будет стоить денег, если у кого-то уже нет списка имен, доступных бесплатно.

У меня есть другая идея, где я делаю случайные пары гласных и согласных, переворачиваю несколько и складываю их вместе, но это быстрая программа, которая генерирует имена, подобные этим:

  • Seermeecpa
  • Cime
  • Ofmiahwumafi
  • Gozidi
  • Effawided

(Для всех, кто интересуется кодом, вы можете увидеть его здесь )

Это ... отчасти глоток. Ну, кроме "Гозиди" - это можно было бы работать. Тем не менее, показатель успеха явно не очень хорош.

Могу ли я что-нибудь сделать, чтобы названия звучали лучше (см. Ниже), или я должен начать составлять этот список? Могу ли я каким-то образом подражать тому, как люди решают, достойное имя или нет, хотя бы с некоторой точностью? Я бы предпочел что-то подобное поиску в большом списке.

Под «более приятным» я подразумеваю то, что вместо случайных комбинаций символов (которые, честно говоря) это вещи, которые звучат как настоящие имена. Они могут быть из любой культуры (или звучать так, как они есть), настоящими или воображаемыми, кем угодно, до тех пор, пока ваш стереотипный тупой, одноязычный американец, такой как я, может сказать им без особых проблем.

Если вам нужны дополнительные разъяснения, продолжайте и спросите. Я не совсем уверен, что здесь поставить.

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

Фонд Моники Иск
источник
К сожалению, ваш вопрос кажется слишком широким сейчас. Разные методы генерации имен подойдут разным видам имен - реалистичные (а также, какая культура?), Фэнтези, научно-фантастические, псевдонимы и т. Д. У каждого метода есть свои сильные и слабые стороны - вы спрашиваете о сравнении и по какому критерию ? Как вы лично судите, звучит ли название «приятно»? Вы можете улучшить свой вопрос, сузив его по этим направлениям.
congusbongus
Спасибо! Я отредактирую это, чтобы сделать это более ясным. Я имел в виду только любое имя, которое можно было произнести среднестатистическому одноязычному американцу. Дайте мне минутку, и я добавлю это.
Фонд Моники Иск
@congusbongus Я думаю, я это исправил.
Фонд Моника иск
Вы можете попытаться составить имена, используя различные префиксы и постфиксы, например, «ith» от Смита может сделать такие имена, как qith, hith, kith, которые все звучат несколько разумно и произносимы, вы также можете получить список имен и разделить их пополам, затем заменить на другую половину другого имени. Например, Мэтт был бы Ма, а Джош делал Мэш
Мэттью Пиграм
@ MatthewPigram Это все еще требует составления списка имен, чего я хочу избежать. Тем не менее, это хорошая идея, немного пре / постфиксов.
Фонд Моника Иск

Ответы:

14

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

Базовый подход вызывает какой-то список. Они не должны быть достаточно большими. Цель этого списка - просто сообщить алгоритму, какие слоги, вероятно, будут объединены для данной категории имени.

Это позволяет составлять разные списки, например, мужские имена, женские имена, фамилии или названия для разных культур / регионов / видов.

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

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

Шон Миддледич
источник
Это и снова это. Цепочки Маркова управляют именами, так как их можно обучать на примерах (напишите в базе данных имен, на которые вы хотите, чтобы они звучали похоже), и даже гибки в том, насколько близко они соответствуют именам примеров (2-буквенные цепочки? 3-буквенные цепочки? 4?).
Бабис
1
+1 за глупый каламбур. Также отличный ответ, но в основном за каламбур. Я посмотрю на перепись и выясню, не могу ли я составить список слогов для использования. Я, вероятно, собираюсь в конечном итоге принять это, просто потому, что он упоминает терминологию, а не просто описывает ее.
Фонд Моника иск
3

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

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

Если вам нужны случайные имена, которые могут быть именами на каком-либо языке, вы можете составить небольшой список правил, которым нужно следовать (например, подмножество вышеупомянутых). Уже то, что вы делаете, это то, что вы сделали правило о гласных и согласных. Вы можете добавить еще несколько таких, как фамилии должны заканчиваться этими 10 слогами, или за некоторыми согласными могут следовать только гласные, такие как «q», за которыми следует только «u», а за некоторыми другими могут следовать другие согласные, такие как «s» и «t». 'или' k '. Опять же, это больше для создания некоторых слов, которые могут быть произнесены и чувствовать себя немного реальными, чем создание реальных имен.

Кое-что, что может быть уместно, - способ, которым "Бумаги, Пожалуйста" генерируют имена. http://papersplease.wikia.com/wiki/List_of_names

Exaila
источник
Я чувствую, что это лучшее, что я собираюсь получить, просто из-за сложности проблемы. Спасибо за помощь, даже если это не то, что я хотел.
Фонд Моника Иск
В документе «Пожалуйста, пример» примечательно, что последняя запись в журнале изменений не о генерации имен, а о том, как исключить некоторые из сгенерированных имен, потому что они напоминают имена реальных людей (возможно, не так важно; хотя это может показаться незначительным). вводит в заблуждение пользователей, существует слишком много известных реальных людей, чтобы исключить все их имена), потому что имена напоминают нежелательные слова (может также случаться, когда просто объединяют настоящие имена и фамилии), или потому что имена защищены авторским правом (возможно, очень актуально, в зависимости от законодательства).
ИЛИ Mapper
Я изменил ответ, который принял, потому что Шон предоставил ссылку на более подробное описание, а не обзор без него, и ссылку на список имен, на которые я мог посмотреть. Все равно, спасибо за помощь.
Фонд Моники Иск
0

Я думаю, что самый простой способ сделать это - использовать существующий генератор случайных имен или существующий список случайных имен, которые соответствуют вашим требованиям. Тогда сохраните это где-нибудь как список. Когда вам нужно случайное имя, просто выберите из существующего списка наугад.

user55564
источник
Вот чего я пытаюсь избежать. Я хочу иметь систему, которая может делать их на лету, а не иметь список для выбора. Также я искал уже существующий список. Причина, по которой я сказал, что мне нужно сделать одну, заключается в том, что я не могу найти ее бесплатно.
Фонд Моника иск