在Python使用 name-tools 模块比较和管理名称
在处理文档时,我们可能会遇到需要处理 Names 的问题。本文讨论了可以帮助执行此任务的name-tools 库。它可用于管理和比较名称。它目前包括英式和西式名称。
安装:
使用以下命令安装 name-tools 库:
pip install name_tools
示例 1:使用 split()
split() 用于将姓名分为 4 部分,即前缀(Mr、Dr 等)、名字、中间名和后缀(Jr.、II 等)。
Python3
import name_tools
# examples to split name
name1 = name_tools.split("Mr. Sandeep Jain Sr.")
print(name1)
# examples to split name
name2 = name_tools.split("Mr. Manjeet Singh")
print(name2)
# examples to split name
name3 = name_tools.split("Dr. Robert D III")
print(name3)
Python3
import name_tools
print("Demonstrating Canonicalize : ")
# examples to canonicalize name
# returns String
name1 = name_tools.canonicalize("mr. sandeep jain, sr.")
print(name1)
# examples to canonicalize name
# returns String
name2 = name_tools.canonicalize("mr. manjeet Singh")
print(name2)
# examples to canonicalize name
# returns String
name3 = name_tools.canonicalize("dr. robert d 3")
print(name3)
Python3
import name_tools
print("Demonstrating Matching names : ")
# examples to match name
# returns percentage similarity
match1 = name_tools.match("Mr Sandeep", "Sandeep")
print(match1)
match2 = name_tools.match("Mr. Sandeep Jain", "Dr. Sandeep Jain")
print(match2)
match3 = name_tools.match("Mr. Jain Sandeep", "Mr. Sandeep Jain")
print(match3)
输出 :
('Mr.', 'Sandeep', 'Jain', 'Sr.')
('Mr.', 'Manjeet', 'Singh', '')
('Dr.', 'Robert', 'D', 'III')
示例 2:使用 canonicalize()
此函数将名称转换为其标准格式:'Prefixes First Last, Suffixes'。空格被转义,单词大写。
蟒蛇3
import name_tools
print("Demonstrating Canonicalize : ")
# examples to canonicalize name
# returns String
name1 = name_tools.canonicalize("mr. sandeep jain, sr.")
print(name1)
# examples to canonicalize name
# returns String
name2 = name_tools.canonicalize("mr. manjeet Singh")
print(name2)
# examples to canonicalize name
# returns String
name3 = name_tools.canonicalize("dr. robert d 3")
print(name3)
输出 :
Mr. Sandeep Jain, Sr.
Mr. Manjeet Singh
Dr. Robert D 3
示例 3:比较名称
名称的比较是使用 match() 完成的,它采用 2 个名称并与词序、首字母、敬语和标题等因素进行比较。给每个因素一个特定的权重。
蟒蛇3
import name_tools
print("Demonstrating Matching names : ")
# examples to match name
# returns percentage similarity
match1 = name_tools.match("Mr Sandeep", "Sandeep")
print(match1)
match2 = name_tools.match("Mr. Sandeep Jain", "Dr. Sandeep Jain")
print(match2)
match3 = name_tools.match("Mr. Jain Sandeep", "Mr. Sandeep Jain")
print(match3)
输出 :
0.95
0.8999999999999999
0.0