Generowanie nazwy

10

Tworzę grę (a przynajmniej planuję) i aby to zrobić, potrzebuję sposobu na automatyczne generowanie nazw dla „bossów” NPC (długie wyjaśnienie i tutaj nie ma znaczenia). Coś jak to jest przykład dobry, co mam na myśli.

Mam pomysł, że mogę po prostu zbudować bazę nazwisk według narodowości, być może pierwszych / ostatnich par i przypisać je losowo, z listą nazw ignorowanych, aby nie dostać czegoś takiego jak Homer Simpson i zostać pozwanym czy coś takiego.

Problem polega na tym, że musiałbym zbudować ogromną bazę nazw, aby to zadziałało. Zajmie to wieczność lub będzie kosztować pieniądze, chyba że ktoś ma już listę nazwisk dostępną za darmo.

Mam inny pomysł, w którym tworzę losowe pary samogłosek i spółgłosek, przewracam kilka i dodam je razem, ale szybki program, który generuje takie nazwy:

  • Seermeecpa
  • Cime
  • Ofmiahwumafi
  • Gozidi
  • Effawided

(Dla każdego zainteresowanego kodem możesz go zobaczyć tutaj )

To są ... kęs. Cóż, z wyjątkiem „Gozidi” - to można było pracować. Mimo to wskaźnik sukcesu wyraźnie nie jest zbyt dobry.

Czy jest coś, co mogę zrobić, aby nazwy brzmiały ładniej (patrz poniżej), czy powinienem zacząć tworzyć tę listę? Czy mogę w jakiś sposób naśladować sposób, w jaki ludzie decydują, czy imię jest przyzwoite, czy nie, przynajmniej z pewną dokładnością? Wolałbym coś takiego niż wyszukiwanie na dużej liście.

Rozumiem przez to, że „ładniejszy” to, że zamiast przypadkowych kombinacji znaków (co jest uczciwe), rzeczy, które brzmią jak rzeczywiste imiona. Mogą pochodzić z dowolnej kultury (lub brzmieć tak, jak są), prawdziwej lub wyobrażonej, w ogóle, o ile twój stereotypowy, głupi, jednojęzyczny Amerykanin, taki jak ja, może powiedzieć im bez większych problemów.

Jeśli potrzebujesz dodatkowych wyjaśnień, idź dalej i zapytaj. Nie jestem pewien, co tu umieścić.

Dodatek: O ile mi wiadomo, tak naprawdę nie ma tagów, które pasowałyby do tego pytania tak dobrze. Jeśli ktoś, kto był tu dłużej, może polecić kogoś, byłoby świetnie.

Powództwo Fund Moniki
źródło
Niestety twoje pytanie wydaje się w tej chwili zbyt ogólne. Różne metody generowania nazw będą odpowiednie dla różnych rodzajów nazw - realistyczne (także, która kultura?), Fantasy, science fiction, aliasy itp. Każda metoda ma swoje mocne i słabe strony - pytasz o porównanie i na jakim kryterium ? Jak oceniasz osobiście, czy imię brzmi „ładnie”? Możesz poprawić swoje pytanie, zawężając je wzdłuż tych linii.
congusbongus
Dzięki! Zedytuję to, aby było jaśniej. Chodziło mi jednak o dowolne imię, które wymawia się przeciętnemu jednojęzycznemu Amerykaninowi. Daj mi chwilę, a wrzucę to.
Pozew Moniki
@ congusbongus Myślę, że to naprawiłem.
Pozew Fund Moniki z
możesz próbować komponować nazwy przy użyciu różnych prefiksów i postfiksów, np. „ith” Smitha może tworzyć nazwy takie jak qith, hith, kith, które wszystkie brzmią w sposób rozsądny i wymowny, możesz również uzyskać listę nazw i pokroić je na pół, następnie zastąp drugą połową innej nazwy. Na przykład Matt będzie Ma, a Josh zrobi Mash
Matthew Pigram
@MatthewPigram To wciąż wymaga skompilowania listy nazwisk, czego chcę uniknąć. Jest to jednak dobry pomysł, nieco przed / po poprawkach.
Pozew Fund Moniki z

Odpowiedzi:

14

Większość generatorów nazw działa poprzez pewne odmiany łańcucha Markowa , które są dość niezwykłymi (re markov le?) Konstrukcjami, które mają wiele zastosowań w grach, a także w innych domenach.

Podstawowe podejście wywołuje jakąś listę. Te nie muszą być dość duże. Celem tej listy jest jedynie poinformowanie algorytmu, jakie sylaby mogą zostać sparowane razem dla danej kategorii nazwy.

Umożliwia to zestawianie różnych list, np. Imion męskich, żeńskich, rodzinnych lub różnych kultur / regionów / gatunków.

Czas, który poświęcisz na udoskonalenie algorytmu, który losowo tworzy wymyślne sylaby w przyjemny sposób, prawdopodobnie będzie dłuższy niż na wygenerowanie listy nazw, które Twoim zdaniem brzmią dobrze i pasują do wspólnego tematu.

Dostępnych jest wiele list nazwisk. Pobierz najnowszą amerykańską bazę danych spisów powszechnych z nazwami współczesnymi, które można łatwo oddzielić według wieku, płci i pochodzenia etnicznego, lub przejrzyj listy dawnych nordyckich nazwisk itp. Wszystkie są dość łatwe do znalezienia za pośrednictwem Google; ten ostatni link był dosłownie moim pierwszym hitem dla „listy norweskich nazwisk”.

Sean Middleditch
źródło
To i jeszcze raz to. Łańcuchy Markowa rządzą nazwami, ponieważ można je wyszkolić na przykładach (podaj bazę danych nazw, które chcesz brzmieć podobnie), a nawet są elastyczni pod względem dopasowania do nazw przykładów (łańcuchy 2-literowe? 3-literowe? 4?).
Babis
1
+1 za głupi kalambur. Również świetna odpowiedź, ale głównie dla gry słów. Spoglądam na Spis Powszechny i ​​sprawdzam, czy nie mogę zrobić listy sylab do użycia. Prawdopodobnie ostatecznie to zaakceptuję tylko dlatego, że wspomina o terminologii, a nie tylko ją opisuje.
Pozew Fund Moniki w dniu
3

Większość nazw w językach jest zgodna z szeregiem wzorców. Na przykład rosyjskie lub greckie nazwy mogą mieć pięć lub dziesięć różnych prefiksów, więc jeśli znajdziesz nazwę kończącą się na -ov , możesz podejrzewać, że jest rosyjska, ponieważ w pewnym sensie pasuje do wzorca.

Jeśli chcesz prawdziwych nazwisk (lub prawdziwych jak), myślę, że powinieneś zacząć budować swoją listę (która nie powinna być tak długa), ponieważ analiza prawdziwych nazw niektórych języków, znalezienie ich wzorca i stworzenie algorytmu do tworzenia takich nazw nie jest warte wysiłek moim zdaniem.

Jeśli chcesz losowych nazw, które mogą być nazwami w niektórych językach, możesz zbudować małą listę reguł, których należy przestrzegać (np. Podzbiór powyższych). To, co robisz, to już to, że wprowadziłeś zasadę dotyczącą samogłosek i spółgłosek. Możesz dodać kilka innych, takich jak nazwiska powinny kończyć się na tych 10 sylabach, a po niektórych spółgłosek mogą występować tylko samogłoski, takie jak „q”, a następnie tylko „u”, a niektóre inne mogą być poprzedzone innymi spółgłosek, takimi jak „s”, po których następuje „t ”lub„ k ”. Znowu chodzi o to, aby stworzyć kilka słów, które mogą być wymawiane i wydawać się nieco realne, niż tworzenie rzeczywistych nazw.

Coś, co może być istotne, to sposób, w jaki „Dokumenty, proszę” generuje nazwiska. http://papersplease.wikia.com/wiki/List_of_names

Exaila
źródło
Wydaje mi się, że to najlepsze, co mogę uzyskać, po prostu ze względu na złożoność problemu. Dzięki za pomoc, nawet jeśli nie o to chodziło.
Pozew Fund Moniki z
Na przykład w dokumentach warto zauważyć, że najnowszy wpis dziennika zmian nie dotyczy generowania nazw, ale wykluczenia niektórych z wygenerowanych nazw, ponieważ przypominają nazwiska prawdziwych ludzi (być może nie są tak ważne; może się to wydawać nieznaczne mylące dla użytkowników, jest po prostu zbyt wielu dość znanych prawdziwych ludzi, aby wykluczyć wszystkie ich nazwiska), ponieważ imiona te przypominają niepożądane słowa (może się również zdarzyć podczas łączenia prawdziwych imion i nazwisk) lub ponieważ imiona są chronione prawem autorskim (być może bardzo odpowiednie, w zależności od ustawodawstwa).
LUB Mapper
Zmieniłem odpowiedź, którą zaakceptowałem, ponieważ Sean podał link do bardziej szczegółowego opisu, zamiast przeglądu bez niego, oraz link do listy nazw, na które mógłbym spojrzeć. W każdym razie dzięki za pomoc.
Pozew Fund Moniki w dniu
0

Myślę, że najprostszym sposobem na to jest użycie istniejącego generatora losowych nazw lub istniejącej listy losowych nazw, które spełniają twoje wymagania. Następnie zapisz gdzieś jako listę. Gdy potrzebujesz losowej nazwy, wybierz losowo z istniejącej listy.

użytkownik55564
źródło
Właśnie tego staram się unikać. Chcę mieć system, który może tworzyć je w locie, zamiast mieć listę do wyboru. Poszukałem też istniejącej listy. Powodem, dla którego powiedziałem, że muszę go stworzyć, jest to, że nie mogłem go znaleźć za darmo.
Pozew Fund Moniki w dniu