레이블이 자동번역인 게시물을 표시합니다. 모든 게시물 표시
레이블이 자동번역인 게시물을 표시합니다. 모든 게시물 표시

2019년 1월 27일 일요일

python : 네이버 API(파파고)를 활용해 번역하기

네이버 API(파파고)를 활용해 번역하기

0. 네이버 애플리케이션 등록  

네이버 API를 사용하기 위해서는 'NAVER Developers > Application > 애플리케이션 등록' 메뉴에서 애플리케이션을 등록이 필요함

1. 기본 사용방법

import os, urllib
import requests

client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
def call_naver_api_papago_nmt(con_str, src, dest):
 encText = urllib.pathname2url(con_str)
 data = "source=" + src + "&target=" + dest + "&text=" + encText
 url = "https://openapi.naver.com/v1/papago/n2mt"
 headers = {'X-Naver-Client-Id': client_id
            , 'X-Naver-Client-Secret' : client_secret
            , 'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8' 
           }
 r = requests.post(url, headers=headers, data=data.encode("utf-8"))

 if(r.status_code==200):
     return r.text
 else:
     return "Error Code:" + r.status_code

con_str = "안녕하세요."
src = "ko"
dest = "en"
print call_naver_api_papago_nmt(con_str, src, dest)

결과
"message":{"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0","result":{"srcLangType":"ko","tarLangType":"en","translatedText":"Hello."}}}

1.1 다른 언어로 번역

con_str = "안녕하세요."
src = "ko"
dest = "ja"
print call_naver_api_papago_nmt(con_str, src, dest)

결과
{"message":{"@type":"response","@service":"naverservice.nmt.proxy","@version":"1.0.0","result":{"srcLangType":"ko","tarLangType":"ja","translatedText":"おはようございます"}}}

1.2 번역 가능한 언어 확인 

 개발 가이드 문서에 총 13개 언어를 사용할 수 있다고 함.
ko 한국어
en 영어
ja 일본어
zh-CN 중국어 간체
zh-TW 중국어 번체
vi 베트남어
id 인도네시아어
th 태국어
de 독일어
ru 러시아어
es 스페인어
it 이탈리아어
fr 프랑스어

3. ref 

https://developers.naver.com/docs/papago/papago-nmt-api-reference.md

python : googletrans 사용해 자동 번역하기

구글번역 라이브러리(googletrans) 활용해 번역하기

0. 패키지 설치

pip install googletrans

1. 기본 사용방법

from googletrans import Translator
translator = Translator()

tr_results = translator.translate('안녕하세요.')
print 'Trans(EN):', tr_results.text, tr_results.src, tr_results.dest
결과
Trans(EN): Hi. ko en
아무것도 입력하지 않는 경우 source = auto, destination = english 가 기본 셋팅 1.1 다른 언어로 번역
tr_results = translator.translate('안녕하세요.', src='ko', dest='ja')
print 'Trans(JA):', tr_results.text, tr_results.pronunciation
결과
Trans(JA): こんにちは。 Kon'nichiwa.
1.2 번역 가능한 언어 확인

import googletrans
print(googletrans.LANGUAGES)
{'gu': 'gujarati', 'gd': 'scots gaelic', 'ga': 'irish', 'gl': 'galician', 'lb': 'luxembourgish', 'la': 'latin', 'lo': 'lao', 'tr': 'turkish', 'lv': 'latvian', 'lt': 'lithuanian', 'th': 'thai', 'tg': 'tajik', 'te': 'telugu', 'fil': 'Filipino', 'haw': 'hawaiian', 'yi': 'yiddish', 'ceb': 'cebuano', 'yo': 'yoruba', 'de': 'german', 'da': 'danish', 'el': 'greek', 'eo': 'esperanto', 'en': 'english', 'eu': 'basque', 'et': 'estonian', 'es': 'spanish', 'ru': 'russian', 'zh-cn': 'chinese (simplified)', 'ro': 'romanian', 'be': 'belarusian', 'bg': 'bulgarian', 'uk': 'ukrainian', 'bn': 'bengali', 'jw': 'javanese', 'bs': 'bosnian', 'ja': 'japanese', 'xh': 'xhosa', 'co': 'corsican', 'ca': 'catalan', 'cy': 'welsh', 'cs': 'czech', 'ps': 'pashto', 'pt': 'portuguese', 'zh-tw': 'chinese (traditional)', 'tl': 'filipino', 'pa': 'punjabi', 'vi': 'vietnamese', 'pl': 'polish', 'hy': 'armenian', 'hr': 'croatian', 'ht': 'haitian creole', 'hu': 'hungarian', 'hmn': 'hmong', 'hi': 'hindi', 'ha': 'hausa', 'he': 'Hebrew', 'mg': 'malagasy', 'uz': 'uzbek', 'ml': 'malayalam', 'mn': 'mongolian', 'mi': 'maori', 'mk': 'macedonian', 'ur': 'urdu', 'mt': 'maltese', 'ms': 'malay', 'mr': 'marathi', 'ta': 'tamil', 'my': 'myanmar (burmese)', 'af': 'afrikaans', 'sw': 'swahili', 'is': 'icelandic', 'am': 'amharic', 'it': 'italian', 'iw': 'hebrew', 'sv': 'swedish', 'ar': 'arabic', 'su': 'sundanese', 'zu': 'zulu', 'az': 'azerbaijani', 'id': 'indonesian', 'ig': 'igbo', 'nl': 'dutch', 'no': 'norwegian', 'ne': 'nepali', 'ny': 'chichewa', 'fr': 'french', 'ku': 'kurdish (kurmanji)', 'fy': 'frisian', 'fa': 'persian', 'fi': 'finnish', 'ka': 'georgian', 'kk': 'kazakh', 'sr': 'serbian', 'sq': 'albanian', 'ko': 'korean', 'kn': 'kannada', 'km': 'khmer', 'st': 'sesotho', 'sk': 'slovak', 'si': 'sinhala', 'so': 'somali', 'sn': 'shona', 'sm': 'samoan', 'sl': 'slovenian', 'ky': 'kyrgyz', 'sd': 'sindhi'}
총 106개의 언어 확인 1.3 service URL 변경
translator = Translator(service_urls=[
      'translate.google.com',
      'translate.google.co.kr',
    ])

2. list로 된 여러 문장 번역하기

translations = translator.translate(['The quick brown fox', 'jumps over', 'the lazy dog'], dest='ko')
for translation in translations:
 print translation.origin, ' -> ', translation.text 
결과
The quick brown fox  ->  빠른 갈색 여우
jumps over  ->  점프하다
the lazy dog  ->  게으른 개

3. 언어 탐색

print translator.detect('이 문장은 한글로 쓰여졌습니다.')
print translator.detect('この文章は日本語で書かれました。')
print translator.detect('This sentence is written in English.')
print translator.detect('Tiu frazo estas skribita en Esperanto.')
print translator.detect('Esta frase está escrita en coreano.')

결과
Detected(lang=ko, confidence=1)
Detected(lang=ja, confidence=1)
Detected(lang=en, confidence=1)
Detected(lang=eo, confidence=1)
Detected(lang=es, confidence=0.85902715)
감지된 언어와 신뢰도가 표시됨

4.ref

https://github.com/ssut/py-googletrans

추천 게시물

python: SVD(Singular Value Decomposition)로 간단한 추천시스템 만들기( feat. surprise )

svd_example In [15]: # !pip install surprise In [21]: from...