|
- import requests
- import time
- import os
-
- def Tongyan_Translate(sentences=None,direction=None,PyTorch_REST_API_URL = 'http://192.168.202.130:5000/predict'):
- c_lgs=['中文(zh)','意大利语(it)','德语(de)','捷克语(cs)','荷兰语(nl)','葡萄牙语(pt)','印尼语(id)','保加利亚语(bg)','波斯尼亚(bs)',
- '波斯尼亚(bs)','希腊语(el)','波斯语(fa)','克罗地亚语(hr)','匈牙利语(hu)','爱沙尼亚语(et)','希伯来语(he)',
- '斯洛文尼亚(sl)','波兰语(pl)','土耳其语(tr)','乌尔都语(ur)']
- lgs=['zh','it','de','cs','nl','pt','id','bg','bs','bs','el','fa','hr','hu','et','he','sl','pl','tr','ur']
- src,tgt=direction.split("-")
- if src not in lgs or tgt not in lgs:
- print(f"参数<direction>请在下面集合中的语言按照xx-xx的格式输入: \n{','.join(c_lgs)}")
- return None
- else:
- payload = {'data': [direction,sentences]}
- # Submit the request.
- r = requests.post(PyTorch_REST_API_URL, data=payload).json()
- if r['success']:
- translations=[sent for sent in enumerate(r['predictions'])]
- return translations
- else:
- print(r)
- return None
- if __name__ == '__main__':
-
- langs = ['zh','it','de','cs','nl','pt','id','bg','bs','bs','el','fa','hr','hu','et','he','sl','pl','tr','ur']
- for lang in langs:
- if lang == 'zh' & 'de':
- continue
-
- with open('test-silu/' + lang +'.devtest','r',encoding='utf-8') as f:
- lines=f.readlines()
-
- f.close()
-
- direction = lang + '-zh'
-
- times = []
- total_time = 0
- i = 0
- pt = r'result_tongyan'
- os.makedirs(pt + '/' + lang +'/')
- print('translation start | ' + lang + '2zh')
-
- with open(pt + '/' + lang + '/' + lang + '2zh.test','w') as f:
-
- for line in lines:
-
- sentences = [line]
- starttime = time.time()
- res=Tongyan_Translate(sentences=sentences,direction=direction)
- endtime = time.time()
- response_time = endtime - starttime
- times.append(response_time)
- total_time += response_time
- i += 1
- f.writelines(res[0][1])
- f.writelines('\n')
- print(str(i) + '.' + res[0][1])
-
- f.close()
-
- everage_response_time = total_time / i
-
- with open(pt + '/' + lang + '/' + lang + '2zh.txt','w') as f:
-
- for tm in times:
- f.writelines(str(tm))
- f.writelines('\n')
-
- f.writelines('total_time:'+str(total_time))
- f.writelines('\n')
- f.writelines('everage_response_time:'+str(everage_response_time))
-
- f.close()
- print('total_time')
- print(total_time)
- print('everage_response_time')
- print(everage_response_time)
- print('translation completed')
- print('--------------------------------------------------------------------------')
-
-
|