Skip to main content

naamkaran: generative model for names

https://github.com/appeler/naamkaran/actions/workflows/ci.yml/badge.svg https://img.shields.io/pypi/v/naamkaran.svg https://static.pepy.tech/badge/naamkaran https://img.shields.io/badge/docs-github.io-blue https://img.shields.io/badge/%F0%9F%A4%97-models-yellow

Naamkaran is a character-level LSTM that generates synthetic name-like strings. It was trained on names from early 2022 Florida voter registration data.

Use the outputs for demonstrations, testing, and exploratory applications. They are not verified personal names or representative population samples. The model can reproduce spelling patterns, imbalance, errors, and social biases in the training data. Its binary gender conditioning does not represent the full range of gender identities. Do not use its outputs to infer identity, ethnicity, citizenship, eligibility, or another sensitive attribute.

Gradio App.

Naamkaran on HF

Installation

Naamkaran can be installed from PyPI using pip:

pip install naamkaran

For development with all tools:

uv sync --all-groups --all-extras

For web applications (Gradio/Flask):

pip install "naamkaran[web]"

General API

The general API for naamkaran is as follows:

# naamkaran is the package name
from naamkaran.generate import generate_names

# generate_names is the function that generates names

positional arguments:
  start_letter  The letter to start the name with (default: "a")

optional arguments:
    end_letter  The letter to end the name with (default: None)
    how_many    The number of names to generate (default: 1)
    max_length  The maximum length of the name (default: 5)
    gender      The gender of the name (default: "M")
    temperature The temperature of the model (default: 0.5)
    max_attempts Maximum candidates to sample before failing

# generate 10 names starting with 'A'
generate_names('A', how_many=10)
['Allis', 'Alber', 'Aderi', 'Albri', 'Alawa',
'Arver', 'Agnee', 'Anous', 'Areyd', 'Adria']


# generate 10 names starting with 'B' and ending with 'n'
generate_names('B', end_letter='n', how_many=10)
['Brian', 'Beran', 'Burin', 'Bahan', 'Balin',
'Bounn', 'Baran', 'Balan', 'Belin', 'Brion']

# generate 5 names starting with 'B' and ending with 'n' with a maximum length of 4
generate_names('B', end_letter='n', how_many=5, max_length=4)
['Bern', 'Bren', 'Bran', 'Bonn', 'Brun']

# generate 10 names starting with 'D' and ending with 'd' with a maximum length of 6
# and a temperature of 0.5
generate_names('D', end_letter='d', how_many=5, max_length=6, temperature=0.5)
['Derayd', 'Davind', 'Deland', 'Denild', 'David']

# generate 10 female names starting with 'A' and ending with 'e' with a maximum length of 5
# and a temperature of 0.5
generate_names('A', end_letter='e', how_many=10, max_length=5, gender="F", temperature=0.5)
['Annhe', 'Annie', 'Altre', 'Anne', 'Ashle',
'Arine', 'Anice', 'Andre', 'Anale', 'Allie']

Data

The model is trained on names from the Florida Voter Registration Data from early 2022. The data are available on the Harvard Dataverse

The trained model and vocabulary are published at gojiberries/naamkaran. Naamkaran downloads the artifacts from an immutable Hugging Face commit on first use and verifies their SHA-256 hashes against the packaged model_manifest.json. Set NAAMKARAN_MODEL_DIR to use an explicitly managed local copy. The Hugging Face client honors its standard authentication configuration, including HF_TOKEN.

Authors

Rajashekar Chintalapati and Gaurav Sood

Contributing

Contributions are welcome. Please open an issue if you find a bug or have a feature request.

License

The package is released under the MIT License.

Metadata

Release files for naamkaran 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for naamkaran 0.3.0
File Size Uploaded
naamkaran-0.3.0.tar.gz 9.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for naamkaran 0.3.0
File Interpreter ABI Platform
naamkaran-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.7 kB

Release files / naamkaran-0.3.0.tar.gz

Download URL naamkaran-0.3.0.tar.gz
Size 9.6 kB
Tags Source
SHA-256 checksum
How to use checksums
1c35b4c9d13c0a2b03debc905e55f343066a8f39b599dc9fe191b2bd77f387bc
BLAKE2b-256 checksum
How to use checksums
a604de9147eb9abaed924d5d7b85f8d62a124eeb4683bc4c683cfaf9f91bf224
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / naamkaran-0.3.0-py3-none-any.whl

Download URL naamkaran-0.3.0-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b4925f037328da1c42e53ab903858da20475ca525a9b9a0c7f37a788a4ac4c8
BLAKE2b-256 checksum
How to use checksums
e58841f53a4e94110fa7c22b13414f34ece9d4d92ed44c8ed1fffe35f9b32754
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page