hmni
v0.1.8: Beta Release

模糊名称与机器学习匹配。执行常见的模糊名称匹配任务,包括相似性评分,记录链接,重复数据删除和归一化。
HMNI接受了国际通信的拉丁名字数据集的培训,该数据集优先。
| 模型 | 准确性 | 精确 | 记起 | F1得分 |
|---|---|---|---|---|
| hmni-latin | 0.9393 | 0.9255 | 0.7548 | 0.8315 |
有关HMNI背后的方法和研究的介绍,请参阅我的博客文章。
使用PIA通过PYPI
pip install hmni import hmni
matcher = hmni . Matcher ( model = 'latin' ) matcher . similarity ( 'Alan' , 'Al' )
# 0.6838303319889133
matcher . similarity ( 'Alan' , 'Al' , prob = False )
# 1
matcher . similarity ( 'Alan Turing' , 'Al Turing' , surname_first = False )
# 0.6838303319889133 import pandas as pd
df1 = pd . DataFrame ({ 'name' : [ 'Al' , 'Mark' , 'James' , 'Harold' ]})
df2 = pd . DataFrame ({ 'name' : [ 'Mark' , 'Alan' , 'James' , 'Harold' ]})
merged = matcher . fuzzymerge ( df1 , df2 , how = 'left' , on = 'name' ) names_list = [ 'Alan' , 'Al' , 'Al' , 'James' ]
matcher . dedupe ( names_list , keep = 'longest' )
# ['Alan', 'James']
matcher . dedupe ( names_list , keep = 'frequent' )
# ['Al, 'James']
matcher . dedupe ( names_list , keep = 'longest' , replace = True )
# ['Alan, 'Alan', 'Alan', 'James'] hmni.matcher( model ='latin',prefilter = true,ally_alt_surname = true,ally_initials = true,ally_missing_components = true)
相似性(name_a,name_b,prob = true,surname_first = false)
fuzzymerge (df1,df2,how ='inner',on = none,left_on = none,right_on = none = none,indisator = false,limit = 1,threshold = 0.5,ally_exact_matches = true,surmame_first = false)
inner (默认):使用两个帧的键相交,类似于sql内连接;保留左键的顺序left :仅使用左侧框架的键,类似于SQL左外连接;保留密钥顺序right :仅使用右框架的键,类似于SQL右外连接;保留密钥顺序outer :使用两个帧的键联合,类似于SQL完整的外部连接;从词典上分类钥匙dedupe (名称,阈值= 0.5,keep ='最长',反向= true,limit = 3,替换= false,surname_first = false)
longest (默认):保留最长的名称frequent :在名称列表中保留最频繁的名称分配_simurility (name_a,name_b,分数)
欢迎拉动请求。对于希望使用拉丁或非拉丁语写作系统(中文,西里尔,阿拉伯语)构建模型的开发人员,在dev文件夹中共享Jupyter笔记本,以使用类似的方法构建模型。
麻省理工学院