문자열을 구성하는 문자의 종류만으로는 해당 텍스트가 어떤 언어인지 정확하게 판별할 수 없습니다. 물론 다른 감지 방법들도 존재하지만, 어느 것도 완벽한 정확도를 보장하지는 않습니다.
이럴 때 TextLanguageDetect PEAR 패키지를 사용하면 비교적 높은 정확도로 언어를 감지할 수 있습니다. 아래는 실제 사용 예제 코드입니다.
예제 코드
require_once 'Text/LanguageDetect.php';
$l = new Text_LanguageDetect();
$result = $l->detect($text, 4);
if (PEAR::isError($result)) {
echo $result->getMessage();
} else {
print_r($result);
}실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.
Array
(
[german] => 0.407037037037
[dutch] => 0.288065843621
[english] => 0.283333333333
[danish] => 0.234526748971
)패키지의 특징
TextLanguageDetect 패키지는 사용법이 간단하며, 총 52개 언어의 데이터베이스를 내장하고 있어 다양한 언어를 지원합니다. 위 예제에서 볼 수 있듯이, 감지된 각 언어와 함께 유사도 점수(0~1 사이의 값)가 배열 형태로 반환되므로 가장 가능성이 높은 언어를 손쉽게 판단할 수 있습니다.
다만 주의할 점도 있습니다. 이 패키지는 동아시아 언어(한국어, 일본어, 중국어 등)는 감지할 수 없다는 한계가 있습니다. 따라서 동아시아 언어 감지가 필요한 프로젝트라면 별도의 대안 라이브러리나 API를 함께 고려하는 것이 좋습니다.