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

如何使用Python进行中文机器翻译

发布时间:2024-01-08 07:34:47

要使用Python进行中文机器翻译,可以使用相关的开源库或API。下面是一个使用Python进行中文机器翻译的示例,包括使用百度翻译API和使用OpenNMT进行翻译。

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

import requests

def translate_baidu(query):
    url = 'https://fanyi.baidu.com/sug'
    data = {
        'kw': query.strip(),
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0;Win64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    }
    
    response = requests.post(url, headers=headers, data=data)
    if response.status_code == 200:
        result = response.json()
        if 'data' in result:
            return result['data'][0]['v']
    return None

query = '你好'
translation = translate_baidu(query)
if translation:
    print(f'"{query}"的翻译结果是:{translation}')
else:
    print('翻译失败')

2. 使用OpenNMT进行翻译:

from transformers import MarianMTModel, MarianTokenizer

def translate_opennmt(query):
    model_name = 'tum-mt/tu-de'
    tokenizer = MarianTokenizer.from_pretrained(model_name)
    model = MarianMTModel.from_pretrained(model_name)

    inputs = tokenizer.encode(query, return_tensors='pt')
    outputs = model.generate(inputs, max_length=128, num_beams=4, early_stopping=True)
    translation = tokenizer.decode(outputs[0], skip_special_tokens=True)

    return translation

query = '你好'
translation = translate_opennmt(query)
print(f'"{query}"的翻译结果是:{translation}')

在上述示例中, 个例子使用了百度翻译API,需要发送POST请求到百度翻译接口,并按照API指定的方式处理返回的JSON结果。第二个例子使用了Hugging Face的Transformers库中的MarianMTModelMarianTokenizer来实现端到端的翻译。

无论你选择哪种方法,都需要通过申请API密钥或下载模型来进行中文机器翻译。请遵循相关的服务条款和授权规定。