티스토리 뷰

AI/NLP

KoNLPy-gRPC API 사용하기

체봄 2021. 2. 6. 20:50

커먼컴퓨터에서 제공하는 형태소 분석 무료 API인 'KoNLPy-gRPC'를 사용해볼 것이다. 

 

ainize.ai/minhoryang/KoNLPy-gRPC

 

minhoryang/KoNLPy-gRPC

Redesigned KoNLPy (Wrapper) for Usability and Portability with gRPC. [EXPERIMENTAL]

ainize.ai

 

 

Komoran 분석기의 명사를 뽑아내는 기능을 사용할 것이다.

(konlpy 패키지에서 가장 성능이 좋다고 할 수 있는 mecab 분석기가 원래 윈도우에서는 지원이 안되지만, 이 API를 통해서는 사용이 가능한 것을 확인했다! 띄어쓰기나 오타가 있는 경우에 높은 성능을 원하면 komoran 분석기를, 띄어쓰기나 오타가 없는 경우에 빠르고 높은 성능을 원하면 mecab 분석기를 사용하는 것을 추천한다)

 

 

'Try it out' - 'Execute' 버튼을 누르면 밑에 'Curl' 코드가 나온다.

내가 현재 python으로 코드 작업 중이므로, Curl을 python으로 변환이 필요하다.

egloos.zum.com/mcchae/v/11329948 이 블로그의 도움을 받았다. 블로그에 나온 링크에 들어가서 변환을 한다.

 

import requests

headers = {
    'accept': 'application/json',
    'Content-Type': 'application/json',
}

data = '{ "payload": "\uC548\uB155\uD558\uC138\uC694! \uC5EC\uAE30\uC5D0 \uD55C\uAD6D\uC5B4 \uBB38\uC7A5\uC744 \uC785\uB825\uD574\uC8FC\uC138\uC694. \uC800\uD76C\uAC00 \uCEF4\uD4E8\uD130\uB97C \uC774\uD574\uC2DC\uD0A4\uACA0\uC2B5\uB2C8\uB2E4."}'

response = requests.post('https://master-ko-nl-py-g-rpc-minhoryang.endpoint.ainize.ai/v0alpha/komoran/nouns', headers=headers, data=data)

Python requests에 변환된 코드는 위와 같다. 

이를 그대로 실행하면 이것저것 오류가 난다.

stackoverflow.com/questions/34508981/response-object-is-not-subscriptable-python-http-post-request/34509116#34509116?newreg=3096786b233a4d47adfc1f835b6ee993 

오류를 해결하는 데에 여러 곳을 참고했지만 특히 이 글이 가장 고마웠다ㅠㅠ

수정한 코드는 다음과 같다.

-*- coding: utf-8 -*-

import requests

headers = {
    'accept': 'application/json',
    'Content-Type': 'application/json',
}

data = '{ "payload": "안녕하세요! 여기에 한국어 문장을 입력해주세요. 저희가 컴퓨터를 이해시키겠습니다."}'

response = requests.post('https://master-ko-nl-py-g-rpc-minhoryang.endpoint.ainize.ai/v0alpha/komoran/nouns', headers=headers, data=data.encode('utf-8'))
response_data = response.json()

print(response_data['results'])	# 결과 출력

 

 

기존에 konlpy 패키지에 있는 Komoran 모듈을 사용했었는데, konlpy를 사용하려면 Java, jdk, JPype를 설치하고 필요한 과정이 많아서 굉장히 번거로웠다.

하지만 KoNLPy-gRPC API는 이런 과정을 거치지 않아도 되고, 오류를 해결하는데 시간이 걸리긴 했지만 굉장히 간편하고, 심지어 속도도 훨씬 빠르다!!

(처음엔 사용법을 몰라서 깃 클론하고 이것저것 모듈 설치하고 실행해보려고 했는데 정말 에러가 답이 없었다,,)

(로컬 파이썬 환경에서는 문제 없이 잘 되었는데, 장고 웹 위에 올리니 에러가 발생하는 문제점이 있었다ㅠㅠ 인코딩 관련 에러가 많이 떴는데 인코딩을 아무리 utf-8로 바꿔주어도 해결되지 않았다..)

반응형

댓글