基于百度翻译API实现多语种间的互译


前言

鉴于英文水平有限,读相关外文学术论文实在是困得要死,就想着能不能通过调用百度翻译API实现固定格式文字的多语种翻译工作,试了一下成功了。下面分享一下其思路与代码。
数据格式如下:
在这里插入图片描述
百度翻译api申请网址:https://api.fanyi.baidu.com/
对于个人账户而言,每月翻译字符数低于200万,享免费服务;超过200万字符,按照49元/百万字符支付当月超出部分字符量费用。


1.导入库和数据

import requests
import random 
import json
import pandas as pd
from hashlib import md5 
from tqdm import tqdm

df = pd.read_excel(r'001.xlsx')

2.设置appid和appkey

# 输入自己申请的id和key
appid = 'xxxxxxxxxx'
appkey = 'xxxxxxxxxxxxxxxx'

3.调用百度翻译api获取翻译后的内容

def baidu_translate(api, key, content):

    appid = api
    appkey = key # 设置你自己的appid/appkey
	
    from_lang = 'en'
    to_lang =  'zh' #设置语言代码,本次实现的英译汉
	
    endpoint = 'http://api.fanyi.baidu.com'
    path = '/api/trans/vip/translate'
    url = endpoint + path #配置url

    query = content
	
    def make_md5(s, encoding='utf-8'):
        return md5(s.encode(encoding)).hexdigest() 
    salt = random.randint(32768, 65536)
    sign = make_md5(appid + query + str(salt) + appkey) #基于md5算法生成加密后的字符串
    
    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    payload = {'appid': appid, 'q': query, 'from': from_lang, 'to': to_lang, 'salt': salt, 'sign': sign}
    r = requests.post(url, params=payload, headers=headers) # 构造request请求
    result = r.json()
    return result['trans_result'][0]['dst'] #返回翻译后的内容

4.数据导出

title_list = [] #中文题目
abstract_list = [] #中文摘要
for i in tqdm(df['题目']):
    title_list.append(baidu_translate(appid, appkey, i))
for i in tqdm(df['摘要_英文']):
    abstract_list.append(baidu_translate(appid, appkey, i))
  
df['题目_中文'] = title_list
df['摘要_中文'] = abstract_list
df.to_excel(r'output.xlsx')

导出后的数据格式如下所示:
[外链图片转存失败,源站可能有防盗以上就是]!链机制,建https://(img-7Kblog.csdnimg.c1afeff813c98462ba68d8c939d9c967.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNDEyMjc8214NDc=,size_20,color_FFFFFF,t_70,g_se,x_16)https://img-blog.csdnig.cn/1afeff813c984681ba68d8c939d9c967.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNDEyMjc4NDc=,size_20,color_FFFFFF,t_70,g_se,x_16)]


总结

本文主要通过调用百度翻译API实现了英语to汉语的翻译。当然,修改相关的参数,也自然可以实现其他语种之间的互译。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃面条的陈同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值