最近在研究语音识别,主要是维语、藏语等小众语言的识别,调用 JTHS 的SDK后,识别结果是维文或者藏文,看不懂啊,必须要翻译成汉语才行,于是又调用 JTHS 官方提供的Web API,但是成功率太低,反馈给技术人员,暂未得到解决,很是失望。于是在网上找到了“中国民族语文翻译局”,这里刚好有这些特殊语种的翻译,于是研究一番,就着手写了Python和C#版本的翻译接口。效果还不错,于是写篇文章记录下。

话不多说,直接贴代码。

Python版

#!/usr/bin/env python

# -*- encoding: utf-8 -*-

'''

@Author : Anuo.

@License : (C) Copyright 2019, Anuo's Studio

@Contact : 188512936@qq.com

@Software: VS2017

@File: mzywfyj_spider.py

@Time: Feb 20,2019

@Desc: 中国民族语文翻译局,翻译爬虫,网址:http://www.mzywfy.org.cn/translate.jsp

'''

import urllib.request

import urllib.parse

import json

def mzywfyj_translate(trans_text, trans_from, trans_to, trans_url):

'''翻译'''

mzywfyj_url = "http://www.mzywfy.org.cn/ajaxservlet"

data = {}

data['src_text'] = trans_text

data['from'] = trans_from

data['to'] = trans_to

data['url'] = trans_url

data = urllib.parse.urlencode(data).encode('utf-8')

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"}

headers['Referer'] = 'http://www.mzywfy.org.cn/translate.jsp'; # 这个头必须加,不然不能成功

fanyi_re = urllib.request.Request(mzywfyj_url, data, headers)

fanyi_response = urllib.request.urlopen(fanyi_re)

ret = fanyi_response.read().decode('utf-8')

print(ret)

if __name__ == "__main__":

# 可以根据自己的需要设置参数,然后调用方法mzywfyj_translate()

# 汉文 -> 维吾尔文

trans_text = '你好'

trans_from = 'zh'

trans_to = 'uy'

trans_url = 2

mzywfyj_translate(trans_text, trans_from, trans_to, trans_url)

# 维吾尔文 -> 汉文

trans_text = ' '

trans_from = 'uy'

trans_to = 'zh'

trans_url = 7

mzywfyj_translate(trans_text, trans_from, trans_to, trans_url)

# 汉文 -> 藏文

trans_text = '你好'

trans_from = 'zh'

trans_to = 'ti'

trans_url = 1

mzywfyj_translate(trans_text, trans_from, trans_to, trans_url)

# 藏文 -> 汉文

trans_text = 'སྐུ་ཁམས་བཟང་'

trans_from = 'ti'

trans_to = 'zh'

trans_url = 6

mzywfyj_translate(trans_text, trans_from, trans_to, trans_url)

# 汉文 -> 蒙古文

trans_text = '你好'

trans_from = 'zh'

trans_to = 'mo'

trans_url = 0

mzywfyj_translate(trans_text, trans_from, trans_to, trans_url)

# 蒙古文 -> 汉文

trans_text = '︽ ᠰᠠᠢᠢᠨ ᠪᠠᠶᠢᠨ᠎ᠠ ᠤᠣ ︖ '

trans_from = 'mo'

trans_to = 'zh'

trans_url = 5

mzywfyj_translate(trans_text, trans_from, trans_to, trans_url)

C#版

///

/// 翻译

///

/// 需要翻译的内容

/// 翻译成功返回翻译结果,翻译失败返回错误信息

/// 翻译成功失败,true-成功;false-失败

public bool Translate(string transText, string from, string to, string url, out string transResult)

{

transResult = "";

string requestUrl = "http://www.mzywfy.org.cn/ajaxservlet";

try

{

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUrl);

request.Timeout = 5000;

request.Method = "POST";

request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";

request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36";

request.Accept = "application/json, text/javascript, */*; q=0.01";

request.Referer = "http://www.mzywfy.org.cn/translate.jsp";

string send = string.Format("src_text={0}&from={1}&to={2}&url={3}", transText, from, to, url);

byte[] postData = Encoding.UTF8.GetBytes(send);

request.ContentLength = postData.Length;

Stream stream = request.GetRequestStream();

stream.Write(postData, 0, postData.Length);

stream.Close();

stream.Dispose();

bool success = false;

using (HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse())

using (StreamReader responseStream = new StreamReader(webResponse.GetResponseStream()))

{

if (webResponse.StatusCode == HttpStatusCode.OK)

{

success = true;

string retJson = responseStream.ReadToEnd();

JObject jo = (JObject)JsonConvert.DeserializeObject(retJson); // 需要引用 Newtonsoft.Json.dll

transResult = jo["tgt_text"].ToString().Trim();

}

}

return success;

}

catch (Exception ex)

{

transResult = ex.ToString();

return false;

}

}

python维语翻译中文_维文、藏文等特殊语种翻译相关推荐

  1. python维语翻译中文_维族语言在线翻译

    展开全部 中文:"请保持环境卫生": 维族语:"مۇھىت تازىلىقىنى ساقلاڭ". 扩展资料 以上翻3231313335323631343130 ...

  2. 维汉在线翻译电脑版_支持汉语维吾尔语互译_维文翻译汉语和维语学习

    维汉在线翻译电脑版,现在可以免费试用,维文智能翻译和文字识别可以帮助我们工作还有学习维语. 可以支持维汉互译,即维语翻译成汉语,汉语翻译成维语,还可以把英语也翻译成维语等等. 现在看下它的文字识别功能 ...

  3. python word 合并单元格_在word文档选项卡中检测合并单元格

    一点背景 我有一个软件规范,我需要以表格的形式解析需求.它们的格式也不总是相同的.我继承了一个python脚本,它使用win32com解析word文档,然后openpyxl将需求导出到excel文件, ...

  4. python读取文件名有中文_[请教]python的中文文件名处理

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 3 楼的可以用 sys.getfilesystemencoding 检测,但由於文件系统的差异,文件名 100% 无损转还是不太可,比如很多 *nix 的 ...

  5. 为什么python用不了中文_【TK例子】为什么不显示中文

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 代码如下: #!/usr/bin/env python #codec='utf-8' import os from time import sleep f ...

  6. python编译器如何设置中文_如何使setup.py test使用特定的fortran编译器?

    我正在尝试测试一个包含一些f90文件的package.如果我构建或安装并指定fortran编译器,它可以正常工作.但是,当我尝试测试时,会出现以下错误:C:\Users\jsalvatier\work ...

  7. python不能安装在中文_无法在Python上安装表

    我一直收到错误Command "python setup.py egg_info" failed with error code 1 in C:\Users\HP\AppData\ ...

  8. python随机森林特征重要性_基于随机森林识别特征重要性(翻译)

    博主Slav Ivanov 的文章<Identifying churn drivers with Random Forests >部分内容翻译.博主有一款自己的产品RetainKit,用A ...

  9. python判断字符串包含中文_高手接招! 小应用 用python3判断一个字符串是不是中文组成的...

    在python3中,str默认是unicode编码 用 ord() 函数判断单个字符的unicode编码是否大于255即可. 一般来说,中文常用字的范围是:[\u4e00-\u9fa5] 准确点判断中 ...

最新文章

  1. matlab欧拉迭代,matlab机械臂正逆运动学求解问题,使用牛顿-欧拉迭代算法
  2. Docker系列 三. Docker安装mysql
  3. 适用于 Python 的 10 大最佳 IDE,你 Pick 哪一款?
  4. redis之sorted sets类型及操作
  5. T-SQL with as 关键字
  6. matlab中的logspace,matlab中的logspace(a,b,n)究竟怎么理解,看下例题,谁能详细解给我看...
  7. 最近让我焦灼的四个问题
  8. php图像生成和处理,PHP的gd库(图像生成和处理)的应用
  9. 绿米开关如何重置_绿米智能开关评测
  10. (后台)Openbravo如何实现业务事件监听处理
  11. 灰色关联分析法详细步骤解释
  12. EFF 测试 Privacy Badger,禁止第三方跟踪
  13. nginx配置修改使404,500,502等nginx错误输出前端可识别json
  14. 微信公众号wx.getlocation
  15. 容器编排工具—Kubernetes
  16. 第 09 章 基于特征匹配的英文印刷字符识别 MATLAB深度学习实战案例
  17. python智能化办公_Python开发利器PyCharm新版预告!全新的界面以及更智能化的编辑器...
  18. 安卓开发设置软件媒体声音
  19. 管理员界面 用例, 功能说明书, 技术说明书
  20. Fiddler win10 突然无法 抓包 解决方法

热门文章

  1. 浅谈无线网络在未来工厂中应用的可能性
  2. sql正则提取固定内容
  3. 信锐无线角色授权详细步骤
  4. 关于 TestFlight 新提交的版本没有出现在 测试用户列表中的问题 iOS Swift
  5. zynq7020的ARM单片机编译与运行程序MTCNN
  6. 版权指计算机软件所有,版权和著作权的区别有哪些
  7. 数据结构与算法JAVA语言描述第六章部分课后习题参考答案
  8. 百度地图android自定义文字,Android SDK | 百度地图API SDK
  9. 均线系统:6种走势模型、买卖信号、仓位控制
  10. js中 scrollHeight、clientHeight、scrollTop的理解