2009-09-14 6 views
13

저는 지난 며칠 동안 soundex, metaphone 및 기타 문자열 검색 기술을 연구해 왔으며 두 가지 알고리즘 모두 영어 이외의 단어를 잘 처리 할 때 잘 작동합니다.영어 이외의 문자에 soundex/metaphone 사용 가능

그러나 내가 가진 요구 사항은 독창적이고 번역되지 않은 언어로 작업 할 수 있으며 독일어, 노르웨이어 및 시칠리아 알파벳과 같은 영문자를 수용 할 수 있습니다.

이러한 알파벳을 완전히 처리 할 수있는 검색 알고리즘이 있습니까? 아니면 Lucene과 같은 타사 전체 텍스트 검색 라이브러리를 사용하는 것이 더 낫지 않습니까? 결과적으로 질문은 'Lucene이 영어가 아닌 문자를 처리합니까?'라는 질문이 나온다.

+1

유스 케이스가 영어 이외의 언어로 된 텍스트 검색 일 경우 soundex가 필요하지 않을 수 있습니다. ire_and_curses가 말했듯이 적절한 분석기로 Lucene이 필요합니다. 같은 단어의 다른 문자 변형을 처리하려면 음성 일치 알고리즘이 필요합니다. 당신의 유스 케이스에 대해 더 많이 말할 수 있습니까? –

답변

15

저는이 분야의 전문가는 아니지만 귀하의 요구 사항은 저에게 상당히 어려워 보입니다. Soundex은 영어 사운드 및 문자 용으로 특별히 설계되었습니다. 영어 이외의 언어에서도 잘 작동 할 것이라고 생각하지 않습니다. 예를 들어 this related question에 대한 응답을 참조하십시오.

Double-Metaphone은 Soundex 또는 Metaphone보다 훨씬 복잡한 변형을 처리하기위한 시도이며 다양한 언어의 불규칙성을 처리하도록 설계되었습니다. 그것은 당신의 필요를 위해 충분할지도 모른다. 링크 된 페이지에는 라이브러리 구현 목록이 있습니다.

Lucene의 다른 언어에 대한 지원은 Analyzers의 개념을 기반으로합니다. Lucene에는 다른 언어에 대한 분석기 세트가 제공되지만 (기본 목록을 찾을 수는 없지만) 품질은 quite variable 일 수 있습니다.

+0

Lucene + 분석기가 내가 정말로 찾고있는 것 같습니다. 고마워요. :) –

+0

중국어, 일본어, 아랍어 및 인도어는 어떨까요? – Sharique

0

Soundex부터 시작되는 위키피디아에 대한 좋은 참고 자료가 있습니다. 이러한 다양한 언어를 처리 할 수있는 기존 라이브러리가 있는지 여부는 알 수 없습니다.

+0

거기에있는 모든 참조는 유럽 이름의 영어로 된 철자법을 처리하는 알고리즘을 가리 킵니다. 나는 그들이 잘못 이해하지 않는 한 실제로 특수 문자를 그대로 취급하는 것을 보지 못했습니다. –

+1

아마 Soundex 변종 중 일부는 다른 언어와 잘 작동하도록 설계되었지만 영어 나 앵글 문자 맞춤법에 중점을 둡니다. 각 언어에 대해 Soundex와 같은 것을 쓰는 것이 어렵지는 않지만 원어민이 아닌 경우 언어학 자의 도움이 필요할 것입니다. –