İsim oluşturma


10

Bir oyun yapıyorum (veya en azından planlıyorum) ve bunu yapmak için, otomatik olarak NPC "patronları" (uzun açıklama ve alakasız) için adlar oluşturmak için bir yol gerekir. Gibi bir şey bu ne demek istediğimi iyi bir örnektir.

Ben sadece milliyet, belki ilk / son çiftleri ile isimleri bir veritabanı oluşturmak ve onları göz ardı edilen bir ad listesi ile rastgele atamak bir fikrim var, böylece Homer Simpson gibi bir şey almak ve dava ya da bir şey olsun.

Buradaki sorun, bunun çalışması için büyük bir ad veritabanı oluşturmam gerektiğidir. Birinin zaten ücretsiz olarak kullanılabilecek bir ad listesi yoksa, sonsuza kadar sürer veya paraya mal olur.

Ünlü ve ünsüzlerin rastgele çiftlerini yaptığım, birkaçını çevirip bir araya getireceğim başka bir fikrim var, ancak bu gibi isimler üreten hızlı bir program:

  • Seermeecpa
  • Cime
  • Ofmiahwumafi
  • Gozidi
  • Effawided

(Kodla ilgilenen herkes için kodu burada görebilirsiniz )

Bunlar ... biraz ağız dolusu. Peki, "Gozidi" hariç - bu işe yarayabilir. Yine de başarı oranı çok iyi değil.

İsimlerin daha hoş görünmesini sağlamak için yapabileceğim bir şey var mı (aşağıya bakın), ya da bu listeyi yapmaya başlamalıyım? En azından bir doğrulukla, bir adın iyi olup olmadığına insanların karar verme şeklini bir şekilde taklit edebilir miyim? Büyük bir listede arama yapmak için böyle bir şeyi tercih ederim.

"Güzel" ile kastettiğim, karakterlerin rastgele kombinasyonları yerine (adil olmak gerekirse), gerçek isimlere benzeyen şeyler. Benim gibi basmakalıp aptal, tek dilli Amerikalılar çok fazla sorun olmadan bunları söyleyebildikleri sürece, herhangi bir kültürden (veya oldukları gibi ses), gerçek veya hayali olabilirler.

Daha fazla açıklamaya ihtiyacınız varsa devam edin ve sorun. Buraya ne koyacağımdan gerçekten emin değilim.

Zeyilname: Anlayabildiğim kadarıyla, bu soruya tam olarak uyan etiketler gerçekten yok. Uzun zamandır burada olan herkes biraz tavsiye edebilir, bu harika olurdu.


Maalesef sorunuz şu anda çok geniş görünüyor. Farklı ad oluşturma yöntemleri farklı türlere (gerçekçi, aynı zamanda hangi kültür?), Fantezi, bilimkurgu, takma adlar vb. ? Bir ismin kulağa hoş gelip gelmediğini kişisel olarak nasıl değerlendiriyorsunuz? Sorunuzu bu satırlar boyunca daraltarak geliştirebilirsiniz.
congusbongus

Teşekkürler! Daha net yapmak için düzenleyeceğim. Demek istediğim, herhangi bir isimdi ve ortalama, tek dilli Amerikalılar tarafından telaffuz edilebilirdi. Bana biraz zaman ver ve ben onu fırlatacağım.
Monica'nın Davasını

@congusbongus Sanırım düzelttim.
Monica'nın Davası

çeşitli önekleri ve postfix'leri kullanarak isimleri deneyebilir ve oluşturabilirsiniz, örneğin Smith'ten 'i', qith, hith, kith gibi isimleri biraz makul ve telaffuz edilebilir hale getirebilir, ayrıca bir ad listesi alabilir ve bunları ikiye bölebilirsiniz, daha sonra başka bir adın diğer yarısıyla değiştirin. Örneğin Matt Ma olur ve Josh Mash yapar
Matthew Pigram

@MatthewPigram Bu hala bir isim listesi derlemeyi gerektirir, bu kaçınmak istediğim bir şeydir. Yine de, iyi bir fikir, ön / postfixes biti.
Monica'nın Davası

Yanıtlar:


14

Çoğu isim üreticisi , oldukça dikkat çekici olan Markov Zinciri'nin bazı varyasyonlarıyla çalışır (yeniden markov oyunlarda ve diğer alanlarda çok fazla kullanımı le?) Yapıları ile çalışır.

Temel yaklaşım bir tür listeyi çağırıyor. Bunların oldukça büyük olması gerekmez. Bu listenin amacı, algoritmaya belirli bir ad kategorisi için hangi hecelerin bir araya getirilebileceğini bildirmektir.

Bu, erkek isimleri, kadın isimleri, aile isimleri veya farklı kültürler / bölgeler / türler için farklı listeler oluşturmanıza olanak tanır.

Hazırlanmış heceleri rastgele bir şekilde hoş bir moda birleştiren bir algoritmayı değiştirerek geçireceğiniz zaman, kulağa iyi geldiğini ve ortak bir temaya uyduğunu düşündüğünüz bir ad listesi oluşturmak için harcadığınızdan daha fazla olacaktır.

Orada olan mevcut adlardan birçok listeleri. Yaş, cinsiyet ve etnik kökene göre kolayca ayrılan modern adlar için en son ABD nüfus sayımı veritabanını indirin veya eski İskandinav adları veya benzerlerinin listelerini alın . Bunların hepsini Google üzerinden bulmak oldukça kolaydır; bu son link kelimenin tam anlamıyla "İskandinav adları listesi" ne ilk vurmamdı.


Bu ve yine bu. Markov zincirleri kural onlar örnekler ile eğitilmiş olabilir gibi isimleri için (yem Eğer benzer ses isteyen adlarının bir veritabanı) ve yakından onlar örnek isimlerini (2 harfli zincirleri? 3 harfli zincirleri maç nasıl bile esnektir? 4?).
Babis

1
Aptal pun için +1. Ayrıca büyük cevap, ama çoğunlukla pun için. Nüfus Sayımına bakacağım ve kullanmak için hecelerin bir listesini yapıp yapamayacağımı göreceğim. Muhtemelen bunu kabul edeceğim, çünkü sadece tanımlamanın aksine terminolojiden bahsediyor.
Monica'nın Davası

3

Dillerdeki çoğu isim bir dizi deseni takip eder. Örneğin, Rusça veya Yunanca adların beş veya on farklı öneki olabilir, bu nedenle -ov ile biten bir ad bulursanız olabilir uyduğu için Rusça olduğundan şüphelenebilirsiniz.

Gerçek isimler (veya gerçek gibi) istiyorsanız, listenizi oluşturmaya başlamalısınız (bu kadar uzun olmamalıdır) çünkü bazı dillerin gerçek isimlerini analiz etmek, desenlerini bulmak ve bu isimleri üretmek için bir algoritma oluşturmak değmez bence çaba.

Herhangi bir dilde ad olabilecek rastgele adlar istiyorsanız, izlenecek kuralların küçük bir listesini oluşturabilirsiniz (yukarıdakilerin bir alt kümesi gibi). Zaten, yaptığınız şey: ünlüler ve ünsüzler hakkında bir kural yaptınız. Bu 10 hecede soyadı sona ermesi gibi birkaç tane daha ekleyebilirsiniz veya bazı ünsüzleri yalnızca 'q' gibi sesli harfleri ve ardından sadece 'u' izleyebilir ve bazılarını 's' gibi diğer ünsüzler izleyebilir 't 'veya' k '. Yine, bu gerçekten telaffuz edilebilen ve gerçek isimler yaratmaktan biraz gerçek hissettiren bazı kelimeler yaratmak için daha fazlasıdır.

Alakalı olabilecek bir şey, "Bildiriler, Lütfen" ad oluşturma biçimidir. http://papersplease.wikia.com/wiki/List_of_names


Sorunun tam karmaşıklığından, elde edeceğim en iyi şey olduğunu hissediyorum. Yardım için teşekkürler, istediğim şey olmasa bile.
Monica'nın Davası

Gelen Kağıtlar, lütfen , en son changelog giriş ilgili değil nasıl kayda değer örnek üreten biraz görünebilir ederken; ama onlar muhtemelen (gerçek kişilerin adlarını değil andıran önemli olduğunu, çünkü oluşturulan isimlerin bazılarını hariç konusunda, isimleri kullanıcılara kafa karıştırıcıysa, adlarının tümünü hariç tutmak için çok fazla bilinen gerçek kişi var), çünkü isimler istenmeyen kelimelere benziyor (sadece gerçek ad ve soyadları birleştirirken de olabilir) veya isimler telif hakkı (muhtemelen çok ilgili mevzuat uyarınca).
VEYA Haritacı

Hangi cevabı kabul ettiğimi değiştirdim çünkü Sean onsuz bir genel bakış yerine daha ayrıntılı bir açıklamaya bir bağlantı ve bakabileceğim bir isimler listesine bir bağlantı sağladı. Yardımlarınız için teşekür ederim.
Monica'nın Davası

0

Bunu yapmanın en kolay yolunun, mevcut bir rastgele ad üretecini veya gereksinimlerinizi karşılayan mevcut bir rastgele ad listesi kullanmak olduğunu düşünüyorum. Sonra bir yerde liste olarak saklayın. Rastgele bir ada ihtiyacınız olduğunda, mevcut listeden rastgele seçmeniz yeterlidir.


Bundan kaçınmaya çalışıyorum. Seçim yapabileceğim bir listeye sahip olmak yerine, onları anında yapabilen bir sisteme sahip olmak istiyorum. Ayrıca, önceden var olan bir liste aradım. Bir tane yapmam gerektiğini söylememin sebebi, ücretsiz bir tane bulamadığım.
Monica'nın Davası
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.