├── .gitignore ├── output.txt ├── README.md ├── input.txt └── main.py /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | 3 | venv 4 | -------------------------------------------------------------------------------- /output.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kengerlwl/PaperWeightLoss/HEAD/output.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 百度翻译工具 2 | 调用百度api进行翻译, 3 | 但是通过自动化操作,可以进行将中文再翻译成英文再翻译成中文,以达到去重的目的。 4 | 5 | ### 开发规划 6 | #### 1.0 7 | 在本地端实现基本的python翻译,使用文本txt。 8 | 9 | #### 1.1 10 | 考虑加上NLP库,进行,相关词语的最大相似度切换。 11 | 12 | #### 1.2 13 | 使用ml,或者dl进行文本语法是否有问题,(不过对于数据要求有点高,没有足够数据源) 14 | 15 | #### 2.0 16 | 开发出web界面,优化用户体验感。方便使用。 17 | -------------------------------------------------------------------------------- /input.txt: -------------------------------------------------------------------------------- 1 | 图像风格迁移功能中的前馈迁移部分的具体做法是利用pytorch搭建深度学习框架,搭建图像风格迁移的前馈神经网络,其网络参数通过加载保存在服务器端的不同模型参数文件来获得,从而实现不同风格特征迁移。 2 | 3 | 图像风格迁移中的另一部分,风格模型训练则需要在服务器端实现。利用pytorch在GPU服务器中搭建深度学习框架来实现风格模型训练功能。在GPU计算服务器上得到的风格模型通过数据库系统保存其必要信息,并将模型参数文件保存于服务器端。 4 | 5 | 分享社交功能以及个性化推荐功能涉及到数据库服务器与分布式计算服务器开发。个性化推荐中,向用户推荐的新风格通过在分布式计算服务器上处理数据得到。而GPU服务器与数据库服务器上实现的业务逻辑通过通信服务器与前端相联系。 6 | 7 | 服务器端开发由通信服务器开发、GPU服务器开发与数据库服务器开发组成。服务器端开发与前端开发共同组成了本图像风格转换应用开发。 -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | 2 | # 导入相关模块 3 | import hashlib 4 | import random 5 | import requests 6 | import time 7 | 8 | # 你的APP ID 9 | appID = '20200219000386130' 10 | # 你的密钥 11 | secretKey = 'FYNyhQRLtgbnzcYqqioj' 12 | # 百度翻译 API 的 HTTP 接口 13 | apiURL = 'http://api.fanyi.baidu.com/api/trans/vip/translate' 14 | 15 | 16 | def baiduAPI_translate(query_str, to_lang): 17 | ''' 18 | 传入待翻译的字符串和目标语言类型,请求 apiURL,自动检测传入的语言类型获得翻译结果 19 | :param query_str: 待翻译的字符串 20 | :param to_lang: 目标语言类型 21 | :return: 翻译结果字典 22 | ''' 23 | # 生成随机的 salt 值 24 | salt = str(random.randint(32768, 65536)) 25 | # 准备计算 sign 值需要的字符串 26 | pre_sign = appID + query_str + salt + secretKey 27 | # 计算 md5 生成 sign 28 | sign = hashlib.md5(pre_sign.encode()).hexdigest() 29 | # 请求 apiURL 所有需要的参数 30 | params = { 31 | 'q': query_str, 32 | 'from': 'auto', 33 | 'to': to_lang, 34 | 'appid': appID, 35 | 'salt':salt, 36 | 'sign': sign 37 | } 38 | try: 39 | # 直接将 params 和 apiURL 一起传入 requests.get() 函数 40 | response = requests.get(apiURL, params=params) 41 | # 获取返回的 json 数据 42 | result_dict = response.json() 43 | # 得到的结果正常则 return 44 | if 'trans_result' in result_dict: 45 | return result_dict 46 | else: 47 | print('Some errors occured:\n', result_dict) 48 | except Exception as e: 49 | print('Some errors occured: ', e) 50 | 51 | 52 | def baiduAPI_translate_main(query_str, dst_lang=''): 53 | ''' 54 | 解析翻译结果后输出,默认实现英汉互译 55 | :param query_str: 待翻译的字符串,必填 56 | :param dst_lang: 目标语言类型,可缺省 57 | :return: 翻译后的字符串 58 | ''' 59 | if dst_lang: 60 | # 指定了目标语言类型,则直接翻译成指定语言 61 | result_dict = baiduAPI_translate(query_str, dst_lang) 62 | else: 63 | # 未指定目标语言类型,则默认进行英汉互译 64 | result_dict = baiduAPI_translate(query_str, 'zh') 65 | if result_dict['from'] == 'zh': 66 | result_dict = baiduAPI_translate(query_str, 'en') 67 | # 提取翻译结果字符串,并输出返回 68 | dst = result_dict['trans_result'][0]['dst'] 69 | #print('{}: {} -> {}: {}'.format(result_dict['from'], query_str, result_dict['to'], dst)) 70 | return dst 71 | 72 | 73 | if __name__ == '__main__': 74 | 75 | with open('output.txt', 'w', encoding='UTF-8') as ouput: 76 | ouput.truncate() #清空文件 77 | 78 | 79 | with open('input.txt','r', encoding='UTF-8') as input: 80 | line = input.readline() 81 | 82 | while line: 83 | #如果该行为空,不循环,直接输出空 84 | if line.strip() == "" : 85 | line = input.readline() 86 | with open('output.txt', 'a') as ouput: 87 | ouput.write('\n') 88 | continue 89 | if(line == '' or line == ' '): 90 | continue 91 | # time.sleep(1) 92 | print(line) 93 | try: 94 | ans = baiduAPI_translate_main(line, 'en') # 这里调节参数选择中间层语言 95 | time.sleep(1) 96 | ans = baiduAPI_translate_main(ans, 'zh') 97 | 98 | print(ans) 99 | with open('output.txt', 'a') as ouput: 100 | ouput.write(ans + '\n') 101 | except Exception as e: 102 | print(e) 103 | 104 | line = input.readline() 105 | time.sleep(1) 106 | --------------------------------------------------------------------------------