probablepeople
Parse romanized names & companies using advanced NLP methods
Decision gist · record as of 2026-08-14
Yes, if you need to parse person or company names from unstructured text and can tolerate probabilistic (not perfect) results. The low install friction, permissive MIT license, and active maintenance make it a reasonable choice. However, the aging release cycle (654 days since last update) and Alpha development status mean you should test it on your specific name formats before relying on it in production; if accuracy is critical, verify performance on a representative sample first.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; depends on python-crfsuite, probableparsing, and doublemetaphone.
- Low install friction with three runtime dependencies.
- The package is aging (654 days since last release) but the repository remains active and well-maintained, with a recent commit in May 2025 and no archived status.
License · maintenance · safety
MIT License (permissive) — MIT License permits commercial and private use with minimal restrictions; you must include a copy of the license but face no copyleft obligations.
last release 2024-10-29 (654 days) · last repo commit 2025-05-15 · 623 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 171,163 downloads/mo, #10,377 on PyPI
Alternatives
Verify before relying
pip install probablepeople
import probablepeople as pp
name_str = 'Mr George "Gob" Bluth II'
pp.parse(name_str) # Returns: [('Mr', 'PrefixMarital'), ('George', 'GivenName'), ('"Gob"', 'Nickname'), ('Bluth', 'Surname'), ('II', 'SuffixGenerational')]
pp.tag(name_str) # Returns: (OrderedDict([('PrefixMarital', 'Mr'), ('GivenName', 'George'), ('Nickname', '"Gob"'), ('Surname', 'Bluth'), ('SuffixGenerational', 'II')]), 'Person')- Accuracy benchmarks or typical precision/recall rates on real-world name datasets
- Performance characteristics (latency per parse, throughput) for batch processing
- Whether the model handles non-English romanized names or only English patterns
What it is and what it does
probablepeople is a Python library that breaks down person and company names from unstructured text into their semantic components—given names, surnames, prefixes, suffixes, corporation types, and so on—using conditional random fields trained on labeled examples. It sits on top of the parserator framework and python-crfsuite, learning patterns from training data rather than relying on rigid rules. The library exposes two main methods: `parse` splits a name string into tuples of (text, label), while `tag` merges consecutive components and returns an ordered dictionary keyed by component type plus an inferred entity type (Person or Corporation).
The package is designed for cases where simple regex or dictionary-based parsing breaks down—names with nicknames, multiple surnames, generational suffixes, or company legal entities. It acknowledges its own limitations: it makes probabilistic guesses, not perfect identifications, and cannot verify that a parsed name is actually valid. The library includes tooling to add new training examples via the parserator command-line interface, allowing you to improve accuracy on name formats that currently stump the model.
Use it for
- Clean and standardize person names from user-submitted forms or data imports before storage or matching
- Extract and categorize company legal entity types (Inc, LLC, Corp) from unstructured business name strings
- Deduplicate or link records by parsing names into components and comparing them structurally
- Prepare name data for downstream NLP or machine learning pipelines that require labeled name parts
- Build data quality checks that flag names the parser cannot confidently decompose into standard components
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to parse person or company names from unstructured text and can tolerate probabilistic (not perfect) results.
The low install friction, permissive MIT license, and active maintenance make it a reasonable choice. However, the aging release cycle (654 days since last update) and Alpha development status mean you should test it on your specific name formats before relying on it in production; if accuracy is critical, verify performance on a representative sample first.
Install
probablepeople on PyPI
Before you install
Low install friction with three runtime dependencies. The package is aging (654 days since last release) but the repository remains active and well-maintained, with a recent commit in May 2025 and no archived status.
Requires Python 3.9 or later; depends on python-crfsuite, probableparsing, and doublemetaphone.
License in practice
MIT License permits commercial and private use with minimal restrictions; you must include a copy of the license but face no copyleft obligations.
Quickstart
pip install probablepeople
import probablepeople as pp
name_str = 'Mr George "Gob" Bluth II'
pp.parse(name_str) # Returns: [('Mr', 'PrefixMarital'), ('George', 'GivenName'), ('"Gob"', 'Nickname'), ('Bluth', 'Surname'), ('II', 'SuffixGenerational')]
pp.tag(name_str) # Returns: (OrderedDict([('PrefixMarital', 'Mr'), ('GivenName', 'George'), ('Nickname', '"Gob"'), ('Surname', 'Bluth'), ('SuffixGenerational', 'II')]), 'Person')
Verify before relying
- Accuracy benchmarks or typical precision/recall rates on real-world name datasets
- Performance characteristics (latency per parse, throughput) for batch processing
- Whether the model handles non-English romanized names or only English patterns
Package facts
| License | MIT License permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagespython-crfsuiteprobableparsingdoublemetaphone |
| Maintenance | Aging 654 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 171,163 / month, #10,377 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIXTopic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Information AnalysisTopic :: Software Development :: Libraries :: Python Modules |
Evidence: probablepeople-0.5.6-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “parse person names into components”
- probablepeopleParses unstructured person and company names into labeled components…
- namesGenerates random human names (first, last, or full) with optional…
- nameparserParses human names into seven structured fields—title, given, middle,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also usaddress · fingerprints · python-crfsuite · splink · gliner · probableparsing · sklearn-crfsuite · gliner2 · graphrag · ngboost