derek73

python-nameparser: Parse Human Names into Components

A Python library that splits human names into structured fields such as given name, family name, title, suffix, and nickname. It suits applications that need to organize, format, or compare names while accounting for varied naming conventions.

PythonOther licenseLibraryText ProcessingNLP
View on GitHub Compare
Stars
715
Forks
118
Stars, last 30 days
+3

Our take

Health score

70/100

How it is scored
Activity
75
Community
36
Issues
83
Pull requests
84

+3 stars in the last 30 days

  • Merges more pull requests than 96% of the projects we track

Project history

Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

722

Forks

121

Change since Nov 13, 2026: 0 stars·0 forks

Overview

python-nameparser is a Python library for turning a human name string into components that software can work with. It addresses a common data-processing problem: names do not follow one universal order or format, and simple whitespace splitting can produce unreliable results.

The parser supports configurable behavior, rendering and comparison helpers, and opt-in locale packs. Use it when name-aware processing is more useful than treating a name as an undifferentiated string. See the repository and documentation for details.

Key Features

  • Parses names into title, given, middle, family, suffix, nickname, and maiden fields.
  • Provides helpers for family-name particles and aggregate given-name or surname values.
  • Renders parsed names into caller-defined formats.
  • Supports configurable parsing behavior and composable configuration.
  • Offers opt-in locale packs for additional language-specific conventions.
  • Includes support for East Asian names and recognition of some non-Latin titles and name markers.
  • Provides a command-line interface with JSON output.

Use Cases

  • Application developers can structure names entered in forms before storing or displaying them.
  • Data engineers can normalize name fields during text-processing or data-import workflows.
  • Directory and contact tool maintainers can format names consistently for lists, labels, or exports.
  • Internationalized applications can use locale packs when parsing conventions differ by language or script.

Getting Started

Install from PyPI:

pip install nameparser

For usage and configuration details, see the README and documentation.

Considerations

  • Requires Python 3.11 or newer.
  • Name parsing is inherently ambiguous; results depend on the input and parser configuration, so validate behavior against the names your application handles.
  • Locale packs are opt-in, and some language-specific splitting behavior should not be assumed without selecting the appropriate locale.
  • The input reports the license as NOASSERTION, while the README describes the project as LGPL licensed. Review the repository's LICENSE file to confirm licensing terms for your use.

Found this useful?

Share it with someone who would like python-nameparser.