은유네
Metaphone은유원은 1990년 로렌스 필립스가 영어 발음으로 단어를 색인화하여 발표한 발음 알고리즘이다.[1]영어 철자와 발음의 변형과 불일치에 대한 정보를 활용해 근본적으로 사운덱스 알고리즘을 개선해 보다 정확한 인코딩을 만들어내 유사하게 들리는 단어와 이름을 매칭하는 작업을 더 잘한다.사운덱스와 마찬가지로 비슷한 소리로 들리는 단어들도 같은 열쇠를 공유해야 한다.은유법은 여러 시스템에서 내장 연산자로 이용할 수 있다.
필립스는 나중에 새로운 버전의 알고리즘을 만들었는데, 그는 이것을 더블 은유네라고 이름 지었다.적용이 영어에만 국한된 원래의 알고리즘과는 달리, 이 버전은 많은 다른 언어의 철자 특성을 고려한다.2009년에 필립스는 영어단어, 미국인에게 친숙한 비영어단어, 미국에서 흔히 볼 수 있는 이름 및 성을 약 99%의 정확도를 달성하는 세 번째 버전을 발표했는데, 이 버전은 준비된 정확한 en의 테스트 장비에 대한 현대 공학 표준에 따라 개발되었다.코딩
절차
오리지널 은유네 코드는 16개의 자음 기호 0BFHJKLMNPRSTWXY를 사용한다.'0'은 "th"(ASCII 근사치인 θ)를 나타내며, 'X'는 "sh" 또는 "ch"를 나타내며, 다른 것들은 평소 영어 발음을 나타낸다.모음 AEIOU도 사용되지만, 코드의 시작 부분에만 사용된다.[2]이 표에는 원래 구현의 대부분의 규칙이 요약되어 있다.
- C를 제외하고 인접한 중복 문자를 삭제하십시오.
- 단어가 'KN', 'GN', 'PN', 'AE', 'WR'로 시작되면 첫 글자를 삭제한다.
- 단어 끝에 'M' 다음에 'B'를 놓아라.
- 'C'가 'X'로 변환되면 'X'로 변환한다.IA' 또는 'H' (후자의 경우는 예외로, '-SCH-'의 일부로서, 'K'로 변환한다.)'C'는 'I', 'E' 또는 'Y' 뒤에 오면 'S'로 변한다.그렇지 않으면 'C'는 'K'로 변한다.
- 'D'는 'GE', 'GY' 또는 'GI' 뒤에 오면 'J'로 변환한다.그렇지 않으면 'D'가 'T'로 변한다.
- 뒤에 'H'가 있으면 'G'를 떨어뜨리고, 'H'가 끝에 있지 않거나 모음 앞에 없으면 'H'를 떨어뜨린다.'N' 또는 'NED' 뒤에 오는 경우 'G'를 떨어뜨리고 끝에 있는 경우
- 'G'는 'I', 'E', 'Y' 이전이면 'J'로 변하는데, 'GG'에는 없다.그렇지 않으면 'G'는 'K'로 변한다.
- 모음 후에 'H'를 떨어뜨리고 모음 전에는 떨어뜨리지 않는다.
- 'CK'는 'K'로 변한다.
- 'PH'는 'F'로 변한다.
- 'Q'는 'K'로 변한다.
- 'S'는 'H', 'IO', 'IA'가 뒤따르면 'X'로 변환한다.
- 'T'가 'X'로 변환되면 'X'로 변환한다.IA' 또는 'IO'. 'TH'는 '0'으로 변환한다.만약 'CH'가 뒤따르면 'T'를 떨어뜨린다.
- 'V'는 'F'로 변한다.
- 'WH'는 처음에 'W'로 변환된다.모음 뒤에 없으면 'W'를 넣으세요.
- 'X'는 처음에 'S'로 변한다.그렇지 않으면 'X'가 'KS'로 변환된다.
- 받침이 없으면 Y를 떨어뜨려라.
- 'Z'는 'S'로 변한다.
- 시작되지 않는 한 모든 모음을 삭제하십시오.
이 표는 원래의 은구네 알고리즘에 대한 완전한 설명을 구성하지 않으며, 알고리즘은 그것으로부터 정확하게 코딩될 수 없다.원래의 은유원은 많은 오류를 포함하고 있어 이중 은유니온으로 대체되었고, 다시 더블 은유니온과 오리지널 은유니콘은 처음 두 버전에 의해 생성될 수천 개의 오용들을 교정하는 은유니온 3으로 대체되었다.
은유네 3의 (소스 코드) 사본을 구입하지 않고 은유네를 구현하기 위해서는 이중 은유네에 대한 참조 구현을 이용할 수 있다.[3]또는 현재 버전인 버전 2.5.4에서 다수의 인코딩 보정이 이루어지지 않은 2009년 이전 버전인 Miquone 3의 버전 2.1.3은 OpenRefine 프로젝트를 통해 BSD 라이선스의 조건에 따라 사용할 수 있게 되었다.[4]
더블 은유네
이중 은유원 음성 부호화 알고리즘은 이 알고리즘의 제2세대다.그것의 구현은 C/C++ Users Journal 2000년 6월호에서 설명되었다.[5]그것은 원래의 은구네 알고리즘보다 많은 근본적인 디자인을 개선한다.
그것은 문자열에 대한 1차 코드와 2차 코드를 둘 다 반환할 수 있기 때문에 "더블"이라고 불린다. 이것은 공통 조상을 가진 여러 변종의 성을 설명할 뿐만 아니라 몇몇 애매한 경우를 설명하기 때문이다.예를 들어, "스미트"라는 이름을 인코딩하면 SM0의 1차 코드와 XMT의 2차 코드가 생성되는 반면, "슈미트"라는 이름은 XMT의 1차 코드와 SMT의 2차 코드를 생성하는데, 이 두 가지 코드 모두 XMT의 공통점이 있다.
이중 은유원은 슬라브어, 게르만어, 켈트어, 그리스어, 프랑스어, 이탈리아어, 스페인어, 중국어 및 기타 기원의 영어에서 무수한 부조리를 설명하려고 한다.따라서 그것은 이전 버전보다 코딩에 훨씬 더 복잡한 규칙 집합을 사용한다. 예를 들어, 문자 C의 사용에 대한 대략 100개의 다른 컨텍스트를 시험한다.
은구네3길
같은 작가인 로렌스 필립스가 개발한 전문 버전이 2009년 10월에 발매되었다.소스 코드로 판매되는 상용 제품이다.엠에고네3는 영어의 단어들, 미국인에게 친숙한 영어 이외의 단어, 미국에서 흔히 볼 수 있는 이름과 성을 음성 부호화하여 더욱 향상시킨다.그것은 특히 적절한 이름에 대한 인코딩을 상당히 개선한다.[6]저자는 일반적으로 모든 단어의 정확도를 이중 은유법의 약 89%에서 98%로 향상시킨다고 주장한다.개발자들은 또한 이제 코드의 스위치를 설정하여 알고리즘이 비초기 모음을 고려하는 것뿐만 아니라 2) 음성 및 비음향 자음을 다르게 인코딩하도록 할 수 있다.이는 개발자가 검색 결과에 검색어와 매우 유사하지 않은 단어가 너무 많이 포함되어 있다는 것을 발견하는 경우 결과 집합에 더욱 세밀하게 초점을 맞출 수 있게 한다.[7]엠에고네 3은 C++, 자바, C#, PHP, Perl, PL/SQL 소스, 자바 항아리에 접속하는 루비와 파이톤 포장지, 자바와 C# 소스로 이용 가능한 스페인어와 독일어 발음용 엠에고네 3도 판매되고 있다.[8]은구네 3 알고리즘의 최근 개정판은 2015년 3월 발매된 v2.5.4이다.현재 버전인 2.5.4에서 많은 인코딩 수정이 결여된 이전 버전인 2.1.3에 대한 Mingeone3 Java 소스 코드는 OpenRefine 프로젝트의 일부로 포함되었으며 공개적으로 볼 수 있다.[9]
일반적인 오해
은구네 알고리즘에 대해 다루어져야 할 몇 가지 오해가 있다.다음과 같은 진술이 참이다.
- 모두 이름뿐 아니라 규칙적인 '전술적인' 단어들을 다루도록 설계되어 있다.
- 은유 알고리즘은 입력 단어와 이름의 음성 표현을 생산하지 않는다. 오히려 이 표준에 따르면 출력은 의도적으로 대략적인 음성 표현이다.
- 모음 소리로 시작하는 단어들은 인코딩의 첫 번째 문자로 모든 모음들을 나타내는 'A'를 가질 것이다(Double Megone과 Megone 3 - 원본 은고네는 실제 모음만을 보존한다).
- 초성모음 이후의 모음은 무시되고 암호화되지 않으며,
- 유성/비음성 자음 쌍은 동일한 인코딩으로 매핑된다(음성/비음성 자음 쌍의 예로는 D/T, B/P, Z/S, G/K 등이 있다).
이 대략적인 인코딩은 영어 사용자들이 그들의 발음과 철자를 바꾸거나 그들이 철자를 쓰려고 하는 단어와 이름들을 바꾸는 방법을 설명하기 위해 필요하다.물론 모음은 변덕이 심하기로 악명 높다.영국 화자들은 종종 미국인들이 'T'를 'D'와 같다고 불평한다. 또한, 모든 영어 화자들은 거의 항상 음성 자음이나 액체로 끝나는 명사가 복수화될 때 'S'가 철자로 된 'Z'를 발음한다는 것을 고려한다. 예를 들어, "계절", "빔즈", "예시" 등.초기 모음 소리 이후에 모음을 인코딩하지 않는 것은 오식이나 대체 발음에서 모음과 자음이 전치될 수 있는 단어들을 그룹화하는 데 도움이 될 것이다.
다른 언어의 은유법
은유원은 몇몇 인도유럽 언어에서 SONDEX보다 선호되어 영어의 변형과 다른 언어에 유용하다.반면에, 거친 음성 부호화는 언어 의존성, 또는 언어 변종에서 언어-언어-스피커 의존성을 유발한다. 주로 영어가 아닌 변종들에 대한 것이다.
아마도 영어 이외의 은유법을 안정적으로 적응시킨 첫 번째 예는 브라질 포르투갈어일 것이다: 브라질의 바체아 파울리스타 자치구의 데이터베이스 솔루션으로서 ~2008년에 유래했으며, 현재의 알고리즘으로 진화했다.
참고 항목
참조
- ^ 은유네에 매달려 로렌스 필립스컴퓨터 언어, 제7권, 제12권 (12월) 1990년 12월)
- ^ "Morfoedro - Technology". www.morfoedro.it. Retrieved 16 May 2018.
- ^ http://aspell.net/metaphone/dmetaph.cpp[bare URL 일반 텍스트 파일]
- ^ https://github.com/OpenRefine/OpenRefine/blob/master/main/src/com/google/refine/clustering/binning/Metaphone3.java
- ^ Philips, Lawrence (June 2000). "The double metaphone search algorithm". C/C++ Users Journal. 18 (6): 38–43.
- ^ 미래 최고의 얼굴: 엔터프라이즈 I Guy, S Ur, I Ronen, S Weber에서 사람 검색에 대한 대규모 연구...- 2012 - http://www.research.ibm.com/haifa/dept/imt/papers/guyCHI12.pdf
- ^ Atkinson, Kevin. "Lawrence Philips' Metaphone Algorithm". aspell.net. Retrieved 16 May 2018.
- ^ "Anthropomorphic Software". www.amorphics.com. Retrieved 16 May 2018.
- ^ "OpenRefine source for Metaphone3". github.com. Retrieved 2 Nov 2020.
외부 링크
- 2000년 6월 1일 로렌스 필립스에 의한 이중 은유원 검색 알고리즘, Dobb 박사의 원본 기사
다른 언어에 대한 은유 알고리즘
- 브라질 포르투갈어를 위한 브라질 포르투갈어 C 은유네, PHP 및 Postgre를 포함한 CSQL 포트.
- 브라질 포르투갈어를 위한 자바 은유네를 사용하는 브라질 포르투갈어, 자바를 사용하는 포르투갈어.
- 스페인어 은유니온 인 파이톤
- 방글라를 위한 이중 은유 알고리즘
- 암하릭을 위한 이중 은유 알고리즘
- 루비에 나오는 러시아인 은구네
- 스페인어와 독일어를 위한 은유네 3
- 자바스크립트의 이중 은유와 은유