欢迎访问宙启技术站
智能推送

Python中如何实现中文翻译功能

发布时间:2023-12-24 05:24:58

要实现中文翻译功能,可以使用Python中的机器翻译API。以下是使用百度翻译API和有道翻译API进行中文翻译的示例代码,代码中使用了requests库发送HTTP请求并处理返回的JSON数据。

1. 使用百度翻译API进行中文翻译:

import requests
import json

def baidu_translate(text, from_lang, to_lang):
    # 设置API请求地址和参数
    url = 'https://fanyi.baidu.com/sug'
    headers = {
        'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
    }
    data = {
        'kw': text,
        'from': from_lang,
        'to': to_lang
    }

    # 发送POST请求并获取返回结果
    response = requests.post(url, headers=headers, data=data)
    result = response.json()

    # 提取翻译结果并返回
    translate_result = result['data'][0]['v']
    return translate_result

if __name__ == '__main__':
    text = '机器学习'
    from_lang = 'zh'
    to_lang = 'en'
    translated_text = baidu_translate(text, from_lang, to_lang)
    print(f'{text} 的翻译结果是:{translated_text}')

在上述代码中,baidu_translate函数接受待翻译的文本、源语言和目标语言作为参数。使用POST请求将文本发送给百度翻译API,并将返回的JSON结果解析提取出翻译结果。

2. 使用有道翻译API进行中文翻译:

import requests
import json
import hashlib
import random

def youdao_translate(text, from_lang, to_lang):
    # 设置API请求地址和参数
    url = 'https://openapi.youdao.com/api'
    app_key = 'your_app_key'  # 替换为你的有道翻译API应用ID
    app_secret = 'your_app_secret'  # 替换为你的有道翻译API应用密钥
    salt = random.randint(1, 65536)
    sign = hashlib.md5((app_key + text + str(salt) + app_secret).encode()).hexdigest()

    params = {
        'q': text,
        'from': from_lang,
        'to': to_lang,
        'appKey': app_key,
        'salt': str(salt),
        'sign': sign
    }

    # 发送GET请求并获取返回结果
    response = requests.get(url, params=params)
    result = response.json()

    # 提取翻译结果并返回
    translate_result = result['translation'][0]
    return translate_result

if __name__ == '__main__':
    text = '机器学习'
    from_lang = 'zh-CHS'
    to_lang = 'en'
    translated_text = youdao_translate(text, from_lang, to_lang)
    print(f'{text} 的翻译结果是:{translated_text}')

在上述代码中,youdao_translate函数接受待翻译的文本、源语言和目标语言作为参数。首先生成一个随机的salt,根据app_key、待翻译文本、salt和app_secret生成签名,然后将参数和签名通过GET请求发送给有道翻译API,并将返回的JSON结果解析提取出翻译结果。

以上就是使用Python实现中文翻译功能的示例代码。根据不同的需求,可以选择适合的机器翻译API和对应的参数进行调用,以实现中文翻译的功能。