Examples
This page provides detailed examples of using naamkaran for various name generation scenarios.
Basic Examples
Simple Name Generation
from naamkaran.generate import generate_names
# Generate 10 random names
names = generate_names()
for name in names:
    print(name)
Gender-Specific Names
# Generate male names
male_names = generate_names(gender='M', num_names=5)
print("Male names:", male_names)
# Generate female names
female_names = generate_names(gender='F', num_names=5)
print("Female names:", female_names)
Advanced Examples
Names by Starting Letter
# Names starting with vowels
vowel_names = []
for vowel in ['A', 'E', 'I', 'O', 'U']:
    names = generate_names(starting_letter=vowel, num_names=2)
    vowel_names.extend(names)
print("Names starting with vowels:", vowel_names)
Names with Length Constraints
# Short names (4-6 characters)
short_names = generate_names(max_len=6, num_names=5)
print("Short names:", short_names)
# Medium names (7-9 characters)
medium_names = generate_names(max_len=9, num_names=5)
print("Medium names:", medium_names)
Temperature Experiments
# Conservative names (low temperature)
conservative = generate_names(
    starting_letter='J',
    temperature=0.2,
    num_names=3
)
print("Conservative:", conservative)
# Balanced names (medium temperature)
balanced = generate_names(
    starting_letter='J',
    temperature=0.8,
    num_names=3
)
print("Balanced:", balanced)
# Creative names (high temperature)
creative = generate_names(
    starting_letter='J',
    temperature=1.5,
    num_names=3
)
print("Creative:", creative)
Practical Use Cases
Character Names for Fiction
# Fantasy characters
def generate_fantasy_names():
    return generate_names(
        temperature=1.2,  # More creative
        max_len=8,
        num_names=5
    )
# Realistic characters
def generate_realistic_names():
    return generate_names(
        temperature=0.4,  # More conservative
        num_names=5
    )
fantasy_chars = generate_fantasy_names()
realistic_chars = generate_realistic_names()
Baby Name Suggestions
def suggest_baby_names(gender, starting_letter=None, max_suggestions=20):
    """Generate baby name suggestions"""
    return generate_names(
        gender=gender,
        starting_letter=starting_letter,
        temperature=0.6,  # Balanced creativity
        max_len=10,
        num_names=max_suggestions
    )
# Suggest baby girl names starting with 'S'
girl_names = suggest_baby_names('F', 'S', 15)
print("Baby girl names starting with 'S':", girl_names)
Business/Brand Names
def generate_brand_names(letter, count=10):
    """Generate creative brand names"""
    return generate_names(
        starting_letter=letter,
        temperature=1.0,  # Creative but not too wild
        max_len=7,  # Short for branding
        num_names=count
    )
brand_names = generate_brand_names('T')
print("Brand name ideas:", brand_names)
Batch Processing
import pandas as pd
def create_name_dataset(num_names=1000):
    """Create a dataset of generated names"""
    all_names = []
    # Generate names for different starting letters
    for letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
        # Male names
        male_names = generate_names(
            starting_letter=letter,
            gender='M',
            num_names=20,
            temperature=0.7
        )
        for name in male_names:
            all_names.append({
                'name': name,
                'gender': 'M',
                'starting_letter': letter,
                'length': len(name)
            })
        # Female names
        female_names = generate_names(
            starting_letter=letter,
            gender='F',
            num_names=20,
            temperature=0.7
        )
        for name in female_names:
            all_names.append({
                'name': name,
                'gender': 'F',
                'starting_letter': letter,
                'length': len(name)
            })
    return pd.DataFrame(all_names)
# Create dataset
df = create_name_dataset()
print(f"Generated {len(df)} names")
print(df.head())
Command Line Examples
Here are examples using the command-line interface:
# Basic usage
generate_names -n 5
# Female names starting with 'M'
generate_names -s M -g F -n 10
# Short male names ending with 'n'
generate_names -e n -g M -m 6 -n 8
# Creative names with high temperature
generate_names -t 1.5 -n 5
# Conservative business names
generate_names -s T -m 7 -t 0.3 -n 15