음성 매칭 알고리즘

Jan 03 2023
ML 알고리즘을 사용한 이름 일치 시도 발음을 기반으로 단어/이름을 정렬해야 하는 프로젝트를 빌드하고 있다고 가정합니다. 문자열 일치를 사용할 수 있지만 이름이 Aakash인 모든 사람을 원하십니까? 권리 없다.

ML 알고리즘을 이용한 이름 매칭 시도

이미지 크레디트: bdtechtalks.com

발음을 기준으로 단어/이름을 정렬해야 하는 프로젝트를 구축한다고 가정합니다. 문자열 일치를 사용할 수 있지만 이름이 Aakash인 모든 사람을 원하십니까? 권리 없다. 이것은 음성 알고리즘이 작동하는 곳입니다. 음성 알고리즘은 발음에 따라 단어를 정렬하는 방법입니다. 그것들은 다양한 유형이며 다른 목적으로 사용됩니다. 그러나 사람의 이름이나 지명의 경우에는 발음의 문제가 가장 많이 나타나기 때문에 가장 잘 통하는 것으로 여겨진다.

문자열 일치

문자열 일치는 음성 알고리즘의 범주에 속하지 않지만 여기에서 우리가 하려는 목표에 대한 아이디어를 얻기 위해 언급할 가치가 있습니다. 문자열 일치에서 역시 T로 표시되는 텍스트(검색할 단어)와 T로 표시되는 패턴(검색하려는 용어)이 제공됩니다. 일치를 기반으로 합니다. 알고리즘은 0과 1 사이의 점수를 반환합니다. 1이 가장 높고 0이 가장 낮습니다. Naive String Matching, KMP 등과 같이 이를 수행하는 방법에는 여러 가지가 있지만 너무 깊이 들어가지는 않겠습니다.

사운덱스

이 알고리즘은 철자가 아닌 단어의 발음을 기반으로 하므로 음성 알고리즘 범주에 속합니다. Soundex는 발음을 기반으로 4자리 코드를 생성합니다. 그런 다음 코드를 비교하여 단어 소리가 비슷한지 확인할 수 있습니다. 사소한 철자 오류 및 비슷한 소리의 단어(다른 철자)를 보다 효과적으로 정렬할 수 있습니다. SQL 제품은 일반적으로 라이브러리 함수에 Soundex 알고리즘을 포함하는 것이 일반적입니다.
데이터베이스에서 성을 검색할 때 "Goyal"이라고 말하면 "Goel"과 "Goyal"이 모두 소리가 비슷하기 때문에 검색되며 따라서 동일한 Soundex 코드를 갖게 됩니다.

메타폰

Metaphone은 Soundex의 세련된 버전입니다. Metaphone은 Soundex의 고정 길이 키에 비해 더 넓은 범위의 발음 규칙과 다양한 키 길이를 가지고 있습니다.

Double Metaphone은 기본보조 키를 반환하여 이를 더욱 개선합니다. 영어 외에도 그리스어, 프랑스어, 이탈리아어, 스페인어 및 중국어와 같은 다른 기원의 발음을 포함하려고 시도합니다.

영어 단어에 대해 99%의 정확도를 반환하는 세 번째 버전인 Metaphone 3도 있습니다.

NYSIIS(뉴욕주 정보 및 인텔리전스 시스템)

NYSIIS는 동일한 코드에서 더 적은 수의 결과를 반환하므로 더 정확한 결과를 제공한다는 점을 제외하면 Soundex 및 Metaphone과 동일한 아이디어를 기반으로 합니다. 특정 사운드에 특정 인덱스를 할당하여 매칭이 이루어집니다.

카버폰

이 알고리즘은 Soundex와 Metaphone이 Caversham 데이터 세트(뉴질랜드에서 수행된 연구 데이터 세트)에 적합하지 않은 것으로 밝혀졌기 때문에 구축되었습니다. 연구 지역(뉴질랜드)의 Metaphone과 유사하게 설계된 맞춤형 음성 인코딩 모델이 개발되었습니다.

유사도 함수

레벤슈타인 거리

두 단어가 주어지면 두 단어가 얼마나 유사한지 물어볼 수 있습니다. 우리는 또한 이 질문을 두 문장이나 문자열 시퀀스에 대해 물어볼 수 있습니다. 유사성을 정량화하려면 척도가 필요합니다. Levenshtein Distance가 그러한 척도입니다. 간단한 작업(예: 삽입, 삭제 및 대체)을 사용하여 한 단어 또는 시퀀스를 다른 단어 또는 시퀀스로 변환하는 방법을 결정할 수 있습니다. 이를 달성하는 방법에는 여러 가지가 있을 수 있습니다. Levenshtein Distance는 두 입력을 동일하게 만드는 데 필요한 최소 작업 수입니다. 숫자가 낮을수록 비교되는 두 입력이 더 유사합니다.

자로 윙클러 거리

Jaro-Winkler는 문자열 사이의 거리(유사성 측정)를 계산합니다. 측정 척도는 0.0에서 1.0까지이며, 여기서 0.0은 가능성이 가장 낮고 1.0은 양성 일치입니다.

코사인 유사도

코사인 유사도는 두 다차원 벡터 간 각도의 코사인을 측정합니다. 각도가 작을수록 코사인 유사도가 높습니다.

결론

유사성 기능과 결합하면 음성 알고리즘은 일반적으로 사이버 보안 또는 데이터베이스의 경우에 사용할 수 있는 두 단어/이름 사이의 유사성 정도를 알려주는 데 매우 도움이 될 수 있습니다.