Skip to content
This repository has been archived by the owner on Apr 7, 2020. It is now read-only.
/ name_tools Public archive

DEPRECATED - name_tools for Open States and other projects

License

Notifications You must be signed in to change notification settings

openstates/name_tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

name_tools

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

About

DEPRECATED - name_tools for Open States and other projects

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages