计算机科学与技术毕业论文-汉-英辅助翻译系统的设计与实现_第1页
计算机科学与技术毕业论文-汉-英辅助翻译系统的设计与实现_第2页
计算机科学与技术毕业论文-汉-英辅助翻译系统的设计与实现_第3页
计算机科学与技术毕业论文-汉-英辅助翻译系统的设计与实现_第4页
计算机科学与技术毕业论文-汉-英辅助翻译系统的设计与实现_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汉-英辅助翻译系统的设计与实现摘要在全球化浪潮的推动下,语言作为最重要的交流工具之一,汉英辅助翻译系统响应风潮而诞生。汉英辅助翻译系统是使用Python编程语言,Pychram集成开发环境进行编码完成的,连接MySql数据库,与此同时使用QTdesigner设计UI界面。该系统是一种轻量便捷的在线翻译以及管理生词短语和喜欢的句子的系统,适用于个人进行交流或查看外文文献,更适合个人学习英文或者学习中文。该系统设计过程中涉及Python,MySql,Qtdesigner等主要软件开发技术。该系统分为翻译部分和词库管理部分。可以完成对文本的在线翻译。使用者可以随时进行在线英汉翻译或者汉英翻译。同时也可以查看管理词库中的生词短语和喜欢的句子。关键词:汉英辅助翻译系统;Python;MySql;QTdesigner引言全球接轨速度越发提高的今天,语言作为中外交流的桥梁,是重中之重,对外交流,文化输出,政治交流,国家贸易无一不需要语言作为中转的渠道。就文化输出而言,美国是文化输出的典型国家,值得我们深入学习,而学习的前提就是翻译工作的完善。机器翻译是全球都在迅猛发展的方向,国外著名的如谷歌翻译,微软翻译,它们的发展的趋势和未来潜力都是极好的方向。国内如有道翻译,百度翻译,搜狗翻译也都处于高速发展阶段。谷歌翻译每天为超过两亿人提供翻译服务,这足以证明翻译的重要性和实用性。汉英辅助翻译系统的设计汉英辅助翻译系统的需求分析汉英辅助翻译系统要求能做到能够判断输入文本的语言种类,并且能够翻译常见文本,无论是单行文本,还是批量文本,都能做到基本表达到原文本的完整内容。词库管理,汉英辅助翻译系统要求有3张表,一张生词表,用于管理生词,这段要求有单词,单词的含义与备注。一张短语表,字段要求有短语,短语的含义,与备注。一张喜欢的句子表格。字段要求有句子,含义,备注。各张表关系图如图1-1,图1-2,图1-3所示。图1-1生词表E-R图图1-2短语表E-R图图1-3句子表E-R图与此同时,汉译英辅助翻译系统要求尽量做到轻量级,界面简单。学习使用成本低,运行配置简单,低配电脑也能流畅运行。汉英辅助翻译系统的设计汉英辅助系统总体设计汉英辅助翻译系统分为两部分设计。第1部分是翻译功能模块。第2部分是词库管理功能模块。翻译部分,为了轻量便捷的考虑,这一部分的功能需求,决定使用API实现。文本输入和结果输出都采用槽函数实现。词库管理模块选择MySQL数据库,在数据库中创建3张表,并通过数据库可视化软件Navicat来实现对数据库中各种表格的操作,实现连接。汉英辅助翻译系统的界面设计由QTdesigner来设计,并为每个控件设置槽函数来实现对按钮的功能。汉英辅助系统的活动图如图1-4所示。图1-4汉英翻译辅助系统活动图汉英辅助翻译系统将设计两个类,一个为UI界面设计,另一个为界面按钮槽函数的功能实现,UML类图如图1-5所示。图1-5汉英翻译辅助系统类图汉英辅助翻译系统程序的总体流程图如图1-6所示。图1-6汉英翻译辅助系统流程图汉英辅助翻译系统各功能模块汉英辅助翻译系统的翻译功能API选择:翻译模块的实现由API实现功能,再设置输入文本和输出结果显示,如今机器翻译十分发达,在API上的选择有很多,谷歌翻译作为国内外享誉最盛的翻译软件,是第一选择,根据查询的文献,经过仔细研究,我发现谷歌翻译的翻译规则是基于语法规则。它的工作本质是通过结合统计再结合多于语种行语料库的平行语料库,创建大数据分析,去解析各种语言之间的内在规律。由训练好的模型来决定翻译的结果。互联网技术的飞速发展。使得谷歌所拥有的互联网数据愈发庞大,大数据的识别特征也变得更发明显:数量庞大的平均语料库,不仅数量庞大,而且信息多种多样,包含文本图像声音,其内蕴含的大量信息。虽然谷歌翻译的技术已经十分发达。但也面临着许多问题。统计机器翻译都有的不足:翻译的结果不确定。一些文档翻译的结果恰到好处。但有一些参与的结果却不尽人不同题材的文本翻译效果同样不确定。例如政治新闻比体育新闻更好翻译。这些问题。全球的翻译技术都没能很好的解决。由于以上原因,不能仅仅因为谷歌翻译名气大便选择它,更需要详尽数据的支撑。由第二章2.4小节常见app翻译对比分析和图2.11到图2.29可得出结论,腾讯翻译君的翻译结果最符合期待,只有腾讯翻译君的翻译结果做到了基本语意的正确翻译,例如活着感到快乐世界就属于你这句话的汉英互译都做到了完整的对应,且在多义词的选择上符合最优选择,例如四海依旧清平中清平的含义最接近clam,其他翻译软件的选择多是clean和clear,这两个单词的意思更接近于干净,清澈,清晰,而且其他软件还没有将依旧翻译过来。根据在腾讯云官方网站查询得知,它从神经机器翻译和统计机器翻译中吸取教训,汲取优点,从大规模双语语料库自动学习翻译知识实现从源语言文本到目标语言文本的自动翻译。经过仔细且慎重的考虑,最终选用了腾讯云机器翻译的API。汉英辅助翻译系统词库管理模块UI界面设计为一个Tabwidget,其内包含三个展示页面,每个页面由tablewidger和四个按钮组成。每个页面的按钮都有对应的槽函数。生词表对应的四个按钮函数btn_nwod_show,该函数用于查询生词表并将生词表中数据展示在TableWidget_nword之中;btn_nword_add,该函数用于添加数据到TableWidget_nword,btn_nwod_del,用于从TableWidget_nword中删除数据,btn_nword_modiefy,用于修改数据,UI框架图如图1-7所示。图1-7词库管理UI框架图数据库设计MySql数据库名字是test,其中设置了三张表如图1-8所示。图1-8数据库结构生词表结构如表1-1所示。短语表结构如表1-2所示。喜欢的句子表结构如表1-3所示。表1-1生词表结构名类型长度是否非空WordVachar255是MeaningVachar255是RemarksVachar255否表1-2短语表结构名类型长度是否非空PhraseVachar255是MeaningVachar255是RemarksVachar255否表1-3喜欢的句子表结构名类型长度是否非空SentenceVachar255是MeaningVachar255是RemarksVachar255否汉英辅助翻译系统的实现UI界面的实现UI界面如图2-1所示。图2-1汉英辅助翻译系统UI界面实现关键代码如下:defsetupUi(self,MainWindow):MainWindow.resize(1114,867)#设置主窗口程序宽度和高度。self.pushButton_17=QtWidgets.QPushButton(self.centralwidget)self.pushButton_17.setGeometry(QtCore.QRect(480,130,151,71))self.pushButton_17.setObjectName("pushButton_17")self.textEdit=QtWidgets.QTextEdit(self.centralwidget)#设置主窗口程序输入文本框。self.textEdit.setGeometry(QtCore.QRect(20,50,441,341))#设置主窗口程序输入文本框参数信息。self.textEdit.setObjectName("textEdit")##设置主窗口程序输入文本框对象名。self.textEdit_2=QtWidgets.QTextEdit(self.centralwidget)#设置主窗口程序输出文本框,即是翻译结果的显示框。self.textEdit_2.setObjectName("textEdit_2")#设置主窗口程序输出文本框对象名。self.label=QtWidgets.QLabel(self.centralwidget)#设置主窗口程序输入文本框上方显示标签。self.label.setGeometry(QtCore.QRect(20,20,171,16))#设置主窗口程序输入文本框上方显示标签参数。self.label_2=QtWidgets.QLabel(self.centralwidget)#设置主窗口程序输出文本框上方显示标签,也就是翻译结果输出框上方的信息。self.tabWidget=QtWidgets.QTabWidget(self.centralwidget)#设置程序词库管理模块TabWidget。self.tab_nword=QtWidgets.QWidget()#设置生词表页面。主要功能描述:设置主界面的UI,两个标签,两个文本输入输出框,一个TabWidget中设置三个页面,在每个页面设置了四个按钮,一个TableWidget。翻译功能的实现汉译英效果如图2-2示。英译汉翻译效果如图2-3示。图2-2汉英辅助翻译系统汉译英实现图2-3汉英辅助翻译系统英译汉实现(1)代码一:deftrans(self):content=self.textEdit.toPlainText()#定义内容为输入文本框内容。ifcontent:contentList=content.split("\n")resultData=[]#定义翻译结果。forinputDataincontentList:SecretId="AKIDyg6GbkeJbfSyDgpyJZbMq3kGbvPtBsuQ"SecretKey="rRmv4FgSWJxV2K15B7kDdrwlJzU7bXGg"#调用接口所需的SecretId和SecretKey。cred=credential.Credential(SecretId,SecretKey)client=tmt_client.TmtClient(cred,"ap-guangzhou")#进行语种识别,调用腾讯云机器翻译语种识别接口。req=models.LanguageDetectRequest()'''Text是String待识别的文本ProjectId是Integer项目id'''params="""{"Text":"%s","ProjectId":1}"""%(inputData)req.from_json_string(params)resp=client.LanguageDetect(req)主要功能描述:进行语种识别,返回信息。(2)代码二:fromLang=json.loads(resp.to_json_string())["Lang"]toLang=NoneiffromLang=="en":toLang="zh"eliffromLang=="zh":toLang="en"else:self.textEdit_2.setText("请输入英文或者中文,本软件不支持其他语言的翻译!")breakiftoLang:req=models.TextTranslateRequest()'''SourceText是String待翻译的文本Source是String源语言,参照Target支持语言列表Target是StringProjectId是integer项目id'''params="""{"SourceText":"%s","Source":"%s","Target":"%s","ProjectId":1}"""%(inputData,fromLang,toLang)req.from_json_string(params)resp=client.TextTranslate(req)#翻译结果。resultData.append(json.loads(resp.to_json_string())["TargetText"])self.textEdit_2.setText("\n".join(resultData))#将翻译结果显示到文本输出框。主要功能描述:得到语种识别的结果,设置汉英互译的参数,根据输出结果来确定调用机器翻译的参数,最后将得到的结果返回第二个文本框。词库管理功能的实现查询数据库生词表的效果实现如图2-4所示。增加数据库生词表数据的效果实现如图2-5示。删除数据库生词表数据的效果实现如图2-6所示。修改数据库生词表数据的效果实现如图2-7所示。图2-4查询生词表实现查询功能代码:defbtn_nword_show(self):conn=pymysql.connect(host='',user='root',password='xujiawei',port=3306#默认值,db='test'#数据库名,charset='utf8')cur=conn.cursor()#创建游标#查询的sql语句。sql="SELECT*FROMnword"cur.execute(sql)#获取查询到的数据,是以二维元组的形式存储的,所以读取需要使用data[i][j]下标定位。data=cur.fetchall()#遍历二维元组,将表格显示到界面表格上。x=0foriindata:y=0forjini:self.tableWidget.setItem(x,y,QtWidgets.QTableWidgetItem(str(data[x][y])))y=y+1x=x+1主要功能描述:设置sql语句,执行,并将得到的结果遍历输出在TableWidget中。图2-5增加数据生词表实现增加数据功能代码:defbtn_nword_add(self):conn=pymysql.connect(host='',user='root',password='xujiawei',port=3306#默认值,db='test'#数据库名,charset='utf8')cur=conn.cursor()row=self.tableWidget.currentRow()word=self.tableWidget.item(row,0).text()#str(word)#将输入用的表的第0行第0列的所输入在上面的数据赋值给变量(计算机默认从0开始)meaning=self.tableWidget.item(row,1).text()#将第0行第1列所输入的数据赋值给nameremarks=self.tableWidget.item(row,2).text()sql1="INSERTINTOnword(word,meaning,remarks)VALUES('{}','{}','{}')"sql=sql1.format(word,meaning,remarks)cur.execute(sql)#执行SQL语句mit()#即mit,上传有效数据self.tableWidget.clearContents()self.btn_nword_show()#执行自定义的显示当前数据库数据的函数主要功能描述:获取已经选中行,将其中的数据添加到数据库。图2-6删除数据生词表实现删除数据功能代码:defbtn_nword_add(self):conn=pymysql.connect(host='',user='root',password='xujiawei',port=3306#默认值,db='test'#数据库名,charset='utf8')cur=conn.cursor()row=self.tableWidget.currentRow()word=self.tableWidget.item(row,0).text()sql="deletefromnwordwhereword='"+word+"'"cur.execute(sql)mit()self.tableWidget.clearContents()self.btn_nword_show()主要功能描述:获取选中行第一列数据,依靠该数据作为MySql执行语句的参数,从数据库中删除数据并在列表中刷新显示。图2-7修改数据生词表实现(4)修改功能代码:defbtn_nword_modiefy(self):conn=pymysql.connect(host='',user='root',password='xujiawei',port=3306#默认值,db='test'#数据库名,charset='utf8')cur=conn.cursor()row=self.tableWidget.currentRow()word=self.tableWidget.item(row,0).text()meaning=self.tableWidget.item(row,1).text()remarks=self.tableWidget.item(row,2).text()sql="updatenwordsetmeaning='"+meaning+"',remarks='"+remarks+"'whereword='"+word+"'"#修改指定行的数值cur.execute(sql)mit()主要功能描述:获取选中行行数,然后从表格中获取第一列数据,将其作为参数来执行MySql执行语句,同步修改数据库中数据。结论对汉英辅助翻译系统的设计,让我充分的感受到了机器翻译的魅力。基本实现了对翻译本文的汉译英和英译汉,能够对输入文本的语种进行识别。词库管理在设计UI界面的时候也遇到了一些问题,选择实现词库管理的时候,有考虑到做多界面还是但界面跳转页面的问题,但处于系统轻量级且便

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论