skillfed

probablepeople

Parse romanized names & companies using advanced NLP methods

probablepeople v0.5.6 171.2K downloads/30d#10,377 on PyPI623
Permissive license MIT License AGING released

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

Parses unstructured person and company names into labeled components using probabilistic NLP methods, handling complex cases where rule-based parsing typically fails.

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

pip

pip install probablepeople

uv

uv add probablepeople

poetry

poetry add probablepeople

Installing probablepeople

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.

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')

Requires Python 3.9 or later; depends on python-crfsuite, probableparsing, and doublemetaphone.

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 — python-crfsuite, probableparsing, doublemetaphone
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)

Evidence: probablepeople-0.5.6-py3-none-any.whl

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

Tags

parse person names into componentscompany name parsingname entity extractionunstructured name parsingNLP name parsingprobabilistic name parserparse names and organizations
name-parsingnlpdata-cleaning

More Scientific/Engineering packages