문제

나는 현재 표준 형식의 동일한 이름의 별도 목록과 대량의 사용자로 생성 된 이름을 일치시켜야하는 프로젝트를 진행하고 있습니다. 문제는 사용자가 생성 한 이름에 수많은 철자, 약어 및 단순히 유효하지 않은 데이터가 포함되어있어 표준 데이터와의 교차 참조를 수행하기가 어렵다는 것입니다. 이를 수행하는 방법에 대한 제안이 있습니까?

이것은 실시간으로 수행 할 필요가 없으며이 경우 정확도는 속도보다 중요합니다.

이것에 대한 현재 아이디어는 다음과 같습니다.

  1. Lucene 또는 Sphinx와 같은 기존 검색 구현을 사용하여 표준 데이터베이스에서 사용자 이름을 입력 한 이름을 검색하십시오. Levenshtein 거리와 같은 것을 사용한다고 가정합니다.
  2. 실제 이름을 사용하는 대신 Soundex 해시 (철자가 아닌 이름의 소리에 계산 된 것으로 추정됨)의 상호 참조.
  3. 위의 일부 조합

누구든지 자신의 아이디어 나 아이디어에 대한 피드백이 있습니까?

저의 관심사 중 하나는 위의 방법 중 어느 것도 약어를 잘 처리하지 못할 것입니다. 누군가가 실제로 확장 된 약어에서 실제로 검색 할 수있는 기계 학습 방법의 방향으로 나를 지적 할 수 있습니까? 미리 감사드립니다.

도움이 되었습니까?

해결책

먼저, 나는 당신의 목록에 논의 된 기술을 추가합니다. 철자 수정에 관한 Peter Norvig의 게시물.

둘째, 나는 당신이 말하는 "사용자 생성 이름"의 종류를 물어 보았습니다. 두 가지를 다루었으며 거리 이름에 사용하는 휴리스틱은 사람 이름의 휴리스틱과 다소 다르다고 생각합니다. (간단한 예로, "DR"은 "드라이브"또는 "닥터"로 확장합니까?)

셋째, 다양한 기술의 결과를 결합하기위한 계수 세트를 설정하기 위해 테스트를 사용하여 조합을 살펴 봅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top