
머신 러닝과 일치하는 퍼지 이름. 유사성 스코어링, 레코드 링키지, 중복 제거 및 정규화를 포함한 일반적인 퍼지 이름 매칭 작업을 수행하십시오.
HMNI는 정밀도가 우선 순위가 지정되는 국제적으로 정화 된 라틴어 이름 데이터 세트에 대해 교육을받습니다.
| 모델 | 정확성 | 정도 | 상기하다 | F1- 점수 |
|---|---|---|---|---|
| hmni-latin | 0.9393 | 0.9255 | 0.7548 | 0.8315 |
HMNI의 방법론과 연구에 대한 소개는 내 블로그 게시물을 참조하십시오.
PYPI를 통해 PIP 사용
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, alc
유사성 (name_a, name_b, prob = true, surname_first = false)
fuzzymerge (df1, df2, how = '내부', on = none, left_on = none, right_on = none, right _ ender = false = 1, threshold = 0.5, allow_exact_matches = true, surname_first = false)
inner (기본값) : SQL 내부 조인과 유사한 두 프레임에서 키의 교차로를 사용합니다. 왼쪽 키의 순서를 유지하십시오left : SQL 왼쪽 외부 조인과 유사한 왼쪽 프레임의 키만 사용하십시오. 키 순서를 보존하십시오right : SQL 오른쪽 외부 조인과 유사한 오른쪽 프레임의 키만 사용하십시오. 키 순서를 보존하십시오outer : SQL 전체 외부 조인과 유사한 두 프레임의 키를 사용하십시오. 키를 사전으로 정렬하십시오dedupe (이름, 임계 값 = 0.5, repo = 'longest', reverse = true, limit = 3, replace = false, surname_first = false)
longest (기본값) : 가장 긴 이름을 유지합니다frequent : 이름 목록에서 가장 빈번한 이름을 유지합니다antady_similarity (name_a, name_b, score)
풀 요청을 환영합니다. 라틴어 또는 라틴어 또는 라틴어 쓰기 시스템 (중국어, 키릴, 아랍어)을 사용하여 모델을 구축하려는 개발자의 경우 Jupyter Notebook은 dev 폴더에서 공유하여 유사한 방법을 사용하여 모델을 구축합니다.
MIT