본문으로 건너뛰기

테마

테마는 수식어를 앞에 붙일 수 있는 일상 어휘의 한 묶음입니다. 모두 29개이고, 모든 언어가 모든 테마를 채우며, 한 단어는 정확히 하나의 테마에만 속합니다. 생성 결과가 보고하는 테마가 모호해지지 않는 이유가 이것입니다.

테마 하나하나가 그 자체로 생성 함수이기도 합니다. randWord는 테마를 옵션으로 받고, 표 세 번째 열의 29개 함수는 테마를 미리 정해 둔 같은 생성기이며, randNickname도 같은 단어 풀 위에서 동작합니다.

테마함수담고 있는 것한국어영어
animalrandAnimal동물사자, 고양이Lion, Cat
objectrandObject손 닿는 사물물병, 우산Bottle, Umbrella
naturerandNature자연과 자연 현상하늘, 노을Sky, Dawn
plantrandPlant식물과 그 부분민들레, 솔방울Dandelion, Acorn
gemrandGem돌, 금속, 보석흑요석, 청동Obsidian, Bronze
conceptrandConcept학문 용어와 인문·사회의 개념철학, 자유Philosophy, Truth
mythrandMyth신화 속 존재와 사물구미호, 불사조Phoenix, Rune
jobrandJob직업과 역할대장장이, 항해사Blacksmith, Archer
musicrandMusic악기, 형식, 용어교향곡, 거문고Cello, Sonata
placerandPlace걸어 들어가거나 올라갈 수 있는 곳광장, 골목Lighthouse, Plaza
foodrandFood먹는 것떡볶이, 김밥Dumpling, Pancake
sportrandSport스포츠와 그 목표물양궁, 트로피Archery, Trophy
vehiclerandVehicle사람을 실어 나르는 것열기구, 전차Airship, Tramcar
productrandProduct사서 쓰는 물건이어폰, 냉장고Earbuds, Toaster
colorrandColor색 이름주홍, 쪽빛Crimson, Ocher
financerandFinance돈과 돈으로 하는 일이자, 환율Ledger, Yield
techrandTech컴퓨터와 그 사이의 망서버, 캐시Server, Subnet
weatherrandWeather하늘이 하는 일소나기, 무지개Drizzle, Gale
spacerandSpace하늘 너머은하, 혜성Galaxy, Nebula
timerandTime일이 일어나는 때새벽, 한여름Twilight, Epoch
emotionrandEmotion사람이 느끼는 것그리움, 설렘Longing, Relief
bodyrandBody몸의 부위손목, 심장Wrist, Sinew
clothingrandClothing입는 것두루마기, 양말Cardigan, Linen
toolrandTool손으로 다루는 연장대패, 곡괭이Chisel, Trowel
drinkrandDrink마실 것식혜, 보리차Cider, Cordial
toyrandToy장난감과 놀이팽이, 연Kite, Yoyo
soundrandSound소리, 목소리, 의성어속삭임, 함성Whisper, Chime
personrandPerson나이, 관계, 성격으로 부르는 사람꼬마, 이웃Toddler, Neighbor
furniturerandFurniture가구와 살림살이흔들의자, 요람Hammock, Cradle
javascript
import { WORD_THEMES, randFood, randWord } from 'randino';

WORD_THEMES;
// ['animal', 'object', 'nature', 'plant', 'gem', 'concept', 'myth', 'job',
//  'music', 'place', 'food', 'sport', 'vehicle', 'product', 'color', 'finance',
//  'tech', 'weather', 'space', 'time', 'emotion', 'body', 'clothing', 'tool',
//  'drink', 'toy', 'sound', 'person', 'furniture']

randWord({ theme: 'food', language: 'en', count: 3 });
// ['Dumpling', 'Cocoa', 'Pancake']

randFood({ language: 'en', count: 3 }); // 같은 결과
dart
import 'package:randino/randino.dart';

wordThemes; // 표시 순서대로 나열된 모든 WordTheme

randWord(theme: WordTheme.food, language: WordLanguage.en, count: 3);
// [Dumpling, Cocoa, Pancake]

randFood(language: WordLanguage.en, count: 3); // 같은 결과
python
from randino import WORD_THEMES, rand_food, rand_word

WORD_THEMES
# ('animal', 'object', 'nature', 'plant', 'gem', 'concept', 'myth', 'job',
#  'music', 'place', 'food', 'sport', 'vehicle', 'product', 'color', 'finance',
#  'tech', 'weather', 'space', 'time', 'emotion', 'body', 'clothing', 'tool',
#  'drink', 'toy', 'sound', 'person', 'furniture')

rand_word(theme="food", language="en", count=3)
# ['Dumpling', 'Cocoa', 'Pancake']

rand_food(language="en", count=3)  # 같은 결과

테마를 생략하면 결과마다 테마를 하나씩 무작위로 골라 뽑으므로, 한 번에 여러 개를 만들면 29개 테마에 고르게 퍼집니다.

randNickname은 예외입니다. 기본 realism에서는 color, finance, tech를 빼고 26개만 돕니다. 색이나 대출 앞에 수식어가 붙으면 핸들이 아니라 농담으로 읽히기 때문입니다. realism을 풀면 다시 들어오고, 테마를 직접 지정하면 어느 realism에서든 나옵니다. 닉네임 동작 방식에 자세히 있습니다.

테마가 지키는 규칙

테마는 서로 겹치지 않습니다. 한 단어가 두 테마에 있으면 보고되는 테마가 모호해지고, 상세 출력이 호출자가 요청한 적 없는 테마를 알려 주게 됩니다. 새 테마가 기존 테마의 단어를 가져갈 때는 복사가 아니라 이동합니다. placeconcept에 있던 장소 열두 개를 가져갔고, vehicleobject에서 자전거와 기차를, plantnature에서 꽃과 나무를, musicobject에서 악기를, toy는 같은 곳에서 팽이와 주사위를, furnitureproduct에서 옷장과 책장을 가져갔습니다. 두 뜻이 정말 다른 단어일 때는 이동 대신 이름을 바꿉니다. 영어에서 장난감 구슬을 Marbles로 바꾼 덕분에 gemMarble을 유지할 수 있었습니다.

사람 이름은 쓰지 않고, 이름으로만 쓰이는 단어도 쓰지 않습니다. 영어는 사람 이름 풀과 자동으로 대조하므로 jobKnight, Baker, Hunter가 없고 plantRoseIvy가 없습니다. 한국어와 일본어는 같은 검사를 적용할 수 없습니다. 하늘, 별, 森은 이름으로도 쓰이는 일상 명사이기 때문입니다. 그래도 그 앞에 수식어가 붙으면 누구의 이름도 아닙니다.

풀 크기가 고르지 않은 것은 의도된 것입니다. 테마 대부분은 언어마다 명사를 100개 이상 담고 있고, 가장 얇은 테마도 60개대입니다. 어휘 자체가 그만큼밖에 없는 갈래가 있고, 비슷한 말로 풀을 부풀리면 짧은 풀보다 나쁘게 읽힙니다.

보고되는 테마

단어의 출처theme이 보고하는 값
테마에서 뽑음그 테마
realism: 'invented'로 만들어냄null — 우연히 실제 단어를 이루지 않는 한

마지막 줄은 버그가 아니라 실제로 일어나는 우연입니다. 음절 템플릿이 이따금 Snake를 만들어내므로, 만들어낸 단어가 themeanimal로 보고하기도 합니다.

함께 보기

  • randWord — 테마가 속한 생성 함수와, 그 옆의 29개 함수.
  • randNickname — 같은 단어 풀을 조합하는 쪽.
  • 상수 — 런타임에서의 테마 목록.

Released under the MIT License