如何使用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库中的MarianMTModel和MarianTokenizer来实现端到端的翻译。
无论你选择哪种方法,都需要通过申请API密钥或下载模型来进行中文机器翻译。请遵循相关的服务条款和授权规定。
