TOP

어휘 간 유사도 분석 API

WiseWordNet 어휘 지식베이스에 기반하여 어휘 간 거리 정보를 분석하는 기술

연구 책임자

언어지능연구실

배경만

등록일

2024-12-06

누적 호출수

774

Keyword

어휘,유사도

카테고리

언어처리

어휘 간 유사도 분석 API 란?

다양한 어휘지식을 통합한 WiseWordNet 어휘 지식베이스에 기반하여 어휘 간 거리 정보를 분석하는 기술로서 입력된 여휘간 유사도 결과를 제공합니다. 어휘 간 유사도 분석 API는 HTTP 기반의 REST API 인터페이스로 JSON 포맷 기반의 입력 및 출력을 지원하며 ETRI에서 제공하는 API Key 인증을 통해 사용할 수 있는 Open API입니다.

API 호출 1일 허용량

기술명 API명 1일 허용량
어휘관계 분석 기술 어휘간 유사도 분석 API 5,000건/일

어휘 간 유사도 분석 API 사용하기

어휘 간 유사도 분석 API는 REST API이며, 다의어 조회의 대상 어휘 데이터를 HTTP 통신으로 ETRI Open API 서버에 전달하면 됩니다. 서버가 제공하는 REST API의 URI는 다음과 같으며 POST 방식으로 호출해야 합니다.

http://epretx.etri.re.kr:8000/api/WiseWWN_WordRel

[HTTP Request Header]
"Authorization" : "YOUR_ACCESS_KEY"

[HTTP Request Body]
{
  "request_id": "reserved field",	
  "argument": {
            “first_word”: “FIRST_YOUR_WORD”,
            “first_sense_id”: “FIRST_WORD_SENSE_ID”,
            “second_word”: “SECOND_YOUR_WORD”,
            “second_sense_id”: “SECOND_WORD_SENSE_ID”
  }  
위와 같은 HTTP 요청을 e-PreTX 서버로 전달하면 서버는 JSON 형태의 Text 데이터를 HTTP 응답 메시지로 반환합니다. 다음은 HTTP 응답 예제 입니다.
[HTTP Response Header]
Access-Control-Allow-Origin:*
Connection:close
Content-Length:0
Content-Type:application/json; charset=UTF-8

[HTTP Response Body]
{
  "request_id": "reserved field",
  "result": 0,
  "return_type": "com.google.gson.internal.LinkedTreeMap",
  "return_object": {어휘 간 유사도 분석 결과 JSON}
}

구현 예제(Python)

python 3.0을 기준으로 작성되었습니다.
HTTP 통신을 위해 urllib3 라이브러리를 사용하여 제공하고 있습니다. Python 3.0 이하의 버전에서 예제를 실행하기 위해서는 별도로 urllib3의 설치가 필요합니다.
설치에 대한 설명은 https://pypi.python.org/pypi/urllib3 를 참고하시기 바랍니다.
urllib3 라이브러리에 대한 자세한 설명은 https://urllib3.readthedocs.io/en/latest/ 에서 확인 하실 수 있습니다.
    #-*- coding:utf-8 -*-
  import urllib3
  import json
   
  openApiURL = "http://epretx.etri.re.kr:8000/api/WiseWWN_WordRel"
  accessKey = "YOUR_ACCESS_KEY"
  firstWord = 'FIRST_WORD'
  firstSenseId = 'FIRST_SENSE_ID'
  secondWord = 'SECOND_WORD'
  secondSenseId = 'SECOND_SENSE_ID'
   
  requestJson = { 
      "argument": {
        'first_word': firstWord,
        'first_sense_id': firstSenseId,
        'second_word': secondWord,
        'second_sense_id': secondSenseId
      }
  }
   
  http = urllib3.PoolManager()
  response = http.request(
      "POST",
      openApiURL,
      headers={"Content-Type": "application/json; charset=UTF-8","Authorization" :  accessKey},
      body=json.dumps(requestJson)
  )
   
  print("[responseCode]" + str(response.status))
  print("[responBody]")
  print(str(response.data,"utf-8"))
                                        

어휘 간 유사도 분석 API 레퍼런스

다음은 파라미터에 대한 설명입니다.
Field 명 타입 필수 여부 설명
access_key String API 사용을 위해 ETRI에서 발급한 사용자 API Key
argument Object API 사용 요청 시 분석을 위해 전달할 내용
first_word String 비교 분석할 어휘 Text 로서 UTF-8 인코딩된 텍스트만 지원
first_sense_id String 첫 번째 어휘의 의미 코드
2자리 숫자 : 동음이의어 의미코드
4자리 숫자 : 동음이의어 의미코드(2자리)+다의어 의미 코드(2자리)
second_word String 비교 분석 대상 어휘 Text 로서 UTF-8 인코딩된 텍스트만 지원
second_sense_id String 두 번째 어휘의 의미 코드
2자리 숫자 : 동음이의어 의미코드
4자리 숫자 : 동음이의어 의미코드(2자리)+다의어 의미 코드(2자리)
분석된 결과는 다음과 같은 내용이 포함되어 있습니다.
구분 JSON Key 이름 설명
MetaInfo Title Open APIs의 타이틀 명
Link 해당 Open APIs를 사용하기 위한 URL 정보
WWN WordRelInfo FirstWordInfo 첫 번째 어휘 정보
Word 어휘의 원문자열
HomonymCode 어휘의 동음이의어 코드 (2자리 숫자)
PolysemyCode 어휘의 다의어 코드 (2자리 숫자)
Definition 의미 정보
POS 어휘의 품사
명사 : "n"
동사 : "v"
SecondWordInfo 두 번째 어휘 정보
Word 어휘의 원문자열
HomonymCode 어휘의 동음이의어 코드 (2자리 숫자)
PolysemyCode 어휘의 다의어 코드 (2자리 숫자)
Definition 의미 정보
POS 어휘의 품사
명사 : "n"
동사 : "v"
WordRelInfo 어휘 간 유사도 분석 정보
ShortedPath 가장 가까운 연결 어휘 경로 정보
Distance 어휘 경로 거리 정보 (숫자)
Similarity 어휘 간 거리 유사도
Algorithm 거리 유사도 알고리즘
SimScore 거리 유사도 신뢰도
어휘 간 유사도 분석 API의 오류 코드 목록은 다음과 같습니다.
http status code result reason 설명
403 -1 Empty Auth Header Authorization 헤더가 없는 경우
403 -1 Invalid Key KEY API 키가 없는 경우
403
-1 Blocked KEY API 키가 관리자에 의해서 차단된 경우
403
-1 Daily Limit Exceeded 일간 호출 제한에 걸린 경우
403
-1 Monthly Limit Exceeded
월간 호출 제한에 걸린 경우
403
-1 Yearly Limit Exceeded
연간 호출 제한에 걸린 경우
403
-1 Too Many Keys 같은 IP에서 여러 API 키가 사용된 경우
403
-1 Too Many IPs 하나의 API 키를 여러 IP 에서 사용한 경우
403
-1 Not Allowed IP API 호출 가능한 IP 가 아닌경우
(API 설정에서 허용된 IP가 아닌경우)
403
-1 Not Allowed Subpath 하위경로 접근 제한이 되어 있는 경우
403 -1 Invalid API
등록되지 않은 API를 요청한 경우
408 -1
Request Timeout
서버의 요청 대기가 시간을 초과한 경우
413
-1 Body Size Limit Exceeded
요청 바디가 설정된 값보다 큰 경우
429
-1 Concurrent Limit Exceeded
연속호출 허용 범위를 넘어서 호출한 경우
500 -1 Internal Server Error 내부 오류 발생한 경우