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筆記本,以使用類似的方法構建模型。
麻省理工學院