지난편에서 Papago 번역 API에서 대해서 알아보았고 이번편에서는 Papago 언어감지 API에 대해서 알아보도록 하자. Papago 언어감지 API의 경우 입력된 텍스트를 판별하여 어떤 언어인지 알려주는 API 이다. 이는 아래와 같이 구글 번역 사용 시 언어감지 기능처럼 사용이 가능하다. 

 

먼저 네이버에서 소개하는 Papago 언어감지 API 문서 사이트는 아래와 같다. 

 

 
언어감지 API 소개 - INTRO
언어감지 API 소개 - INTRO
developers.naver.com/products/papago/detectLangs/detectLangs.md

 

네이버에서 제공되는 Papago 언어감지 API를 사용하려면 먼저 애플리케이션에 아래와 같이 사용 API를 등록해야한다. 

 

서비스 환경의 경우 지난번 Papago 번역 API에서 등록했기때문에 이번편에서는 패스하고 예제소스에 대해 바로 알아보도록 하자. 

 

Papago 언어감지 API 사용예제 소스 - PHP
<?php  # https://developers.naver.com/docs/papago/papago-detectlangs-api-reference.md  참고
	/* @: langCode 참고 :@
		1. ko: 한국어
		2. ja: 일본어
		3. zh-CN: 중국어 간체
		4. zh-TW: 중국어 번체
		5. hi: 힌디어
		6. en: 영어
		7. es: 스페인어
		8. fr: 프랑스어
		9. de: 독일어
		10. pt: 포르투갈어
		11. vi: 베트남어
		12. id: 인도네시아어
		13. fa: 페르시아어
		14. ar: 아랍어
		15. mm: 미얀마어
		16. th: 태국어
		17. ru: 러시아어
		18. it: 이탈리아어
		19. unk: 알 수 없음
	*/

	// 요청데이터
	$postfields['query'] = 'ここの天気は本当に暑いです。';

	$response = papago($postfields);

	if($response['rst'] == 'success'){
		echo '<pre>';
		print_r(json_decode($response['data'],true));
		echo '</pre>';
	}
	else{
		echo $response['msg'];
	}


	function papago($postfields = array()){

		$clientId = ''; // Client Id 입력
		$clientSecret = ''; // Client Secret 입력
		$headers = array();
		$url = 'https://openapi.naver.com/v1/papago/detectLangs';
		
		$headers[] = 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8';
		$headers[] = 'X-Naver-Client-Id: '.$clientId;
		$headers[] = 'X-Naver-Client-Secret: '.$clientSecret;

		$ch = curl_init(); 
		curl_setopt($ch, CURLOPT_URL, $url); 
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($ch, CURLOPT_POST, 1); 
		curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postfields)); 
		if( count($headers) > 0){ 
			curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
		}
		$data = curl_exec($ch); 

		$response = array();
		
		// 통신 실패 처리
		if (curl_error($ch)){ 
			$response = array('rst'=>'fail','msg'=>'CURL Error('.curl_errno( $ch ).') '.curl_error($ch));
		} 

		// 통신에 대한 성공이며, 실제 데이터에 대한 성공은 별도 처리 필요
		else{
			$response = array('rst'=>'success','data'=>$data);
		}
		curl_close($ch); 		

		return $response;
	}

 

결과
Array
(
    [langCode] => ja
)

 

결과를 보면 일본어를 예시 쿼리로 요청하여 보냈고 결과는 일본어인 `ja` 를 응답받았다.  문서상 보면 언어 감지 시 지원되는 언어가 현재는 17개정도 되는것을 확인 가능하다.  다만 언어 감지는 여러 언어를 섞어서 쓸 경우 가장 많이 감지된 언어 기준으로 결과가 나오니 참고하길 바란다.