이 몇 가지 이유를 들어, 정말 수 없습니다 :
많은 언어가 같은 문자 체계를 공유 할 수 있습니다. 예를 들어, 영어와 네덜란드어를보십시오. 둘 다 기본 라틴어 알파벳을 사용합니다. 코드 포인트의 범위 만 보아도 코드 포인트를 구분할 수 없습니다.
일부 언어는 더 많은 문자를 사용하지만 특정 문자에 해당 문자가 포함되어 있다고 보장 할 수 없습니다. 예를 들어, 독일어는 기본 라틴 알파벳과 "ä", "ö", "ü"및 "ß"를 사용합니다. 이 글자 은 특히 희귀하지는 않지만 전체 문장을 쉽게 만들 수 있습니다. 따라서 짧은 텍스트에 포함되지 않을 수 있습니다. 따라서 코드 포인트 만 보아도 충분하지 않습니다.
텍스트가 항상 "순수한"것은 아닙니다. 프랑스어 텍스트 (예 : "déjà vu")로 인해 영어 텍스트에 의 프랑스어 문자가 포함될 수 있습니다. 또는 텍스트가 외국어 (예 : "Götterdämmerung은 Richard Wagner의 오페라입니다."또는 "The Great 중국 벽 (万里长城)은 ..."에 대해 이야기하기 때문에 개의 외국 단어가 포함될 수 있음) . 코드 포인트 만 보면 이 오도 할 것입니다.
요약하면 코드 포인트 범위를 언어에 안정적으로 매핑 할 수 없습니다.
할 수있는 일 : 각 문자가 텍스트에 나타나는 빈도를 계산하고 알려진 언어에 대한 통계와 경험적으로 비교하십시오. 또는 단어 구조를 분석합니다 (예 : 마르코프 체인과. 또는 사전에서 단어를 검색 할 수 있습니다 (굴곡, 작곡법 등을 고려). 또는 이들의 조합.
그러나 이것은 힘들고 많은 노력입니다. deceze 및 Esailija에서 권장하는 솔루션과 같은 기존 솔루션을 사용해야합니다.
필기체! == 언어. 많은 언어가 동일한 글쓰기 시스템을 공유합니다. Tika 프로젝트와 같은 통계 분석기를 사용하여 언어를 탐지하십시오. http://tika.apache.org – deceze
Google 번역을 할 수 없어도 언어를 안정적으로 검색 할 수는 없습니다. 가장 쉬운 방법은 구글 번역 API를 사용하여 텍스트가 어떤 언어로 표시되는지 확인하는 것입니다. 직접 알고리즘을 사용하는 것일 수도 있습니다. = 아마도 D = – Esailija