Generazione del nome


10

Sto realizzando un gioco (o almeno sto pianificando di farlo) e, per farlo, ho bisogno di un modo per generare automaticamente nomi per i "boss" degli NPC (spiegazione lunga e irrilevante qui). Qualcosa di simile a questo è un buon esempio di ciò che intendo.

Ho un'idea che posso semplicemente costruire un database di nomi per nazionalità, forse le prime / ultime coppie e assegnarle a caso, con un elenco di nomi ignorato, quindi non ottengo qualcosa come Homer Simpson e vengo denunciato o qualcosa del genere.

Il problema è che avrei bisogno di creare un enorme database di nomi per farlo funzionare. Ci vorrebbe un'eternità o costerebbe denaro, a meno che qualcuno non abbia già un elenco di nomi disponibile gratuitamente.

Ho un'altra idea in cui creo coppie casuali di vocali e consonanti, ne capovolgo alcune e le aggiungo insieme, ma un programma rapido che fa generare nomi come questi:

  • Seermeecpa
  • Cime
  • Ofmiahwumafi
  • Gozidi
  • Effawided

(Per chiunque sia interessato al codice, puoi vederlo qui )

Questi sono ... una specie di boccone. Bene, tranne "Gozidi" - quello potrebbe funzionare. Tuttavia, il tasso di successo non è chiaramente molto buono.

C'è qualcosa che potrei fare per rendere i nomi più belli (vedi sotto), o dovrei iniziare a fare quella lista? Posso in qualche modo imitare il modo in cui gli umani decidono se un nome è decente o meno, con almeno una certa precisione? Preferirei qualcosa di simile a una ricerca in una grande lista.

Ciò che intendo per "più bello" è che, invece di combinazioni casuali di personaggi (che è, per essere onesti), cose che suonano come nomi reali. Possono provenire da qualsiasi cultura (o sembrare come sono), reali o immaginari, qualsiasi cosa, purché il tuo stereotipo stupido, monolingue americano come me possa dirli senza troppi problemi.

Se hai bisogno di ulteriori chiarimenti, vai avanti e chiedi. Non sono davvero sicuro di cosa mettere qui.

Addendum: per quanto ne so, in realtà non ci sono tag che si adattano bene a questa domanda. Se qualcuno che è stato qui più a lungo può consigliarne alcuni, sarebbe fantastico.


Purtroppo la tua domanda sembra troppo ampia in questo momento. Diversi metodi di generazione dei nomi si adattano a diversi tipi di nomi - realistici (anche, quale cultura?), Fantasy, fantascientifici, alias ecc. Ogni metodo ha i suoi punti di forza e di debolezza - stai chiedendo un confronto e su quale criterio ? Come giudichi personalmente se un nome suona "bello"? Puoi migliorare la tua domanda restringendola lungo queste linee.
congusbongus,

Grazie! Lo modificherò per renderlo più chiaro. Ciò che intendevo, tuttavia, era solo un nome e pronunciabile per l'americano medio, monolingue. Dammi un momento e lo lancerò dentro.
Finisci la causa di Monica l'

@congusbongus Penso di averlo corretto.
Fondi Monica's Lawsuit

potresti provare a comporre i nomi usando vari prefissi e postfissi, ad esempio l '"ith" di Smith potrebbe creare nomi come qith, hith, kith che sembrano tutti abbastanza ragionevoli e pronunciabili, puoi anche ottenere un elenco di nomi e tagliarli a metà, quindi sostituire con l'altra metà di un altro nome. Per esempio Matt sarebbe Ma, e Josh avrebbe
creato

@MatthewPigram Questo richiede ancora la compilazione di un elenco di nomi, che è qualcosa che voglio evitare. Comunque, è una buona idea, il bit pre / postfix.
Fondi Monica's Lawsuit

Risposte:


14

La maggior parte dei generatori di nomi funzionano tramite alcune varianti di Markov Chain , che sono costrutti abbastanza notevoli (re markov le?) Che hanno molti usi nei giochi, così come altri domini.

L'approccio di base invoca un elenco di qualche tipo. Questi non devono essere abbastanza grandi. Lo scopo di questo elenco è semplicemente quello di informare l'algoritmo quali sillabe possono essere accoppiate insieme per una determinata categoria di nome.

Ciò consente di mettere insieme elenchi diversi, ad esempio nomi maschili, nomi femminili, cognomi o nomi per culture / regioni / specie diverse.

Il tempo che passerai a modificare un algoritmo che assembla casualmente sillabe truccate in modo piacevole sarà probabilmente più di quanto spendi solo generando un elenco di nomi che ritieni validi e adatti a un tema comune.

Sono disponibili molti elenchi di nomi. Scarica l'ultimo database del censimento degli Stati Uniti per i nomi dei nostri giorni facilmente separati per età, sesso ed etnia, o prendi elenchi di vecchi nomi norreni o simili. Questi sono tutti abbastanza facili da trovare tramite Google; quell'ultimo link è stato letteralmente il mio primo successo per "elenco di nomi norreni".


Questo e ancora questo. Le catene di Markov regolano i nomi, in quanto possono essere addestrate con esempi (inseriscilo in un database di nomi a cui vuoi sembrare simile) e sono anche flessibili nel modo in cui corrispondono ai nomi degli esempi (catene di 2 lettere? Catene di 3 lettere? 4?).
Babis,

1
+1 per lo stupido gioco di parole. Ottima anche la risposta, ma soprattutto per il gioco di parole. Guarderò il censimento e vedrò se non riesco a fare un elenco di sillabe da usare. Probabilmente finirò per accettarlo, solo perché menziona la terminologia, invece di descriverla.
Fondi Monica's Lawsuit

3

La maggior parte dei nomi nelle lingue segue una serie di schemi. Ad esempio, i nomi russi o greci possono avere cinque o dieci prefissi diversi, quindi se trovi un nome che termina con -ov potresti sospettare il suo russo perché in qualche modo si adatta allo schema.

Se vuoi nomi reali (o reali) penso che dovresti iniziare a costruire la tua lista (che non dovrebbe essere così lunga) perché non vale la pena analizzare i nomi reali di alcune lingue, trovare il loro modello e creare un algoritmo per produrre tali nomi lo sforzo secondo me.

Se vuoi nomi casuali che potrebbero essere un nome in qualche lingua, potresti creare un piccolo elenco di regole da seguire (come un sottoinsieme di quanto sopra). Già, quello che stai facendo è quello: hai fatto una regola su vocali e consonanti. Potresti aggiungere qualche altro come i cognomi dovrebbero finire in queste 10 sillabe o alcune consonanti possono essere seguite solo da vocali come 'q' seguite solo da 'u' e alcune altre possono essere seguite da altre consonanti come 's' seguite da 't 'o' k '. Ancora una volta, questo è più per creare alcune parole che possono essere effettivamente pronunciate e sembrare un po 'reali rispetto alla creazione di nomi reali.

Qualcosa che può essere rilevante è il modo in cui "Papers, Please" genera nomi. http://papersplease.wikia.com/wiki/List_of_names


Sento che questo è il migliore che otterrò, proprio per la semplice complessità del problema. Grazie per l'aiuto, anche se non è quello che stavo cercando.
Fondi Monica's Lawsuit

Nei documenti, ad esempio, è interessante notare come l'ultima voce del registro delle modifiche non riguardi la generazione di nomi, ma su come escludere alcuni dei nomi generati, perché assomigliano a nomi di persone reali (forse non così importanti; mentre può sembrare leggermente confuso per gli utenti, ci sono troppe persone reali in qualche modo conosciute per escludere tutti i loro nomi), perché i nomi assomigliano a parole indesiderate (potrebbero anche accadere quando si combinano solo il nome reale e il cognome) o perché i nomi sono copyright (forse molto pertinente, a seconda della legislazione).
OR Mapper

Ho cambiato la risposta che ho accettato perché Sean ha fornito un collegamento a una descrizione più dettagliata, anziché una panoramica senza di essa, e un collegamento a un elenco di nomi che potrei guardare. Grazie comunque dell'aiuto.
Fondi Monica's Lawsuit

0

Penso che il modo più semplice per farlo sia utilizzare un generatore di nomi casuali esistente o un elenco esistente di nomi casuali che soddisfino i tuoi requisiti. Quindi archiviarlo da qualche parte come elenco. Quando hai bisogno di un nome casuale, seleziona casualmente dall'elenco esistente.


Questo è quello che sto cercando di evitare. Voglio avere un sistema in grado di renderli al volo, piuttosto che dover avere un elenco tra cui scegliere. Inoltre, ho cercato un elenco preesistente. Il motivo per cui ho detto che avrei dovuto crearne uno è che non sono riuscito a trovarne uno gratuitamente.
Fondi Monica's Lawsuit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.