📜  在Python使用 name-tools 模块比较和管理名称

📅  最后修改于: 2022-05-13 01:55:00.619000             🧑  作者: Mango

在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