개발 지원(오픈 에이피아이)
오픈 에이피아이로 말뭉치를 활용할 수 있습니다.
1. 모두의 말뭉치 오픈 에이피아이 소개
모두의 말뭉치 오픈 에이피아이는 외부 개발자와 사용자들이 국립국어원에서 제공하는 말뭉치를 편리하게 활용할 수 있도록 공개하는 접속 장치(인터페이스)입니다.
오픈 에이피아이 말뭉치 신청을 통해 제공되는 인증키로 모두의 말뭉치 데이터를 자유롭게 활용할 수 있습니다.
2. 말뭉치 신청 방법
개인-
1
회원 가입
본인 인증 후 회원 가입을 해 주세요. -
2
말뭉치 선택
내려받을 말뭉치를 선택해 주세요. -
3
말뭉치 신청
신청 사유와 이용 약정 기간을 입력한 후 신청해 주세요. -
4
관리자 승인
관리자가 신청 사항을 확인 후 승인합니다. 신청 사항이 불분명할 경우 반려될 수 있습니다. -
5
이용 약정 동의
관리자 승인이 완료되면 말뭉치 신청 내역에서 약정서를 동의하고 서명해 주세요. -
6
키 활용하기
발급받은 키로 오픈 에이피아이를 이용해 주세요.
-
1
회원 가입
본인 인증 후 회원 가입을 해 주세요. -
2
공문 접수
양식을 작성하여 공문으로 접수해 주세요.(양식 내 공문 접수 방법 참고) -
3
말뭉치 선택
내려받을 말뭉치를 선택해 주세요. -
4
말뭉치 신청
신청 사유와 이용 약정 기간을 입력한 후 신청해 주세요. (언어정보과-000 등 승인 문서번호 포함) -
5
관리자 승인
관리자가 신청 사항을 확인 후 승인합니다. -
6
이용 약정 동의
관리자 승인이 완료되면 말뭉치 신청 내역에서 약정서를 동의하고 서명해 주세요. -
7
키 활용하기
발급받은 키로 오픈 에이피아이를 이용해 주세요.
3. 말뭉치 오픈 에이피아이 서비스의 정보
모두의 말뭉치 오픈 에이피아이 서비스는 신청하신 말뭉치를 내려받을 수 있는 URL을 제공합니다.
제공받은 URL을 호출 예시 코드와 같이 이용하면 말뭉치를 내려받을 수 있는 웹사이트로 이동합니다.
오픈 에이피아이 요청 주소
https://kli.korean.go.kr/restapi/v1/corpus/download
검색 요청 변수(Request Parameters)
요청 변수 | 타입 | 허용값 | 필수/선택 | 설명 |
---|---|---|---|---|
keyVal | string | 32자리 문자열 | 필수 | 인증키 |
4. 오픈 에이피아이 호출 예시
오픈 에이피아이를 호출하는 방법을 다양한 언어로 구현한 예제입니다.
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URI;
import java.awt.Desktop;
public class OpenApiCaller {
private static final String API_URL = "https://kli.korean.go.kr/restapi/v1/corpus/download";
private static final String API_KEY = "제공받은 API KEY를 입력해 주세요.";
public static void main(String[] args) {
String urlWithApiKey = String.format("%s?keyVal=%s", API_URL, API_KEY);
try {
String downloadUrl = callApi(urlWithApiKey);
openInBrowser(downloadUrl);
} catch (Exception e) {
System.err.println("API 호출에 실패했습니다: " + e.getMessage());
e.printStackTrace();
}
}
// API를 호출하여 다운로드 URL을 반환
private static String callApi(String urlStr) throws IOException {
HttpURLConnection httpConnection = (HttpURLConnection) new URL(urlStr).openConnection();
httpConnection.setRequestMethod("GET");
int responseCode = httpConnection.getResponseCode();
InputStream responseStream = (responseCode == 200) ? httpConnection.getInputStream() : httpConnection.getErrorStream();
String response = readBody(responseStream);
if (responseCode != 200) {
throw new IOException("API 응답 오류: " + response);
}
return response;
}
// API 응답 스트림을 문자열로 변환
private static String readBody(InputStream body) throws IOException {
StringBuilder content = new StringBuilder();
try (BufferedReader in = new BufferedReader(new InputStreamReader(body, "UTF-8"))) {
String inputLine;
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
}
return content.toString();
}
// 브라우저로 URL 열기
private static void openInBrowser(String url) throws Exception {
URI uri = new URI(url);
if (Desktop.isDesktopSupported()) {
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.BROWSE)) {
desktop.browse(uri);
} else {
throw new UnsupportedOperationException("BROWSE action is not supported on this platform.");
}
} else {
throw new UnsupportedOperationException("Desktop class is not supported on this platform.");
}
}
}
5. 오픈 에이피아이 결과 예시
말뭉치 오픈 에이피아이가 정상적으로 처리됐을 때의 예시 화면입니다.
제공된 URL과 모두의 말뭉치 신청을 통해 발급받은 인증키를 활용하여 예시 코드를 실행하면 위와 같이 말뭉치를 내려받을 수 있습니다.