寒假闲暇无事,正好有一个朋友写论文,让我写个脚本帮助其降重

本脚本利用百度翻译api进行,原理非常简单:中文翻译中文,也就是说先利用中文翻译成外国语言,再将其翻译成为中文。

在input输入需要翻译的文字,然后通过powershell运行,就能在powershell窗口或者output文件夹获取降重结果。

你需要自己申请一个百度翻译的接口,将你自己的APP ID与密钥分别写入图示1与2的位置。

百度翻译api申请

然后直接运行就行了。

签名生成方法

签名是为了保证调用安全,使用 MD5 算法生成的一段字符串,生成的签名长度为 32 位,签名中的英文字符均为小写格式。

生成方法:

Step1. 将请求参数中的 APPID(appid), 翻译 query(q,注意为UTF-8编码),随机数(salt),以及平台分配的密钥(可在管理控制台查看) 按照 appid+q+salt+密钥的顺序拼接得到字符串 1。
Step2. 对字符串 1 做 md5 ,得到 32 位小写的 sign。
注:
1. 待翻译文本(q)需为 UTF-8 编码;
2. 在生成签名拼接 appid+q+salt+密钥 字符串时,q 不需要做 URL encode,在生成签名之后,发送 HTTP 请求之前才需要对要发送的待翻译文本字段 q 做 URL encode
3.如遇到报 54001 签名错误,请检查您的签名生成方法是否正确,在对 sign 进行拼接和加密时,q 不需要做 URL encode,很多开发者遇到签名报错均是由于拼接 sign 前就做了 URL encode;
4.在生成签名后,发送 HTTP 请求时,如果将 query 拼接在 url 上,需要对 query 做 URL encode。

输入参数

请求方式: 可使用 GET 或 POST 方式,如使用 POST 方式,Content-Type 请指定为:application/x-www-form-urlencoded
字符编码:统一采用 UTF-8 编码格式
query 长度:为保证翻译质量,请将单次请求长度控制在 6000 bytes以内(汉字约为输入参数 2000 个)

字段名 类型 是否必填 描述 备注
q string 请求翻译query UTF-8编码
from string 翻译源语言 可设置为auto
to string 翻译目标语言 不可设置为auto
appid string APP ID 可在管理控制台查看
salt string 随机数 可为字母或数字的字符串
sign string 签名 appid+q+salt+密钥的MD5值
以下字段仅开通了词典、TTS用户需要填写
tts integer 是否显示语音合成资源 0-显示1-不显示
dict integer 是否显示词典资源 0-显示1-不显示
以下字段仅开通了”我的术语库“用户需要填写
action integer 判断是否需要使用自定义术语干预API 1-是0-否

输出参数

返回的结果是json格式,包含以下字段:

字段名 类型 描述 备注
from string 源语言 返回用户指定的语言,或者自动检测出的语种(源语言设为 auto 时)
to string 目标语言 返回用户指定的目标语言
trans_result array 翻译结果 返回翻译结果,包括 src 和 dst 字段
trans_result.*.src string 原文 接入举例中的“apple”
trans_result.*dst string 译文 接入举例中的“苹果”
error_code integer 错误码 仅当出现错误时显示
以下字段仅开通了词典、TTS用户可见
src_tts string 原文tts链接 mp3格式,暂时无法指定发音
dst_tts string 译文tts链接 mp3格式,暂时无法指定发音
dict string 中英词典资源 返回中文或英文词典资源,包含音标,简明释义等内容

接入举例

例如:将英文单词 apple 翻译成中文:

请求参数

q=apple
from=en
to=zh
appid=2015063000000001(请替换为您的appid)
salt=1435660288(随机码)
平台分配的密钥: 12345678

生成签名sign:

step1:拼接字符串1:

拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678得到                       字符串1:“2015063000000001apple143566028812345678”

step2:计算签名:(对字符串1做md5加密)

sign=md5(2015063000000001apple143566028812345678),得到sign=f89f9594663708c1605f3d736d01d2d4

拼接完整的请求如下:

http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4

主要代码如下

# 导入相关模块
import hashlib
import random
import requests
import time# 你的APP ID
appID = '***************'
# 你的密钥
secretKey = '***************'
# 百度翻译 API 的 HTTP 接口
apiURL = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
def baiduAPI_translate(query_str, to_lang):'''传入待翻译的字符串和目标语言类型,请求 apiURL,自动检测传入的语言类型获得翻译结果:param query_str: 待翻译的字符串:param to_lang: 目标语言类型:return: 翻译结果字典'''# 生成随机的 salt 值salt = str(random.randint(32768, 65536))# 准备计算 sign 值需要的字符串pre_sign = appID + query_str + salt + secretKey# 计算 md5 生成 signsign = hashlib.md5(pre_sign.encode()).hexdigest()# 请求 apiURL 所有需要的参数params = {'q': query_str,'from': 'auto','to': to_lang,'appid': appID,'salt':salt,'sign': sign}try:# 直接将 params 和 apiURL 一起传入 requests.get() 函数response = requests.get(apiURL, params=params)# 获取返回的 json 数据result_dict = response.json()# 得到的结果正常则 returnif 'trans_result' in result_dict:return result_dictelse:print('Some errors occured:\n', result_dict)except Exception as e:print('Some errors occured: ', e)def baiduAPI_translate_main(query_str, dst_lang=''):'''解析翻译结果后输出,默认实现英汉互译:param query_str: 待翻译的字符串,必填:param dst_lang: 目标语言类型,可缺省:return: 翻译后的字符串'''if dst_lang:# 指定了目标语言类型,则直接翻译成指定语言result_dict = baiduAPI_translate(query_str, dst_lang)else:# 未指定目标语言类型,则默认进行英汉互译result_dict = baiduAPI_translate(query_str, 'zh')if result_dict['from'] == 'zh':result_dict = baiduAPI_translate(query_str, 'en')# 提取翻译结果字符串,并输出返回dst = result_dict['trans_result'][0]['dst']#print('{}: {} -> {}: {}'.format(result_dict['from'], query_str, result_dict['to'], dst))return dstif __name__ == '__main__':with open('output.txt', 'w', encoding='UTF-8') as ouput:ouput.truncate()   #清空文件with open('input.txt','r', encoding='UTF-8') as input:line = input.readline()while line:#如果该行为空,不循环,直接输出空if line.strip() == "" :line = input.readline()with open('output.txt', 'a') as ouput:ouput.write('\n')continueif(line == '' or line == ' '):continue# time.sleep(1)print(line)try:ans = baiduAPI_translate_main(line, 'en') # 这里调节参数选择中间层语言time.sleep(1)ans = baiduAPI_translate_main(ans, 'zh')print(ans)with open('output.txt', 'a') as ouput:ouput.write(ans + '\n')except Exception as e:print(e)line = input.readline()time.sleep(1)

想下载参考的可以点下面链接

资源下载

基于python的一个论文降重脚本相关推荐

  1. 论文降重脚本思路(根据词性)

    紧跟着上一次的利用Synonyms库对论文进行降重,期间发现了使用上一版本的会出现文章与降重后的意思完全不一样,所以这次我是用了根据词性进行精准降重(例如只针对副词.形容词等等) Synonyms库对 ...

  2. ChatGPT论文降重:从97%到5%

    ChatGPT在学术论文方面的功能非常强大,能够一键辅助你完成各种复杂的学术任务和课题,然而ChatGPT在论文降重上的表现就像一个"傻子". 当你用ChatGPT给论文降重的时候 ...

  3. 开源免费,electron+python制作图形化论文降重PC端工具

    小程序 为了更方便用户使用,也制作了免费"永久论文降重"微信小程序,具备更多的降重功能,欢迎体验. PC端论文降重工具 开源项目地址 https://github.com/imok ...

  4. 6论文降重小技巧(建议收藏)

    论文降重小技巧(建议收藏) 今天给大家分享一下论文降重几个方法,希望对大家降重有帮助,喜欢的收藏加关注哦 一.文字叙述转换成表格形式 第一个降重小技巧是有科学依据的,依据就是"中国知网检测系 ...

  5. 如何使用Chatgpt做论文降重呢?

    使用ChatGPT做论文降重详细操作步骤 一.说明 1.普通的降重方法有:多重翻译降重.改写润色降重.续写降重,在降重的过程中可以配合使用,效果更加. 2.ChatGPT的高级降重方法在最后一个,就是 ...

  6. 临近毕业季,您不需要一款论文降重工具保驾护航吗?

    临近毕业季,相信论文查重又一次成为一年一度的毕业生难题.有时候即便是自己一个一个码上去的,但还是和已发表的文献资料有极高的相似性.那么有没有什么好的办法可以高效辅助论文降重呢?答案是肯定的.今天就给大 ...

  7. 重视论文降重,应对论文查重

    声明:提供此文章,不是为了作弊去完全依赖AI写论文,AI也不具备这个写通篇文章的努力,只是让需要的同学了解强大AI能力,可以减少冗杂的工作量,去做更有意义的事情. 论文查重始终是萦绕在准毕业生们头上的 ...

  8. 毕业生查重必备!!论文降重小技巧 + 查重网站哪家强

    我们学校有三次查重机会,所以第一次我头一热没有自己降重,就直接上传了.重复率44%,所以在多数人不需要担心是否在30%以内时,我就很惴惴不安,要努力降重!以下就介绍了我写论文的降重方法和查重网站的使用 ...

  9. python写mysql脚本_使用python写一个监控mysql的脚本,在zabbix web上加上模板

    使用python写一个监控mysql的脚本,在zabbix web上加上模板: ##先使用MySQLdb的接口关联数据库. [root@cml python]# cat check_Mysql_cus ...

  10. python开发的著名软件公司_软件开发公司_软件外包_项目外包平台基于Python开发一个全文检索系统...

    基于Python开发一个全文检索系统.功能要求为: 使用全文检索引擎对文本进行检索.文本的格式为Word.PDF.TXT. 同时按数据域进行复合条件检索.数据域指文本对应的信息,例如创建人.文件编号. ...

最新文章

  1. android——ImageLoader添加缓存
  2. postgresql中代理键
  3. 上海巨人网络参与网络诈骗整个流程
  4. 基于倒谱法和线性预测法估计基音频率(MATLAB和Python)
  5. c语言期末作业自己设计个小程序,帮看一个小程序吧,c语言期末考…求求各位大神了...
  6. PHP怎么做一个加法口诀,神奇的手指速算口诀,100以内的加减法一分钟学会
  7. spark写出分布式的训练算法_利用 Spark 和 scikit-learn 将你的模型训练加快 100 倍...
  8. 新手上路之django项目开发(二)-----mysql数据库配置及其增删改查操作
  9. javascript写的关于静态页面获取URL传递参数的函数[原创]
  10. Mysql执行计划查看
  11. linux dhcp客户端配置文件,各个版本DHCP配置文件的整理
  12. 【python基础知识】Tkinter基础
  13. python一个星期可以入门吗_Python一星期入门第6篇: 模块和包
  14. Delphi 10.3 Rio实现FMX应用APP增加Android“应用程序快捷方式”
  15. 工商银行发消息说5星级服务器,工商银行5星级客户多吗?会刷星你也可以..
  16. 减肥日志:100天40斤!!
  17. 简单python3D绘图---Axes3D
  18. html excel导出的路径,html 导出多个excel表格数据-如何将html页面中的表格导出到excel表格...
  19. 魅族16th完美开启Usb调试模式的经验
  20. 软件测试基础知识汇总(问答篇)

热门文章

  1. 用matlab如何画六边形,matlab怎样直接画出六边形
  2. 最新版idm下载器(Internet Download Manager)视频嗅探神器
  3. Eduline在线教育系统源码 带完整修复后台
  4. 数据挖掘中的KNN算法实现论文
  5. 《Java语言程序设计》(基础篇原书第10版)第五章复习题答案
  6. 【活动】完整的Java学习路径《深入理解Java核心技术》(文末送书)
  7. Effective Modern C++42招独家技巧助你改善C++11和C++14的高效用法笔记
  8. ArcGis CityEngine 下载地址
  9. 如何学好C语言程序设计?
  10. c语言程序设计身高体重测评系统,C语言程序设计验.doc