Posts kakao 번역 open api 실습해보자
Post
Cancel

kakao 번역 open api 실습해보자

Preview Image

1. What is Kakao 번역 API

1.1. 번역 Api

카카오에서 제공하는 번역 API의 주요 기능으로는 문장을 번역하거나 , 문장감지하기 기능 2가지가 있습니다.

REST API 방식으로 제공받을 수 있습니다. 전송방식으로 GET과 POST 둘다 쓸수 있는게 앞의 음성 API와는 조금 다른점이네요.

조금더 전체적인 부분은 카카오 디벨로퍼 사이트를 참조해 주시고

이번에 C# 에서 REST API 를 이용하여 구현해 보았습니다

2. 문장 번역

2.1. Code description

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/////////////GET 방식
string sss = "src_lang=kr&target_lang=en&query=사과"; // 보낼 데이터를 xml 형식으로 만들어주고
string url = "https://dapi.kakao.com/v2/translation/translate?" + sss; // HOST 및 URL
string rest_api_key = "????????????"; // 내 어플리케이션 => 어플선택 => 기본정보의 앱 키 > REST Key 값 부여            

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); // 해당 URL로 네트웍을 만든다
request.Headers.Add("Authorization", "KakaoAK " + rest_api_key); // 헤더에 옵션값을 추가한다.
request.ContentType = "application/x-www-form-urlencoded";// 콘텐츠타입을 명시한다
request.Method = "GET"; // get 으로 보낼지 post로 보낼지 명시한다.

string responseText = string.Empty;
using (WebResponse response = request.GetResponse()) // 보낸데이터를 기반으로 받는다
{
    Stream stream = response.GetResponseStream(); // 받은 데이터를 스트림으로 쓴다
    using (StreamReader sr = new StreamReader(stream)) // 스트림을 읽기 위해 리더를 오픈한다.
    {
        responseText = sr.ReadToEnd(); // 스트림의 내용을 읽어서 문자열로 반환해준다.
    }

    Console.WriteLine(responseText); // 내용을 로그로 출력한다.
}


/////////////POST 방식
string url = "https://dapi.kakao.com/v2/translation/translate"; // HOST 및 URL
string rest_api_key = "????????????"; // 내 어플리케이션 => 어플선택 => 기본정보의 앱 키 > REST Key 값 부여            

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); // 해당 URL로 네트웍을 만든다
request.Headers.Add("Authorization", "KakaoAK " + rest_api_key); // 헤더에 옵션값을 추가한다.
request.ContentType = "application/x-www-form-urlencoded";// 콘텐츠타입을 명시한다
request.Method = "POST"; // get 으로 보낼지 post로 보낼지 명시한다.

string sss = "src_lang=kr&target_lang=en&query=사과"; // 보낼 데이터를 xml 형식으로 만들어주고
byte[] byteDataParams = Encoding.UTF8.GetBytes(sss); // 데이터를 UTF-8 형식의 바이트 배열로 변환시켜준다.
request.ContentLength = byteDataParams.Length; // 보낼 데이터의 길이를 설정해준다.

using (Stream reqStream = request.GetRequestStream()) // 네트웍을 열어서 데이터를 보낸다.
{
    reqStream.Write(byteDataParams, 0, byteDataParams.Length); // 데이터 쓰기
}

string responseText = string.Empty;
using (WebResponse response = request.GetResponse()) // 보낸데이터를 기반으로 받는다
{
    Stream stream = response.GetResponseStream(); // 받은 데이터를 스트림으로 쓴다
    using (StreamReader sr = new StreamReader(stream)) // 스트림을 읽기 위해 리더를 오픈한다.
    {
        responseText = sr.ReadToEnd(); // 스트림의 내용을 읽어서 문자열로 반환해준다.
    }

    Console.WriteLine(responseText); // 내용을 로그로 출력한다.
}

2.2. Result

GET이나 POST 어떤 방식을 쓰든 결과값은 같으니 원하시는 방식으로 쓰시면 될거 같아요

결과값 : {“translated_text”:[[“apple”]]}

이 이런식으로 문자열로 오고 있습니다.

지원 언어로는 아래 표를 참고해주세요

img

3. 문장 감지

3.1. Code description

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/////////////GET 방식
string sss = "query=한글"; // 보낼 데이터를 xml 형식으로 만들어주고
string url = "https://dapi.kakao.com/v3/translation/language/detect?" + sss; // HOST 및 URL
string rest_api_key = "????????????"; // 내 어플리케이션 => 어플선택 => 기본정보의 앱 키 > REST Key 값 부여            

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); // 해당 URL로 네트웍을 만든다
request.Headers.Add("Authorization", "KakaoAK " + rest_api_key); // 헤더에 옵션값을 추가한다.
request.ContentType = "application/x-www-form-urlencoded";// 콘텐츠타입을 명시한다
request.Method = "GET"; // get 으로 보낼지 post로 보낼지 명시한다.

string responseText = string.Empty;
using (WebResponse response = request.GetResponse()) // 보낸데이터를 기반으로 받는다
{
    Stream stream = response.GetResponseStream(); // 받은 데이터를 스트림으로 쓴다
    using (StreamReader sr = new StreamReader(stream)) // 스트림을 읽기 위해 리더를 오픈한다.
    {
        responseText = sr.ReadToEnd(); // 스트림의 내용을 읽어서 문자열로 반환해준다.
    }

    Console.WriteLine(responseText); // 내용을 로그로 출력한다.
}


/////////////POST 방식
string url = "https://dapi.kakao.com/v3/translation/language/detect"; // HOST 및 URL
string rest_api_key = "??????????"; // 내 어플리케이션 => 어플선택 => 기본정보의 앱 키 > REST Key 값 부여            

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); // 해당 URL로 네트웍을 만든다
request.Headers.Add("Authorization", "KakaoAK " + rest_api_key); // 헤더에 옵션값을 추가한다.
request.ContentType = "application/x-www-form-urlencoded";// 콘텐츠타입을 명시한다
request.Method = "POST"; // get 으로 보낼지 post로 보낼지 명시한다.

string sss = "query=한글"; // 보낼 데이터를 xml 형식으로 만들어주고
byte[] byteDataParams = Encoding.UTF8.GetBytes(sss); // 데이터를 UTF-8 형식의 바이트 배열로 변환시켜준다.
request.ContentLength = byteDataParams.Length; // 보낼 데이터의 길이를 설정해준다.

using (Stream reqStream = request.GetRequestStream()) // 네트웍을 열어서 데이터를 보낸다.
{
    reqStream.Write(byteDataParams, 0, byteDataParams.Length); // 데이터 쓰기
}

string responseText = string.Empty;
using (WebResponse response = request.GetResponse()) // 보낸데이터를 기반으로 받는다
{
    Stream stream = response.GetResponseStream(); // 받은 데이터를 스트림으로 쓴다
    using (StreamReader sr = new StreamReader(stream)) // 스트림을 읽기 위해 리더를 오픈한다.
    {
        responseText = sr.ReadToEnd(); // 스트림의 내용을 읽어서 문자열로 반환해준다.
    }

    Console.WriteLine(responseText); // 내용을 로그로 출력한다.
}

3.2. Result

결과값 : {“language_info”:[{“code”:”kr”,”name”:”Korean”,”confidence”:1.0}]}

이런식의 문자열로 옵니다.

confidence 이부분이 정확도 같은 느낌인데 보낸문자가 조금 애매할 경우 한글 0.8 영어 0.5 머 이런식으로 온다고 합니다.

감사합니다.

This post is licensed under CC BY 4.0 by the author.

kakao 음성 open api 실습해보자

MATLAB 공정능력분석을 이해하고 시각화해보자