名字产生


10

我正在制作一个游戏(或至少打算这样做),并且我需要一种方法来自动为NPC“老板”生成名称(详细说明与此处无关)。喜欢的东西,是我的意思一个很好的例子。

我的想法是,我可以按国籍建立姓名数据库,也许是第一对/最后一对,并使用被忽略的姓名列表随机分配姓名,这样我就不会像荷马·辛普森那样受到起诉。

这样做的问题是,我需要建立一个庞大的名称数据库才能正常工作。除非有人已经免费提供了一个名称列表,否则它将永远或花费金钱。

我还有另一个想法,我随机制作成对的元音和辅音,翻转几对,然后将它们加在一起,但是有一个快速的程序可以生成这样的名称:

  • Seermeecpa
  • Cime
  • Ofmiahwumafi
  • 戈齐迪
  • 扩展

(对于任何对代码感兴趣的人,您都可以在这里看到它)

这些...有点口。好吧,除了“ Gozidi”,那个人可以工作。不过,成功率显然不是很高。

我可以做些什么来使名称听起来更好(请参见下文),还是应该开始制作该列表?我能以某种方式模仿人类决定一个名字是否正派的方式,至少准确一些吗?我非常喜欢这样的事情,而不是在大列表中查找。

我所说的“更细”是指听起来像实际名称,而不是字符的随机组合(公平地说)。它们可以来自任何文化(或听起来像它们),无论是真实的还是虚构的,什么都可以,只要您像我这样刻板的愚蠢,单语的美国人都能说出它们而没有太多麻烦。

如果您需要进一步说明,请继续询问。我不太确定该放在哪里。

附录:据我所知,确实没有标签完全适合这个问题。如果到过这里的人更长久可以推荐一些,那就太好了。


不幸的是,您的问题现在似乎太广泛了。不同的名称生成方法将适合不同的名称-现实的(也(哪种文化?),幻想,科幻,别名等)。每种方法各有优缺点-您是否要求进行比较,以及根据什么标准?您个人如何判断一个名字听起来“不错”?您可以按照以下方式缩小问题范围,从而改善您的问题。
congusbongus

谢谢!我将对其进行编辑以使其更加清晰。不过,我的意思只是任何名字,对于普通的单语美国人来说,它的发音很明显。给我些时间,我会折腾那个英寸
基金莫妮卡的诉讼

@congusbongus我想我已经解决了。
基金莫妮卡的诉讼

您可以尝试使用各种前缀和后缀来组合名称,例如Smith的'ith'可以使qith,hith,kith之类的名称听起来有些合理和发音,您也可以获取名称列表并将其切成两半,然后用另一个名字的另一半替换。例如,马特(Matt)将是马(Ma),乔希(Josh)将成为马什(Mash)
马修·皮格拉姆

@MatthewPigram这仍然需要编译一个名称列表,这是我要避免的事情。不过,这是一个好主意,前置/后置位。
基金莫妮卡的诉讼

Answers:


14

大多数名称生成器通过Markov Chain的某些变体来工作,这些变体是相当出色的(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


我觉得这是我将要获得的最好的结果,仅仅是从问题的复杂性来看。感谢您的帮助,即使这不是我想要的。
基金莫妮卡的诉讼

“请论文”示例中,值得注意的是,最新的变更日志条目不是关于生成名称,而是关于如何排除某些生成的名称,因为它们类似于真实人的姓名(可能不那么重要;尽管看起来不太重要)。令用户感到困惑的是,有太多真正的真实人物无法将他们的所有名字都排除在外,因为这些名字类似于不受欢迎的词(当将真实的名字和姓氏组合在一起时也可能发生),或者因为这些名字具有版权(可能非常相关的,取决于法律)。
OR Mapper

我更改了我接受的答案,因为Sean提供了指向更详细描述的链接,而不是没有概述的概述,以及指向我可以查看的名称列表的链接。无论如何,感谢您的帮助。
基金莫妮卡的诉讼

0

我认为最简单的方法是使用现有的随机名称生成器或现有的满足您要求的随机名称列表。然后将其存储为列表。当您需要一个随机名称时,只需从现有列表中随机选择即可。


这就是我要避免的事情。我想拥有一个可以让他们即时运行的系统,而不是必须要选择一个列表。另外,我正在寻找一个预先存在的清单。我说我必须做一个的原因是我找不到免费的一个。
基金莫妮卡的诉讼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.