上一篇介绍了python构造http请求的方式向google的服务器发起翻译请求。其实google也提供了本地client的形式,不用自己构造HTTP 请求,安装google提供的客户端,然后调用客户端发起翻译请求即可,操作如下:
1,安装google云服务模块以及云翻译模块,命令如下
pip install --upgrade google-cloud
pip install --upgrade google-cloud-translate
2,合法性认证,通常使用这种方式调用google的服务是收费的,因此需要认证,如果没有认证,运行程序(例如后文中的示例程序)会提示需要认证,到这里
,按照操作进行认证即可。
3,第二步的操作页面中,最后给出了python的示例方法,但是介绍不是很全面,其也提供了github链接,该链接有丰富的示例,见这里
在路径python-docs-samples/translate/cloud-client/quickstart.py
中给出了快速调用客户端翻译的程序代码。在路径python-docs-samples/translate/cloud-client/snippets.py
中给出了detect_language(语言检测),translate_text(翻译文本)等常见的翻译方法的调用,直接拿过来使用即可,非常的方便。当然官方给出了API文档,见这里
如下是一个调用的示例,基本参考的是官方给出的示例。
# encoding: utf-8
from google.cloud import translate
def detect_language(text):
# [START translate_detect_language]
"""Detects the text's language."""
translate_client = translate.Client()
# Text can also be a sequence of strings, in which case this method
# will return a sequence of results for each text.
result = translate_client.detect_language(text)
print('Text: {}'.format(text))
print('Confidence: {}'.format(result['confidence']))
print('Language: {}'.format(result['language']))
# [END translate_detect_language]
def translate_text(target, text):
# [START translate_translate_text]
"""Translates text into the target language.
Target must be an ISO 639-1 language code.
See https://g.co/cloud/translate/v2/translate-reference#supported_languages
"""
translate_client = translate.Client()
#if isinstance (text, six.binary_type):
#text = text.decode('utf-8')
# Text can also be a sequence of strings, in which case this method
# will return a sequence of results for each text.
result = translate_client.translate(
text, target_language=target)
print(u'Text: {}'.format(result['input']))
print(u'Translation: {}'.format(result['translatedText']))
print(u'Detected source language: {}'.format(
result['detectedSourceLanguage']))
# [END translate_translate_text]
if __name__ == '__main__':
text = u'Teknoloji haberleri ve ürün incelemeleri, iPhone 6s, iPhone 6s Plus, LG G4, Samsung, Galaxy S6, Note 5, HTC One M9, Note 4, Sony Xperia z5'
#text_test = "hell world"
target = 'zh-cn'
translate_text(target,text)
target = 'en'
translate_text(target,text)
#detect_language(text_test)
google 客户端的形式本质上也是封装了上一篇文章中介绍的HTTP请求,针对请求异常做了一些处理,因此直接使用客户端的形式避免了很多的麻烦,当然值得注意的是这种方式也是需要付费的。
本文为优快云村中少年原创文章,转载记得加上小尾巴偶,博主链接这里。