Tạo tên


10

Tôi đang tạo một trò chơi (hoặc ít nhất là lên kế hoạch) và để làm điều đó, tôi cần một cách để tự động tạo tên cho các "ông chủ" của NPC (giải thích dài dòng và không liên quan ở đây). Một cái gì đó như thế này là một ví dụ tốt về những gì tôi muốn nói.

Tôi có một ý tưởng rằng tôi chỉ có thể xây dựng một cơ sở dữ liệu về tên theo quốc tịch, có thể là cặp đầu tiên / cuối cùng và gán chúng ngẫu nhiên, với một danh sách tên bị bỏ qua để tôi không nhận được một cái gì đó như Homer Simpson và bị kiện hoặc một cái gì đó.

Vấn đề với điều đó là tôi cần xây dựng một cơ sở dữ liệu khổng lồ về tên để hoạt động. Nó sẽ mất vĩnh viễn hoặc tốn tiền, trừ khi ai đó có sẵn một danh sách tên miễn phí.

Tôi có một ý tưởng khác là tôi tạo ra các cặp nguyên âm và phụ âm ngẫu nhiên, lật một vài cái và thêm chúng lại với nhau, nhưng một chương trình nhanh chóng tạo ra những cái tên như sau:

  • Seermeecpa
  • Cime
  • Ofmiahwumafi
  • Gozidi
  • Cố gắng

(Đối với bất kỳ ai quan tâm đến mã, bạn có thể xem nó ở đây )

Đây là ... một loại của một miệng. Chà, ngoại trừ "Gozidi" - cái đó có thể hoạt động. Tuy nhiên, tỷ lệ thành công rõ ràng là không tốt.

Có bất cứ điều gì tôi có thể làm để làm cho tên nghe đẹp hơn (xem bên dưới), hoặc tôi nên bắt đầu tạo danh sách đó? Tôi có thể bằng cách nào đó bắt chước cách con người quyết định xem một cái tên có tốt hay không, với ít nhất là độ chính xác? Tôi rất thích một cái gì đó như thế này để tìm kiếm trong một danh sách lớn.

Điều tôi muốn nói là "đẹp hơn" là, thay vì sự kết hợp ngẫu nhiên của các ký tự (mà nó là, công bằng), những thứ nghe giống như tên thật. Họ có thể đến từ bất kỳ nền văn hóa nào (hoặc âm thanh giống như họ), thực tế hoặc tưởng tượng, bất cứ điều gì, miễn là người Mỹ ngu ngốc, đơn điệu như tôi có thể nói rằng họ không gặp quá nhiều khó khăn.

Nếu bạn cần làm rõ thêm, hãy tiếp tục và hỏi. Tôi không thực sự chắc chắn những gì để đặt ở đây.

Phụ lục: Theo như tôi có thể nói, thực sự không có thẻ nào phù hợp với câu hỏi này. Nếu bất cứ ai ở đây lâu hơn có thể giới thiệu một số, điều đó thật tuyệt vời.


Thật không may, câu hỏi của bạn có vẻ quá rộng ngay bây giờ. Các phương pháp tạo tên khác nhau sẽ phù hợp với các loại tên khác nhau - hiện thực (cũng là văn hóa nào?), Ảo tưởng, khoa học viễn tưởng, bí danh, v.v ... Mỗi phương pháp đều có điểm mạnh và điểm yếu riêng - bạn có yêu cầu so sánh không, và dựa trên tiêu chí nào ? Làm thế nào để cá nhân bạn đánh giá liệu một cái tên nghe có vẻ "tốt đẹp"? Bạn có thể cải thiện câu hỏi của mình bằng cách thu hẹp nó dọc theo những dòng này.
congusbongus

Cảm ơn! Tôi sẽ chỉnh sửa nó để làm cho nó rõ ràng hơn. Mặc dù vậy, điều tôi muốn nói chỉ là bất kỳ cái tên nào, và có thể phát âm thành người Mỹ trung bình, đơn ngữ. Hãy cho tôi một chút thời gian và tôi sẽ ném nó vào.
Vụ kiện của Quỹ Monica

@congusbongus Tôi nghĩ tôi đã sửa nó.
Vụ kiện của Quỹ Monica

bạn có thể thử và soạn tên bằng các tiền tố và hậu tố khác nhau, ví dụ: 'ith' từ Smith có thể tạo ra các tên như qith, hith, kith mà tất cả nghe có vẻ hợp lý và có thể phát âm được, bạn cũng có thể lấy danh sách tên và cắt chúng thành một nửa, sau đó thay thế bằng nửa còn lại của một tên khác. Ví dụ: Matt sẽ là Ma và Josh sẽ tạo ra Mash
Matthew Pigram

@MatthewPigram Điều đó vẫn yêu cầu biên soạn một danh sách các tên, đó là điều tôi muốn tránh. Tuy nhiên, đó là một ý tưởng tốt, bit pre / postfixes.
Vụ kiện của Quỹ Monica

Câu trả lời:


14

Hầu hết các trình tạo tên hoạt động thông qua một số biến thể của Markov Chain , là cấu trúc khá đáng chú ý (re markov le?) Có nhiều ứng dụng trong trò chơi, cũng như các miền khác.

Cách tiếp cận cơ bản không gọi một danh sách của một số loại. Chúng không cần phải khá lớn. Mục đích của danh sách này chỉ đơn thuần là thông báo cho thuật toán những âm tiết nào có khả năng được ghép với nhau cho một danh mục tên nhất định.

Điều này cho phép bạn tập hợp các danh sách khác nhau cho ví dụ tên nam, tên nữ, tên gia đình hoặc tên cho các nền văn hóa / vùng / loài khác nhau.

Thời gian bạn sẽ sử dụng để điều chỉnh một thuật toán lắp ráp ngẫu nhiên các âm tiết tạo thành một kiểu dễ chịu có thể sẽ nhiều hơn bạn dành để tạo ra một danh sách các tên mà bạn nghĩ nghe hay và phù hợp với một chủ đề chung.

rất nhiều danh sách tên có sẵn. Tải xuống cơ sở dữ liệu điều tra dân số mới nhất của Hoa Kỳ cho các tên thời hiện đại dễ dàng phân tách theo độ tuổi, giới tính và dân tộc hoặc lấy danh sách các tên Bắc Âu cũ hoặc tương tự. Đây là tất cả khá dễ dàng để tìm thấy thông qua Google; liên kết cuối cùng theo nghĩa đen là cú đánh đầu tiên của tôi cho "danh sách những tên người Bắc Âu".


Cái này và cái này nữa. Chuỗi Markov quy tắc cho các tên, vì chúng có thể được huấn luyện bằng các ví dụ (cung cấp cho cơ sở dữ liệu các tên bạn muốn phát âm tương tự) và thậm chí linh hoạt trong cách chúng khớp với các tên ví dụ (chuỗi 2 chữ cái? Chuỗi 3 chữ cái? 4?).
Babis

1
+1 cho cách chơi chữ ngu ngốc. Cũng là câu trả lời tuyệt vời, nhưng chủ yếu là cho chơi chữ. Tôi sẽ xem Điều tra dân số và xem liệu tôi không thể lập danh sách các âm tiết để sử dụng. Có lẽ tôi cuối cùng sẽ chấp nhận điều này, chỉ vì nó đề cập đến thuật ngữ, trái ngược với việc chỉ mô tả nó.
Vụ kiện của Quỹ Monica

3

Hầu hết các tên trong các ngôn ngữ theo một loạt các mẫu. Ví dụ, tên tiếng Nga hoặc tiếng Hy Lạp có thể có năm hoặc mười tiền tố khác nhau, do đó, nếu bạn tìm thấy một tên kết thúc bằng -ov, bạn có thể nghi ngờ tiếng Nga của nó vì nó phù hợp với mẫu.

Nếu bạn muốn tên thật (hoặc giống như thật) Tôi nghĩ bạn nên bắt đầu xây dựng danh sách của mình (không nên quá dài) vì phân tích tên thật của một số ngôn ngữ, tìm mẫu của chúng và tạo thuật toán để tạo ra những tên đó là không đáng những nỗ lực theo ý kiến ​​của tôi.

Nếu bạn muốn các tên ngẫu nhiên có thể là một tên trong một số ngôn ngữ, bạn có thể xây dựng một danh sách nhỏ các quy tắc để tuân theo (như một tập hợp con ở trên). Đã, những gì bạn đang làm là: bạn đã đưa ra một quy tắc về nguyên âm và phụ âm. Bạn có thể thêm một vài tên giống như họ nên kết thúc bằng 10 âm tiết này hoặc một số phụ âm chỉ có thể được theo sau bởi các nguyên âm như 'q' chỉ theo sau 'u' và một số phụ âm khác có thể được theo sau bởi các phụ âm khác như 's' theo sau 't' 'hoặc' k '. Một lần nữa, điều này là nhiều hơn để tạo ra một số từ có thể được phát âm thực sự và cảm thấy một chút thực tế hơn là tạo ra tên thực tế.

Một cái gì đó có thể có liên quan là cách "Giấy tờ, Xin vui lòng" tạo tên. http://epageplease.wikia.com/wiki/List_of_names


Tôi cảm thấy như đây là điều tốt nhất tôi sẽ nhận được, chỉ từ sự phức tạp tuyệt đối của vấn đề. Cảm ơn sự giúp đỡ, ngay cả khi đó không phải là điều tôi sẽ làm.
Vụ kiện của Quỹ Monica

Trong ví dụ về Papers, đáng chú ý là cách thay đổi mục nhập mới nhất không phải là về việc tạo tên, mà là về cách loại trừ một số tên được tạo, vì chúng giống với tên của người thật (có thể không quan trọng; trong khi nó có vẻ hơi quan trọng gây nhầm lẫn cho người dùng, có quá nhiều người thực sự được biết đến để loại trừ tất cả tên của họ), vì tên giống với các từ không mong muốn (cũng có thể xảy ra khi chỉ kết hợp tên thật và tên thật) hoặc vì tên đó có bản quyền (có thể rất có liên quan, tùy thuộc vào pháp luật).
HOẶC Mapper

Tôi đã thay đổi câu trả lời mà tôi đã chấp nhận vì Sean cung cấp một liên kết đến một mô tả chi tiết hơn, thay vì một cái nhìn tổng quan mà không có nó, và một liên kết đến một danh sách các tên tôi có thể xem. Cảm ơn sự giúp đỡ.
Vụ kiện của Quỹ Monica

0

Tôi nghĩ cách dễ nhất để làm điều này là sử dụng một trình tạo tên ngẫu nhiên hiện có hoặc một danh sách các tên ngẫu nhiên hiện có đáp ứng yêu cầu của bạn. Sau đó lưu trữ nó ở đâu đó như một danh sách. Khi bạn cần một tên ngẫu nhiên, chỉ cần chọn từ danh sách hiện có một cách ngẫu nhiên.


Đó là những gì tôi đang cố gắng tránh. Tôi muốn có một hệ thống có thể khiến chúng hoạt động nhanh hơn là phải có một danh sách để chọn. Ngoài ra, tôi tìm kiếm một danh sách từ trước. Lý do tôi nói tôi phải làm một cái là tôi không thể tìm thấy nó miễn phí.
Vụ kiện của Quỹ Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.