当前位置:文档之家› 一种小型汉英翻译软件的设计原理及实现

一种小型汉英翻译软件的设计原理及实现

本文采用的是传统的基于规则的直接翻译方法,给出的是 一类语句的汉英翻译系统,该类语句为含主语、谓语、宾语的简 单句。下面具体介绍该系统实现的设计原理和实现步骤。 1. 语法分析
机器翻译中无论是汉译英或英译汉事先都需要对源语句进 行语法分析,大体包括自动分词、词性标注及词义消歧、句法分 析、语义分析,下面针对本系统依次给予介绍。
void Rule2();//名词- 主语- 译文选择规则 void Rule3();//时间- 位置译文选择规则 void Rule4();//助词- 删除与否规则 。。。 。。。 };
该类总的来说包括三个模块:语法分析模块,如切分处理、
标注处理;转换规则模块,如动词- 谓语- 译文选择规则、名词- 主 语- 译文选择规则、时间- 位置译文选择规则、助词- 删除与否规 则等。另一个模块就是语句翻译的整个过程,包括:翻译转换模
1. 自动分词 所谓自动分词是指把没有明显分界标志的字串自动切分为 词串。包括点符号、数字、数学符号、各种标记、人名、地名、机构 名等未登录词的识别。如:输入汉语言为:"他们正在读书",采用 切分模块将汉语句切分为:"他们/ 正在/ 读书"。 这里说明上面 一句话是由 3 个词构成的。在切分模块有两个比较难解决的问 题:一个是切分所需词典中词汇量要全面,另一个是切分歧义的 准确处理。在前一个问题上,已经出现了如知网、语料库等形式 方法,可以比较好的解决这个问题。而在切分消歧方面,若要使 切分准确率很高,不仅需要大量切分歧义规则,还需要相应语言 学专家的大量参与,这是一个比较长远的工作。 在这一模块中的分词算法通常分为有词典分词和无词典分 词。有词典分词是主流分词方法。根据使用的知识资源不同又分 为基于规则的方法和基于统计的方法,以及两者结合的方法。本 软件采用的是基于规则的正向最大分词算法。算法描述如下: 设 MaxLen 表示最大词长,D 为分词词典 (1) 从待切分语料中按正向取长度为 MaxLen 的字串 str,令 Len=MaxLen; (2) 把 str 与 D 中的词相匹配; (3) 若匹配成功,则认为该字串为词,指向待切分语料的指 针向前移 Len 个汉字,返回到(1); (4) 若不成功:如果 Len>1,则将 Len 减 2,从待切分语料中 取长度为 Len 的字串 str,返回到(2)。否则,得到长度为 1 的单字 词,指向待切分语料的指针想前前移 1 个汉字,返回(1)。 2. 词性标注 在汉语中,常常一个词在不同情况下会取不同的词性。比如 汉语句"他是总编辑"中编
(2) 如果动词紧挨在"在","正在"这种状语之后,取 v3- 进行 式;
(3) 否则取 v1- 原形 4. VC++实现
本汉英机器翻译软件的实现其核心体现在一个翻译类
CTranslate 的编写。CTranslate 类头文件中的部分代码如下:
class CTranslate : public CObject {
(1) 判断待分析词序列中主要动词,并在动词词典中找出该 动词的格框架。
(2) 对格内容进行相应的填充。 (3) 根据句子中出现的标志判断句子的情态 Modal. 以 Rule1:动词- 谓语- 译文选择规则为例,其基本步骤如 下:
(1) 首先找到唯一一个动词,如果动词紧挨在"了"之前,取 v2- 过去式;
CWord* pw=m_list.GetNext(pos); result=result+pw- >m_sDy+" ";
} return result; }
这里的 CWord 是一个事先写好的单词类,该类有两个数据 成员,源语言串 CString m_sYy,目标语言串 CString m_sDy。另一 个 m_list 是词汇链表对象 CWordList m_list.
objective: window
instrumental: hammer
locative: room
[MODALS:
time: past ]
本系统并没有进行语义分析,而是把工夫花在了词典语句
的存储和译词选择的规则设置上。
2. 机器词典
本软件中的机器词典采用了数据库作为存储方式,每一条
ቤተ መጻሕፍቲ ባይዱ
记录存储一个单词,单词的存储规则设置部分如下:
软件翻译质量全面与否在于本机器词典中单词内容的增
加,因而软件中还设置了添加词典内容的项目。翻译系统的整个
语法分析阶段都将用到机器词典,因此本词典的存储及规则的
设置都是相当重要的。
3. 转换规则 在准备好机器词典并对汉语句进行语法分析后,就可以设
置转换规则了。所谓转换规则就是为了将语法分析后的词汇序
列翻译得到合适的目标语言(这里是英语)而设置的一系列规
则。本系统是一个小型的软件,针对的是一类简单句进行汉英翻
译,所需要的转换规则主要有 Rule1:动词- 谓语- 译文选择规 则;Rule2:名词- 主语- 译文选择规则;Rule3:位置译文选择规 则;Rule4:助词- 删除与否规则等。所有规则设置原理为模拟使 用格语法进语义分析时的算法,具体描述如下:
152
福建电脑
2007 年第 3 期
一种小型汉英翻译软件的设计原理及实现
李霞
( 广东外语外贸大学 信息学院 广东 广州 510420 )
【摘 要】: 本文介绍了自然语言理解在机器翻译中的应用,采用基于规则的方法,实现了翻译一类语句的汉译英机器 翻译软件,并完整介绍了系统实现的算法原理和编程实现步骤。
3. 句法分析 句法分析实际就是从单词串到句法结构的过程,这里的句 法结构通常是一棵树。对句子做句法分析通常要选择合适的语 法理论,这里选择了上下文无关文法。 如有一套句法规则和分词词典如图 1, 则汉语"小王和小李 的妹妹结婚了" 经过句法分析后得到它的句法树如图 2.
图 1 语法规则及词典
图 2 句法树
辑一词取名词词性,而在汉语句" 他正在编辑文档" 中编辑一词 则取动词词性。在汉语言中同一个词取不同词性其翻译的目标 语言也会不同,如前者翻译为 editer,后者翻译为 editing。词性标 注即是判定给定句子中每个词的语法范畴,确定其词性并加以 标注。如"他正在编辑这本书"经过分词和词性标注后结果为:" 他/ n 正在/z 编辑/ v 文档/n",这里的 n 表名词、z 表状语、v 表动 词、n 表名词。
以上进行的是语法分析。有些翻译系统在语法分析模块还
会对源语言进行语义分析,且大多采用了格语法,机器词典则多
采用义素法来存储语义。如英文句子 In the room,he broke a
window with a hammer,其对应的格框架结构为:
[BREAK
[case- frame
agentive: he
该模块中的算法采用基于规则的方法,其原理为利用事先 制定好的规则对具有多个词性 的词进行消歧,最后保留一个正确的词性。具体步骤如下:
(1)对词性歧义建立单独的标注规则库; (2)标注时,查词典,如果某个词具有多个词性,则查找规 则库,对具有相同模式的歧义进行排歧,否则保留; (3)程序和规则库是独立的两个部分。
。。。 。。。 public:
//切分处理部分 CString Match(CString&); //字符串匹配函数 void MM(CString &source);//切分函数- - 正向最大匹配法 。。。 。。。 //翻译并选择译文部分 CString Translate(CString& source);//对语法分析后的单词列进行翻译,出口 为英语 CString ZhYw();//对处理好以后的词汇序列进行译文组合成整句 。。。 。。。 //转换规则部分 void Rule1();//动词- 谓语- 译文选择规则
#D: 名词,单数形式
#F: 名词,复数形式
G1: 主格
2007 年第 3 期
福建电脑
153
G2: 宾格 V1: 动词,原形 V2: 动词,过去式 V3: 动词,现在分词 V4: 动词,过去分词 。。。 。。。
根据该规则机器词典的部分内容如下:
我 :#ND,G1- I,G2- me/ 今天 :T- today/ 买 :V1- buy,V2- bought,V3- buying/ 了 :表完成/ 书 :book/ 他 :#ND,G1- He,G2- him/ 昨天 :T- yesterday/ 打破 :V1- break,V2- broke,V3- breaking,V4- broken/ 窗户 :window/ 妈妈 :#ND,G1- mother,G2- moather/ 裙子 :skirt/ 在 :表正在进行/ 正在 :表正在进行/ 他们 :#NF,G1- they,G2- them/ 。。。 。。。
class CWord : public CObject { 。。。 。。。 //数据成员 CString m_sYy;//原语言 CString m_sDy;//目标语言 。。。 。。。 };
这 里 通 过 typedef CTypedPtrList <CObList,CWord* > CWordList,定义了 CWord 指针链表,翻译模块中各语法分析处 理后的词汇都存储在该链表中,转换规则部分则除了能够使得
【关键词】: 自然语言理解 机器翻译 汉译英
自然语言理解[1,2,3]是人工智能极其活跃的研究领域,也是新 一代计算机必须研究的课题。通常应具备以下四条之一:①能成 功地回答输入语料中的有关问题;②在接受一批语料之后,有就 此给出摘要的能力;③能用不同的词语复述所输入的语料;④有 从一种语言转译成另一种语言的能力。其中第 4 项在机器翻译 中有着广泛的应用。目前机器翻译(也叫自动翻译)已经不仅仅 停留在实验阶段,已经有了市场化的软件,如:Light 英汉机器翻 译系统、TransEasy 汉英机器翻译系统、译星 2002 等。
(2)组成目标语模块 该模块是将经过一系列切分、标注、消歧、句法分析后的词汇序
相关主题