跳转到主要内容

用于操作和比较(英文)姓名的库

项目描述

此库已不再维护。

请考虑使用probablepeople库。

这是一个用于操作和比较英文、西式个人姓名的Python库。

在BSD样式的许可证下发布。

源码: http://github.com/openstates/name_tools

安装

要从PyPI安装,运行

pip install name_tools

easy_install name_tools

要从源包安装,运行

python setup.py install

用法

name_tools.split(name) 将姓名分解为4(可能为空)部分,代表前缀(“先生。”,“博士。”等),“第一部分”(名字,中间名,中间缩写),姓氏和后缀(“Jr。”,“III”,“Ph.D”等)

>>> 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) 返回一个规范格式的姓名:“前缀 首先姓氏 后缀”,移除额外空格并将单词大写。

>>> 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) 提供了两个名称之间相似度的度量,考虑了诸如不同的词序(“Bond, James”和“James Bond”)、首字母的使用(“J. R. R. Tolkien”和“John Ronald Reuel Tolkien”)以及各种头衔和荣誉称号(“Fleet Admiral William Frederick Halsey, Jr., USN”,和“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

由以下支持