Library for manipulating and comparing (English) names
Project description
This library is no longer maintained.
Consider a library like probablepeople.
A Python library for manipulating and comparing English, Western-style personal names.
Released under a BSD-style license.
Source: http://github.com/openstates/name_tools
Installation
To install from PyPI run
pip install name_tools
or
easy_install name_tools
To install from a source package run
python setup.py install
Usage
name_tools.split(name) breaks a name into 4 (possibly empty) parts, representing prefixes (‘Mr.’, ‘Dr.’, etc.), a ‘first part’ (given names, middle names, middle initials), a last name, and suffixes (‘Jr.’, ‘III’, ‘Ph.D’, etc.)
>>> import name_tools >>> name_tools.split("President Barack Hussein Obama II") ('President', 'Barack Hussein', 'Obama', 'II') >>> name_tools.split("Obama, President Barack H., II") ('President', 'Barack H', 'Obama', 'II') >>> name_tools.split("Fleet Admiral William Frederick Halsey, Jr., USN") ('Fleet Admiral', 'William Frederick', 'Halsey', 'Jr., USN') >>> name_tools.split("Dick van Dyke") ('', 'Dick', 'van Dyke', '')
name_tools.canonicalize(name) returns a name in a canonical format: ‘Prefixes First Last, Suffixes’, with extra spaces removed and words capitalized.
>>> name_tools.canonicalize(' WASHBURNE, zoe alleyne') 'Zoe Alleyne Washburne' >>> name_tools.canonicalize('DR. simon tam') 'Dr. Simon Tam' >>> name_tools.canonicalize(' thurston b. howell iii') 'Thurston B. Howell, III'
name_tools.match(name1, name2) provides a measure of the similarity between two name, considering factors such as differing word order (‘Bond, James’ and ‘James Bond’), use of initials (‘J. R. R. Tolkien’ and ‘John Ronald Reuel Tolkien’) and various titles and honorifics (‘Fleet Admiral William Frederick Halsey, Jr., USN’, and ‘William Frederick Halsey’).
>>> name_tools.match('Eric Schmidt', 'Eric Schmidt') 1.0 >>> name_tools.match('Bob Dole', 'Dole, Bob') 0.98 >>> name_tools.match("michaeL StepHens", "MichaEl StePhens") 0.98 >>> name_tools.match("Mr. X", "X") 0.95 >>> name_tools.match('Jeff Tweedy', 'J Tweedy') 0.9 >>> name_tools.match('Ferris Bueller', 'Bueller') 0.8 >>> name_tools.match('John Smith', 'John Johnson') 0.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file name_tools-0.1.7.tar.gz
.
File metadata
- Download URL: name_tools-0.1.7.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c0efd8ad9d269a266f374f20414ff8461c9b0da902d27dacf0a118573257515 |
|
MD5 | 1833f03ba1238d30634f1bd1629bfa3f |
|
BLAKE2b-256 | 3c3c4ce25c47135507175db88f69aa94b79032aa3823b6dca5b591c9a0e4d43c |