OPEN API - fingeredman/teanaps GitHub Wiki
TEANAPS
OPEN API
ACCESS TOKEN ๋ฐ๊ธ
-
๋ฌด๋ถ๋ณํ API ์ฌ์ฉ์ ๋ฐฉ์งํ๊ณ ์
ACCESS TOKEN
๋ฐ๊ธ์ ํตํด API ์ ๊ทผ๊ถํ์ ๊ด๋ฆฌํฉ๋๋ค. -
API ํธ์ถ์ ๊ด๋ฆฌ์ ๋ฌธ์๋ฅผ ํตํด ๋ฐ๊ธ๋ฐ์
ACCESS TOKEN
์ BODY์ ํฌํจํด ์์ฒญํด์ผ ํฉ๋๋ค. -
ACCESS TOKEN
๋ฐ๊ธ์ ๊ด๋ฆฌ์ ์ด๋ฉ์ผ([email protected])๋ก ์๋ ๋ด์ฉ์ ํฌํจํด ๋ฌธ์ ๋ฐ๋๋๋ค.-
์ด๋ฆ : ํ๊ธธ๋
-
์์ : ํ์ฌ/๋ํ๊ต/์ฐ๊ตฌ์/๊ทธ๋ฃน ๋ฑ
-
์ฌ์ฉ๋ชฉ์ : "~ ๋ถ์/๊ตฌ์ถ ํ๋ก์ ํธ" ์ํ์ ๊ฐ์ฑ๋ถ์ ํ์ฉ ๋ฑ
-
๊ฐ์ธ์ ๋ณด์์ง ๋ฐ ์ ๋ณดํ์ฉ ๋์์ฌ๋ถ : Y/N
Notes :
TEANAPS
OPEN API์ ACCESS TOKEN์TEANAPS
Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ๊ณผ๋ ๋ฌด๊ดํฉ๋๋ค.TEANAPS
Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์น์ธ์์ด ๋ฌด๋ฃ๋ก ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
-
TEANAPS
OPEN API ๋ฆฌ์คํธ
TEANAPS
OPEN API๋TEANAPS
์์ ์ง์ํ๋ ํ ์คํธ ๋ถ์ ๊ธฐ๋ฅ์ REST API๋ก ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ API๋ ๋น๋ก๊ทธ์ธ ๋ฐฉ์์ OPEN API๋ก, ํธ์ถ์ ๊ด๋ฆฌ์ ๋ฌธ์๋ฅผ ํตํด ๋ฐ๊ธ๋ฐ์ACCESS TOKEN
์ BODY์ ํฌํจํด ์ ์กํด์ฃผ์ ์ผ ํฉ๋๋ค.
-
๊ธฐ๋ณธ ์์ฒญ URL : http://api.teanaps.com/
-
API ๋ฒ์ : v1 (2019.7.12 ~)
API ID ํธ์ถ๋ฐฉ์ ์๋ตํ์ ์ญํ ์์ฒญ URL ํ๊ท ์๋ต์๋ T01-01 HTTP (POST) JSON API ์๋ต์ฒดํฌ /alive 0.029s T02-01 HTTP (POST) JSON ํํ์๋ถ์ /nlp/pos 0.154s T02-02 HTTP (POST) JSON ๊ฐ์ฒด๋ช ์ธ์ /nlp/ner 0.150s T03-01 HTTP (POST) JSON ๊ฐ์ฑ๋ถ์ /text_analysis/sentiment 0.676s Notes :
- ํ๊ท ์๋ต์๋๋ ๋ฌด์ ๋คํธ์ํฌ ํ๊ฒฝ์์ API๋ฅผ ์์ฒญํ๊ณ ์๋ต์ ๋ฐ๋๋ฐ ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์๋ฏธํ๋ฉฐ, ํด๋น ์ํ๊ฒฐ๊ณผ๋ 1,000ํ ์ฐ์ API์์ฒญ์ ๋ํ ์๋ต์๋์ ํ๊ท ์ ๋๋ค.
TEANAPS
OPEN API References
[T01-01] API ์๋ต์ฒดํฌ
REST API ๋์์ฌ๋ถ์ ACCESS TOKEN์ ์ ํจ์ฑ์ ํ์ธํฉ๋๋ค.
-
์์ฒญ ํ๋ผ๋ฏธํฐ (Request Parameter)
ํ๋ผ๋ฏธํฐ ํ์ ์ ํ ์ค๋ช ์ํ access_token V str ACCESS TOKEN ODMFKGLDICK20190601132625 -
์๋ต ํ๋ผ๋ฏธํฐ (Response Parameter)
ํ๋ผ๋ฏธํฐ ์ ํ ์ค๋ช ์ํ code int ์๋ต์ฝ๋ 200 api_condition str API ์ํ free access_token_info list ACCESS TOKEN ์ํ ใดcreated_at str ์์ฑ์ผ์ 2019-06-01 ใดexpiration_in str ์์ฑ์ผ์ 2019-09-06 -
ํธ์ถ์์
Python Code (Request):
import requests URL = "http://api.teanaps.com" VERSION = "/v1" URL_PATTERN = "/alive" data = { "access_token": "ODMFKGLDICK20190601132625" } url = URL + VERSION + URL_PATTERN r = requests.post(url, data=data) j = r.json() print(j)
Output (Response):
{ 'code': 200, 'api_condition': 'free', 'access_token_info': { 'access_token': 'ODMFKGLDICK20190601132625', 'created_at': '2019-06-01', 'expiration_in': '2019-09-06' } }
[T02-01] ํํ์๋ถ์
๋ฌธ์ฅ์ ํํ์๋ถ์ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
-
์์ฒญ ํ๋ผ๋ฏธํฐ (Request Parameter)
ํ๋ผ๋ฏธํฐ ํ์ ์ ํ ์ค๋ช ์ํ access_token V str ACCESS TOKEN ODMFKGLDICK20190601132625 sentence V str ํ๊ตญ์ด ๋๋ ์์ด๋ก ๊ตฌ์ฑ๋ ๋ฌธ์ฅ. ์ต๋ 128์. ์ํฅ๋ฏผ์ 2015๋ ๋ ๋ฒ์ฟ ์ ์์ ํ ํธ๋ ํซ์คํผ๋ก ์ด์ ํ๋ค. -
์๋ต ํ๋ผ๋ฏธํฐ (Response Parameter)
ํ๋ผ๋ฏธํฐ ์ ํ ์ค๋ช ์ํ code int ์๋ต์ฝ๋ 200 sentence str ์์ฒญ๋ฌธ์ฅ ์ํฅ๋ฏผ์ 2015๋ ๋ ๋ฒ์ฟ ์ ์์ ํ ํธ๋ ํซ์คํผ๋ก ์ด์ ํ๋ค. pos_list list ํํ์๋ถ์ ๊ฒฐ๊ณผ ใดpos str ํํ์ ์ํฅ๋ฏผ ใดpos_tag str ํ์ฌ ํ๊ทธ NNP ใดner_tag str ๊ฐ์ฒด๋ช ํ๊ทธ PS ใดlocation list ํํ์ ์์น [0, 3] -
ํธ์ถ์์
Python Code (Request):
import requests URL = "http://api.teanaps.com" VERSION = "/v1" URL_PATTERN = "/nlp/pos" data = { "access_token": "ODMFKGLDICK20190601132625", "sentence": "์ํฅ๋ฏผ์ 2015๋ ๋ ๋ฒ์ฟ ์ ์์ ํ ํธ๋ ํซ์คํผ๋ก ์ด์ ํ๋ค." } url = URL + VERSION + URL_PATTERN r = requests.post(url, data=data) j = r.json() print(j)
Output (Response):
{ 'code': 200, 'sentence': '์ํฅ๋ฏผ์ 2015๋ ๋ ๋ฒ์ฟ ์ ์์ ํ ํธ๋ ํซ์คํผ๋ก ์ด์ ํ๋ค.', 'pos_list': [ { 'pos': '์ํฅ๋ฏผ', 'pos_tag': 'NNP', 'ner_tag': 'PS', 'location': [0, 3] }, { 'pos': '์', 'pos_tag': 'JX', 'ner_tag': 'UN', 'location': [3, 4] }, ... { 'pos': '๋ค', 'pos_tag': 'EF', 'ner_tag': 'UN', 'location': [30, 31] }, { 'pos': '.', 'pos_tag': 'SW', 'ner_tag': 'UN', 'location': [31, 32] } ] }
Notes :
TEANAPS
ํํ์๋ถ์ API์ ํ์ฌํ๊ทธ๋ ์ธ์ข ๋ง๋ญ์น ํ์ฌํ๊ทธ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ํ์ฌํ๊ทธํ๋ Appendix๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.TEANAPS
ํํ์๋ถ์ API์ ์ฑ๋ฅ ๋ฐ ํน์ง์ ์ฑ๋ฅํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
[T02-02] ๊ฐ์ฒด๋ช ์ธ์
๋ฌธ์ฅ์์ ๊ฐ์ฒด๋ช ์ ์ธ์ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
-
์์ฒญ ํ๋ผ๋ฏธํฐ (Request Parameter)
ํ๋ผ๋ฏธํฐ ํ์ ์ ํ ์ค๋ช ์ํ access_token V str ACCESS TOKEN ODMFKGLDICK20190601132625 sentence V str ํ๊ตญ์ด ๋๋ ์์ด๋ก ๊ตฌ์ฑ๋ ๋ฌธ์ฅ. ์ต๋ 128์. ์ํฅ๋ฏผ์ 2015๋ ๋ ๋ฒ์ฟ ์ ์์ ํ ํธ๋ ํซ์คํผ๋ก ์ด์ ํ๋ค. -
์๋ต ํ๋ผ๋ฏธํฐ (Response Parameter)
ํ๋ผ๋ฏธํฐ ์ ํ ์ค๋ช ์ํ code int ์๋ต์ฝ๋ 200 sentence str ์์ฒญ๋ฌธ์ฅ ์ํฅ๋ฏผ์ 2015๋ ๋ ๋ฒ์ฟ ์ ์์ ํ ํธ๋ ํซ์คํผ๋ก ์ด์ ํ๋ค. ner_list list ํํ์๋ถ์ ๊ฒฐ๊ณผ ใดentity str ๊ฐ์ฒด๋ช ์ํฅ๋ฏผ ใดner_tag str ๊ฐ์ฒด๋ช ํ๊ทธ PS ใดlocation list ๊ฐ์ฒด๋ช ์์น [0, 3] -
ํธ์ถ์์
Python Code (Request):
import requests URL = "http://api.teanaps.com" VERSION = "/v1" URL_PATTERN = "/nlp/ner" data = { "access_token": "ODMFKGLDICK20190601132625", "sentence": "์ํฅ๋ฏผ์ 2015๋ ๋ ๋ฒ์ฟ ์ ์์ ํ ํธ๋ ํซ์คํผ๋ก ์ด์ ํ๋ค." } url = URL + VERSION + URL_PATTERN r = requests.post(url, data=data) j = r.json() print(j)
Output (Response):
{ 'code': 200, 'sentence': '์ํฅ๋ฏผ์ 2015๋ ๋ ๋ฒ์ฟ ์ ์์ ํ ํธ๋ ํซ์คํผ๋ก ์ด์ ํ๋ค.', 'ner_list': [ { 'entity': '์ํฅ๋ฏผ', 'ner_tag': 'PS', 'location': [0, 3] }, { 'entity': '2015๋ ', 'ner_tag': 'DT', 'location': [5, 10] }, { 'entity': '๋ ๋ฒ์ฟ ์ ', 'ner_tag': 'OG', 'location': [11, 15] }, { 'entity': 'ํ ํธ๋ ํซ์คํผ', 'ner_tag': 'OG', 'location': [18, 25] } ] }
Notes :
TEANAPS
๊ฐ์ฒด๋ช ์ธ์ API์ ๊ฐ์ฒด๋ช ํ๊ทธ๋ ์ด 16์ข ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค. ํ๊ทธ ์ข ๋ฅ ๋ฐ ๊ตฌ๋ถ์ ์ ๋ณดํต์ ๋จ์ฒดํ์ค (TTAS)์ ๋ฐ๋ฆ ๋๋ค.- ๊ฐ์ฒด๋ช ํ๊ทธํ๋ Appendix๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
TEANAPS
๊ฐ์ฒด๋ช ์ธ์ API์ ์ฑ๋ฅ ๋ฐ ํน์ง์ ์ฑ๋ฅํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
[T03-01] ๊ฐ์ฑ๋ถ์
๋ฌธ์ฅ์ ๊ฐ์ฑ์์ค์ ๊ธ์ ๋๋ ๋ถ์ ์ผ๋ก ๋ถ๋ฅํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
-
์์ฒญ ํ๋ผ๋ฏธํฐ (Request Parameter)
ํ๋ผ๋ฏธํฐ ํ์ ์ ํ ์ค๋ช ์ํ access_token V str ACCESS TOKEN ODMFKGLDICK20190601132625 sentence V str ํ๊ตญ์ด ๋๋ ์์ด๋ก ๊ตฌ์ฑ๋ ๋ฌธ์ฅ. ์ต๋ 128์. ์ํฅ๋ฏผ์ด ์ด๋ฒ ํด์ฅ์ผ๋ก 1๋ ๋์ 3๋ฒ์งธ ํด์ฅ์ ๊ธฐ๋กํ๋ค. -
์๋ต ํ๋ผ๋ฏธํฐ (Response Parameter)
ํ๋ผ๋ฏธํฐ ์ ํ ์ค๋ช ์ํ code int ์๋ต์ฝ๋ 200 sentence str ์์ฒญ๋ฌธ์ฅ ์ํฅ๋ฏผ์ ์ด๋ฒ ํด์ฅ์ผ๋ก 1๋ ๋์ 3๋ฒ์งธ ํด์ฅ์ ๊ธฐ๋กํ๋ค. sentiment str ๊ฐ์ฑ์์ค negative sentiment_score dict ใดpositive float ๊ธ์ ์ค์ฝ์ด 0.0339 ใดnegative float ๋ถ์ ์ค์ฝ์ด 0.9634 -
ํธ์ถ์์
Python Code (Request):
import requests URL = "http://api.teanaps.com" VERSION = "/v1" URL_PATTERN = "/text_analysis/sentiment" data = { "access_token": "ODMFKGLDICK20190601132625", "sentence": "์ํฅ๋ฏผ์ ์ด๋ฒ ํด์ฅ์ผ๋ก 1๋ ๋์ 3๋ฒ์งธ ํด์ฅ์ ๊ธฐ๋กํ๋ค." } url = URL + VERSION + URL_PATTERN r = requests.post(url, data=data) j = r.json() print(j)
Output (Response):
{ 'code': 200, 'sentence': '์ํฅ๋ฏผ์ ์ด๋ฒ ํด์ฅ์ผ๋ก 1๋ ๋์ 3๋ฒ์งธ ํด์ฅ์ ๊ธฐ๋กํ๋ค.', 'sentiment': 'negative', 'sentiment_score': { 'positive': 0.0339, 'negative': 0.9634 } }
์๋ต์ฝ๋
-
๊ณตํต ์๋ต์ฝ๋์ ๋๋ค.
Code Message DESC 200 Success ์์ฒญ์ด ์ ์ ์ฒ๋ฆฌ๋์์ต๋๋ค. 401 Incorrect request ์์ฒญ ํ๋ผ๋ฏธํฐ๊ฐ ์๋ชป๋์์ต๋๋ค. 402 Invalid ACCESS TOKEN ACCESS TOKEN์ด ์ ํจํ์ง ์์ต๋๋ค.